一个在网络上传播的交易,直到成为全局分布式账本(区块链)的一部分才算真正得到确认。平均每隔10分钟,矿工就会创建一个包含上个区块以来所产生的所有交易的新区块。新交易不停地从用户的钱包或者其他应用中流入网络。当这些交易被其他节点捕获时,就会被加入一个各自维护的临时未验证交易池中。矿工创建新区块时,他们将未验证交易池中的交易取出,并入新建区块,然后尝试解决一个极为困难的问题(即工作量证明)来证明这个区块的有效性。挖矿的过程我们将在第8章中详细说明。
根据费用优先原则及其他一些规则,交易被顺序加入新区块中。当矿工从网络中接收到上一个区块时,他会立即发现自己已经在上一轮竞争中失败了,所以立即开始新区块的挖矿过程。矿工首先创建一个新区块,填上交易以及上个区块的指纹,然后开始计算这个新区块的工作量证明。矿工还会在区块中包含一个特殊的交易,这个交易向他自己的比特币地址发送一笔新创建的比特币作为奖励(当前每区块25比特币[1])。如果找到一个工作量证明使区块有效,他就赢得了这个奖励,因为他挖出的区块被成功加入全局区块链中后,他加入的奖励交易也变得可用了。由于加入了矿池,景把挖矿软件的新区块奖励地址设置为矿池的地址。在矿池中,一旦在上一轮挖矿竞争中胜出,由此获得的奖励将按照矿工所贡献工作量的大小进行分配。
爱丽丝的交易被网络节点提取并放进未验证交易池。因为交易包含了足够的费用,它会被放进景所在矿池的新建区块当中。交易从爱丽丝的钱包提交后大概5分钟,景的ASIC矿机找到了这个区块的工作量证明,并将其发布为第277316号区块,这个区块还包含419个其他交易。随着新区块在网络中的发布,其他矿工将立即对其进行验证并开始新一轮的挖矿竞赛,以生成下一个区块。
你可以通过http://blockchain.info/block-height/277316查看包含爱丽丝交易的区块。
几分钟后,第277317号区块又被别的矿工挖出。由于这个新区块基于上一个包含了爱丽丝交易的区块(277316号区块),它在原有区块的基础上进行了更多的计算,因此进一步强化了对那些交易的信用。包含爱丽丝交易的区块被认为是对该笔交易的一个确认。基于这个区块,每产生一个新区块,就是对交易的一次额外确认。由于新区块一个个叠加在原有区块之上,这使得推翻原有交易的难度呈指数级增长,这样就保证了交易可信程度越来越高。
在图2.9中,我们可以看到包含爱丽丝交易的第277316号区块。在它之下有277316个区块(包括0号区块),这些区块互相连接,直到0号区块——被称为创世区块,形成一个区块的链表(区块链)。随着时间的推移,区块的“高度”不断增长,每个区块及整个链表的计算难度都不断增加。在这个越来越长的链表上,不断叠加新的计算,包含着爱丽丝交易的区块之后所挖出的区块成了该笔交易的额外保证。按照惯例,任何经过6次确认后的区块即被认为是不可撤销的,因为要撤销并重新计算6个区块需要极大的计算量。我们将在第8章详细介绍挖矿的过程以及它创建信用的机制。
图2.9 爱丽丝的交易包含在第277316号区块中
[1] 此为作者写书时的奖励金额,翻译此书时是12.5比特币。——译者注
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。