我们常说,比特币交易需要确认 6 块。
问题1:为什么比特币交易需要6个区块才能确认?
一个案例:
如下图所示,绿色和黄色是两名矿工同时挖出新区块并广播到比特币网络。
与绿色矿工相连的节点首先收集绿色矿工发布的块。
连接黄矿工的节点首先收集黄矿工发布的块。
比特币区块未确认交易_比特币交易确认时间_比特币区块未确认交易
因此,不同的节点可能同时有不同版本的区块链。矿工仍在开采两个版本的区块链。
目前,比特币交易的顺序尚不清楚。
比特币网络必须围绕区块链的哪个版本?‘正确’区块链?寻求共识。
一条规则:
比特币区块未确认交易_比特币区块未确认交易_比特币交易确认时间
共识规则是,如果发生分叉,比特币网络上的节点将继续保持两个分叉,最长的链被确认为正确链。
一些节点收到黄色块。其他节点首先收到绿色块。
收到黄块的矿工继续沿着他们的分支挖掘,称为A分支。
收到绿块的矿工继续沿着他们的分支挖掘,称为分支 B。
比特币交易确认时间_比特币区块未确认交易_比特币区块未确认交易
如果,B 分支的矿工们,首先挖下一个区块——紫色区块,并将这个消息发布到网络上。
分支 A 的矿工注意到分支 B 未确认最长比特币区块的交易将立即停止分支 A 的工作切换到分支 B。
这样,所有矿工都在同一个分支上挖掘。比特币交易的顺序是统一的。
如果比特币区块未确认交易,最终将验证所有交易。
比特币区块未确认交易_比特币交易确认时间_比特币区块未确认交易
记录在黄色区块中的交易会将继续保持pending状态,然后放B在新的分支区块中。
过时的块:
黄色块被称为旧块(Stale block)。
矿工成功挖掘的块将被丢弃,因为它们不包含在最长的链中,等待重写。
补充:
比特币交易需要确认 6 块。换句话说,至少要验证 5 块。也就是说,交易总共有6次确认。6 是估计值。
如果作恶者想要双花,他必须控制大量的计算能力,以确保他的虚假信息可以写在最长的分支上。几乎不可能控制如此巨大的计算能力。
6 区块的确认给了比特币网络足够的时间统一所有区块的顺序。
综上所述:
因此,六个区块的确认被用来确认最长分支区块中的交易。