DAO fork

From Consensus Paper
Jump to navigation Jump to search
DAO fork
Consensus upgrade
TypeHard fork
StatusEnabled at block 1,920,000
PreviousHomestead
NextTangerine Whistle
Ethereum family

DAO fork is a hard fork on Ethereum. On July 20, 2016, the Ethereum network that was launched with the Frontier release split in an contentious hard fork. The split was label "The DAO Fork" after the third-party application that lead the network to split on philosophical beliefs.[1]

Specification[edit | edit source]

The following accounts are encoded into a list L:

  • The DAO (0xbb9bc244d798123fde783fcc1c72d3bb8c189413)
  • Its extraBalance (0x807640a13483f8ac783c557fcdf27be11ea4ac7a)
  • All children of the DAO creator (0x4a574510c7014e4ae985403536074abe582adfc8)
  • The extraBalance of each child

All ether throughout all accounts in L will be transferred to a contract deployed at 0xbf4ed7b27f1d666546e30d74d50d173d20bca754.

Onward from the Hard Fork[edit | edit source]

Quoting Ethereum's blog post:

"The foundation has committed to support the community consensus on the admittedly difficult hard fork decision. Seeing the results of various metrics, including carbonvote, dapp and ecosystem infrastructure adoption, this means that we will focus our resources and attention on the chain which is now called ETH (ie. the fork chain). That said, we recognize that the Ethereum code can be used to instantiate other blockchains with the same consensus rules, including testnets, consortium and private chains, clones and spinoffs, and have never been opposed to such instantiations.

All users who had ETH before block 1920000 now have both ETH (the fork chain) and ETC (the community effort to continue the no-fork chain). Users are generally advised that most Ethereum client defaults, including clients developed by the Foundation and by third parties (eg. Parity), will select the ETH chain; if you are offered a choice on a fork in the Mist interface, then selecting “Yes” on this choice will direct you to this chain.

Users who are interested in taking any actions with their ETC, including creating and participating in applications, converting to another asset, etc are advised to use the splitter contract at address 0xaBbb6bEbFA05aA13e908EaA492Bd7a8343760477 to move their ETC to a separate newly created account so as to avoid replay attacks; we also encourage the ETC community to consider adopting a secondary hard fork to change transaction formats to make further replay attacks impossible. Until and unless that happens, once ETH and ETC are “split” they should be managed via separate wallets.

To use the splitter contract from inside of the Ethereum Wallet, click on Contracts -> Watch Contract, copy the address and ABI from the above linked etherscan page, and click “OK”; then, click on the contract in the Contracts tab, select “Write to Contract”, and select the “Split” function. It will ask for two addresses; for the first, put the address where you want your ETH to go (feel free to put the same address you are sending from), for the second put the address where you want the ETC to go. Make sure to try this with a very small amount of ether first to verify that it works before increasing the amount. You may use the Ethereum Classic Explorer here to verify that ETC balances have been transferred. A more detailed community-provided guide can be found here."

Vitalik Buterin on July 26, 2016 [2]

References[edit | edit source]