Skip to main content

Choosing a prover

This page helps you pick a prover for what you want to do, whether that's posting proofs to Ethproofs, measuring cycles or validating against ERE.

Zilkworm compiles one C++ block execution engine into a RISC-V guest for each zkVM, so every prover pairs the same engine with a different zkVM. Here is how they compare at release v0.1.0-alpha.7.

ProverzkVMISAWhat shipsInputsHost checkHardwareStatusEthproofs
AirbenderAirbender v3rv32im_zicsrImage ghcr.io/erigontech/zilkworm-airbender; guest .bin, .text and .vkMFBD, EJSNFails on a block hash mismatch32 GB VRAM per GPU, CUDA 13.1 driverLiveOne live cluster
Hypercube, MFBD guestSP1 Hypercube v6.9.0rv64imBinary z6m_prover_hypercube; guest .elf and .vkMFBD, EJSNLogs public values onlyNVIDIA GPU and sp1-gpu-server for provingShippedNo live cluster
HashState guest, ERESP1 v6.9.0rv64imstateless-validator-zilkworm-sp1-v6.9.0.elf and .vkSSZ statelessInputBytes, EJSNere-hosts compares the outputUnspecifiedShippedNo
ZisKZisK v1.3.1-alpharv64im_zicsr_zba_zbb_zbs_zbkbNothing yet, draft PR #86MFBD, EJSNVerifies each proof before savingCUDA 12.9, about 25 GB RAMIn progressNo

If you want to post proofs to Ethproofs today, pick Airbender. Its cluster "Zilkworm Airbender v3 2x5090 on-prem" was the only live Zilkworm cluster on ethproofs.org/provers as of 2026-10-26. Its Docker image runs the whole service from environment variables.

Pick Hypercube when you want to execute blocks and measure SP1 cycles, or to build on the MFBD guest. Its execute subcommand runs on the CPU and prints cycles and prover gas. The service can post to Ethproofs as well, though no Zilkworm Hypercube cluster does so today.

The HashState guest isn't meant for operators. It exists for ERE validation and cost estimates: ere-hosts feeds it each fixture's statelessInputBytes and compares its 43-byte output with the expected one.

ZisK is still in progress on draft PR #86, and nothing ships for it yet. ZisK prover covers running it from the branch.

Further reading​