软分叉历史与激活机制
比特币的共识规则变更几乎全部以"软分叉"形式进行:新规则是旧规则的子集,未升级的节点仍然跟随最长链。本页只记录事实脉络——提案、激活方式、生效时间。
什么是软分叉
软分叉收紧规则:原本有效的某些区块或交易在新规则下变为无效,但新规则下有效的东西在旧规则下依然有效。因此只要多数算力执行新规则,未升级节点会自动跟随,不会分裂出持久分叉链。这是比特币得以在无中央协调下升级的核心机制。
与之相对的"硬分叉"放宽规则,需要所有节点同步升级,否则必然分裂。比特币历史上从未执行过有争议的硬分叉。
历次软分叉
-
BIP-16:P2SH(Pay to Script Hash)提案 2012-01 · 激活 2012-04-01将赎回脚本的哈希写入输出脚本,使多签等复杂脚本的使用方式大幅简化。激活采用算力投票阈值方式,是比特币第一次有组织的软分叉。
-
BIP-30 / BIP-34:交易唯一性与区块版本激活 2012–2013BIP-30 禁止重复的交易 ID(曾导致重复 coinbase 的异常);BIP-34 要求 coinbase 中写入区块高度,并引入区块版本号升级机制,为后续软分叉的版本位信号铺路。
-
BIP-66:严格 DER 签名提案 2015-01 · 激活 2015-07要求 ECDSA 签名使用严格 DER 编码,消除签名的可锻变体之一。激活采用版本位(BIP-9 雏形)算力信号统计。
-
BIP-65:OP_CHECKLOCKTIMEVERIFY提案 2014-10 · 激活 2015-12引入绝对时间锁操作码,资金可被锁定至指定区块高度或时间之后才能花费,为闪电网络等二层协议提供基础构件。
-
CSV 软分叉包:BIP-68 / 112 / 113激活 2016-07-04相对时间锁三件套:BIP-68(基于序列号的相对锁定)、BIP-112(CHECKSEQUENCEVERIFY)、BIP-113(以中位时间作为锁定期终点)。打包一次激活,补全了时间锁语义。
-
SegWit:BIP-141 / 143 / 144(及 BIP-148)激活 2017-08-24(区块 481824)隔离见证:将签名数据(witness)移出交易主体结构,修复交易可锻性,并以"权重"替代"大小"实现等效扩容。激活过程历经 BIP-9 算力信号、用户激活软分叉(BIP-148,UASF)讨论与 SegWit2x 争议,是比特币治理史上最复杂的一次升级。
-
Taproot:BIP-340 / 341 / 342激活 2021-11-14(区块 709632)Schnorr 签名(BIP-340)、Taproot(BIP-341)、Tapscript(BIP-342):提升隐私性(复杂花费与单签外观一致)与脚本灵活性。采用"快速试用"(Speedy Trial)激活机制:算力在三个月窗口内达到 90% 阈值即锁定。
激活机制的演变
- 算力阈值投票(BIP-16、34 时代):统计最近 N 个区块中发出支持信号的比例,达阈值即锁定。
- BIP-9 版本位(BIP-9,2015):将版本号的特定位分配给各提案,带超时与延迟期,成为标准流程。
- 用户激活(UASF)(BIP-148,2017):由经济节点在旗标日后强制执行新规则,将激活权从算力部分转移到用户侧;SegWit 争议中作为施压手段出现。
- 快速试用(Speedy Trial)(Taproot,2021):缩短信号窗口、提高阈值(90%),避免长期僵持;若失败则转入更长的 BIP-8 式流程。
