无限币粉丝

硬分叉和软分叉有什么区别

常见的理解是“硬分叉和老版本软件不兼容、软分叉和老版本兼容”。

这个定义严格来讲是不准确的,但是很多地方已经在用了,只能说各位需要注意。

硬分叉的定义是扩宽共识规则,允许做之前禁止的事情,以前无效的交易/区块在硬分叉后会变成有效的;

软分叉是收紧共识规则,禁止之前允许做的事情,以前有效的交易在软分叉后就无效了。

软/硬分叉是共识规则的改变,和链分叉/链重组完全是两码事;

这两对概念的关系类似于“红烧/清蒸”与“烧糊/夹生”。

不当部署的软/硬分叉都有可能导致链分叉/链重组。

所以,可以想见:

硬分叉之后,几乎一定会产生让老节点拒绝接受的区块,所以,硬分叉会破坏前向兼容性;

软分叉之后,产生的新区块肯定是老节点也愿意接受的,前向兼容性得以保留。

修正无限刷币漏洞是软分叉,因为老版本软件实际上执行了允许刷币的规则,新版本软件禁止刷币,但是产生的区块仍然符合老版本软件的规则。


参考文章:

知乎 https://www.zhihu.com/question/61451234

巴比特 https://www.8btc.com/article/118717

发布时间:2021-05-11

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。