Two months after Ethereum mainnet launched, Vitalik deployed a 3-contract on-chain arbitration system written in Serpent. We just verified all three with exact bytecode matches.

    The contracts:

    ArbiterRegistry (0x82afa2c4, block 301,954 – Sep 28, 2015)

    Arbiters pay 1+ ETH to list themselves as dispute mediators. The fee decays 50% per month using a 3rd-order Taylor series approximation, so inactive arbiters fall in the rankings automatically. Hardcoded EF withdrawal address. Someone called register() again in 2024 – still works.

    Arbitration (0xe881af13, block 303,316 + 0x7e2d0fe0, block 318,029)

    Smart escrow with designated arbiters. Two parties create a contract, designate arbiters, and funds auto-transfer when >50% of arbiters vote. Both parties can also instantly surrender to the other side. Vitalik tested it from both his dev address and vitalik.eth.

    The forensics:

    The source Vitalik later committed to ethereum/dapp-bin had one line wrong vs what he actually deployed. The ArbiterNotification log had its indexed arguments in reversed order. He fixed the arg order in git after shipping. The chain preserved the original – we had to catch that divergence to get an exact match.

    How we verified it:

    Not decompilation. We compiled forward: found the source in ethereum/dapp-bin, identified the exact Serpent compiler commit used (e5a5f875, Sep 26 2015), compiled it, and compared output byte-for-byte against the on-chain code.

    Full docs + live contract interaction (ABIs published):
    https://ethereumhistory.com/contract/0x82afa2c4a686af9344e929f9821f3e8c6e9293ab
    https://ethereumhistory.com/contract/0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98

    Verification repos:
    https://github.com/cartoonitunes/arbiter-reg-verification
    https://github.com/cartoonitunes/arbitration-verification

    EthereumHistory is a free archive – if you find this useful, you can support it at ethereumhistory.com/donate

    We cracked 3 of Vitalik's 2015 contracts – byte-for-byte source verification
    byu/gorewndis inethereum



    Posted by gorewndis

    1 Comment

    1. Very interesting work! Early contracts are expected to still work by design, but it’s nice to see that this is actually the case after all the hardforks

      These will probably get lost once state expiry and the lot get included

    Leave A Reply
    Share via