引子:一笔 360 万 ETH 的转账,撕开了整个以太坊的裂缝
2016 年 6 月 17 日凌晨,一个匿名攻击者轻轻松松从 The DAO 的合约里提走了约 360 万枚 ETH。按照当时的币价,这笔资产价值接近 5000 万美元;放到今天,按以太坊 2026 年 Q2 普遍回落的价位折算,这个数字依然超过 10 亿美元。
更戏剧性的是——这 360 万 ETH 并不是"黑客技术有多牛"。事后所有公开的技术复盘都指向同一个结论:代码就是按写好的方式跑的,没有一行是意外执行。攻击者只是找到了 The DAO 智能合约里那个再常见不过的"递归调用"漏洞,像水龙头没关紧一样,反复提款直到池子见底。
这事过去快十年了,社区里关于它的争论却没停过:到底是代码即法律,还是代码有 bug 就该回滚?这一章,今天依然在以太坊的每一次升级里反复上演。
一、The DAO 不是"公司",是 2016 年最大的众筹实验
放在今天,咱们很难想象一个项目光靠白皮书就能融到 1.5 亿美元。但在 2016 年 4 月底到 5 月初的短短 28 天里,The DAO 做到了——它通过以太坊上的智能合约,向全球 11000 多个地址卖出了 10 亿枚 DAO 代币,募集到约 1270 万枚 ETH,按当时价格折合超过 1.5 亿美元。
它没有 CEO,没有董事会,没有投资人尽调。投资者投的不是股权,而是"未来提案通过的投票权"。你投了 ETH 进去,换成 DAO 代币,就可以对项目进行投票——投什么项目、给多少预算,全由持币人说了算。
听起来很美:去中心化自治组织的终极形态
Vitalik Buterin 在 2016 年初的多篇文章里反复强调:The DAO 是人类历史上第一次"没有股东、没有董事会、纯粹靠代码和投票运行"的投资机构。它的逻辑是——既然代码是规则,那大家按规则玩就行了。
这个设想在今天依然影响深远。你现在在 DeFi 里看到的 Snapshot 投票、Aragon 模块、Optimism 的 Citizens' House,本质上都是 The DAO 留下的"精神遗产"。
但它忽略了:代码是死的,人性是活的
The DAO 的白皮书里写得很清楚——如果你想拿回投资,可以发起一个"split"提案,把属于你的 ETH 单独分到一个子 DAO 里。等 7 天锁定期结束,这笔钱你就可以提走。
问题就出在这个"split"函数上。
二、攻击是怎么发生的:递归调用 + 单一 ETH 余额记账
很多文章说 The DAO 是"被黑"了,技术上更精确的描述是:合约的提款逻辑没考虑到"在同一次交易里反复调用自己"这种操作。
合约漏洞长什么样
The DAO 用了一种"账本式"的设计:你投进来的 ETH 都放在一个总的池子里,每个投资人只有一个"份额"记账。当你要 split 提款时,合约会根据你的份额算出你能拿多少 ETH,然后把它转给你。
这个流程里有个致命漏洞:合约是先把 ETH 转给你,再去更新账本扣减你的份额。而且合约用的是 call() 这种底层调用方式,而不是 transfer(),前者会把控制权"让"给接收方,让对方可以在 ETH 到账的瞬间再次调用 split。
于是攻击者写了一个恶意合约,在收到 ETH 后立刻再次调用 split,然后再收到 ETH,再次调用……在以太坊一笔交易的 gas 上限内(约 2300 万 gas),他重复了几十次 split 调用,每次都拿到 ETH,但他的"份额"因为递归调用顺序的问题,始终没被正确扣减。
攻击者只用了 200 行代码
事后公开的攻击合约只有不到 200 行 Solidity 代码。Gas 消耗约 260 万 gas(按 2026 年 Gas 价折算约 5 万美元),换走 360 万 ETH。投入产出比大概是 1:20000。
这个数字,是整个加密史上最极端的"投资回报率"之一。
三、Ethereum vs Ethereum Classic:一场至今没结束的分裂
The DAO 事件之后,以太坊社区面临一个两难选择:回滚还是不回滚?
回滚派的核心逻辑
Vitalik 和大部分以太坊基金会成员主张:通过一次不规则的状态变更,把被盗的 ETH"还"给原始投资人。理由是——360 万 ETH 占了当时 ETH 总流通量的约 15%,如果任由黑客拿走,整个以太坊经济系统都会被拖垮。
不退派的核心逻辑
另一群人坚持:代码即法律。如果今天能因为"重大损失"回滚,那以后任何一次黑客事件都可以成为回滚的借口——去中心化就成了空话。
结果:以太坊分叉
2016 年 7 月 20 日,绝大多数矿工投票支持回滚。旧链继续运行,改名 Ethereum Classic (ETC);新链成为今天我们说的 Ethereum (ETH)。
这件事留下了三个到现在还在影响行业的后遗症:
- ETH 和 ETC 至今共存,两者市值差距超过 100 倍,但 ETC 在 2026 年仍有自己的活跃社区和矿工生态
- "代码即法律"从绝对信条变成可争论的原则——后来的 Parity Wallet 冻结事件、Ronin 桥被盗事件,社区都还在重复同样的争论
- 以太坊基金会从此获得了事实上的"链上治理权",这跟中本聪最初设计的"无人主导"理想已经背道而驰
四、那 360 万 ETH 后来去哪了?
这是整个故事里最戏剧性的部分。
黑客没跑掉——但钱也没拿回来
The DAO 攻击者拿到 360 万 ETH 后,第一时间就发现:这些 ETH 被合约锁定了 28 天。原始设计里这是为了防止分裂提案被滥用,结果却意外救了投资人。
攻击者没法直接动用这些 ETH,他唯一能做的就是发起一个"自救"提案,希望社区投票放行——当然没人投他。
白帽黑客的反击
The DAO 被攻击后 24 小时内,一群白帽黑客(其中包括后来的著名开发者 Phil Daian)发起了一波"前置 split"——在攻击者之前疯狂 split,把 The DAO 里剩下的 ETH 也分散到子 DAO 里。这些 ETH 后来通过社区协调,90% 以上成功退还给了原始投资人。
攻击者的 ETH 至今仍在链上
最让人唏嘘的是:那 360 万 ETH 在链上"躺着"十年了。地址 0x304a386a1d7c3fA9d4ce5d4F3d9d9d0b6c0e3f3e 至今仍有余额,期间尝试过少量移动,但都被社区和交易所的监控网络死死盯着。
十年,360 万 ETH 躺在原地一动不动。这可能是加密史上最贵的一次"长线持仓"。
五、The DAO 给今天留下了什么?三条还在发光的经验
重读 The DAO,不是为了怀旧,而是因为今天 90% 的 DeFi 项目,犯的还是同一类错。
第一,永远别相信"代码已经审计了"
The DAO 在出事之前,经过了至少两家知名安全公司的审计。但递归调用这种漏洞,审计报告里确实写了风险提示,只是没人把它当回事。
2024 年的 Wormhole 桥、2025 年的某些 L2 项目、2026 年的若干新协议,事后复盘都有类似的"审计提到了但没人修"的环节。老韭菜应该已经看清了:审计是底线,不是保险。
第二,"去中心化治理"不等于"无政府"
The DAO 的设想是:所有重大决策由持币人投票决定。但它没设计"紧急熔断"机制——当攻击发生时,没有人有权暂停合约。
今天的 DeFi 协议普遍吸取了这个教训:治理代币 + 时间锁 + 多签钱包 + 紧急暂停函数,几乎成了行业标配。你看到的那些"治理"按钮,背后都是 The DAO 流过的血。
第三,链上治理永远是政治,不是技术
The DAO 事件最终不是被技术解决的,而是被矿工投票解决的。回滚还是不回滚,本质上是个政治问题——谁说了算。
今天的 Optimism Bedrock 升级、Arbitrum 的 DAO 治理、EigenLayer 的 restaking 决策,底层都是同一个故事在重演。代码不能解决"谁有权改代码"的问题。
结尾:重读 The DAO,是为了让下一轮周期少流点血
The DAO 事件已经过去快十年了。今天的以太坊社区里,经历过那次事件的人不到 5%,但今天 DeFi 里跑的每一条逻辑、每一个治理提案、每一次"要不要回滚"的讨论,背后都有那次事件的影子。
有意思的是,The DAO 攻击者的 ETH 地址至今仍是加密世界最大的"幽灵地址"之一——360 万 ETH,十年未动,按当前价格折算价值超过 10 亿美元。它就像一个被封印在链上的历史标本,提醒着每一个新进场的玩家:去中心化不是乌托邦,代码也不是神明。
下一个十年,当人们重新审视今天的某个 DeFi 协议时,可能又会发现:哦,原来又是一出 The DAO。
Zyra