Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

zkVM Comparison

This page provides benchmark comparisons between ethrex and other implementations, along with a feature matrix for supported zkVM backends.

ethrex vs RSP (SP1)

RSP (RISC Zero/SP1 Prover) is Succinct's implementation for proving Ethereum blocks. Here's how ethrex compares on mainnet blocks:

BlockGas Usedethrex (SP1)RSPDifference
237690827.9M2m 23s1m 27s+63%
2376908344.9M12m 24s7m 49s+59%
2376908427.1M8m 40sFailed
2376908522.2M6m 40sFailed
2376908628.4M7m 36s4m 45s+60%
2376908717.5M6m 02sFailed
2376908817.5M4m 50s2m 59s+61%
2376908923.9M8m 14s4m 44s+74%
2376909024.2M8m 11s4m 40s+75%
2376909124.4M7m 02sFailed
2376909221.7M6m 35s4m 01s+64%

note

RSP failed on several blocks with block gas used mismatch errors. ethrex successfully proved all blocks.

Hardware:

  • ethrex: AMD EPYC 7713 64-Core, 128GB RAM, RTX 4090
  • RSP: AMD EPYC 7F72 24-Core, 64GB RAM, RTX 4090

zkVM Backend Comparison

ethrex supports multiple zkVM backends with varying features and maturity levels:

FeatureSP1RISC ZeroZisKOpenVM
StatusProductionProductionExperimentalExperimental
GPU Acceleration
L2 ProverPlannedPlanned
Proof Aggregation

Precompile Support

ZK proving of Ethereum precompiles varies by backend:

PrecompileSP1RISC ZeroZisK
ecrecover
SHA256
RIPEMD160
identity
modexp
ecAdd
ecMul
ecPairing
blake2f
KZG point evaluation⚠️⚠️
BLS12-381⚠️
P256 verify⚠️

Legend: ✓ = Supported with patches, ⚠️ = Limited or requires unstable features

Optimization Impact

ethrex has undergone significant optimization for zkVM proving:

OptimizationImpactDescription
Jumpdest analysis-15% cyclesOptimized jump destination validation
Trie caching-50% hash callsCache initial node hashes during trie construction
Trie hashing-75% trie cyclesImproved traversal and RLP encoding
Trie operations-93% get/insert cyclesEliminated unnecessary node cloning
Serialized tries-22% total cyclesPre-serialize resolved tries, skip decoding
ecPairing patch-10% total cycles138k → 6k cycles per operation
ecMul patch-10% total cyclesAccelerated scalar multiplication

See prover_performance.md for detailed optimization history.

Reproduction Instructions

ethrex Benchmarks

  1. Clone ethrex-replay
  2. Run the prover:
cargo r -r -F "sp1,gpu" -p ethrex-replay -- blocks \
  --action prove \
  --zkvm sp1 \
  --from 23769082 \
  --to 23769092 \
  --rpc-url <RPC_WITH_DEBUG_EXECUTIONWITNESS>

RSP Benchmarks

  1. Clone rsp
  2. Run with CUDA:
SP1_PROVER=cuda cargo r -r \
  --manifest-path bin/host/Cargo.toml \
  --block-number <BLOCK> \
  --rpc-url <RPC> \
  --prove

Hardware Recommendations

Use CaseMinimumRecommended
Development32GB RAM, 8 cores64GB RAM, 16 cores
Production (CPU)64GB RAM, 32 cores128GB RAM, 64 cores
Production (GPU)64GB RAM, RTX 3090128GB RAM, RTX 4090

GPU proving is significantly faster and recommended for production workloads. All modern NVIDIA GPUs with 24GB+ VRAM are supported.