EVM precompiles are special smart contract addresses (1 through 9 and beyond on some chains) that perform computationally expensive cryptographic operations at dramatically lower gas cost than implementing the same operations in Solidity. Precompiles are built directly into the EVM client software — executed in native C++/Rust rather than interpreted EVM bytecode, making them orders of magnitude faster. WHY PRECOMPILES EXIST The EVM is a stack-based virtual machine that executes bytecode — efficient for general logic but slow for cryptographic operations. Implementing SHA-256 in EVM bytecode would cost millions of gas. Running it as a precompile costs 60 gas. Without precompiles, operations essential for blockchain security and interoperability would be prohibitively expensive. CORE ETHEREUM PRECOMPILES Address 0x01 — ecRecover: Recovers the Ethereum address from a digital signature. Used in every transaction to verify the sender. Essential for signature verification in smart contracts. Address 0x02 — SHA2-256: Computes SHA-256 hash. Used for Bitcoin cross-chain verification (Bitcoin uses SHA-256 internally). Address 0x03 — RIPEMD-160: Hash function used in Bitcoin address generation. Enables cross-chain compatibility checks. Address 0x04 — Identity (datacopy): Copies data in memory — utility function. Address 0x05-0x07 — BigInt Modular Exponentiation, BN256 Add, BN256 Multiply: Mathematical operations on BN128 elliptic curve — essential building blocks for ZK-SNARK verification. Address 0x08 — BN256 Pairing: The most important precompile for ZK proofs. Elliptic curve pairing operations are the core cryptographic primitive in ZK-SNARK verification. Without this precompile, on-chain ZK proof verification would cost 100+ million gas — impossibly expensive. Address 0x09 — BLAKE2f: Hash function used for Zcash and other BLAKE2 systems. ZK PROOF DEPENDENCY ON PRECOMPILES Every ZK-Rollup (zkSync, Starknet, Scroll) that posts validity proofs to Ethereum depends on precompiles for proof verification. The BN256 pairing precompile (EIP-197) makes it economically feasible to verify ZK proofs on Ethereum mainnet. New precompiles proposed: BLS12-381 curve operations (EIP-2537) for more efficient BLS signature verification and next-generation ZK proofs. Point evaluation precompile (EIP-4844) for blob verification.