BTC-10分叉

内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 10-BTC-分叉

分叉 fork: 

原来是一条链,现在分成两条链。

造成分叉的原因有很多,比如挖矿时两个节点几乎同时发布,会出现临时性的分叉,这样的分叉叫做state fork,由于对比特币当前的状态有意见分歧导致的分叉。分叉攻击 forking attack也属于state fork,只不过这个意见分歧是人为故意造成的,称为deliberate fork。

还有一种产生分叉的情况是比特币的协议发生改变,修改比特币协议需要软件升级。在去中心化的系统里,升级软件的时候,没有办法保证所有的节点同时都升级软件。假设大部分节点升级了软件,少数节点没有升级,这种对比特币协议造成分歧,用不同版本协议造成的分叉,称为protocal fork。根据对协议修改的内容不同,又可以进一步分成硬分叉 hard fork和软分叉soft fork。

hard fork:

如果对比特币协议增加一些新特性,扩展一些新的功能,那些没有升级软件的旧节点就不会认可这些新特性,认为这些特性是非法的,就会导致分叉。

例:block size limit:1M -->4M,系统中拥有大多数hash算力的节点认可4M,少数没有升级软件的旧节点不认可4M,还是认可1M,就会造成永久性社区分裂,只要旧节点不升级软件,分叉就一直存在,所以是硬分叉 hard fork。

出现hard fork之后,就会有两条平行运行的链,彼此之间有各自的加密货币,变成社区分裂。分叉之前的币,应该是两条链都认可。

soft fork:

协议中加一些限制,使得原本合法的区块在新协议中不再合法。

例:block size limit:1M -->0.5M,系统不会有永久性分叉,只是旧节点挖出的区块都白挖。

发布了84 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/a972669015/article/details/104662670