Skip to content

EIP-8025#569

Open
frisitano wants to merge 4 commits intoethereum:masterfrom
frisitano:feat/eip8025
Open

EIP-8025#569
frisitano wants to merge 4 commits intoethereum:masterfrom
frisitano:feat/eip8025

Conversation

@frisitano
Copy link
Copy Markdown

@frisitano frisitano commented Jan 15, 2026

Adds the EIP-8025 beacon-node HTTP API: a GET for retrieving execution proofs by block id, and a POST for validators to submit signed execution proofs which the node verifies, stores, and gossips.

Both endpoints live under /eth/v1/beacon/execution_proofs. Proofs are signed by validators (identified by validator_index) — there is no separate prover-engine HTTP API; the proof-engine integration is internal to the EL via the Engine API.

Aligned with the eth-act/lighthouse reference implementation. MAX_PROOF_SIZE is 400 KiB to match the consensus-specs bump in ethereum/consensus-specs#5162.

Related CL specs: ethereum/consensus-specs#5055 (refactor, merged), ethereum/consensus-specs#5162 (size bump, open). Original CL PR: ethereum/consensus-specs#4828 (merged).

@frisitano frisitano marked this pull request as draft January 15, 2026 23:34
@frisitano frisitano marked this pull request as ready for review January 15, 2026 23:34
Comment thread apis/beacon/proofs/execution_proofs.yaml Outdated
Comment thread apis/prover/execution_proofs.yaml Outdated
Comment thread apis/prover/execution_proofs.yaml Outdated
Restructure the EIP-8025 endpoints to mirror the actual reference
implementation in `eth-act/lighthouse`:

- GET path: drop the `proofs/` segment.
  `/eth/v1/beacon/proofs/execution_proofs/{block_id}`
  -> `/eth/v1/beacon/execution_proofs/{block_id}`

- POST path: move under `beacon/`, drop the dedicated `Prover` tag.
  `/eth/v1/prover/execution_proofs`
  -> `/eth/v1/beacon/execution_proofs`

- POST body: validator-signed proofs wrapped in an object, matching
  lighthouse's `SubmitExecutionProofsRequest { proofs: Vec<...> }`.
  Drop `ProofGenId` and `GeneratedProof` (no longer used at the HTTP
  layer; proof-engine integration is internal to the EL via the
  Engine API).

- Signed-proof shape: `ProverSignedExecutionProof { prover_pubkey, .. }`
  -> `SignedExecutionProof { validator_index, .. }`. Lighthouse signs
  proofs with the validator's BLS key and identifies the signer by
  validator index, not by a separate prover pubkey.

- `proof_data` max: 300 KiB -> 400 KiB, matching `MaxProofSize` in
  lighthouse and the consensus-specs PR ethereum/consensus-specs#5162.

`redocly lint` passes; `swagger-cli bundle` resolves all refs cleanly.
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.

3 participants