🤖 新推出:《Quicknode 》AI 烹饪指南 10个经过验证的AI编程教程agents 。
查看食谱 区块链分叉详解:软分叉、硬分叉和争议性分叉 |Quicknode
我们的通讯中包含丰富的免费资源、Quicknode 动态、Web3行业洞察等内容。
CLI、Admin API 、MCP、SDK ,以及支持 75 多个区块链的原生 AI 工具。由开发者打造,专为开发者服务。
涵盖 Python、Ruby 和 JavaScript 的最新代码示例。关于智能合约、NFT 和去中心化应用(dApp)的深入指南。
通过 SOC 2 II 类认证 · ISO 27001
简而言之: 当区块链的协议规则出现分歧时,就会发生链分叉, 从而为区块链开辟出两条或更多条潜在的发展路径。 软分叉引入的是向后兼容的规则变更,旨在收紧现有规则,因此未升级的节点仍会接受新区块,网络也能保持统一。 硬分叉则引入了不向后兼容的变更,这意味着已升级和未升级的节点将遵循不同的规则;如果并非所有节点都进行升级,链将永久分裂为两个独立的网络。分叉是区块链演进、升级以及解决社区分歧的主要机制,但同时也带来了资产复制、重放攻击和生态系统碎片化等风险。
简明解释 不妨将区块链分叉比作道路的分岔口。此前,所有人都沿着同一条路前行,遵循着相同的规则。在分岔口处,提出了一套新的规则。如果该变更向后兼容(软分叉),那么无论是否采用新规则,所有人都可以继续沿着同一条路前行。 道路会稍微变窄(规则更严格),但所有行人都仍可通行。如果变更不向后兼容(即硬分叉),道路就会分叉成两条独立的道路。行人必须选择走哪条路,而走不同道路的人将无法再相互交互。
在区块链领域,“规则”指的是共识协议:哪些交易是有效的、区块如何构成、区块最大大小是多少、gas如何计算、奖励如何分配。 网络中的每个节点在验证区块时都会执行这些规则。当规则发生变化时,已采用新规则的节点与仍运行旧规则的节点可能会对哪些区块有效产生分歧。这种分歧的解决方式决定了分叉是软分叉(网络保持统一)还是硬分叉(网络分裂)。
软分叉 软分叉会收紧现有的规则。符合新规则的区块在旧规则下同样有效,但有些在旧规则下有效的区块在新规则下不再有效。这意味着已升级的节点会执行更严格的验证,而未升级的节点仍会接受这些新区块,因为它们并未违反旧规则。
Bitcoin2017年的隔离见证(SegWit)升级是软分叉的经典案例。SegWit改变了交易签名的存储方式,缩小了交易的实际大小,并为闪电网络的运行铺平了道路。未升级的节点仍然接受SegWit区块,因为这些区块在旧的大小限制规则下仍然有效。已升级的节点对签名数据的组织方式实施了额外规则,但这些规则对旧节点而言是不可见的。
软分叉通常被认为比硬分叉更安全,因为它不会导致区块链分裂。只要大多数矿工或验证者采用新规则,区块链就能保持统一。 未升级的节点可能无法理解或验证新功能,但它们不会拒绝这些区块,因此网络仍保持为单一链。 软分叉的缺点在于其实现能力有限。由于新规则必须向后兼容,因此根本性的协议变更(如更改区块结构、修改账户模型或改变共识机制)通常无法通过软分叉来实现。
硬分叉 硬分叉会放宽或从根本上改变规则,导致根据旧规则生成的新区块失效。未升级的节点会拒绝这些新区块,网络由此分裂为两条链:一条遵循新规则,另一条遵循旧规则。两条链在分叉点之前拥有相同的历史,从该点开始则分道扬镳。
大多数硬分叉都是经过规划和协调的升级,整个社区一致同意采用新规则。Ethereum 从工作量证明(Proof of Work)向权益证明(Proof of Stake)的过渡(即“合并”,2022年9月)就是一次硬分叉。 每一位节点运营商、质押服务提供商、交易所和应用开发者都协调一致,在指定区块之前完成了软件升级。由于社区立场统一,旧的工作量证明链(曾短暂被称为“EthereumPoW”)几乎未获得任何支持,很快便失去了存在意义。
Ethereum的常规网络升级(上海、丹村等)也是硬分叉,会在预先设定的区块号或时间戳时触发。整个生态系统会提前完成升级,旧规则将被废弃。这些协调一致的硬分叉属于例行维护,而非引发争议的事件。
有争议的硬分叉 最剧烈的分叉通常发生在社区无法就协议的发展方向达成一致,且双方都拥有足够的支持来维持一条独立的区块链时。这些存在争议的硬分叉会导致两条活跃的区块链并存,每条都有各自的社区、矿工/验证者、代币价值以及发展方向equipe 。
最著名的争议性分叉是Ethereum Classic。2016年,有人利用The DAO智能合约中的一个漏洞,盗走了价值数百万美元的ETH。Ethereum 社区就是否应通过硬分叉来挽回被盗资金展开了辩论。大多数人支持分叉,从而创建了一条新链(即如今的Ethereum ),被盗资金被返还至该链上。 少数人出于理念上的原因反对此次分叉(主张“代码即法律”,区块链绝不应被追溯性修改),他们继续运行原始链,该链由此成为Ethereum Classic(ETC)。两条链至今仍并存,其中Ethereum 的规模和价值都远超ETC。
Bitcoin Cash 是另一个备受争议的分叉。2017 年,Bitcoin 社区就如何提高交易吞吐量展开了讨论。一方主张将区块大小从 1MB 增加到 8MB,另一方则反对扩大区块大小,更倾向于采用 SegWit 软分叉以及闪电网络(Lightning Network)等链下扩展方案。 双方分歧无法调和,2017年8月,大区块派从Bitcoin 分叉,创建了Bitcoin Cash(BCH)。随后,BCH在2018年再次分叉,分裂为Bitcoin Cash和Bitcoin (SV)。
分叉期间会发生什么 当发生硬分叉时,原始加密货币的每位持有者会突然在两条链上各持有相同数量的代币。例如,如果在Ethereum/Ethereum Classic分叉之前你持有10 ETH,那么在新链上你会拥有10 ETH,在旧链上则会有10 ETC。这种资产重复可能导致经济上的复杂性,包括重放攻击——即一条链上有效的交易被重新广播到另一条链上。
对于开发者而言,分叉意味着需要决定支持哪条链(或是否同时支持两条链),更新节点软件,验证智能合约在新规则下能否正常运行,并向用户通报相关变更。对于节点运营商而言,分叉要求在分叉区块出现之前升级客户端软件,以便跟随预期的链。未能升级的节点将留在旧链上,提供过时的数据,并可能导致应用程序无法正常运行。
软分叉和硬分叉有什么区别? 两者的核心区别在于向后兼容性。软分叉以旧版软件仍能接受的方式收紧规则,因此网络仍保持为一条链。硬分叉则以旧版软件无法接受的方式更改规则,这可能会导致网络分裂为两条链。下表对两者进行了并列比较。
属性
软分叉
硬分叉
规则变更
收紧现有规定
放宽或重新定义规则
向后兼容
是的
不
未升级的节点
仍接受新区块
拒绝新区块
连锁结果
网络保持统一
网络可能会分裂成两条链
已创建新资产
不
是的,持币者可以在两条链上都获得代币
示例
Bitcoin SegWit(2017年)
The Merge、Ethereum 经典合辑
这两种分叉都是区块链 随时间推移进行升级的方式。软分叉风险较低,但范围有限;而硬分叉则能实现更深层次的协议变更,但代价是要求所有参与者必须同步升级。
什么是意外分叉或临时分叉? 并非每次分叉都是有意为之的协议变更。当两个验证者几乎在同一时间生成相互竞争的区块时,就会发生意外分叉,导致网络在哪个区块应延续区块链这一问题上短暂分裂。网络通常会在一个或两个区块内通过收敛到最重的有效链来解决这一问题,而被遗弃的区块则会被丢弃。这种短暂的分裂与区块链重组 密切相关。
这些临时分支是正常的,通常对用户不可见,但那些将未确认区块视为已结算的应用程序可能会显示出后来消失的交易。在将资金视为最终结算之前等待最终性, 是防止因基于被重组出链的区块而采取行动的标准防范措施。
分叉期间的回放攻击是什么? 当硬分叉产生两条共享交易历史的链时,针对其中一条链签署的交易在另一条链上也可能有效,因为在分叉点处,账户、余额和签名方案是完全相同的。 攻击者可以在第二条链上重播(重放)您的交易,从而转移您本无意转移的资金。管理良好的分叉会添加重放保护机制(例如唯一的链 ID),以确保交易仅在目标网络上有效。在发生有争议的分叉后,钱包和节点 运营商应在进行交易前确认重放保护机制是否已到位。
开发人员应如何为区块链分叉做好准备? 准备一次计划中的分叉,主要涉及时机把握和测试。下面的检查清单涵盖了大多数团队在计划中的硬分叉之前会遵循的步骤。
步骤
该怎么做
为何这很重要
查看日程安排
请注意分叉区块或时间戳
如果错过了,你就只能继续用那条旧链子了
升级客户端
请提前更新节点软件
旧客户端拒绝新区块
测试testnet
根据新规定对合同进行核验
尽早发现破坏性变更
确认回放保护
检查链 ID 是否唯一
防止跨链重放
使用托管型基础设施
将升级任务交由服务提供商处理
消除单点故障
依赖托管 RPC 的团队可以避免大部分此类工作,因为提供商会在节点激活前对其进行升级。对于事件驱动型应用程序, Webhooks 以及 Streams 在无需手动管理客户端的情况下传递分叉后数据。
常见问题解答
硬分叉会获得免费代币吗? 如果硬分叉产生了一条新的持久链,原始资产的持有者将在分叉点上在新链上持有等值的余额。这就是Ethereum Classic和Bitcoin Cash的持有者获得代币的方式。新资产只有在分叉出的链能获得真正的社区和市场支持时才具有价值,而大多数分叉都无法做到这一点。
软分叉和硬分叉哪个更安全? 软分叉通常风险较低,因为它能保持网络的统一性,且不需要所有参与者同时升级。硬分叉虽然功能更强大,但风险也更高,因为未能升级的节点将被困在旧链上,而存在争议的分叉可能会导致社区分裂。
分叉(fork)和重组(reorg)有什么区别? 分叉是指协议规则或区块链历史出现的分歧,而重组是指网络将最近添加的区块替换为竞争分支。短暂的意外分叉可通过重组解决,而硬分叉则是永久性的规则变更,可能会产生两条长期并存的区块链。
区块链分叉可以逆转吗? 一旦两条链都获得了独立的支持,计划中的或存在争议的硬分叉便会成为永久性分叉,因为每个网络都会按照自己的规则继续生成区块。相比之下,意外分叉会在一个或两个区块内自动解决,因为网络会逐渐收敛到一条标准链上。
分支会对我的应用程序产生什么影响? 在计划中的分叉期间,您的节点必须运行已升级的软件才能继续跟随规范链,否则将提供过时数据。使用能够处理分叉过渡的托管 RPC 提供商,意味着在升级过程中,您的端点会持续返回规范数据,而您无需采取任何操作。
Quicknode 如何处理分叉 Quicknode equipe 基础设施会监控 80 多个受支持网络中所有计划中的硬分叉,并确保节点在分叉激活前完成升级。这意味着使用 的开发者无需自行管理客户端升级,也不必担心应用程序最终处于分叉的错误一侧。当一条链经历计划中的硬分叉时, 会无缝处理过渡,您的 RPC 端点将继续从规范的、已升级的链中提供数据。Quicknode Quicknode
对于双方链条均继续运行的争议性分叉,Quicknode 会评估社区支持度、安全性及开发者需求,然后决定是否将新链添加为受支持的网络。Quicknode 的多链基础设施意味着,对新分叉链的支持属于基础设施层面的决策,而非客户的开发负担。
Quicknode Streams 通过按最终性顺序传递数据,可平滑处理分叉过渡,确保在分叉激活期间出现的任何临时链状态不确定性,都不会导致错误数据被传递到您的管道中。内置的重组处理机制可应对分叉激活阻塞期间可能出现的边界情况。
延伸阅读 // Publisher
Quicknode
更新于2026年9月16日
2026年3月20日 — 阅读时间11分钟