The DAO 黑客事件:2016 年那次让以太坊分叉的攻击
要理解今天的以太坊为什么是这副样子——为什么有 ETH 和 ETC 两条链、为什么社区谈起"代码即法律"时神情复杂、为什么每一份智能合约审计报告都被反复读——你绕不开 2016 年那场让整个生态被迫选边站的事件:The DAO 黑客攻击。
时间线回顾:从万人募资到资金流走
按时间顺序看这次事件,会清楚它不是"一次黑客攻击"那么简单,而是一连串决定层层叠加的过程。
| 时间 | 关键节点 |
|---|---|
| 2016 年 4–5 月 | The DAO 上线众筹,募集到约 1150 万 ETH,按当时市值约 1.5 亿美元 |
| 2016 年 6 月 17 日 | 攻击者利用重入漏洞反复抽取资金,约 360 万 ETH 被转入子合约 |
| 2016 年 6 月 17–27 日 | 因 DAO 设计中的 28 天延迟期,资金被"冻"在子合约中,社区激烈争论应对方案 |
| 2016 年 7 月 20 日 | 以太坊主网执行硬分叉,将被盗资金回滚到新合约,用户可按比例取回 |
| 2016 年 7 月后 | 拒绝接受回滚的一部分节点继续运行旧链,**以太经典(ETC)**就此诞生 |
短短两个月里,以太坊从"史上最大去中心化众筹"的高光时刻,跌进了一场关于自我定义的危机——并最终给出了一个让所有人都不完全满意的答案。
The DAO 到底想做什么
The DAO 全称 “Decentralized Autonomous Organization”——去中心化自治组织。它的想法在 2016 年听起来非常未来:
- 投资人把 ETH 打进合约,换得 DAO 代币,相当于"股东票"。
- 任何团队都可以提出投资提案,由代币持有人投票决定是否出资。
- 合约自动按投票结果分配资金,没有 CEO、没有董事会、没有银行账户。
它一度被视为"以太坊的杀手级应用"。短短几周时间,社区涌入约 1150 万 ETH,占当时以太坊流通量的 14% 左右。这个数字之大,本身就埋下了后面所有难题的种子——它已经"大到不能倒"。
漏洞是什么:重入攻击讲人话
技术上,攻击者利用的是一个叫 reentrancy(重入) 的漏洞。把它翻成人话,大概是这样:
设想 ATM 取款的逻辑写错了顺序——
- 你输入"取 100 块";
- ATM 先把钱吐出来;
- 然后才扣你账上的余额。
正常情况下没问题。但如果你能在第 2 步和第 3 步之间"插队",反复触发"再取 100 块",ATM 就会一直吐钱,直到你账上的余额终于被扣到不够为止。
The DAO 合约里有个 splitDAO 函数大致就是这种先转钱、后更新账本的写法,而以太坊合约可以在收到 ETH 时回调另一个合约。攻击者写了一个会"回头再要钱"的恶意合约,在自己的余额还没被扣减前,反复触发提取——最终把约 360 万 ETH 抽到自己控制的子 DAO 里。
这是一个相对小但极其致命的代码缺陷。它教会整个行业一件事:智能合约里"操作顺序"不是细节,是命门。这个教训今天仍然有效,可以结合基础链上安全习惯一起看。

28 天延迟:黑客被"冻"住,社区开始吵架
The DAO 设计里有一个救命设定:被分出去的子 DAO 资金有 28 天延迟才能动用。这意味着即便被攻击了,资金也没有立刻消失——它就停在那儿,给了社区一个窗口去争吵该怎么办。
可问题恰恰出在这个"该怎么办"上:
- "代码即法律"派:智能合约自动执行的结果就是结果,回滚等于背叛去中心化的承诺。
- "救回用户"派:1150 万 ETH 的 30% 落到一个攻击者手里,不出手会把生态信用一次性打碎。
- 技术派:先用"软分叉"封堵转账,争取时间;
- 激进派:直接硬分叉,把账本拨回去。
这是以太坊历史上第一次集中暴露的治理难题。最后的方案是硬分叉,但代价是分裂出了 ETC 这条坚持"不回滚"的链——可以说,今天的以太坊生态对"治理"的所有讨论,都能追溯到这 28 天。
硬分叉之后:一条链变两条
7 月 20 日的硬分叉把被攻击的资金回滚,DAO 代币持有人可以通过新合约按比例取回 ETH。但拒绝接受这次回滚的节点继续运行旧版本——以太经典(Ethereum Classic, ETC)就这样诞生。
简单概括两条链的分歧:
- ETH(新链):承认硬分叉,把救回用户当作社区共识高于"代码自动执行"的一次例外。
- ETC(旧链):坚持"代码即法律",宁愿让攻击者保留资金,也不接受人为回滚账本。
两条链都不是"对"或"错",它们只是把同一个困境给出了两种答案。这之后,加密世界的人们开始反复引用"代码即法律 vs 社区共识"这组对立,每次大规模事件都被翻出来重讲。后面加密历史关键事件里能看到这条主线一路延续到 DeFi、跨链桥、稳定币暴雷的时代。

留给今天的几条教训
距离 2016 年已经过去快十年,The DAO 事件留下来的教训不只是"小心智能合约"。把它们摊开来看:
- 代码不是上帝,但人也不是。后续的所有 DeFi 攻击都证明:智能合约会有漏洞、写合约的人会犯错、读合约的人会忽略细节。审计、形式化验证、慢慢上线,都是从 The DAO 学到的常识。
- "去中心化"是个程度问题。当一个合约持有了一条链 14% 的流通量时,所谓的"自治"很快就会让位于"不能倒"。这与后来FTX 崩盘的教训在另一个维度形成呼应。
- 重入漏洞只是众多陷阱之一。从那以后,行业总结出了诸如 Checks-Effects-Interactions、重入锁等模式,但新型攻击依然层出不穷。智能合约审计不能"做一次就完事"。
- 社区治理的代价是公开的吵架。硬分叉的结果不是一致同意,而是"多数赞同 + 少数另起一条链"。习惯这点,比期待"所有人达成共识"更现实。
- 普通用户的本能保护:分散+核实。看到一个项目锁了惊人的资金,不必跟风冲进去;多看几个项目、读读它们的事故记录、参考识别加密谣言与误区,是穿越下一个 DAO 时刻的最实在准备。
几个还有人在问的问题
- ETC 现在还在吗? 在。算力和市值远小于 ETH,但社区没散。
- 攻击者最终拿到钱了吗? 在 ETH 链上没有,资金被硬分叉回滚;在 ETC 链上理论上仍归攻击者,但变现面临巨大追踪压力。
- 黑客是谁? 多年来调查文章指向过不同的人,社区始终没有公认的答案。
- 这件事算以太坊"原罪"吗? 看立场。批评者认为它打破了"代码即法律";支持者认为它证明社区能修正错误。
收尾
The DAO 不是简单的"被黑了多少钱"的故事,它是以太坊第一次面对自我定义的考验。下次再看到"代码即法律"或"硬分叉救一下"的争论时,回到 2016 年的这两个月,大概率能更清楚地看见正在发生什么。本文仅作历史科普,不构成任何投资建议。 </content>
本文仅作科普,不构成投资建议。加密资产波动大、风险高——永远只投入你亏得起的钱。