Skip to content

feat: update zkboost usage - #1492

Merged
barnabasbusa merged 6 commits into
ethpandaops:mainfrom
han0110:feature/zkboost-as-middleware
Oct 9, 2026
Merged

barnabasbusa merged 6 commits into
ethpandaops:mainfrom
han0110:feature/zkboost-as-middleware

Conversation

@han0110

@han0110 han0110 commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

ethereum/consensus-specs#5639 proposes to simplify EIP-8025 by moving proof generation out of the spec, into a prover (e.g. zkboost) that runs as middleware between the CL and the EL. The prover observes engine_newPayload, forwards the request to the EL, and triggers proof generation after a VALID response. zkboost forwards it as engine_newPayloadWithWitness with the arguments unchanged, so that it gets the execution witness.

Once a proof is ready, zkboost signs it as a validator and submits the signed execution proof envelope back to the CL through POST /eth/v1/beacon/execution_proofs (proposed in ethereum/beacon-APIs#569). The CL then verifies, stores, and gossips it.

Proof verification is now embedded in the CL, so zkboost no longer serves a proof verification API. As a side effect, we can no longer test with mock proofs. As a workaround, we prove a mock guest program that has exactly the same input/output as the actual guest program but skips the verification inside, and override the verification key of the CL. This way a single GPU generates proofs fast enough to keep a proof-only CL synced (see the 1gpu_zkvm_with_mock_guest.yaml example).

Changes:

  • Run each zkboost instance as the Engine API middleware of exactly one participant, which sets --execution-endpoint=http://<instance>:3000 and --proof-engine in cl_extra_params, and sign proofs with one validator keystore of that participant
  • Document --proof-engine (built-in verification keys) and --proof-engine=<path> (custom verification keys, via extra_files and cl_extra_mounts) for a proof-only CL without an EL
  • Remove zkVM kinds mock, external, and verifier, allow ere to connect to a running ere-server with endpoint, and add cluster to connect to a ZisK or OpenVM proving cluster
  • Replace 1gpu_zkvm.yaml with 1gpu_zkvm_with_mock_guest.yaml, update 8gpu_zkvm.yaml and zkboost.yaml, and remove the verifier examples
  • Remove the assertoor zkboost JSON test, and update the zkboost metrics test
  • Update the Grafana dashboards of zkboost and Lighthouse

A sibling PR for the new EIP-8025 changes is ethpandaops/dora#881.

Pinging @frisitano for visibility.

@frisitano frisitano left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some comments inline regarding CPU proving.

Comment thread .github/tests/examples/1gpu_zkvm_with_mock_guest.yaml
Comment thread static_files/assertoor-config/tests/zkboost-json-test.yaml
Comment thread src/cl/lighthouse/lighthouse_launcher.star
@barnabasbusa
barnabasbusa enabled auto-merge (squash) October 9, 2026 11:07
@barnabasbusa
barnabasbusa merged commit e2b816f into ethpandaops:main Oct 9, 2026
12 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants