Skip to content

Replace proof RPC sync with recursive BeaconChainProofs - #297

Draft
creese wants to merge 1 commit into
eth-protocol-fellows:mainfrom
creese:grandine-recursive-proofs
Draft

Replace proof RPC sync with recursive BeaconChainProofs#297
creese wants to merge 1 commit into
eth-protocol-fellows:mainfrom
creese:grandine-recursive-proofs

Conversation

@creese

@creese creese commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This PR updates the Grandine optional execution proofs proposal to replace historical proof retrieval over P2P RPC with a recursive proof-based synchronization model.

The design introduces a rolling BeaconChainProof that attests to execution validity from a trusted weak-subjectivity checkpoint to the chain head. A node joining from that checkpoint can verify one recursive proof instead of retrieving and validating a separate execution proof for every historical payload, while continuing to verify per-payload proofs for new blocks.

Specifically:

  • Add BeaconChainProof and its public input to the proposed data model.
  • Extend ProofEngine to verify both per-payload and recursive proofs.
  • Replace proof-by-range and proof-by-root RPC with gossip-only proof distribution.
  • Add checkpoint and verified-head anchor tracking.
  • Define weak-subjectivity-to-head sync gating and restart recovery.
  • Update the architecture, implementation plan, milestones, risks, and completion criteria to match the new model.

@creese
creese marked this pull request as ready for review August 4, 2026 18:47
@creese

creese commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

@frisitano, could you review the proposed recursive proof sync approach?
@keshavsharma25, could you review the implementation scope and milestones?

@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.

Left some comments inline

Comment on lines +75 to +76
historical proofs during sync. Once synced, a verifier continues to
check per-payload execution proofs as blocks arrive.

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.

We have concluded that there will be only a single ExecutionProof type: the recursive ExecutionProof version. The internals of how that are constructed using a per payload execution proof are opaque to the CL and do not need to be considered in this work.

context resolution and binding validation, signature verification,
cryptographic proof verification, gossip reception, retrieval of
missing proofs through peer-to-peer RPC, and proof state management.
retain EIP-8025 execution proofs and recursive `BeaconChainProof`

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.

For now, I would keep a single ExecutionProof type and treat it as an opaque recursive ExecutionProof type that attests to the validity of the full chain prefix from weak-subjectivity to the head.

@creese
creese marked this pull request as draft August 5, 2026 04:49
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.

2 participants