← Back to archive
Hack·resolved

The DAO Hack — June 2016

A recursive-call exploit drained 3.6 million ETH from the largest decentralised organisation on Ethereum, triggering a contentious hard fork that split the chain into ETH and ETC.

The DAO was a decentralised investment organisation deployed on Ethereum in April 2016 by Slock.it. Token holders voted on investment proposals using DAO tokens purchased with ETH. The contract held approximately $150M in ETH — at the time, roughly 14% of all ether in circulation.

The DAO's withdrawal function had a flaw: it sent ETH to the requesting address before updating the internal balance. A caller whose fallback function re-entered the withdrawal function could drain the contract by repeatedly requesting payment against the same nominal balance.

On 17 June 2016 an attacker executed this exploit, moving approximately 3.6 million ETH into a child DAO under their control. Because the child DAO had a 28-day holding period before funds could be withdrawn, the Ethereum community had time to debate a response.

The Ethereum Foundation proposed a hard fork that would relocate the stolen ETH to a recovery contract from which original token holders could withdraw their pro-rata share. On 20 July 2016, at block 1,920,000, the fork executed. The hard fork was contentious — a minority of validators refused to accept reversal of an immutable ledger and continued on the original chain. That chain became Ethereum Classic.

Timeline

  1. The DAO launches, raises ~$150M in 28 days

    Single-largest crowdfund in history at the time.

  2. Researchers publish warnings about reentrancy risk

    Multiple Ethereum researchers post analyses of the withdrawal function's vulnerability.

  3. Reentrancy attack drains 3.6M ETH

    Approximately 14% of all ether in circulation. Stolen into a child DAO with 28-day withdrawal lock.

  4. Hard fork at block 1,920,000

    Stolen funds relocated to a withdrawal contract. Original token holders can redeem ETH 1:1.

  5. Ethereum Classic emerges

    A minority of validators continue the original chain. Within weeks, ETC trades on Poloniex.

Who was involved

Legal record

Structural failures identified