I'm reading Mastering Ethereum. Around page 116 it says;

"to verify the signature one must have the signature (r and s), the serialized transaction, and the public key that corresponds to the private key used to create the signature."

But then it says that the public key is not sent with the transaction, that it is derived from the signature, and on page 120 has the math to do this.

This logic seems circular. What am I missing? Thanks.

  • From what i understand (I could be wrong, but maybe it will give you a hint) it is possible to extract public keys from (r, s) but you will get more than one. therefore you need to send the public key with the transaction to determinate which one and get the address of it. However ethereum use (r,s,v) and that additional v give you a hint on which one of the public keys is used for the signature. hope someone can correct or confirm me
    – Majd TL
    Feb 15, 2022 at 15:06
  • check this medium.com/mycrypto/… and search for "The recovery identifier"
    – Majd TL
    Feb 15, 2022 at 15:22

1 Answer 1


Public key can be recovered from serialized transaction and digital signature. Lower 20 bytes of the public key hash should be equal to address of the wallet.

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.