Precompiled contracts
There are four precompiled contracts in Ethereum. Here is the list of these contracts and details.
The elliptic curve public key recovery function
ECDSARECOVER (Elliptic curve DSA recover function) is available at address 1. It is denoted as ECREC and requires 3000 gas for execution. If the signature is invalid, then no output is returned by this function. Public key recovery is a standard mechanism by which the public key can be derived from the private key in elliptic curve cryptography.
The ECDSA recovery function is shown as follows:
ECDSARECOVER(H, V, R, S) = Public Key
It takes four inputs: H, which is a 32 byte hash of the message to be signed and V, R, and S, which represent the ECDSA signature with the recovery ID and produce a 64 byte public key. V, R, and S have been discussed in detail previously in this chapter.
The SHA-256 bit hash function
The SHA-256 bit hash function is a precompiled contract that is available at address 2 and produces a SHA256 hash of the...