协议演进 / BIP/比特币改进提案 / BIP-343
BIP-343
用 BIP8(LOT=true)在信号期尾声强制矿工信号,试图确保已获压倒性社区共识的 Taproot 不被矿工无限期挡下;最终未被采用。本 BIP 目前处于已关闭状态。
一、档案卡
| 编号 | BIP-343 |
|---|---|
| 标题 | Mandatory activation of taproot deployment |
| 作者 | Shinobius <[email protected]>; Michael Folkson <[email protected]> |
| 指定日期 | 2021-04-25 |
| 层级 | Consensus (soft fork)(共识(软分叉)) |
| 类型 | Specification(规范类) |
| 状态 | Closed(已关闭) |
| 阅读版 | https://bips.dev/343 |
| 官方原文 | https://github.com/bitcoin/bips/blob/master/bip-0343.mediawiki |
二、放在哪一族
它不属于 Taproot 的技术内容,而属于“软分叉怎么激活”的部署机制族。BIP-340、BIP-341、BIP-342 回答 Taproot 是什么;BIP-343 回答的是:万一矿工迟迟不发信号,靠什么保证它最终上线。
机制谱系:BIP-8(按高度锁定的版本位,含 LOT 参数)、BIP-9(版本位投票,BIP-341 实际部署用的是其修改版)、BIP-148(2017 年 SegWit 的强制激活,用户激活软分叉 UASF 的先例)、BIP-91(同年降低阈值的矿工侧协调)。原文致谢也点明:Shaolin Fry 与 Luke Dashjr 在 BIP-148 与 BIP-8 上的工作是本提案的前提。
三、它要解决什么
原文 Motivation 的前提判断是:Taproot 软分叉已被评估为拥有压倒性的社区共识,因此应当尝试激活。真正的风险不在技术,而在一个治理问题:
软分叉的常态部署要靠矿工在信号期发出支持信号、达到阈值才锁定。若矿工始终凑不齐阈值,一项已有压倒性共识的升级就会被无限期挂起——等于矿工对软分叉握有永久否决权。原文认为这不可接受:强制信号条款必须预先写进部署方案,只在矿工未能在常规信号期内达标时才派上用场。
2017 年的教训被明确引用:BIP-148 与 BIP-91 的部署表明,强制信号机制要提前许多个月预警;且 BIP-148 还证明,不同实现采用不同激活机制并行运行,可以互相激励、让各部署最终同步激活。本提案就是按这个剧本,为 Taproot 写的一份“保险丝”部署。
四、规则本身
4.1 部署参数(BIP8,LOT=true)
- 信号位:区块版本中的比特位 2(与 Taproot 的其他部署方案相同);
- 信号开始高度:681408;
- 最小激活高度:709632;
- 激活阈值:90%;
- 信号超时高度:760032,最后激活高度 762048;
- Lockinontimeout(LOT)设为 true:一旦 Taproot 在超时前仍未锁定,超时前最后一个信号期将强制执行矿工信号;
- 在这段强制期里,若 Taproot 此前尚未锁定,不带比特位 2 的区块有被拒绝的风险;
- Taproot 一旦锁定,本 BIP 即停止生效——它的全部作用就是把部署推过锁定这道门。
4.2 与实际部署的兼容性(原文专节)
Bitcoin Core 实际发布的激活机制是 Russell O’Connor 提出、由 David Harding 在 bitcoin-dev 邮件列表中概述的“Speedy Trial”:实质上是 BIP8 的一个变体,唯一差别是开始与超时用中位过去时间(MTP)而非区块高度定义;同样使用比特位 2,部署期为 2021 年 4 月 24 日零点至 8 月 11 日零点,最小激活高度同为 709632,目标是激活 BIP-340、BIP-341、BIP-342。原文论证:由于既定开始时点上 MTP 与区块高度没有出现偏差,本 BIP 的 BIP8(LOT=true)部署与 Speedy Trial 相互兼容,可以并行运行而不冲突。
此外,本部署也被刻意设计成与“万一 Speedy Trial 激活失败、Bitcoin Core 再发布 BIP8(LOT=false)或 BIP8(LOT=true)方案”的情形兼容。
4.3 参考实现与向后兼容
原文给出的参考实现是一个独立仓库(BitcoinActivation/bitcoin)。作为软分叉,旧软件无需修改即可继续运行;但原文沿用 Taproot 部署的一贯警告:未升级节点会把 SegWit 版本 1 见证程序视为任何人可花费,强烈建议升级以完整验证新程序。
五、谁必须动
普通持币人:无直接动作。本 BIP 不改变交易、地址或钱包行为,它改变的只是“节点在信号期如何对待不发信号的区块”。
矿工:直接利害方。常规信号期内矿工自愿信号;若迟迟达不到 90% 阈值,进入最后一个信号期后,运行本部署的节点将强制信号,不跟进的区块面临被拒绝风险。
全节点运营者:决定是否运行带本部署的实现。这正是 UASF 式机制的本质——强制力来自经济节点自愿选择执行规则,而不是来自提案作者的命令。
开发者与实现维护者:若发布兼容的替代激活方案,须保持比特位、最小激活高度等参数对齐,避免各部署互相错位(见 4.2)。
六、现在算不算数,以及一个常见误读
状态为 Closed(已关闭)。原文变更日志写明:2026-06-01,因“不再相关且不存在已知部署”,本 BIP 被移至 Closed。实际历史路径是:Taproot 经 Bitcoin Core 的 Speedy Trial 部署、靠矿工信号达标而锁定,并按 BIP-341 记载在主网高度 709632 激活——强制信号条款从未需要触发,本 BIP 也从未成为实际运行的部署。读它,是为了理解 2021 年激活之争里“用户强制”这一手后备牌长什么样。
常见误读:
“Taproot 最后是靠 BIP-343 的 LOT=true 强制激活的。”
不对。LOT=true 只是与实际部署并行设计、始终躺在备用位置的一套方案;原文 Compatibility 一节说得很清楚,它的设计目标是“与 Speedy Trial 兼容”。Taproot 真正走的是 Speedy Trial + 矿工信号达标这条路,在强制期到来之前就已锁定。把“准备好强制手段”说成“实施了强制”,是把威慑与执行混为一谈。
七、延伸
- 阅读版:https://bips.dev/343
- 官方原文:https://github.com/bitcoin/bips/blob/master/bip-0343.mediawiki
- 相关:BIP-8 按高度锁定的版本位、BIP-148 SegWit 强制激活、BIP-341 Taproot 花费规则(实际部署记载)
- 仓库总目录:https://github.com/bitcoin/bips
