什么是软分叉

乐多 问答 2022-05-18 07:02:45 阅读(...)

软分叉是指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。

区块链上节点众多,当出现新版软件后,不一定所有的节点都愿意升级,也不一定所有的节点都能马上反应过来。节点面对新版软件反应的不同造成的分叉结果也不同。根据升级后的区快链是否能兼容旧区块链,分叉又分为“硬分叉”和“软分叉”。今天先重点介绍软分叉。

Blockchain 区块链

什么是软分叉

软分叉是指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。有人说硬分叉就是分叉,而软分叉就是不分叉,其实这话并不完全对,硬分叉就是分叉是对的,但软分叉其实也可能会出现分又的情况。

不分叉的软分叉

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

分叉的软分叉

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

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

1.新节点算力大于 50%

因为新节点算力大于 50%,所以不论旧节点接不接受新区块,最长的链也一定会是全部由新区块组成的链。而且,这条最长链是双方都认为合法的一条。未升级节点挖出来的区块得不到升级节点的以可,由此产生的区块最终会被认为是短链而被放弃

2.新节点算力小于 50%

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

软分叉的优势

  1. 软分叉可以保证不想升级的节点不去升级,这种不想升级的需求在现实生活中其实是很常见的。
  2. 软分叉不要求所有节点在同一时间升级,允许逐步升级,不影响软分又过程中系统的稳定性和有效性。

软分叉的局限性

  1. 软分叉向前兼容的特性,意味着不能增加新字段,只能在已有交易数据结构下做修改,所以升级空间有限。
  2. 由于日版本节点不会仔细验证改变的字段,实标际上是察觉不出来不能识别新规则的真实意义,因此容易对旧版本节点造成欺骗。
0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐