zkEVM: How Zero-Knowledge Proofs Scale Ethereum

zkEVM: How Zero-Knowledge Proofs Scale Ethereum
Photo by Joy Xu on Pexels
Quick Answer: A zkEVM is a zero-knowledge virtual machine that proves EVM execution was correct without re-executing it. It enables ZK rollups that inherit Ethereum's security while processing transactions off-chain at 10-100x lower cost. In 2026, four main zkEVM types exist: Type 1 (perfect EVM equivalence — Scroll, zkSync Era) — hardest to prove, most compatible; Type 2 (fully EVM-equivalent at the bytecode level — Linea, Polygon zkEVM); Type 3/4 (based on different VMs that compile from Solidity — StarkNet/SNS) — fastest proving but least compatible. The proving bottleneck: generating a proof for a 10M-gas block takes 2-8 minutes on a prover cluster vs 1 second to execute. Prover hardware costs range from $0.10-0.50 per transaction in proving fees. The race in 2026 is about prover efficiency — Scroll's latest prover achieves 200K gas/second proving rate; zkSync's Boojum reduced proving time by 3x. Total value secured by zkEVMs: ~$15B across all ZK rollups.
What Is a zkEVM?
The Core Concept
A zkEVM is a system that takes an EVM execution trace and produces a zero-knowledge proof that the execution was correct. This proof is cryptographically sound — it's computationally infeasible to fake.
Without zkEVM:
L1 Ethereum: ──▶ Execute tx ──▶ Update state ──▶ Everyone verifies
Each L1 node re-executes every tx.
Cost: ~$50/tx at high gas prices.
With zkEVM (ZK rollup):
L2 Sequencer: ──▶ Execute tx ──▶ Generate proof ──▶ Submit to L1
│ │
│ (single execution) │
│ │
L1 Ethereum: ────────────────────────────────────────▶ Verify proof
Cost: ~$0.01-0.10/tx (proof verification is cheap)
Security: Inherits Ethereum security (proof is on-chain)
The Magic: Succinct Proofs
Key property of ZK proofs:
Proof size: ~200-500 KB (constant, independent of computation)
Verification time: ~5ms (on-chain → cheap L1 gas cost)
Proving time: 2-8 minutes per block (off-chain → doesn't limit L2)
Without ZK: Verify = re-execute (10M gas = 100ms on L1)
With ZK: Verify = check proof (5ms on L1, constant cost)
Why This Matters
| L2 Type | Security Model | Trust Assumption |
|---|---|---|
| Optimistic Rollup | Economic (fraud proofs, 7-day challenge window) | Need honest watcher |
| ZK Rollup (zkEVM) | Cryptographic (validity proof) | No trust — math guarantees correctness |
| Validium | Like ZK but data off-chain | Data availability committee |
zkEVMs offer provable correctness — unlike optimistic rollups that rely on the "fraud proof within 7 days" game, ZK proofs are immediately verifiable.
The Proving Bottleneck
The Core Problem
While execution is fast, proving is slow:
Block execution (10M gas, ~50-100 txs):
CPU time: ~1 second (native execution)
GPU time: ~100ms (with optimized executors)
Proof generation (for the same block):
Type 1 zkEVM (full EVM): 5-15 minutes (prover cluster)
Type 2 zkEVM (compatible): 2-5 minutes
Type 4 zkEVM (different VM): 30 seconds - 2 minutes
The bottleneck: Proving is 300-900x slower than execution!
Prover Hardware
| Component | Specification | Cost | Purpose |
|---|---|---|---|
| GPU | NVIDIA H100 (80GB) | $30K | MSM (Multi-Scalar Multiplication) — bottleneck of proving |
| CPU | 64+ cores, high clock | $5K | FFTs, polynomial evaluation |
| RAM | 256-512 GB | $2K | Store witness, polynomials |
| Network | 100 Gbps InfiniBand | $1K | Multi-GPU proving |
Cost Per Proof
| zkEVM | Gas-per-block | Prover Cost | Prover Cost per Tx | Prover time |
|---|---|---|---|---|
| Scroll (Type 1) | 10M | $5-15 | $0.10-0.30 | 5-10 min |
| zkSync Era (Type 4) | 20M | $3-8 | $0.05-0.15 | 1-3 min |
| Linea (Type 2) | 15M | $4-12 | $0.08-0.25 | 2-5 min |
| StarkNet (Type 4) | 30M | $2-6 | $0.03-0.10 | 0.5-2 min |
Proving Cost Over Time
Cost per 10M gas block:
2023: $50-100/proof
2024: $20-50/proof
2025: $10-25/proof
2026: $3-15/proof
Target: <$1/proof (2027-2028)
Improvements driving cost down:
- Better prover algorithms (optimized MSM, FFT)
- Custom hardware (FPGAs, specialized ASICs in development)
- Proof aggregation (many txs → one proof)
- Recursive proofs (roll up multiple blocks)
zkEVM Types: The Equivalence Spectrum
Type 1 — Perfect EVM Equivalence
Definition: Proves EVM execution identically to L1 (same opcodes, same gas costs)
Example: Scroll
Characteristics:
- Can run ANY existing Ethereum smart contract without changes
- Same gas costs as L1
- Proving is the HARDEST (complex ≈ many constraints)
- Proving time: 5-15 min per block
Best for:
- Maximum compatibility — just deploy current contracts
- Teams that want "ETH at scale" without migration
- Long-term goal of making ZK proving fast enough for L1 itself
Type 2 — Fully EVM-Equivalent
Definition: Proves EVM execution with slightly modified gas costs or precompile handling
Example: Polygon zkEVM, Linea
Characteristics:
- Most contracts work without changes (99%+)
- Minor gas cost differences
- Proving is HARD but slightly easier than Type 1
- Proving time: 2-5 min per block
Best for:
- Teams that want compatibility with slight perf improvements
- Most current Ethereum developers
Type 3 — EVM-Compatible (Compiler-Based)
Definition: Executes a different VM that's designed for ZK friendliness
Example: zkSync Era (zkVM → compiles to ZK-friendly circuit)
Characteristics:
- Most contracts work (some require modification)
- Different opcodes, different gas costs
- Proving is much FASTER (ZK-friendly VM design)
- Proving time: 1-3 min per block
Best for:
- Teams willing to make small contract changes
- Applications that benefit from lower gas costs
- Use of native account abstraction
Type 4 — ZK-Friendly VM (Not EVM)
Definition: Uses a non-EVM ZK VM that compiles from high-level language
Example: StarkNet (Cairo VM)
Characteristics:
- Contracts must be rewritten in Cairo or compiled from Solidity
- Most efficient proving (designed for ZK from ground up)
- Proving time: 30 sec - 2 min per block
- Limited ecosystem compatibility
Best for:
- Greenfield projects
- Teams that want maximum ZK efficiency
- Projects that can rewrite contracts
Equivalence vs Efficiency Tradeoff
EVM Compatibility: 100% ◄──────────────────────► 0%
Proving Efficiency: 1x ◄──────────────────────► 10x+
Type 1: 100% compat, 1x proving speed
Type 2: 99% compat, 2-3x proving speed
Type 3: 95% compat, 5-10x proving speed
Type 4: Solidity→Cairo, 10-15x proving speed
Proving Systems: PLONK vs STARK vs Halo2
Comparison
| System | Trusted Setup | Proof Size | Verify Cost | Prover Speed | Maturity |
|---|---|---|---|---|---|
| PLONK-based | Yes (universal, one-time) | ~200-500 bytes | Very low | Medium | High (used by zkSync, Scroll) |
| STARK-based | No (transparent) | ~100-200 KB | High (~3x PLONK) | Fastest (parallel) | High (used by StarkNet) |
| Halo2 | No (transparent) | ~1-2 KB | Low | Medium | Medium (used by Scroll) |
| Nova/ProtoGalaxy | No | ~10 KB | Low | Fast | Emerging (2026 production) |
PLONK in Detail
Most popular zkEVM proving system (zkSync, Scroll, Polygon):
Key features:
- Universal trusted setup (one-time ceremony, applies to all circuits)
- Constant-size proofs (~200-400 bytes)
- Efficient on-chain verification (~300K gas)
- Supports recursion (proof of a proof)
Proving pipeline (simplified):
1. Execution trace → constraints → polynomial representation
2. Commit to polynomials (KZG commitments)
3. Open commitments at random challenge points
4. Aggregate into single proof
Performance:
- Prover: O(n log n) where n = constraint count
- Verifier: O(1)
- Memory: O(n) for proving (can be 100+ GB)
STARK in Detail
Used by StarkNet, emerging as alternative for zkEVM:
Key features:
- No trusted setup (transparent — just public randomness)
- Larger proofs (~100-200 KB)
- Post-quantum secure (hashes, not pairings)
- Best for parallel proving (GPU-friendly)
Proving pipeline:
1. Execution trace → algebraic intermediate representation (AIR)
2. Low-degree extension (Reed-Solomon)
3. Merkle tree commitments
4. FRI protocol (proximity testing)
Performance:
- Prover: O(n log² n)
- Verifier: O(log² n)
- Better parallelism than PLONK
- Most suited for large circuits (Type 1 zkEVM)
Which System Is Best for zkEVM?
2026 consensus:
For Type 1/2 (full EVM):
Starks (or Stark-like): Better for large circuits
→ More parallelizable
→ Better GPU utilization
→ No trusted setup
For Type 3/4 (designer VM):
PLONK (or Halo2): Better for smaller circuits
→ Faster verification on-chain
→ Lower L1 fixed cost
Emerging: Hybrid systems
SNARK inside STARK: Good of both
Scroll's GKR-based proving: Custom zkEVM prover
Photo by Jonathan Borba on Pexels
Major zkEVM Implementations (2026)
Scroll
| Metric | Value |
|---|---|
| Type | Type 1 (perfect EVM equivalence) |
| Proving system | Halo2 + custom GKR |
| TVL | $2.5B |
| TPS (peak) | 300 |
| Block time | 15 seconds (L1)+ proving latency |
| Prover time | 7-10 min per block |
| Prover HW | 4x H100 per prover |
| Gas cost vs L1 | 5-10x cheaper |
| Key innovation | Precompiled circuits for EVM opcodes |
zkSync Era
| Metric | Value |
|---|---|
| Type | Type 4 (ZK-friendly VM) |
| Proving system | PLONK-based (Boojum) |
| TVL | $3.8B |
| TPS (peak) | 1,200 |
| Block time | ~1 hour (batched to L1) |
| Prover time | 1-3 min per batch |
| Prover HW | 2x A100 per prover |
| Gas cost vs L1 | 20-50x cheaper |
| Key innovation | Native account abstraction, custom compiler |
Linea
| Metric | Value |
|---|---|
| Type | Type 2 (fully EVM-equivalent) |
| Proving system | PLONK-based (custom) |
| TVL | $1.2B |
| TPS (peak) | 500 |
| Block time | 5 min + proving latency |
| Prover time | 2-5 min per block |
| Prover HW | 2x A100 |
| Gas cost vs L1 | 8-15x cheaper |
| Key innovation | Optimized for EVM bytecode with minor modifications |
StarkNet
| Metric | Value |
|---|---|
| Type | Type 4 (Cairo VM) |
| Proving system | STARK-based (SHARP) |
| TVL | $1.8B |
| TPS (peak) | 2,000+ |
| Block time | Continuous (batched to L1) |
| Prover time | ~30 min for large batch |
| Prover HW | Custom (SHARP shared prover) |
| Gas cost vs L1 | 30-100x cheaper |
| Key innovation | SHARP shared prover, Cairo language |
How a zkEVM Processes a Transaction
Step-by-Step (Scroll Example)
Phase 1: Execution (L2 Sequencer)
1. User submits transaction to L2 sequencer
2. Sequencer executes it in go-ethereum (standard EVM)
3. Produces execution trace: every opcode, stack state, memory, storage
4. Updates L2 state root
5. Sends block to prove
Phase 2: Witness Generation
1. Trace → witnesses (program inputs/outputs)
2. Generate circuit constraints:
- Each opcode → polynomial constraint
- Stack operations → permutation constraints
- Memory operations → lookup constraints
- Storage writes → write-once constraints
3. Witness size: ~10-100 GB (depends on block complexity)
Phase 3: Proof Generation (Prover)
1. Commit to polynomials (KZG commitments)
2. FFTs to evaluate polynomial at roots of unity
3. Multi-scalar multiplication (MSM) for each commitment
4. Opening proofs for each evaluated point
5. Aggregate all proofs
Parallel:
- Many opcodes can be proved independently
- Scroll uses 4-8 GPUs in parallel
- Proof time: 7-10 min for 10M gas block
Phase 4: On-Chain Verification
1. Proof (~300 KB) submitted to L1
2. L1 verifier contract checks the proof (~300K gas)
3. If valid: L1 updates state root
4. User's transaction is final (no 7-day wait!)
Total time from tx submission to L1 finality:
Execution: ~1 second
Proving: ~7-10 minutes
L1 submission: ~1 minute (wait for L1 block)
L1 finality: ~12 seconds
─────────────────────────────────
Total: ~8-12 minutes
Gas Cost Breakdown per Transaction
| Component | L1 | L2 (Scroll) | L2 (zkSync) | L2 (StarkNet) |
|---|---|---|---|---|
| Execution | $20-100 | $0.05-0.30 | $0.01-0.10 | $0.01-0.05 |
| Data availability (calldata) | Included | $0.10-0.50 | $0.02-0.15 | $0.01-0.05 |
| Proving cost | — | $0.05-0.15 | $0.03-0.10 | $0.01-0.03 |
| L1 verification | — | $0.02-0.05 | $0.01-0.03 | $0.01-0.02 |
| Total per simple tx | $30-150 | $0.20-1.00 | $0.05-0.35 | $0.03-0.15 |
Prover Hardware Requirements
Building a Prover
| zkEVM | Minimum Prover | Recommended Prover | Cloud Cost/hr | Throughput |
|---|---|---|---|---|
| Scroll | 2x A100-80GB, 128GB RAM | 4x H100-80GB, 512GB RAM | $15-30/hr | 2-3 blocks/hr |
| zkSync | 1x A100-80GB, 64GB RAM | 2x A100-80GB, 256GB RAM | $5-15/hr | 5-10 blocks/hr |
| Linea | 2x A100-80GB, 128GB RAM | 4x A100-80GB, 256GB RAM | $10-20/hr | 3-5 blocks/hr |
| StarkNet | 4x A100-80GB (SHARP) | 8x H100-80GB (custom) | $30-60/hr | 10+ blocks/hr (batched) |
Prover as a Service (PaaS)
Many zkEVM projects offer shared provers:
Scroll: Prover credits — $0.0001/gas of proving
zkSync: Shared prover (sequencer covers proving cost)
Linea: ConsenSys-managed prover
StarkNet: SHARP prover (shared across multiple dApps)
For most developers: Proving cost is included in L2 gas fees.
You don't need to run a prover unless you're operating a sequencer.
Prover Optimization (2026 State)
Current bottlenecks ranked:
1. MSM (Multi-Scalar Multiplication) — 60% of proving time
→ Optimized: Use H100 tensor cores, MSM ASICs emerging
2. FFT (Fast Fourier Transform) — 20% of proving time
→ Optimized: Cooley-Tukey, parallel FFT libs
3. Memory bandwidth — 15% of proving time
→ Optimized: HBM3e on H200/B200
4. Network (for multi-GPU) — 5% of proving time
→ Optimized: NVLink + InfiniBand
Expected improvements:
2027: 2-3x faster proving (FPGA + software)
2028: 5-10x faster proving (custom ASICs)
zkEVM vs Optimistic Rollups: 2026 Comparison
| Factor | ZK Rollup (zkEVM) | Optimistic Rollup |
|---|---|---|
| Security | Cryptographic (validity proof) | Economic (fraud proof, 7-day wait) |
| Finality | ~10 min (proving) | ~7 days (challenge period) |
| Compatibility | Type 1: perfect; Type 4: modified | Perfect (same EVM) |
| Gas cost | $0.05-1.00/tx | $0.01-0.50/tx |
| Proving cost | $3-15/block | $0 (no proofs needed) |
| TVL secured | ~$15B | ~$25B (Arbitrum + Optimism) |
| Withdrawal time | ~10 min (prove + submit) | ~7 days (challenge window) |
| EVM equivalence | Varies (Type 1-4) | Full (identical to L1 EVM) |
| Prover complexity | High (need prover infra) | None (just execution) |
The Great Convergence
2026 trend: Optimistic rollups adopting ZK
- Arbitrum: Researching "zk-arbitrum" for fast finality
- Optimism: Exploring OP-Succinct (ZK for fault proofs)
- Base: Coinbase supporting ZK-prover research
Vision: Hybrid model
- Use optimistic for normal operations (no prover cost)
- Generate ZK proof in background to enable fast exits
- After ZK proof: no more 7-day wait
- Called "ZK fault proof" or "validity proof bridge"
Expected timeline:
2026: Research + early implementation
2027: Production ZK for optimistic rollups
2028: All major L2s have ZK finality
The Future: Proof Recursion and Aggregation
Recursive Proofs
A recursive proof is a proof that verifies another proof — enabling infinite scaling:
Level 0: Block N proof (200 KB)
Level 1: Proof of Block N-1 + Block N (200 KB)
Level 2: Proof of Level 1 + Level 1 (200 KB)
...
Result: One proof can verify a thousand blocks!
Final proof size: still ~200 KB
Verification cost: still ~300K gas
Proof Aggregation
Aggregation: Combine many proofs into one
Instead of submitting a proof for every L2 block:
1. Prove block 1
2. Prove block 2
2. Aggregate: proof(proof(block1) + proof(block2))
...
n. Submit ONE aggregated proof for 1000 blocks
L1 cost savings:
Without aggregation: 300K gas per block × 1000 = 300M gas
With aggregation: 300K gas for all 1000 blocks = 300K gas
Savings: 99.9% reduction in L1 settlement costs!
When Recursion Arrives
2026: Most zkEVMs have basic recursion
- Scroll: Recursive proof for 2-4 blocks
- zkSync: Using recursion for proof compression
- StarkNet: SHARP already aggregates
2027-2028: Full aggregation
- One proof per day (for all L2 blocks)
- L1 settlement cost: ~$5/day regardless of L2 volume
- Effectively zero-cost L1 security
Related Reads
- Layer 2 Solutions: Deep Dive into Rollups, Validiums, and Volitions
- On-Chain AI Inference: ZK-Proofs, Trusted Execution, and Verifiable Machine Learning
- ZKML: Zero-Knowledge Machine Learning — Verifiable Inference
Key Takeaways
- zkEVMs enable ZK rollups to process Ethereum transactions off-chain at 10-100x lower cost while inheriting L1 security via cryptographic proofs, eliminating the 7-day challenge window of optimistic rollups.
- Proving remains the bottleneck: generating a proof for a 10M-gas block takes 2-8 minutes on a prover cluster (vs 1 second execution), with hardware costs ranging from $0.10-0.50 per transaction in 2026 — but proving efficiency is rapidly improving (e.g., Scroll’s 200K gas/second, zkSync’s 3x speedup via Boojum).
- Type 1 zkEVMs (e.g., Scroll) offer perfect EVM equivalence for maximum compatibility but are the hardest to prove, while Type 4 (e.g., StarkNet) prioritize proving speed (30 sec-2 min) at the cost of requiring contract rewrites or compilation from Solidity.
- Prover hardware requirements are steep: recommended setups for Type 1 zkEVMs include 4x H100 GPUs, 512GB RAM, and 100 Gbps InfiniBand, with cloud costs of $15-60/hour — but most developers can rely on Prover-as-a-Service (e.g., Scroll’s $0.0001/gas credits).
- Proof aggregation and recursion (e.g., one proof for 1,000 blocks) will slash L1 settlement costs by 99.9% by 2027-2028, reducing daily L1 security costs to ~$5 regardless of L2 volume.
- Hybrid models are emerging: optimistic rollups (e.g., Arbitrum, Optimism) are adopting ZK proofs for fast finality, aiming to combine the low cost of optimistic execution with the cryptographic security of ZK validity proofs.
Frequently Asked Questions
What is EVM equivalence and why does it matter?
EVM equivalence means a ZK rollup can execute Ethereum smart contracts exactly as L1 does — same opcodes, same gas costs, same behavior. Type 1 zkEVMs (Scroll) achieve perfect equivalence. Type 2 (Linea, Polygon) have minor gas cost differences. Type 3/4 require contract modifications. Full equivalence matters because it means zero developer migration cost.
How long does it take to prove a zkEVM block?
From 30 seconds (StarkNet) to 15 minutes (Scroll Type 1). The prover time depends on: proof system (STARK faster than PLONK for large circuits), hardware (more GPUs = faster), and block complexity (more transactions = more constraints = slower). Prover time is the main bottleneck to zkEVM throughput.
Do I need to run a prover to use a zkEVM?
No — the sequencer handles proving. You just submit transactions and pay gas fees (which include proving costs). Running a prover is something only sequencers and infrastructure providers need to worry about.
Are zkEVMs more secure than optimistic rollups?
zkEVMs offer cryptographic finality — the proof guarantees correct execution. Optimistic rollups offer economic finality — there's a 7-day window for fraud proofs. Both are secure for most use cases, but zkEVMs have better capital efficiency (no 7-day bridge delay) and stronger guarantee properties.
Why are zkEVMs more expensive than optimistic rollups?
Because proving costs real hardware resources (GPUs, memory, time). Optimistic rollups don't prove — they just execute and wait for challenges. The proving cost is $3-15 per block (paid by the sequencer). This cost is passed to users as slightly higher L2 gas fees (usually $0.01-0.05 extra per transaction).
What happens if the prover goes offline?
The sequencer can't submit blocks to L1 without proofs. L2 operations continue (sequencer can still execute) but the bridge is stuck — no deposits or withdrawals. Most zkEVMs have redundant prover clusters and failover mechanisms. Prover downtime has happened (Scroll had ~4 hours of downtime in 2025) but is rare in production.

Comments
Sign in to join the conversation
No comments yet. Be the first to share your thoughts!