比特币的软分叉长期默认由矿工决定什么时候算数:新版本在 BIP9 框架里靠区块版本位信号,达到主网九成五(测试网络为七成五)门槛后锁定、再过一段延滞期激活。矿工的算盘和用户的算盘不总是一致——2017 年上半年,隔离见证的支持信号已越过七成,部分大矿池却另有所图,支持率卡在门槛下方纹丝不动。BIP-149 是社区为此写的应急剧本:2017 年 4 月 14 日由开发者 Shaolin Fry 立项,核心主张一句话——用户不再等矿工,到点自己激活。它的状态最终是 Closed,因为隔离见证在当年 8 月提前部署、剧本没有上演,但它把「用户激活软分叉」从口号变成了一份可执行规格。
机制:超时不再作废,而是锁定
BIP9 的默认语义里,信号窗口到期仍未达门槛,部署直接作废(timeout 表示失败)。BIP-149 改用 BIP8 的第二种语义:窗口到期没达标,规则照样锁定(timeout-locked-in)——前提是节点运营商按名单升级到愿意执行新规则的版本。换句话说,部署的决定权从「矿工在窗口内凑数」换成「用户在窗口结束时执行软件」。提案文本规定这次部署继续使用 bit 1(与 BIP9 那次同名同号的部署互斥),复用矿机软件熟悉的 segwit 信号名以兼容既有挖矿软件,并为配合执行的用户节点新起了一个服务位 NODE_UAWITNESS。

剧本的时间线
部署条件写得像闹钟说明书:只有当 BIP9 版隔离见证在 2017 年 11 月 15 日超时前没能锁定或激活,BIP-149 才上场;在此之前不允许部署,主网的起始时间就钉在超时次日的 2017 年 11 月 16 日 00:00 UTC(提案直接给出纪元时间戳 1510790400),超时时间 2018 年 7 月 4 日(1530662400)——窗口约七个半月,给交易所、钱包、服务商留足升级期,到期未达标即锁定。测试网当时已激活过隔离见证,所以提案没有为它安排部署。参考实现更直白:代码仓库里的分支在 2017 年 11 月 7 日之前拒绝在主网运行,之前只允许测试网和回归测试——先把「剧本什么时候开演」硬编码进软件,再谈社会协调。
为什么它最终没用上
2017 年 6 月,一套人为加高的信号门槛(矿工阵营自设的 segsignal 方案)先行给隔离见证铺了路,8 月主网按 BIP9 路径完成部署,BIP-149 的触发条件「BIP9 在 11 月 15 日前未锁定」没有成立,UASF 预案原地封存。但这段历史留下三层遗产:其一,它证明了用户侧协调可以改写矿工的博弈——多数矿池后来选择跟进,很大程度上是因为忌惮到点锁定的可信威胁;其二,BIP8 与 BIP9 这对「超时锁定/超时作废」语义自此成为比特币部署的标准选项菜单;其三,「用户激活」这个词在此后历次比特币治理争论里反复被引用,模板就是这份 Closed 状态的提案。
快速问答
问:用户激活软分叉里,用户指谁? 答:指运行节点的运营商——钱包、交易所、服务商、个人全节点,升级即表态,没有链上签名。
问:BIP-149 和 BIP-91 是什么关系? 答:同一场僵局的两套机制:BIP-91 是矿工侧临时降门槛的过渡部署,BIP-149 是用户侧的到点强制预案,后者以前者(及最终部署)失败为前提。
问:现在还有部署在用这套超时锁定语义吗? 答:BIP8 至今没有被主网大规模采用过,更多作为应急选项存在。
常见误区
一是把 UASF 说成「对抗矿工的硬分叉」,它全程仍是软分叉:没升级的旧节点依然把新区块当合法块看,只是无法执行新规则带来的安全收益;二是把「超时锁定」理解成链上自动翻转,语义生效以节点升级执行为前提,软件不装、锁定了也没人执行;三是忽略它与 BIP9 部署的互斥纪律——同一版本位同时跑两套部署会制造验证分歧,提案对窗口衔接的计算正是为此。
风险提示:本文为升级机制与治理历史科普,不构成投资建议;升级窗口内的资产收发请以你使用的钱包与交易所公告为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。