A zkEVM is a zero-knowledge rollup that can prove standard Ethereum contract execution. A ZK-Rollup batches transactions off-chain and posts a validity proof to Ethereum so L1 does not re-execute. For a long time those proofs only fit simple transfers or custom circuits. You could not drop ordinary EVM bytecode into them.
A zkEVM recreates EVM opcodes, memory, and stack inside a circuit. Existing Solidity contracts can deploy with no rewrite onto a proving rollup. The original EVM was not designed for this. Teams at Polygon, Scroll, and zkSync still shipped production zkEVMs years earlier than many expected, which is now the path many Ethereum scaling plans assume.
A Zero-Knowledge Ethereum Virtual Machine (zkEVM) represents a hard target in blockchain scaling: generating cryptographically secure mathematical proofs for standard Ethereum smart contract execution.
A ZK-Rollup batches thousands of transactions off-chain and submits a tiny 'validity proof' to the Ethereum mainnet, guaranteeing execution was flawless without the base layer needing to recompute anything. However, historically, generating these proofs was so computationally demanding that it only worked for simple transfers or custom-built, application-specific circuits.
Developers couldn't easily port their standard Ethereum code (written for the EVM) into a ZK-Rollup. A zkEVM bridges this colossal gap. A zkEVM aims to prove Ethereum-style bytecode. Polygon, Scroll, and Linea ship variants with different compatibility tradeoffs.
Zero-Knowledge EVM (zkEVM)
Interactive demonstration of ZK-Rollup batch processing and proof generation