软分叉和硬分叉是什么?| 区块链课堂第24问
软分叉可避免区块链分裂,但硬分叉的升级空间更高。
实际上,我们可以把比特币系统共识的修改看作是对其软件代码的升级。而升级修改的则是比特币交易的数据结构、生成区块链的格式以及某些新特性等等方面;这一过程中涉及到两个概念,软分叉以及硬分叉。
其中硬分叉指的是,比特币代码发生变化之后,未进行升级的旧节点无法验证已经升级的新节点。为此不符合原规则的区块会被忽略,使用旧节点的矿工按照原规则继续挖矿,区块链发生永久性的分歧。也就是说,如果新规则部署后部分节点未进行升级,区块链将分裂为两条链;就如2016年以太坊为追回The DAO被盗资金而发生的分裂事件。
另一方面,软分叉则是指旧节点并不会意识到代码的变化,并继续接受或者说验证新节点生成的区块。具体来说,软分叉和硬分叉的新节点都可接受由旧节点产生的数据或者代码,就如Windows 10亦兼容Windows XP应用。而软分叉在此基础之上,还可实现“向前兼容”,让旧节点也可以接受新节点产生的区块,从而避免区块链分裂这种情况。
不过要实现新旧节点之间的完全兼容非常困难,所以软分叉的升级空间非常有限,仅可在不增加新字段的情况下进行修改。而相比之下,只需考虑“向后兼容”问题的硬分叉,可塑性更高。
上期回顾:什么事51%算力攻击?
下期预告:在数字货币分叉中重放保护起到什么作用?
区块链课堂是哈希派(公众号ID:hashpai)围绕区块链技术推出的每日问答栏目,帮助大家从各方面了解区块链领域的相关知识。如果你对区块链有自己的想法以及相关疑惑,欢迎在评论区留言,我们将会在近期更新中为你解答。















