zkEVM
A zero-knowledge rollup built to execute Ethereum-compatible smart contracts while generating validity proofs of correct execution.
A zkEVM is a zero-knowledge rollup designed so that existing Ethereum smart contracts — written in Solidity and compiled to standard EVM bytecode (see Kaavon's "Opcode" glossary definition) — can run on it with little or no modification, while the rollup generates zk-SNARK or zk-STARK validity proofs (see Kaavon's "zk-SNARK" glossary definition) confirming that execution followed the rules correctly. This combines the security and low-latency finality (see Kaavon's "Finality" glossary definition) benefits of zero-knowledge proofs with the practical developer experience of deploying unmodified Ethereum contracts and tooling.
Building a zkEVM is technically demanding because proving arbitrary EVM execution in zero-knowledge is far harder than proving simpler, purpose-built computations, which is why different zkEVM projects have historically made different tradeoffs between full bytecode-level EVM equivalence and faster, more specialized proving systems. As proving technology has matured, zkEVMs have moved closer to full equivalence with Ethereum's actual execution environment, reducing the compatibility gaps developers need to work around.
Examples
- A zkEVM lets a developer deploy an existing Solidity contract largely unchanged while gaining the validity-proof security model of a zero-knowledge rollup.
- Different zkEVM designs are often described along a spectrum of 'EVM equivalence,' from bytecode-level compatibility to higher-level compatibility requiring minor code adjustments.