通胀漏洞(Inflation Bug)
一句话定义: 最严重的一类比特币软件漏洞——能让攻击者铸出超过 2100 万上限的 BTC。代表案例:CVE-2018-17144。
通胀漏洞是比特币软件漏洞中最严重的类别:攻击者能借此凭空造出超过协议 2100 万枚上限的 BTC——途径是骗过验证者,让他们接受无效交易或无效的 coinbase 输出。
教科书案例是 CVE-2018-17144,2018 年 9 月 18 日披露。
漏洞是什么:
- 同一区块里两笔交易花费同一个 UTXO——这种特定形式的双花,历来被认为不可能发生。Bitcoin Core 在区块验证路径里专门检查这一点。
- Bitcoin Core 0.14.0(2017 年)里的一处优化,意外地把这项检查从「未通过其他前置检查的交易」身上移除了。这条代码路径可以被一个精心构造的区块触发。
- 攻击者产出这样的区块,就能把一个输出花两次。反复迭代,就是通胀。
发现与修复的过程:
- Awemany(一位在比特币现金软件上工作的开发者)在审查继承自 Bitcoin Core 的代码时发现了这个漏洞。
- 他先私下披露给 Bitcoin Core 维护者。
- 披露后 24 小时内,Bitcoin Core 0.16.3 携修复发布,旧的支持分支也同步打补丁。
- 矿池和交易所在数小时内完成升级。
- 没有任何已知证据表明修复前有人在野外利用过该漏洞。
为什么这件事重要:
- 比特币的货币完整性差点破防。 若被利用且未察觉,2100 万上限会被悄悄突破——对比特币货币属性的一切信任都将遭受灾难性打击。
- 补丁能成,是因为社会协作机制在运转。 私下披露、快速评审、基础设施运营方快速部署。任何未来的致命漏洞,都需要同样的协作。
- 它提醒我们:「代码即宪法」的前提是代码确实正确。 比特币的货币承诺,系于 Bitcoin Core(及其兼容实现)真的在执行规则。优化路径上的微妙缺陷足以动摇承诺。
CVE-2018-17144 至今仍是开发者主张「验证代码路径从保守改动、共识关键函数要更多测试覆盖、优化要设最短评审期」时引用最多的案例。
完整时间线——那个本该存在的重复输入检查、漏洞如何被发现、私下披露的过程、补丁如何在不动摇市场的情况下上线——见通胀漏洞事后复盘专题。
相关词条: BIP 42 · 区块奖励(Block Reward) · 区块补贴(Block Subsidy) · 通胀减速(Disinflation) · 减半(Halving) · 通胀(Inflation) · 挖矿补贴(Mining Subsidy)