Proof Integration

Pluggable prover and verifier backends for ZK, TEE, and fraud proof systems

circle-exclamation

Proof Integration connects Erigon to external proof systems — ZK provers, TEE attesters, and fraud proof generators. The pattern is consistent across Ethereum's proof landscape: the node executes a block and produces a witness, an external prover consumes the witness and produces a proof, and a verifier checks the proof in the consensus layer (L1) or in a rollup settlement contract (L2).

Erigon already has the input side covered: debug_getWitness and debug_getTxWitness RPCs produce execution witnesses (rpc/jsonrpc/eth_call.go). Proof Integration adds the prover dispatch and verifier validation on top of this existing foundation.


Key Capabilities

Pluggable backends: ProverBackend and VerifierBackend are registered components. Supported backends include Zilkworm, SGX (Raiko-compatible), RISC0, SP1, and ZisK. Selecting a backend is a configuration change, not a code change.

Independent deployability: Prover Integration and Verifier Integration are separate components. An archive node runs only the prover; a consensus node runs only the verifier; a full rollup operator runs both.

Multi-proof diversity: For scenarios requiring strong security guarantees, the component can require N independent proofs from different backends per block before accepting a block as verified.


Ecosystem Reference

  • Taiko — node + Raiko (SGX prover) as a separate service; proofs submitted on-chain via ProveBlock transactions

  • zkCloud/Ethproofs — provers deliver to a coordinator; gossipped via ExecutionProofs subnet; Lighthouse validates with --execution-proofs flag

  • Nethermind — execution witness capture → stateless replay → RISC-V compilation → zkVM integration pipeline


Two Separate Components

Prover Integration and Verifier Integration are independently pluggable — a node might run one, both, or neither depending on its role:

  • Archive or sequencer node — runs Prover Integration only (produces proofs for settlement)

  • Consensus node — runs Verifier Integration only (validates incoming proofs)

  • Full rollup operator — runs both

Component 1: Prover Integration

Produces execution witnesses and dispatches them to external proof providers. The component does not generate proofs itself — it prepares inputs and manages the interface to external provers.

The simplest first implementation wraps debug_getWitness — capture the witness produced during normal block execution, then dispatch it to a configured ProverBackend. Backends are registered via init() and selected by configuration.

Supported backends (planned): Zilkworm, SGX (Raiko-compatible), RISC0, SP1, ZisK.

Component 2: Verifier Integration

Validates proofs as part of consensus or rollup settlement. Integrates with two contexts:

  • L1 Beam Chain — validates proofs in the Consensus component (when Erigon's Caplin participates in a proof-requiring fork)

  • L2 RollupDriver — validates proofs in the settlement stage (ZK rollups, consensus rollup finality)

Multi-Proof Diversity Policy

For scenarios requiring strong security guarantees, the component supports requiring N independent proofs per block from different backends before accepting a block as verified:

Dependencies

Dependency
Notes

L1/L2 Node — Consensus component

For L1 Beam Chain verifier integration

L1/L2 Node — RollupDriver

For L2 settlement verifier integration

Existing debug_getWitness RPC

Simplest first prover input source

Map-Reduce Framework

For batch witness generation across a block range

Relationship to QMTree

QMTree Commitment (see QMTree Commitment) is a complementary proof-of-execution scheme. While Proof Integration connects to external ZK/TEE provers, QMTree produces an internal append-only Merkle commitment that commits to the EVM execution trace. They address different parts of the proof landscape and can operate independently.

Last updated