The DAO Hack
Incident Overview
The DAO ecosystem's smart contract was hacked, and 3,600,000 $ETH was stolen, which leads to the division of the blockchain into Ethereum Classic ($ETC) and Ethereum ($ETH)
1. Propose a split and wait until the voting period expires. (DAO.sol, createProposal).
2. Execute the split. (DAO.sol, splitDAO).
3. Let the DAO send your new DAO its share of tokens. (splitDAO -> TokenCreation.sol, createTokenProxy).
4. Make sure the DAO tries to send you a reward before it updates your balance but after doing (3). (splitDAO -> withdrawRewardFor -> ManagedAccount.sol, payOut).
5. While the DAO is doing (4), have it run splitDAO again with the same parameters as in (2) (payOut -> _recipient.call.value -> _recipient()).
6. The DAO will now send you more child tokens and go to withdraw your reward before updating your balance. (DAO.sol, splitDAO).
7. Back to (5)!
8. Let the DAO update your balance. Because (7) goes back to (5), it never actually will.
Deconstructing the constructor arguments that created that child DAO leads us to a curator.
That smart contract is just a regular multi-signature wallet, with most of its past transactions being adding/removing owners and other wallet management tasks.
The true total funds lost cannot be calculated properly. The mentioned amount is taken from different sources.
The malicious DAO creator:
https://etherscan.io/address/0x4a574510…2adfc8
Start of the drain:
https://etherscan.io/tx/0x0ec3f248…63790b
The malicious child DAO "The Dark DAO":
https://etherscan.io/address/0x304a554a…d83490
The account that executed the transactions behind the split is:
https://etherscan.io/address/0xf35e2cc8…51a77d
The proposal was created and initiated by account:
https://etherscan.io/address/0xb656b2a9…5a5b5a at transaction:
https://etherscan.io/tx/0x5798fbc4…35db56
Curator address:
https://etherscan.io/address/0xda4a4626…e96526
Incident Report
Protocol Information
Market Context at Time of Hack
What the Attacker Needed to Succeed
Understanding the prerequisites for this type of attack helps auditors identify protocols that are most at risk and helps developers build better defenses.
What Auditors Should Check
If you're auditing a protocol with similar architecture to The DAO, these are the critical security checks that could have prevented this incident (June 2016).
- Verify all logic paths related to Reentrancy / Other are guarded by proper access controls and input validation - see the Reentrancy attack class for patterns
- Check that all state-changing functions follow the Checks-Effects-Interactions (CEI) pattern to prevent reentrancy and logic ordering bugs
- Review privileged functions (owner, admin, governance) for potential abuse vectors - centralization risks should be documented and bounded with timelocks or multi-sigs
Master these auditing techniques with hands-on labs and real exploit scenarios in the Smart Contract Hacking course.
Free TrialRelated Attack Classes
The technique used in this hack maps to these vulnerability classes in our security curriculum:
Sources & References
Learn to Prevent the Next The DAO
The The DAO hack is one of many attacks that skilled auditors are trained to detect before deployment. Master real exploit patterns and defense techniques with hands-on Web3 security training.