作者:少年英雄房飞冯
发布时间:2018年9月5日
网络来源:简书
确认次数 = 当前区块高度 – 交易所在区块的高度
针对非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交易就失效了。
作者:少年英雄房飞冯
链接:https://www.jianshu.com/p/6ac9cd90da1e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。