What are Zero Knowledge (ZK) EVMs?
Gelato Team
•
Apr 4, 2023

Ethereum's scalability issues have spurred the use of Layer 2 (L2) scaling methods, such as rollups—specifically ZK rollups—which use validity proofs to confirm off-chain computations.
However, ZK rollups are not easily compatible with the EVM. To address this, the zkEVM was created to execute smart contracts in a way that works with both zero-knowledge-proof computations and Ethereum infrastructure. This enables zkEVMs to power zero-knowledge rollups and L2 scaling solutions, improving transaction throughput while lowering costs.
Scalability Solutions
Layer 1 scaling solutions
L1 scaling involves increasing the transaction processing capacity of the base layer of a blockchain network.
Layer 2 scaling solutions
L2 scaling involves moving the bulk of activity off-chain into a protocol built on top of L1. Rollups are the most popular approach, bundling transactions into batches executed off-chain, then posting data to L1 for consensus.
There are two main rollups:
Optimistic rollups: assume transactions are valid by default, only running computation via fraud proofs if challenged.
ZK rollups: run computation off-chain and submit validity proofs to the chain.
How do ZK rollups work?
For example, suppose Alice sends 10 ETH to Bob via a ZK rollup:
Alice submits her transaction to the ZK rollup operator.
The operator collects pending transactions and generates a ZK proof summarizing them.
The ZK proof is submitted to the on-chain contract.
The contract verifies the proof, updates the state (Merkle root), and accepts the new state.
Bob can verify his balance by checking the updated Merkle root and ZK proof validity.
ZK rollups are considered the best way to scale Ethereum for general-purpose applications, but compatibility with the EVM remains challenging. Advances in zero-knowledge technology are driving renewed interest in zkEVMs.
ZK rollups use validity proofs such as ZK-SNARKs and ZK-STARKs. For more detail, see our blog post.
What is a zkEVM?
A zkEVM is an EVM-compatible virtual machine enabling execution of smart contracts in a way that’s compatible with ZK proof computations and Ethereum infrastructure. This allows zkEVMs to power ZK rollups and L2 scaling solutions that improve throughput and reduce costs.
On L1, smart contract code is executed step-by-step by every node, which is resource-intensive. In contrast, zkEVMs on L2 process transactions off-chain and generate succinct proofs (ZK-SNARKs) that L1 contracts can verify, ensuring correctness without re-execution.
Types of zkEVMs

Ethereum equivalence: no changes to the Ethereum architecture.
EVM equivalence: minor changes to the Ethereum stack to make it more ZK-friendly.
Type 1 (fully Ethereum-equivalent)
Perfect compatibility with Ethereum, but proving is computationally heavy, resulting in long prover times.
Type 2 (fully EVM-equivalent)
Almost identical to Ethereum with small changes to simplify proof generation. Most applications are compatible, but prover times are still slowed by ZK-unfriendly parts of the EVM.
Type 2.5 (EVM-equivalent, except for gas costs)
Raises gas costs of ZK-hard operations to improve prover efficiency, potentially causing minor compatibility issues.
Type 3 (almost EVM-equivalent)
Removes certain difficult-to-implement features, making zkEVMs easier and faster to build, at the cost of compatibility for some applications.
Type 4 (high-level-language equivalent)
Compiles high-level Solidity/Vyper code into ZK-friendly circuits, skipping some EVM steps. Efficient, but may be incompatible with some applications.
Conclusion
zkEVMs enable Ethereum to address scalability challenges while maintaining decentralization and security. They are a key milestone in scaling Ethereum for mainstream use.
To explore projects implementing zkEVMs, read our guide here.
About Gelato
Gelato is a Web3 Cloud Platform empowering developers to create automated, gasless, and off-chain-aware L2 chains and smart contracts. Over 400 projects rely on Gelato to power millions of transactions across DeFi, NFTs, and gaming.
Gelato RaaS: Deploy your own ZK or OP L2 chains in one click with native Account Abstraction and built-in Gelato middleware.
Web3 Functions: Connect smart contracts to off-chain data & computation with decentralized cloud functions.
Automate: Execute smart contracts reliably with decentralized automation.
Relay: Enable reliable, scalable gasless transactions with a simple API.
Account Abstraction SDK: Built with Safe, combining Gelato's gasless infra with secure smart contract wallets.
Subscribe to our newsletter and follow Gelato on Twitter for updates.
Interested in joining Gelato? Explore open roles and apply here.