区块链 · 数字资产知识 · 行业资讯
文章库关于本站

区块链基础

区块链软硬分叉怎么区分|规则兼容性比有没有新币更重要

摘要

软硬分叉首先描述新旧验证规则如何相容,不是给新资产起名的方法。把规则变化、实际链分歧和代码仓库分支分开,才不会看到“分叉”二字就误以为一定出现两条长期运行的链。

区块链 硬分叉的科技主题配图

先看一个区块会被谁接受

区块链软硬分叉的关键问题是:同一份区块交给升级节点和未升级节点,双方会不会给出不同的有效性结论?这里的升级,是改变了适用的共识验证规则;换个界面颜色、调整日志格式,并不当然属于这种变化。

Bitcoin开发文档把两种不一致分开:一种是新节点接受而旧节点拒绝;另一种是旧节点接受而新节点拒绝。先明确接受与拒绝的方向,再讨论网络如何采用变化,比只背“软兼容、硬不兼容”更容易理解。

软分叉收紧的是有效范围

可以用一个纯示意的检查清单来理解软分叉:旧清单允许甲、乙两类记录,新清单只允许甲。甲仍能通过旧检查,但乙已经不能通过新检查。示意中的甲乙不是某条链的真实交易类型,只用来说明限制变严格时的兼容方向。

以太坊术语表也把软分叉说明为向后兼容,并限定升级节点接受的区块仍须满足新规则。因此,向后兼容不等于旧节点已经具备新增规则的检查能力,更不等于所有由旧软件产生的区块都能继续通过。是否维持共同链,还与实际采用和区块生产情况有关。

区块链软分叉原理的科技主题配图

硬分叉变化可能越出旧规则

如果新规则允许一种旧规则明确拒绝的数据,那么使用该变化的区块就可能被升级节点接受,却被旧节点判无效。以太坊Hard fork条目将未升级节点无法验证新规则区块列为典型情况,并提醒它与软件仓库的fork不是同一概念。

这并不意味着每次硬分叉升级都必然留下两个持续发展的网络。Bitcoin文档特别区分规则变更的分叉潜力与实际发生的链分歧。大家协调采用新规则,和一部分参与者坚持维护旧规则,后续局面可能不同;不能仅凭升级名称宣布已经形成新资产。

临时出现两个链头也要单独判断

在工作量证明网络里,两个有效区块可能在接近的时间产生,形成暂时的竞争链头。Bitcoin文档讨论了这种情况。它可以发生在规则没有变化的时候,因此看到同一高度有不同区块,不足以判定一次软分叉或硬分叉升级已经发生。

阅读一则分叉公告时,可以分别核对改变了什么验证条件、哪些实现支持、何时适用,以及是否观察到实际长期分歧。代码被复制到另一仓库,只能先说明软件开发关系;代币名称与交易价格也不能替代规则证据。本文讨论兼容性,不判断任何分叉资产的价值,也不提供资产领取操作。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验