-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add specs for EIP-8025 (Optional Execution Proofs) #4591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
(This still requires beacon-chain and p2p-interface changes) |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
| Verify an execution proof against a payload header using zkEVM verification. | ||
| """ | ||
|
|
||
| # Note: proof.beacon_root verification would be done at a higher level |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is not checked anywhere and is mostly useful for mapping the pending beacon block to a payload
| """ | ||
| # `retrieve_execution_proofs` is implementation and context dependent | ||
| # It returns all the execution proofs for the given payload block hash | ||
| execution_proofs = retrieve_execution_proofs(block_hash) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied this from the blobs file -- proofs will appear from the ether. Note that zkevm.md has proof generation logic, though its not hooked up to generate_execution_proof
| # Verify all execution proofs | ||
| for proof in execution_proofs: | ||
| # Get EL program from proof system ID | ||
| # TODO: The proof system ID is really an ID for a proof system and EL combination |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO is noting that proofID has a 1-1 mapping with subnet which is really a 1-1 mapping between EL and zkEVM combinations. Not just the proof system being used
|
|
||
| ```python | ||
| def process_execution_payload( | ||
| state: BeaconState, body: BeaconBlockBody, execution_engine: ExecutionEngine, stateless_validation: bool = False |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
main change is additional stateless_validation parameter. When set to false, nothing changes from the fork it was built upon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is more akin to an api file than a naive impl. This is different to polynomial-commitments whereby it actually has a naive impl of proof generation and creation. Its not really possible in this case, but we can mock the behaviour
This comment was marked as spam.
This comment was marked as spam.
|
There should be a note on the fact that the specs uses one EL program but implementations should/can use multiple EL programs for their K out of N assumption |
|
The difference between an ExecutionProof and a ZkProof is a bit confusing; In the code an ExecutionProof is just a ZKProof but with added context about the CL |
kevaundray
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.
jtraglia
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good enough for an initial spec to me! Thanks @kevaundray, exciting stuff. I expect there will be follow-up PRs with improvements/integrations. But no rush on that.
This PR adds the scaffolding needed to have zk stateless clients. Most of these changes have been integrated here: sigp/lighthouse#7755
Notes
TODO