Skip to content

Instantly share code, notes, and snippets.

@gavofyork
Created July 13, 2016 17:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gavofyork/856b27cf1a482585692359e28d3ae4cb to your computer and use it in GitHub Desktop.
Save gavofyork/856b27cf1a482585692359e28d3ae4cb to your computer and use it in GitHub Desktop.
hardfork spec
07/12/2016 13:51:41
Public Pad Version 380 Saved July 12, 2016
All accounts that used the recursive call exploit in their childDAO (all attackerDAOs, white hat and black hat) as well as the main DAO account (0xbb9bc244d798123fde783fcc1c72d3bb8c189413) and its extraBalance account (0x807640A13483f8AC783c557fcDF27Be11ea4AC7A) are enumerated into a list L.
At the beginning of some block X (to be determined), all ether throughout all accounts in L will be transferred to a contract account (C).
The extradata of blocks X to X+9 inclusive is: 0x64616f2d686172642d666f726b (this is needed so that header only clients (fast sync, light clent) can differentiate between peers on different chains). DAO-aware "anti-fork" clients can accept block headers between block X and X+9 only if their extradata is NOT the above.
Potential code (rough untested sketch only): https://gist.github.com/CJentzsch/5124641f139faa6b09b36e0016c3a22b
(important constants in the contract:
TotalSupply MainDAO: 11538165987024671407837618
TotalWeiSupplyRefund (MainDAO + ExtraBalance + BlackDAOs): 11898333978710775162018627 )
List L: https://gist.github.com/CJentzsch/49eaa57b5f19926b5ab936e1184770d1
Block X: 1922000
Contract account C: 0xabcabcabcabcabcabcabcabcabcabcabcabcabca - to be deployed: https://gist.github.com/CJentzsch/5124641f139faa6b09b36e0016c3a22b
After the Refund is deployed and the balances collected
there, what happens to all the DAOs removing the code
or just leaving it as it is ? - imo leave it as is to keep things simple (V)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment