Crypto glossary

zkEVM

Definition

A zkEVM is a system that executes Ethereum-style smart contracts and produces a zero-knowledge proof that the execution was correct, mainly used by ZK rollups.

A zkEVM runs EVM transactions and then generates a succinct cryptographic proof that every step followed the rules. Anyone can check the proof quickly without re-executing the transactions. ZK rollups use this to post batches to Ethereum together with a validity proof, so their state is accepted as soon as the proof is verified, without the week-long challenge window of optimistic rollups.

Designs differ in how closely they match Ethereum. Type 1 zkEVMs prove Ethereum blocks exactly as they are, Type 2 and 3 make small changes to ease proving, and Type 4 compiles Solidity to a different virtual machine. Several zkEVM rollups run in production, and proving has become fast enough that projects now prove Ethereum mainnet blocks close to real time, which feeds research into using zk proofs to verify the L1 itself.

Proving is computationally heavy and often handled by a small set of provers, which adds centralisation and cost. zkEVM circuits are complex, and bugs in them can be as dangerous as bugs in contracts. The term is also used loosely for chains that are only partly EVM-compatible.

Example

A ZK rollup bundles thousands of swaps, generates a zkEVM proof off-chain and posts it to Ethereum, where a verifier contract confirms the whole batch in one step.

Related terms

Latest articles on zkEVM