From the description from https://github.com/ethereum/EIPs/issues/820 I understood that "Special registry deployment account" address can be reverse engineered from the crafted transaction using Nick's method. What I do not understand is that how is the deployed contract address going to guaranteed to be deterministic on any new chain? As far as my understanding:

  1. Contract address is a result of 3 factors (deployer's address, hash of byte code of the contract, and nonce)
  2. Because of the nonce, if any "naughty" actor using the similar method and deployed an entirely different contract, wouldn't it ruin the deterministic EIP820 contract address on that new chain?

I know it maybe just a very theoretical case, I am just being curious and want to know if I have any gaps in my understanding of Ethereum blockchain.

1 Answer 1


To understand how to works, you need to understand how ecrecover works. Basically, a signature is a r and s value pair, with a v for recovery, which are usually generated using the message hash and the private key, however you can do it the other way around and generate a random v, r, s and message hash, to then get the public key. This is how EIP 820 works.

  1. They sign with any private key, but then they change the s value of the signature, then do an ecrecover. This way, nobody knows the private key of the address the signature is for. Contract addresses are not dependent on the hash of the bytecode, only the creator and the nonce. The deployers address and nonce will always be the same for this signed transaction.

  2. This isn't possible because nobody knows the private key of the address so nobody can do anything at that address besides create this contract (unless of course they guessed the private key or did the same thing to generate a different transaction).

  • I got it, since the message hash contains the contract byte code, and the address of the contract is "reverse engineered" through the crafted transaction, then there is no risk of that nonce being "hijacked" by others unless one could guess the very private key. May 7, 2018 at 15:12
  • 1
    Dropping this article for a more in detail explanation for future readers: Nick's method -- Ethereum Keyless Execution Jan 23, 2023 at 14:04

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.