区块成熟时间 —— 比特币的6次确认和coinbase的100次确认成熟时间

确认次数 = 当前区块高度 - 交易所在区块的高度

针对非coninbase的交易:区块的每一次确认都会增加上一个区块被篡改的难度,6个区块之后,交易被篡改的可能性几乎为0,所以有了“交易经过6次确认之后加入区块链不可更改”的的说法。

针对coinbase交易的100次确认:当一个块成为孤立块时,它的所有有效交易被重新添加到排队交易池中,并将被包括在另一个块中。对于孤儿区块的50BTC奖励将丢失,这就是为什么coinbase需要100次确认的原因。再具体些,块链分叉会产生孤块,并且这些块中的挖掘回报丢失。这只是比特币工作方式中不可避免的一部分,有时甚至当没有人攻击网络时也会发生。如果没有100区块确认的成熟时间,那么每当分叉时,非主链的孤块上的交易全部会丢失,即使没有任何形式的双重花费或其他攻击。在分叉链上,成千上万的人可以发现钱包里的硬币不见了,即使没有人真正攻击他们,也没有理由怀疑他们收到的钱。例如,假如没有成熟时间,矿工可能将25BTC存入EWallet,如果我从同一个EWallet上完全不相关的账户中提取钱,那么如果有分叉,我的提款可能就会消失,而且我不幸提取了矿工的coinbase费用。由于这种污染倾向于“感染”交易,每个区块的BTC远远超过25。每一个无效块都会导致价值数百个比特币的交易被逆转。所以,有了成熟时间的设置,只要分叉不超过100块,任何人都不可能像这样意外丢失硬币。如果分叉的寿命超过100个块,那么由无效交易引起的损坏很可能是一个巨大的灾难。

再举例说明:比如没有成熟时间的限制,A区块产生后,A中的挖矿交易UTXO可以在下一个区块B中被使用,那么区块B中包含了区块A中的a交易。

当某些原因出现分叉,B区块成为孤块,这时应该将B中的有效交易添加到内存池,打包到新的区块中。这时B中的a交易因为引用了区块A的coinbase费用不能轻易重新打包到其他的块中。因为更换了区块后,coinbase交易就失效了。


在Qitmeer网络中,当前为测试网络,coinbase交易区块成熟时间是 720个块,30秒一个块,coinbase交易成熟时间大约6小时。

因此,我们才会看到我们挖到的币,有一些会处于“确认中”状态一段时间,如下所示:



作者:少年英雄房飞冯
链接【https://www.jianshu.com/p/6ac9cd90da1e
来源:简书


比特币100个块的时间大约是:1000分钟,合16.7小时。