The DAO Fork hard fork
Mainnet 2016-07-20
A state change that returned the funds drained in The DAO hack. Those who opposed it continued as Ethereum Classic.
What changed
- Users
- People who had put ether into The DAO could return their DAO tokens to a refund contract after the fork and recover their ether. The funds drained by the hack effectively came back to where they originally were. Users unrelated to The DAO saw no change in how they used wallets or in fees. However, as the chain split in two, an Ethereum Classic (ETC) balance equal to the ether held at the time of the fork also came into being, and the risk that a transaction sent on one chain would be processed as is on the other remained for a while.
- Wallet & app developers
- Protocol rules and virtual machine instructions did not change, so existing contracts and app code kept running as before. Instead, the work was cleanup after the chain split in two. At the time, transactions did not include a chain number, so a transaction signed on one chain could be sent again as is on the other, and exchanges and wallets had to handle separation themselves so that funds on the two chains would not get mixed. Exchanges also had to decide whether to treat Ethereum Classic as a separate asset. The rule that puts a chain number in transactions to prevent replay (EIP-155) came later in the Spurious Dragon fork.
- Node operators
- Clients had to be upgraded to the new version before the fork block. Both a pro-fork and an anti-fork setting were provided, and operators chose for themselves which chain to follow. Nodes upgraded with the pro-fork setting applied the state change that moved The DAO funds to the refund contract, while nodes that did not upgrade or chose the anti-fork setting continued the original account state and stayed on the Ethereum Classic chain. Because the fork changed account balances rather than code, the way blocks are processed did not itself change.