名词解释第七十二讲:软分叉

这里是王团长区块链学院,与最优秀的区块链人一起成长!今天给大家讲讲软分叉。

 

区块链上节点众多,当出现新版软件后,不一定所有的节点都愿意升级,也不一定所有的节点都能马上反应过来。节点面对新版软件反应的不同,造成的分叉结果也不同。

 

根据升级后的区块链是否能兼容旧区块链,分叉又分为“硬分叉”和“软分叉”。今天先重点介绍软分叉。

 

软分叉:是指区块链网络系统软件升级后,旧的节点并不会意识到比特币代码发生改变,并继续接受由新节点创造的区块,新老节点始终还是在同一条链上工作。

有人说硬分叉就是分叉,而软分叉就是不分叉,其实这话并不完全对,硬分叉就是分叉是对的,但软分叉其实也可能会出现分叉的情况。

 

一、不分叉的软分叉

软分叉通常不会产生两条区块链,实际上未升级节点无法识别新规则的真实意义,意识不到有新规则的改变。于是,新规则下产生的区块会被旧节点接受。这时,如果已经升级的节点也可以验证未升级的节点生产出的区块,那么新规则发布后,新旧节点仍然在同一条链上,对整个系统的影响也就较小。

 

这种情况的软分叉其实只是在叫法上有点迷惑性,实际上这种旧节点接受新区块,新节点也接受旧区块的软分叉,本质上是新、旧节点互相兼容,不分叉的。

 

                                

 

二、分叉的软分叉

如果系统软件升级后,和旧版本不兼容,那么升级后的新节点就无法接受未升级节点挖出来的全部或者部分区块,这种软分叉是真的分叉了。因为:旧节点接受新区块,而新节点不接受旧区块。

 

这种形式的软分叉又分为两种情况:

 

1、新节点算力大于50%

因为新节点算力大于50%,所以不论旧节点接不接受新区块,最长的链也一定会是全部由新区块组成的链。而且,这条最长链是双方都认为合法的一条。

未升级节点挖出来的区块得不到升级节点的认可,由此产生的区块最终会被认为是短链而被放弃。

 

2、新节点算力小于50%

新节点因为算力小于50%,又不接受旧区块,所以挖的区块链长最短,所以纵然旧节点同时承认两条链的合法性,最终也还是会选择自己所挖的最长链。而全部由新区块组成的链会被旧节点放弃掉。

 

软分叉的优势:

1)软分叉可以保证不想升级的节点不去升级,这种不想升级的需求在现实生活中其实是很常见的。

 

2)软分叉不要求所有节点在同一时间升级,允许逐步升级,不影响软分叉过程中系统的稳定性和有效性。

 

软分叉的局限性:

1)软分叉向前兼容的特性,意味着不能增加新字段,只能在已有交易数据结构下做修改,所以升级空间有限。

 

2)由于旧版本节点不会仔细验证改变的字段,实际上是察觉不出来不能识别新规则的真实意义,因此容易对旧版本节点造成欺骗。

 

想要了解更多的区块链知识,可以关注我们的公众号:王团长区块链日记,与最优秀的区块链人一起成长!

猜你喜欢

转载自blog.csdn.net/xinshengdaxue000/article/details/83894734