[Ethereum] How public key is recovered for signature verification

addressesgo-ethereumprivate-keypublic-keysignature

I see address everywhere in ethereum but not public key, and I understood that address is Keccak-256 of pubkey, and I do not think it is possible to derive pubkey from address. So, my question is during signature verification does the crypto engine somehow recover the pubkey from somewhere or it is able to verify using address directly?

Best Answer

The public key is recovered from the signature. The address can then be derived from the recovered public key.

See this post for why that is possible.

Related Topic