1844 亿枚假比特币:2010 值溢出事件全解
2010 年 8 月 15 日,有人利用整数溢出漏洞,在一笔交易里凭空造出 184,467,440,737.09551616 枚比特币——接近比特币总量上限的 8800 倍。随后发生的事,堪称比特币史上最惊险也最精彩的一次自救:一条论坛帖子、中本聪约 5 小时内写出的补丁,以及比特币历史上唯一一次链回滚。本页用原帖截图、档案画面和原始数字,一步步还原这场 24 小时内的攻防全过程。
9 分钟 • 16 个图解步骤 • 比特币史上唯一一次链回滚
编委会史料考证与链上复盘
本篇归档基于公开密码学文献、历史白皮书与链上交易数据进行独立交叉核实,遵循学术严谨性标准。
2010 比特币值溢出事件是什么?
值溢出事件是 2010 年 8 月 15 日发生在区块 74638 的一次漏洞利用:攻击者通过整数溢出(CVE-2010-5139)造出 184,467,440,737.09551616 枚 BTC——约 1844 亿枚假比特币,分给三个地址。两笔约 922.3 亿枚的输出加在一起超出了 64 位整数的表示范围,数值回绕后,未修复的客户端把这笔交易当成了合法交易。开发者 Jeff Garzik 在约一小时内于 Bitcointalk 论坛发现异常;中本聪和 Gavin Andresen 当晚就在帖子里贴出补丁,约 5 小时后修复版客户端(0.3.10 版)发布;矿工随即抛弃坏链——8 月 16 日好链在区块 74691 反超,经 53 个区块的重组,假币从账本上彻底消失。全程没有任何假币流通,没有任何人蒙受损失。
核心要点
- 2010 年 8 月 15 日,区块 74638 里的一笔交易造出 184,467,440,737.09551616 枚 BTC——约 1844 亿枚假比特币,相当于比特币 2100 万枚硬顶的约 8800 倍,分给了三个不同地址。
- 漏洞编号 CVE-2010-5139,本质是整数溢出:两笔各 92,233,720,368.54277039 枚 BTC 的输出相加后数值回绕,旧客户端便判定交易合法,出块人还多拿了本不存在的 0.01 枚 BTC。
- Jeff Garzik 在 Bitcointalk 论坛发帖示警,并问出了给漏洞定性的一句话——"92233720368.54277039 BTC?Is that UINT64_MAX, I wonder?";几分钟内,其他用户就完成了诊断。
- 中本聪在同一帖子里贴出了自己写的 CheckTransaction 补丁,并呼吁矿工停止在坏链上出块;发现后约 5 小时,修复版客户端发布,官方 0.3.10 版于次日上线。
- 解决方案是软分叉,不是管理员按下撤销键:矿工只在好链上出块,好链于 8 月 16 日在区块 74691 反超坏链——53 个区块的重组之后,那笔 1844 亿枚的交易在比特币保留的账本上根本不存在。
- 拿它对比以太坊 2016 年 DAO 回滚站不住脚:2010 年比特币历史最高价约 0.40 美元,全网总市值不足约 154 万美元;而以太坊是在约 10 亿美元市值时改写历史——比特币还在 2018 年抢在漏洞被利用之前抓出了第二起通胀漏洞(CVE-2018-17144)。
货币总账被撕开的那一天
2010 年 8 月 15 日,区块 74638。一笔本不该被写出的交易。
- 1
黑客一口气造出 1844 亿枚比特币
2010 年 8 月 15 日,区块 74638 里出现了一笔造出 184,467,440,737.09551616 枚 BTC 的交易——约 1844 亿枚,发往三个不同地址。其中两笔输出各持有约 922.3 亿枚 BTC,出块人还额外收到了交易发生前根本不存在的 0.01 枚 BTC。对比 2100 万枚的总量硬顶,这一笔交易就"印"出了全部合法供应量的约 8800 倍。它至今仍是主流区块链上单次造出假币数额最大的一次——而且整个事件在几小时内就画上句号,没有一枚假币流到任何交易所。

一笔交易,凭空造出 1844 亿枚 BTC。Watch at 0:18 - 2
"没有安全审计"?开源本身就是审计
这起事件成了山寨币推销员最爱引用的素材:相关文章总会强调比特币源码"至今零安全审计"。但只要看清比特币是什么,这个批评就不攻自破。客户端和区块链账本完全开源,每天有成千上万的开发者、矿工、交易所和研究员在逐行读这份代码——用视频里的说法,比特币拥有的"眼睛"可能比计算机科学史上任何项目都多。它本身就是一台巨型漏洞赏金机器:谁找到洞,谁就有机会偷走数千亿美元的比特币。任何付费审计都给不了这种激励——2010 年这个漏洞、以及 2018 年的第二个漏洞,正是这样被发现并快速修复的。

"零安全审计"——专用来卖币的一句话。Watch at 2:48 - 3
档案里的官方记录
Bitcoin Wiki 的"Value overflow incident"词条保存着这件事的权威事实:2010 年 8 月 15 日出块的 74638,携带着新造出的 184,467,440,737.09551616 枚 BTC,发往三个地址;该漏洞编号 CVE-2010-5139。根因相当隐蔽——交易校验逐笔检查了每个输出是否合规,却从没检查所有输出加总后会不会超出 64 位整数的表示范围。词条还记下了本案最余味悠长的注脚:攻击者为构造这笔交易所花出的 0.5 枚 BTC 至今仍在链上,十几年来原封未动;而那 1844 亿枚假币,早已被从历史中彻底抹去。

区块 74638——击穿规则的那个数字。Watch at 3:46
全网直播式排雷:论坛响应
毒块存活了不到一小时,就撞上了一位开发者的火眼金睛。接下来的一切,就是比特币治理的实时运作。
- 4
原始交易数据:每笔输出 922 亿枚
Jeff Garzik 不只是报告异常——他把整个区块的原始 JSON 贴了出来,任何人都能亲自验证。数据里,区块 74638 赫然躺着两个"value"字段,各 92,233,720,368.54277039 枚 BTC,旁边是一笔只有约 50 枚的普通区块奖励。内行一眼就会心跳加速:922 亿枚比特币,比这条链永远也挖不出来的总量还多。论坛老鸟几分钟内就算完账:两笔输出相加的和超出了 64 位整数空间,数值回绕——这正是未修复客户端放行它的原因。全程公开透明才是这段历史的核心:不需要任何可信第三方来"辟谣"。

每笔输出 922 亿枚——就写在 JSON 里。Watch at 3:54 - 5
Jeff Garzik:"Is that UINT64_MAX, I wonder?"
警报拉响于 2010 年 8 月 15 日下午 6:08——开发者 Jeff Garzik 在 Bitcointalk 开帖《Strange block 74638》,正文一句话:"The 'value out' in this block #74638 is quite strange."原始交易下方,他问出了给漏洞定性的问题:"92233720368.54277039 BTC?Is that UINT64_MAX, I wonder?"——他敏锐地猜到,这些数字是撞上了 64 位整数的"天花板"。回复接踵而至:有人锁定数值是 INT64_MAX,有人惊呼"这是个严重问题",矿工开始丢弃坏链。从发现到确诊,总共不到一小时。

让整条网络急停的那一帖。Watch at 4:06 - 6
"我们需要尽快修复":紧急补丁帖
另一个标题毫不掩饰的帖子《overflow bug SERIOUS》成了作战室。Gavin Andresen 提议直接拒绝任何超过 2100 万枚的输出;中本聪贴出了自己写的 CheckTransaction 函数补丁,呼吁矿工在修复扩散前"停止出块";当晚第一个打上补丁的构建就进了 SVN。天黑之前,中本聪已把 0.3.10 版——携带修复的紧急版本——的下载链接编辑进原帖,官方 0.3.10 正式版于次日发布。从第一声警报到可下载的修复版:约 5 小时,全程在公开场合拼装完成。

一场完全公开的紧急发布。Watch at 4:14
5 小时修复,53 个区块回滚
改代码只是容易的那一半。链上已经带着毒块——全网必须就"哪段历史是真的"达成一致。
- 7
中本聪的 5 小时补丁
从 Jeff Garzik 发帖算起,只用了约 5 个小时,中本聪就写好并发布了软件补丁。放在什么背景下看这个速度?从"这看起来有点怪"到共识客户端修复完毕,没有基金会、没有值班表、没有紧急热线,只有论坛上的开源协作。修复版客户端还顺手把规则焊死:永久拒绝任何超过 2100 万枚的输出,让同类溢出永远无法再通过校验。企业级安全团队衡量漏洞响应速度用的是"天";2010 年,一个用论坛账号的匿名程序员立下的标杆,多数项目至今没追上。

从漏洞报告到补丁:约 5 小时。Watch at 5:45 - 8
两条链,一个选择
补丁让比特币在最古老的意义上分叉了:两版历史同时存在。链一带着含 1844 亿枚 BTC 的区块 74638;链二直接拒绝这个区块。每个节点、每个矿工都必须选边。中本聪的指令很简单——只在好链上出块。由于好链承载的都是合法工作量,它持续生长,坏链则停滞原地。这就是全部机制:没有修改账本、没有管理后台、没有撤销按钮。网络用工作量证明投票,决定延续哪一段历史——和此后每一次分叉的裁决规则一模一样。

两段历史;网络留下了诚实的那条。Watch at 6:14 - 9
53 个区块,被工作量证明推翻
终局落在区块 74691。完成升级的矿工持续延长好链,8 月 16 日它反超坏分支——按比特币自己的裁决规则,"累计工作量最多的链才是真链",坏链就此出局。坏链上的 53 个区块连同毒交易一起跌出主账本,不复存在。今天去查区块 74638,你会看到一个再普通不过的区块:那笔 1844 亿枚的交易根本不在比特币保留的链上。留下的唯一痕迹颇为诗意——攻击者为触发漏洞花掉的那 0.5 枚 BTC 至今原封未动地躺在链上,一躺就是十五年。

区块 74691:好链获胜。Watch at 6:44 - 10
没错,早期比特币确实中心化
批评者拿这段历史证明"比特币过去是中心化的"——这没错,但不得要领。2009 年 1 月,整个网络就跑在中本聪的一台电脑上;不久之后,跑在中本聪和 Hal Finney 的机器上,谁想关掉它都行,包括美国政府。比特币从两台电脑的实验成长为任何人都关不掉的全球网络,不是什么见不得光的糗事,而是它全部成就本身。像 2010 年那种协调一致的修复,今天已经不可能重演——而这恰恰是设计意图所在。

从两台电脑,到关不掉。Watch at 7:20
"中本聪也回滚过"——他没有
这起事件在山寨币话术里的来世,建立在一个数字根本不支持的比较之上。
- 11
以太坊式"你也一样"论
2010 事件如今最常见的用途是修辞:"中本聪 2010 年回滚了比特币区块链,凭什么批评以太坊 2016 年为 DAO 被黑做同样的事?"表面听来似乎对称。2016 年,攻击者从一个众筹了全网约 14% 以太的智能合约基金 The DAO 里抽走了数百万枚 ETH,以太坊领导层选择硬分叉逆转盗窃——代价是分裂出以太经典(ETC)。但对称恰恰是这个比较最缺的东西:两件事在规模上、在逆转的对象上、在谁从中受益上,全都不一样。接下来三张图,逐一拆开看。

推销员永远只说一半的问题。Watch at 7:50 - 12
154 万美元的网络 对 10 亿美元的网络
先比规模。2010 年 8 月,比特币历史最高价约 0.40 美元,全网已挖出约 386 万枚,总市值不足约 154 万美元——一个零头的零头,身后只跟着一小撮密码朋克。而以太坊在 2016 年 7 月 20 日为 DAO 事件逆转链上历史时,已经在 Coinbase 活跃交易,市值约 10 亿美元——约是前者的 650 倍——而且其中相当一部分属于预挖受益人:他们的 ETH 正被困在 The DAO 里。逆转 2010,保护的是一个还没有主人的网络;逆转 2016,保护的是一批富裕持有人免于承担自己的投资决策。

不足 154 万美元 对 约 10 亿美元。Watch at 9:02 - 13
当场查证:40 美分就是天花板
比较背后的数字,几秒钟就能查证——视频里就是当场查的。搜索"比特币 2010 年最高价",答案直接弹出:据历史行情数据,2010 年全年比特币都没突破 0.40 美元,要到 2011 年初才摸到这个水平。乘以 2010 年 8 月已流通的约 386 万枚,全网总估值不足约 154 万美元——买不上一套城郊的房子。那场 5 小时修复里真正押上的筹码,根本不是现代意义上的钱,而是"规则会被执行"这个理念——而且是在执行它几乎毫无代价的时刻。

0.40 美元,就是历史最高价。Watch at 9:50 - 14
以太坊的回滚,用数字说话
一张市值曲线图,对比一目了然。以太坊 2015 年上线,到 2016 年 7 月 20 日 DAO 逆转分叉激活当天,市值已在约 10 亿美元量级,后面还跟着多年的增长。这就是那个单方面改写自己历史去逆转黑客攻击的实体——代价是分裂成 ETH 和 ETC。2010 年的比特币没有要保护的内部人、没有要守卫的国库、没有要兜售的代币;它有的只是一个漏洞、一个论坛和 5 小时补丁。同一个词"回滚",描述的是两件性质完全不同的事。

2016 年,10 亿美元押在链上。Watch at 9:57
为什么这一切不会再重演
2010 年的修复依赖一种如今已不存在的信任——因为如今已不再需要它。
- 15
2100 万的支柱与社会共识层
2010 年最深的一课是:仅靠软件,守不住 2100 万的总量上限——守着它的是人。比特币账本完全公开透明,无数双眼睛盯着每个区块找异常(矿工拿多了、交易超过 2100 万枚),这就是通胀漏洞总能被迅速发现、迅速修复的原因。但最后的防线是社会共识层:全球数以百万计的持有人,会拒绝运行任何违反总量上限的链,无论代码怎么说。代码随时可以被社区改掉;"2100 万不可谈判"这条共同信念,却没法被分叉掉。"糟了,现在有 1844 亿枚比特币了"这个剧本从未成真——未来也不会。

总量上限,由人来执行。Watch at 10:40 - 16
2018 年续集:反向证明系统有效
比特币确实有过第二个通胀漏洞——2018 年 9 月披露的 CVE-2018-17144——而它的结局,恰恰是"2010 模式依然有效"最有力的证明。这个漏洞源于前一年的一处性能优化,理论上可让矿工把同一笔交易的输入花两次,从而膨胀供应量。报告它的是竞争对手比特币现金阵营的一位开发者;约一天之内,Bitcoin Core 0.16.3 完成修复;主网上无人利用过它。连比特币的对手都在替比特币审计比特币。这就是"多眼原则"的实战——也是对至今还拿 2010 漏洞贩卖恐慌的人的最好回击。

对手报告,一天修复。Watch at 12:59
常见问题
2010 年比特币值溢出事件是什么?
1844 亿枚比特币漏洞是怎么实现的?
比特币真的回滚过区块链吗?
中本聪用了多久修复 2010 年的漏洞?
那些假比特币被花掉或被留下了吗?
2010 年之后比特币还出过通胀漏洞吗?
继续看这段历史
参考资料
延伸多媒体文献参考
本专题时序与历史图示交叉参考了 Bitcoin University 出品的文献视频 “184 Billion Bitcoin Bug”,谨向原研究记录者致谢。
本图解指南仅供区块链技术史学术研讨与公众科普使用,不构成任何财务、证券、投资或法律建议。文中所载历史价格、黑客事件与安全漏洞分析均属于公开历史记录。加密货币市场具有极高风险,请审慎研判。