换句话说,一旦区块链需要更新版本或修改系统,所有网络参与都必须下载并运行新版本的区块链客户端,以完成版本更新。
然而,升级分布式共识系统的困难在于,很难要求网络参与者同时完成更新。只要参与者不立即更新客户端,网络上就会有不同版本的区块链。换句话说,区块链就会分叉。
因此,区块链更新时,必须协调所有系统参与者,否则可能会影响区块链系统的安全。
升级分布式共识系统的另一个困难在于,所有网络参与者必须达成共识。
如果只有一部分矿工同意更新,另一部分旧矿工不同意更新,矿工之间就会有共识。
区块链更新中的共识问题大致有四种可能性:
1)新矿工接受旧矿工挖出的块
2)新矿工不接受旧矿工挖出的块
3)旧矿工接受新矿工挖出的区块
4)旧矿工不接受新矿工挖出的块
硬分叉指的是新矿工产生的块与旧矿工产生的块不兼容,而软分叉指的是新矿工产生的块不能与旧矿工产生的块兼容。
举例来说,如果比特币的协议参数发生变化,如块的大小、采矿主题的难度或块的速度,就有可能导致新块不被之前版本的共识规则所接受。
硬分叉需要所有矿工达成共识并升级客户端软体,否则区块链将分裂成两条链。
软分叉则相对温和,只需要大多数矿工升级,其他矿工也会逐步升级。
在区块链升级过程中,重要的是要协调所有矿工之间的共识,即区块链治理。
如果共识处理不当,就会导致分叉,影响区块链的安全。
总之,对于区块链升级来说,重要的不是硬分叉还是软分叉,而是矿工之间的共识是否一致。
本文观点和意见仅代表作者本人,不构成任何建议。