title, type, tags, sources, last_updated
| title |
type |
tags |
sources |
last_updated |
| The DAO (2016) |
entity |
| blockchain |
| defi |
| exploit |
| reentrancy |
| ethereum |
|
| blockchain-security-auditor |
|
2026-04-25 |
Aliases
- The DAO
- Decentralized Autonomous Organization (the original)
基本信息
- 时间:2016 年 6 月 17 日
- 平台:Ethereum
- 损失:约 360 万 ETH(当时价值约 5,000 万美元)
- 根本原因:重入攻击(Reentrancy)
- 历史地位:以太坊历史上首次重大安全事件,直接导致以太坊硬分叉(ETH/ETC 分裂)
攻击原理
攻击者利用DAO合约的 withdraw() 函数,在向攻击者合约转账时触发 receive() 回调。由于状态更新(balances[msg.sender] = 0)在外部调用之后执行,攻击者合约可以在余额清零前回拨 withdraw() 重复提取资金:
关键影响
- 技术层面:开创了智能合约安全研究领域,Reentrancy 成为最经典的漏洞类型之一
- 以太坊层面:引发 ETH/ETC 硬分叉,Coinbase 等交易所拒绝支持 ETC 引发争议
- 行业层面:推动了安全审计行业(Trail of Bits、OpenZeppelin)的兴起,Solidity 编译器加强了对重入的检查
关联漏洞类型
- Reentrancy:核心漏洞类型,The DAO 是该漏洞类型的"教科书案例"
- Checks-Effects-Interactions Pattern:修复方案——先更新状态,再执行外部调用
关联页面