比特币有两种分叉升级策略:硬分叉和软分叉。
1、硬分叉升级有一个特点,即旧的区块按照新规范仍然能被验证通过,但新的区块不能被旧的规范所认可。所以,硬分叉在实施前会事先调查新规范的接受程度,当多数节点同意升级规范后,新规范就被正式实施。
2、硬分叉初期,系统将会产生大量按照新规范产生的区块,而未升级的节点无法验证通过这些区块而舍弃它们。由于不同的共识,硬分叉会使未升级节点与升级节点分别在旧区块链上和新的分支上继续挖矿。
3、但是,由于升级节点占多数,未升级矿工也会逐渐升级,新的分支最终将会替代旧链,升级过程得以实现。硬分叉的实施关键取决于大部分计算能力是否支持升级方案。截止到目前,比特币还未进行过任何的正式硬分叉升级,而正在准备进行的SegWit2x将会是比特币第一次正式硬分叉(SegWit2x是将区块大小上限扩大为2 MB的方案)。
4、软分叉不是真正意义上的分叉,而是一种双向兼容的规范设计。软分叉要求新规范下的区块能够被未升级节点认可,而升级节点同样也能够认可按照旧规范产生的区块。这种升级不会造成实际分叉,是一种非常平稳的方法,适用于细微的规范和协议修改。
5、2012年,比特币通过软分叉实现了BIP(Bitcoin Improv%ement Proposal)16中 添 加 P2SH 锁 定 脚本签名方案的升级。软分叉对设计有着相当高的要求,在对协议或者规范进行破坏性修改时,软分叉的实现会非常困难,甚至不能胜任。而一旦软分叉的实现过于复杂,其实现过程中出现漏洞的可能性也会增大。
标签: 比特币