协议演进 / BIP/比特币改进提案 / BIP-95

BIP-95 Testnet 5(测试网 5)

再启一条 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 其余参数

五、谁必须动

普通持币人:主网不受影响;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 时最常见的状态误读。

七、延伸

本页内容整理自 bitcoin/bips 仓库与 bips.dev,事实已与仓库核对;解读仅供学习参考。