Recovering addresses using ecrecover
Solidity provides a very powerful function known as ecrecover
, which is used to derive the address of a sender based on the digital signature.
The concept of digital certificates was covered in Chapter 1, Introduction to Blockchain, Ethereum, and Smart Contracts. In summary, digital signatures help in identifying the sender of a message. The message is hashed and encrypted using the private key of the sender, known only to the sender. Anyone decrypting the message using the corresponding public key can be assured that it is originating from the holder of the private key.
There are situations when it is necessary to verify the sender of a message using the signature itself. It is especially useful in scenarios involving self-sovereign identities, decentralized exchanges, and off-chain computations.
Ethereum cryptography is based on the Elliptic Curve Digital Signature Algorithm (ECDSA), and the ecrecover
function helps in recovering the...