接着上一篇,我们继续聊聊《比特币白皮书》的第 5 部分:⽹络 (Network)。 ⽹络 (Network)
还是老规矩,原文和中文翻译放在这里,便于中英文对照,有条件的可以原文理解。
The steps to run the network are as follows:1. New transactions are broadcast to all nodes.2. Each node collects new transactions into a block.3. Each node works on finding a difficult proof-of-work for its block.4. When a node finds a proof-of-work, it broadcasts the block to all nodes.5. Nodes accept the block only if all transactions in it are valid and not already spent.6. Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.
运⾏⽹络的步骤如下:
1. 所有新的交易向所有节点⼴播;2. 每个节点将新交易打包到⼀个区块;3. 每个节点开始为此区块找⼀个具备难度的⼯作证明;4. 当某个区块找到其⼯作证明,它就要将此区块⼴播给所有节点;5. 众多其他节点当且只当以下条件满⾜才会接受这个区块:其中所有的交易都是有效的,且未被双重⽀付;6. 众多节点向⽹络表示⾃⼰接受这个区块的⽅法是,在创建下⼀个区块的时候,把被接受区块的哈希当作新区块之前的哈希。
Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one.
节点始终认为最⻓链是正确的那个,且会不断向其添加新数据。若是有两个节点同时向⽹络⼴播了两个不同版本的“下⼀个区块”,有些节点会先接收到其中⼀个,⽽另外⼀些节点会先接收到另外⼀个。这种情况下,节点将在它们先接收到的那个区块上继续⼯作,但也会把另外⼀个分⽀保存下来,以防后者成为最⻓链。当下⼀个⼯作证明被找到,⽽其中的⼀个分⽀成为更⻓的链之后,这个暂时的分歧会被打消,在另外⼀个分⽀上⼯作的节点们会切换到更⻓的链上。
New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.
新的交易不⻅得⼀定要⼴播到达所有的节点。只要到达⾜够多的节点,那么没多久这些交易就会被打包进⼀个区块。区块⼴播也容许⼀些消息被丢弃。如果⼀个节点并未接收到某个区块,那么这个节点会在它接收到下⼀个区块的时候意识到⾃⼰错失了之前的区块,因此会发出补充那个遗失区块的请求。 什么是比特币网络
白皮书中提到:
比特币网络是一个去中心化的点对点网络,所有节点(也就是参与比特币的用户)都持有完整的区块链副本,并通过特定的协议相互连接。比特币的安全性和交易的真实性依赖于整个网络的参与和共识。
简单理解,什么是比特币网络?
比特币的网络并不是一个单一的“中心服务器”,而是由全球用户和矿工组成的一个去中心化的网络。
每个参与者都可以成为网络的一部分,网络中的每个人都持有一份完整的比特币账本(也就是区块链)。
比特币的每一笔交易都会被广播到这个去中心化的网络中,网络中的所有节点(参与者)都会收到这条信息。
所以,比特币没有像传统银行那样的“中央服务器”,它的账本(区块链)是由所有用户共同维护的,就像一个公开账本,人人维护。 如何保障交易安全
又是全球……又是公开……还是账本……听起来怎么都不那么踏实,第 2 个问题来了,比特币网络如何保障交易的安全性?
比特币的网络采用了“去中心化”模型,这意味着没有一个人或组织能控制整个网络,每个人的电脑都可以参与验证交易。就好像一个学校,没有校长和老师,所有学生自助管理一样疯狂。
不过,去中心化的优势还是比较明显的:
比如,没有单点故障:
如果比特币是由一个中央机构(比如银行)控制,那如果这个机构崩溃,所有人都受影响。而去中心化的比特币网络,哪怕某个节点掉线,其他节点仍然可以正常运行。
再比如,交易公开透明:
每一笔交易都能在区块链上查看,每个人都可以验证是否真实。大家一起维护一个大账本,谁都不能单独篡改。 如何验证交易
第 3 个问题,网络如何验证交易?
比特币网络的工作原理类似于一个大集体,大家通过规则来验证交易,确保所有的交易都是真实的、有效的。
每次交易都会被广播到网络中,所有的节点都会参与检查:他们检查交易是否合法(比如,你的钱包里是否有足够的比特币)。通过“工作量证明”(PoW)来确保交易顺序没有被篡改。
所有的节点会根据一致的规则(协议)来判断某个交易是否有效,并且大家达成一致,如果一大部分节点都确认了某笔交易,那它就被认为是有效的,最终写入区块链。
ps补充一个冷知识: 这里的“一大部分节点确认”,其实按照算力投票,如果超过全网 50% 的算力都认可一条链(51% 共识),那么这条链就会被整个系统认为是真的。
因为全网算力太庞大了,要控制 51% 需要巨量的计算机、电力和资金,成本高得惊人。所以,目前世界上还没有成功发动过针对比特币主网的 51% 攻击。
打个比方:
村里有 100 个记账员(矿工),大家一起记账。每次有一笔新交易,大家都要核对并记录。如果有 51 个或以上的记账员都说:“这笔账没问题”,那就认为账是真的,写进总账本。剩下的 49 个记账员即使反对,也没法改变结果。 如何保证信息不被篡改
第4 个问题,网络如何保证信息不被篡改?
其实前面的系列文章中有提到过,比特币网络通过“区块链”和“共识机制”来确保信息不被篡改。
每笔交易被记录到一个区块,然后每个区块通过数学加密和时间戳与前一个区块连接起来。这样,任何篡改交易数据的人都必须修改后面所有区块的数据,这几乎是不可能的。
同时还有共识机制:比特币通过“工作量证明”确保大多数节点都同意交易是合法的。攻击者想篡改某笔交易,必须控制网络中的50%以上的计算能力(计算难度非常高),否则篡改就会被立刻发现。
举个栗子,假如比特币区块链是一串连起来的珠子。每颗珠子代表一个区块,如果你试图改变某颗珠子的内容,其他珠子就会松动,你的“珠链”就会散掉,无法固定在一起了。 如何保持网络运行
第 5 个问题,节点是如何保持网络运行的?
比特币网络中的每个节点(也就是比特币用户或矿工的电脑)都存有区块链副本,并参与验证交易。当你使用比特币进行交易时,交易信息会被广播到整个网络,每个节点都会接收到这条信息并验证。
节点之间通过一种叫做“P2P协议(点对点协议)”的方式进行沟通。P2P意味着每台计算机都可以直接与其他计算机通信,不依赖于中心化的服务器。
只要你是比特币网络的一部分,你就可以参与其中的交易验证和信息传播。节点相互连接、数据共享,确保比特币网络的去中心化和安全性。
举个栗子:
就像你和你的朋友们在一个微信群里讨论问题,每个人都能看到所有的消息,并且你们都遵循相同的规则来决定最终的结果。比特币网络就像这个微信群,大家都可以看到每笔交易,并且共同决定是否有效。 写在最后
关于第 5 部分,今天就先聊到这,下一篇继续。希望对你有帮助!