首先,矿工是向账本提出更新的人,只有成功完成工作量证明的矿工才被允许添加新的区块。这已被编入比特币协议。
矿工可以从一个已被节点广播给网络的潜在交易池中自由选择有效的交易。这些交易被收集到“mempool"(内存池)中。 理性诚信的矿工根据交易费用从 mempool 中选择交易,优化得到更高的费用。这就产生了费用市场,有助于确保有限的区块空间得到公平使用。
第一个完成工作量证明的矿工将他/她提出的新区块广播给更广泛的节点网络,然后这些节点会进行检查以确保该区块遵循协议规则。这里的关键规则是:(1) 区块中的所有交易都是有效的(即,没有重复消费);(2) 新区块适当地引用了前一个区块,并在链中作为下一个区块进行编号(即,新区块构成最长链中的最新区块)。如果该区块遵循协议规则,这些节点会将其发送给其他节点,然后其他节点也会完成同样的过程。通过这种方式,新区块在网络中传播,直到它被广泛接受为事实。
然而,会发生这样一种情况(而且经常会发生):多名矿工几乎在同一时间完成工作量证明,并同时向网络广播他们的新区块。此外,由于网络延迟和地理位置上的差异,不同节点可能在稍微不同的时间收到新提出的区块。
请注意,不同的矿工提出的新区块可能会略有不同。这是因为,如前所述,矿工是选择将哪些交易纳入区块的人。当两个矿工发出不同的新区块时,竞争性的“事实"版本开始在网络上传播。网络倾向于选择让链以更快速度增长的那个“事实"作为正确版本。
我们来分析一下最后一部分。想象一下,有两条相互竞争的链。假设 75 %的矿工选择了版本 A,并开始为下一个区块进行工作量证明。而 25% 的矿工选择了其他版本,并开始在所选版本的基础上进行同样的工作。据统计,在版本 A 上工作的矿工更有可能首先完成工作量证明,将新版本广播到网络上。由于节点总是以生成最长的链作为选择依据,版本 A 很快会在网络中占据主导地位。事实上,随着链的增长,版本 B 增长较快的可能性会随之消失。当添加 6 个区块后,这从统计学上来说已是不可能的了。
来源:金色财经