Why Polygon zkEVM Uses Recursive Proofs to Shrink L1 Costs
Polygon’s zkEVM aggregates transaction proofs with a recursive STARK‑to‑SNARK pipeline, cutting on‑chain verification size while keeping EVM compatibility. Learn how it works, its trade‑offs, and how to test it on the testnet.
22 Feb 2026, 10:57 UTC

Concrete Problem: Why Batching Proofs Matters
Every transaction on a zkEVM needs a cryptographic proof that the state transition it requests is valid. If each proof is posted to Ethereum as a separate transaction, the L1 cost scales linearly with the number of L2 transactions. Polygon’s zkEVM tackles this by aggregating many proofs into one.
Thesis: Recursive STARK‑to‑SNARK Aggregation
Polygon’s architecture first uses a STARK prover to generate a proof for a batch of transactions. That proof is then wrapped by a SNARK circuit, producing a single, compact validity proof that can be verified by a standard Ethereum verifier contract. This two‑step recursion keeps the on‑chain data payload small while preserving the security guarantees of a full STARK proof.
How the Pipeline Works
1. STARK Prover – Takes a batch of L2 state transitions and outputs a STARK proof. 2. SNARK Wrapper – Feeds the STARK proof into a custom SNARK circuit that checks the STARK’s validity and produces a new SNARK proof. 3. Sequencer – Sends the SNARK proof and the transaction batch to the zkEVM contract. 4. Ethereum L1 Verifier – Executes the SNARK verification on‑chain, consuming a fixed amount of gas regardless of the original batch size.
Worked Example: From Transaction to L1
Below is a minimal workflow you can run against the Polygon zkEVM testnet to see the recursion in action. The commands assume you have docker and the official polygon-zkevm Docker images installed.
# 1. Prepare a batch of dummy transactions (JSON format)
cat > tx_batch.json
{
"transactions": [
{"to": "0x0000000000000000000000000000000000000001", "value": 1},
{"to": "0x0000000000000000000000000000000000000002", "value": 2}
]
}
# 2. Run the STARK prover (placeholder command)
stark-prover --input tx_batch.json --output stark_proof.json
# 3. Wrap the STARK proof in a SNARK circuit
snark-wrapper --input stark_proof.json --output snark_proof.json
# 4. Submit the SNARK proof to the zkEVM contract
zkclient submit --proof snark_proof.json --batch tx_batch.json
Expected checks:
- The
stark_proof.jsonshould contain aprooffield and apublic_inputsarray. - The
snark_proof.jsonsize should be < 10 KB, independent of the batch size. - The
zkclientoutput should report a successful on‑chain transaction hash.
Risks & limitations:
- Prover nodes are CPU‑bound; a single STARK proof can take several minutes on consumer hardware.
- Adding recursion increases the circuit complexity, raising the chance of subtle bugs in the prover software.
- Hardware requirements for production nodes are higher than for optimistic rollups.
Trade‑Off: Latency vs. Gas Savings
Because the prover must finish before the SNARK wrapper can run, the end‑to‑end latency from transaction submission to L1 finality is higher than in optimistic rollups. However, the on‑chain gas cost is dramatically lower – a single SNARK verification costs roughly 200 k gas, compared to tens of thousands for a raw STARK proof or multiple individual transaction proofs.
Actionable Checklist for Developers
- Deploy a testnet prover node. Follow the Polygon zkEVM documentation to spin up a Docker container with the latest prover image.
- Generate a small batch proof. Use the example workflow above to create a 2‑transaction batch and verify the proof size.
- Monitor on‑chain verification. Check the transaction receipt on Etherscan’s Polygon zkEVM testnet explorer; the
VerificationCostfield should be ~200 k gas. - Benchmark latency. Measure the time from
zkclient submitto receipt confirmation. Aim for < 5 minutes for a 10‑transaction batch on a mid‑range server. - Plan for scaling. If you expect millions of transactions per day, consider a dedicated GPU cluster for the prover to keep latency under 2 minutes.
By following this workflow you can validate that the recursive proof mechanism is working correctly in your environment and make an informed decision about whether Polygon zkEVM fits your scaling strategy.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.