协议演进 / BIP/比特币改进提案 / BIP-95
BIP-95
再启一条 Testnet 5 取代 Testnet 4:彻底取消 20 分钟难度例外,提高最低难度,并从创世块起执行 BIP-54 共识清理规则。本 BIP 目前处于草案状态。
一、档案卡
| 编号 | BIP-95 |
|---|---|
| 标题 | Testnet 5 |
| 作者 | Pol Espinasa <[email protected]>, Fabian Jahr <[email protected]> |
| 指定日期 | 2026-06-22 |
| 层级 | Applications(应用) |
| 类型 | Specification(规范类) |
| 状态 | Draft(草案) |
| 前置依赖 | BIP-54 |
| 取代 | BIP-94 |
| 阅读版 | https://bips.dev/95 |
| 官方原文 | https://github.com/bitcoin/bips/blob/master/bip-0095.md |
二、放在哪一族
测试网络族,是 BIP-94(Testnet 4)的直接后继:档案字段中明确 Replaces: 94、Requires: 54。Testnet 4 为治区块风暴保留了改造过的难度例外,BIP-95 的判断是:例外本身就是病根,只要例外还在,就会被持续利用,因此干脆另起 Testnet 5,把例外彻底取消,并顺带成为 BIP-54(Consensus Cleanup,共识清理)的实测场——BIP-54 已在 signet 上经 Bitcoin Inquisition 启用,但 signet 的出块方式无法让矿工软件实测其是否正确执行 BIP-54 规则,Testnet 5 补上这一环。
三、它要解决什么
3.1 难度例外被持续利用
Testnet 4 的 20 分钟例外本想给 CPU 用户留一条拿测试币、挖非标准交易、以及在大算力离场时推动链前进的通道。但原文指出,该例外上线后不久即被系统性、持续地利用:区块风暴虽被防住,链尖却因多个例外块互相竞争而频繁发生小规模重组(re-org),例外想达成的目标反而实现不了。
3.2 结论:任何例外都可被利用
原文的推理是:只要工作量证明规则存在例外,有动机的攻击者就能找到利用方式。取消例外,才能让测试网行为尽可能贴近主网。同时,与其给 Testnet 4 打补丁——改规则需漫长部署、且攻击者可能阻挠、实质修复又等同于在测试网上做一次硬分叉——不如直接新开一条网络。
四、规则本身
Testnet 5 与主网共识规则相同,仅有两处改动。
4.1 从第 1 块起执行 BIP-54
BIP-54(版本 1.0.0)所定的规则在 Testnet 5 从 block 1 起生效。按原文转述,BIP-54 旨在修复数个潜在攻击面:防止时间扭曲(timewarp)攻击、降低最坏情形下的区块验证时间、缓解默克尔树弱点、并在无需 BIP-30 式校验的情况下避免重复交易。具体规则以 BIP-54 原文为准。
4.2 提高最低难度
工作量证明上限(最大目标值)为紧凑编码 0x1a0fffff,对应最低难度约 1,000,000。其取舍是:在链启动初期、难度尚未随算力上调时抑制快速刷出大量区块,同时门槛仍低到少数家用矿工或一台 ASIC 即可维持网络可用。
4.3 其余参数
- 截至 2026 年 5 月主网已激活的共识规则从第 1 块起执行,最新为 Taproot 软分叉;另加上述 BIP-54 规则;
- 报文起始字节(magic):
0x46495645,按 ASCII 读作 “FIVE”; - 默认 P2P 端口:18335;
- 创世块在原文中标注为 TODO:尚未挖出,所列数值是沿用 Testnet 4 的占位值(其 coinbase 的 Pubkey 拟改放一个近期主网区块哈希,既使创世输出可证明不可花费,又充当防预挖承诺;Message 留空;nBits 用新的
0x1a0fffff)。
五、谁必须动
普通持币人:主网不受影响;Testnet 5 的币同样按设计无价值。
钱包与应用开发者:如需在新测试网工作,要接入 Testnet 5 的新参数;各测试网创世块不同、UTXO 集互不相交,交易不可能跨网重放,但地址格式共用,同一地址可在不同网络上复用,测试时须分清网络。
全节点实现者:跟随 Testnet 5 必须新增网络参数、从第 1 块起强制 BIP-54 规则、并且不允许任何难度例外规则。
矿工(测试网):再无 CPU 借例外出块的通道,出块一律按实际难度与约 1,000,000 的最低难度执行;同时可在真实挖矿流程中检验自家软件是否正确执行 BIP-54。
六、现在算不算数,以及一个常见误读
状态为 Draft(草案):提案尚在草案阶段,创世块在原文中仍为待挖的 TODO,参考实现一栏原文写作 “Pull request at ?”。它还不是已启用的网络,对 Testnet 4 的“取代”目前只是提案意图,未成事实。
常见误读:“BIP-95 一出,Testnet 4 就作废了。”不对。草案不产生任何网络效力;Testnet 4 仍在运行,Testnet 5 是否以及何时启动,要看后续定稿与实现。把草案当成已部署,正是读 BIP 时最常见的状态误读。
七、延伸
- 阅读版:https://bips.dev/95
- 官方原文:https://github.com/bitcoin/bips/blob/master/bip-0095.md
- 相关:BIP-94 Testnet 4、BIP-54 Consensus Cleanup、BIP-30 重复交易
- 仓库总目录:https://github.com/bitcoin/bips
