软分叉是一种区块链升级,它收紧规则,同时保持与旧节点的兼容性。本指南将解释软分叉如何工作、它与硬分叉的区别,以及为什么即使是向后兼容的升级也可能导致链分裂。

当比特币或其他区块链网络需要改变规则时,开发者有两个选择:完全与旧软件决裂,或以旧软件仍能遵循的方式收紧规则。软分叉走的是第二条路。
升级后的节点会拒绝一些旧节点本可接受的区块。但在更严格规则下产生的区块,对旧软件来说仍然看起来有效。网络不必一次性全部切换。
对大多数持有者而言,干净的软分叉不会创造新币,也不需要立即采取钱包行动。风险出现在协调上。矿工、验证者、节点运营者、钱包、交易所和用户都必须收敛到同一套更严格的规则上。当他们没有这样做时,网络就可能分裂,即使分叉在技术上是向后兼容的。
把比特币的规则想象成一个大圆。任何在这个圆内的区块都是有效的。
软分叉在大圆内部画出一个更小的圆。升级后的节点现在只接受小圆内的区块。但关键在于:小圆内的每个区块也都在大圆内。因此,仍使用原始规则的旧节点看到这些升级区块时,毫无问题地接受它们。
这就是向后兼容性。旧软件可以跟随新链,甚至不知道发生了规则变化。
因为升级区块仍然满足旧规则,网络不必一次性全部切换。矿工、验证者、交易所和钱包可以逐步升级,只要区块生产在过多不合规区块堆积之前遵循更严格的规则。
规则关系如下:
关键词是子集。软分叉将新规则保持在旧边界内。硬分叉则完全突破它们。当这种情况发生时,旧节点看到新链的区块后会直接拒绝,因为这些区块违反了它们仍在执行的规则。两组最终会落在不同的链上。
一句话版本:软分叉收紧规则;硬分叉重写规则。
在软分叉中,旧节点仍可验证新链上的区块。它们不完全理解新规则的一切,但也不会拒绝该链。在硬分叉中,旧节点将新区块视为无效,并留在后面的单独链上。
市场区别也很重要。比特币现金(Bitcoin Cash)是硬分叉坚持下来的最清晰例子:独立网络、独立资产、独立社区。以太坊此后将计划硬分叉作为标准升级路径。即便如此,2016年的以太坊经典分裂仍是其最可见的治理破裂。
这种技术区别也体现在交易所上。在干净的软分叉期间,加密交易所的主要任务是确认存款、提款和钱包格式仍然有效。在硬分叉期间,交易所面临更艰难的选择:上架新资产、忽略它,或给现有持有者同时记入两种币。

没有单一群体能控制软分叉是否成功。它需要所有人。
开发者编写并审查代码。全节点运营者决定其软件执行哪些规则。矿工生产符合新规则或失败的区块。钱包和交易所处理面向用户的一侧。而整个事情只有在网络中足够多的部分实际执行更严格规则时才能成立。
对于比特币而言,矿工信号一直是主要协调工具。BIP-9版本位使用区块头中的位,在大约两周的2016个区块周期内跟踪准备情况。一旦足够多的矿工在准备窗口期间发出支持信号,锁定周期就会开始,之后新规则生效。
以下是激活期间每个群体实际做什么:
全节点是实际执行发生的地方。矿工可以找到一个区块,但如果它违反了该节点执行的规则,节点就会拒绝它。当矿工信号与节点执行指向不同方向时,这种分离非常重要。
钱包扮演不同但同样实际的角色。它们不验证链上的每个区块,但它们构建依赖于当前规则集的地址、脚本和签名。对大多数用户而言,升级是不可见的,直到需要钱包更新。真正的陷阱是在高调激活期间出现的假升级提示,承诺从只会收紧现有规则的分叉中获得免费币。
比特币并非总是顺利更新。一些升级快速而安静地推进。另一些则拖延数年,几乎分裂社区。它们共享的是相同的兼容性结构:旧节点仍可遵循的新规则。
以下是每个主要升级实际做了什么:
SegWit是警示故事。它在协议层面是向后兼容的,但围绕区块大小、矿工费用和开发控制的斗争,使它成为比特币历史上最具争议的时刻之一。Taproot展示了光谱的另一端:广泛支持、顺利激活、逐步采用。软分叉的技术定义对政治有多混乱只字不提。
“向后兼容”是一个技术描述,而不是对社区行为的预测。
问题在于:旧节点接受满足旧规则的区块。但旧节点接受的每个区块并不都会满足新的更严格规则。当升级和非升级矿工同时生产冲突区块时,就会发生短期链分裂。这正是比特币2015年BIP-66激活期间发生的事情。无验证挖矿(矿工在不实际验证的情况下生产区块)导致了意外的链分裂,直到矿工纠正方向。
几乎每次有争议的激活都会出现相同的争议:
BIP-110是当前的活生生例子。其草案提议对某些数据字段进行临时共识级上限:新输出scriptPubKeys的34字节限制,除非第一个操作码是OP_RETURN(这将保持最多83字节有效)。支持者说这是保护全节点成本和比特币货币焦点的直接软分叉。批评者说有争议的激活可能搁浅少数链,或阻止尚未发明的合法用例。两种论点可以同时正确。一个提案可以勾选软分叉技术定义中的每个框,但如果经济参与者在激活开始前站在对立面,仍可能携带真实的分裂风险。
对大多数持有者而言,干净的软分叉不会改变谁拥有哪些币。升级链在旧规则下仍然有效,因此币余额不会移动,钱包不需要立即采取行动。在有争议的激活期间情况不同,关于哪条链将主导的不确定性可能影响交易是否按预期确认。
钱包支持比分叉标题更重要,因为不同钱包以不同速度响应升级:
对大多数用户而言,任何软分叉激活期间的检查清单都很短:
软分叉可以改变未来交易能做什么,而不改变谁拥有现有币。例外是依赖新规则限制的行为的边缘情况软件或高级脚本——这就是为什么钱包开发者和应用构建者需要比被动持有者更详细的审查。
目前推动比特币大多数活跃升级讨论的三个问题是:网络应在共识层限制什么、它应获得什么新能力,以及在更严格规则生效前实际需要多少共识。
草案BIP是提案。BIP编号不是规则。
在将这些视为有效规则之前,值得检查三件事。第一,提案仍是草案,还是已进入部署、锁定或活跃?第二,它影响普通钱包发送还是仅高级脚本?第三,激活路径是否在交易所、钱包和主要节点运营者中拥有真实经济支持,而不仅仅是开发者支持?
软分叉会创造新币吗? 不会。干净的软分叉不会创造新币,因为升级链在旧规则下仍然有效。只有当单独的链以足够用户、基础设施和市场支持存活下来时,才会出现新币。
软分叉仍可能导致链分裂吗? 是的。如果升级节点拒绝旧节点接受的区块,且网络没有快速收敛到一条链上,分裂就可能形成并持续。当激活有争议或大型矿工与经济参与者意见不合时,风险更高。
持有者在软分叉期间需要做什么吗? 大多数持有者在干净的软分叉期间不需要移动币。实际步骤是检查钱包和交易所通知、避免假升级提示,并在有争议的激活窗口期间等待明确后再发送异常或高价值交易。
软分叉后旧节点会怎样? 只要它们收到的区块满足旧规则,旧节点就可以继续跟随升级链。它们可能不理解新限制,因此依赖网络其余部分继续生产合规区块。如果网络分歧,旧节点可能在不知情的情况下跟随少数链。
Taproot是软分叉吗? 是的。Taproot作为比特币软分叉激活,通过BIP-341添加了新的花费能力,通过BIP-342添加了Tapscript。它改变了升级钱包和脚本可以做什么,而没有迫使旧节点离开链。
谁决定比特币软分叉是否激活? 没有单一方决定。开发者编写代码,矿工发出准备信号或生产合规区块,全节点运营者执行规则,交易所、钱包、企业和用户决定哪条链拥有实际经济支持。所有这些群体都必须收敛,激活才能干净成功。