I'm new to ethereum. I am confused of how hard fork works in detail. I read many answers, like: https://ethereum.stackexchange.com/a/6390 https://ethereum.stackexchange.com/a/6269

In the first link, the answer says, "It is similar to create a new blockchain with a new init point. We could create a hard fork in which we rollback all the DAOs transactions done by the hacker". What does it mean by "a new init point"? How does "roll back" happens? Could anyone give me a detailed example? Many thanks!

2 Answers 2


to roll back the transactions miners adopt new rules invalidating some valid blocks thus the belonging transactions are also invalid so we cancel these transactions and we go back to the past the previous state. to do so we need a fork. what's happend in the hardfork in case of the Dao is : we forked the chain at the block 1920000 invalidating all the blocks coming after look at the picture below.

Block 1920000 contained the execution of an irregular state change which transferred ~12 million ETH from the “Dark DAO” and “Whitehat DAO” contracts into the WithdrawDAO recovery contract.

enter image description here

to understand more you could browse and compare the blocks in ethereum and ethereum classic : e.g the last common block between the eteheum blockchain and its fork was 1919999.



read more : https://blog.ethereum.org/2016/07/20/hard-fork-completed/


The DAO hard fork is a little bit different from the recent hard fork to reprice the gas:

  1. The DAO hard fork involved marking the hard fork block with the extra data "dao-hard-fork", and then transferring the ETH balance from all The DAO and child DAO contracts into the curators multisig contract. Further details can be found at Give a summary of the fork state changes in block 1920000 .

    The transactions were not rolled back. The ETH amounts were just transferred automatically at 1,920,000 .

  2. The recent hard fork to reprice the gas is a little bit different. There is no rollback of transactions, or changes to the balances like The DAO hard fork. In this case, the cost of the transactions on the hard forked chain will be different from the cost of the transactions on the non-hard forked chain. Because of this, the blocks on the hard forked chain will have different fees from from the blocks on the non-hard forked chain.

In both cases, the data from the non-hard forked chain will be different from the data in the hard forked chain. And the node client software on both chains will reject the other's chain data as the blocks from the alternate chain will be invalid.

  • Does that mean that the DAO hard fork "changed the ledger" i.e. is all the info of what happened still there and it's just amounts were moved around? is that what you mean when you say transactions were not rolled back but amounts were automatically transferred? cc @Badr Bellaj
    – user4942
    Nov 1, 2016 at 13:51
  • Yes. The DAO hard fork changed the ledger. All the pre-hard fork info is still there. There are no transactions that moved the amounts at the hard fork block - the transfers are implemented in the code. Yes. Nov 1, 2016 at 13:59
  • How is it possible to move balances from the Dark & Whitehat DAOs by skipping validated txn requests to those contracts? Can the state trie changes that touch balances decouple themselves from the other tries? Sep 6, 2019 at 18:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.