feat(rpc): validate BAL in builder submission v6#24297
Open
0xKarl98 wants to merge 4 commits into
Open
Conversation
Rebuilds the submitted BAL during builder submission V6 validation and rejects payloads whose rebuilt access list or hash does not match the submission.
Merged
4 tasks
The executor already rebuilds the block access list whenever the block header contains a BAL hash, so the rebuilt hash can be handed to validate_block_post_execution which compares it against the header. This commits to the submitted access list because the header's BAL hash is derived from the submitted bytes when the payload is converted into a block.
Collaborator
|
took this over to get it in: merged latest main and simplified the implementation — the executor now rebuilds the BAL automatically when the header carries a BAL hash, so we can hand the rebuilt hash to the existing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebuilds the block access list during
flashbots_validateBuilderSubmissionV6and rejects payloads whose access list doesn't match what execution produces.The executor rebuilds the BAL whenever the block header contains a BAL hash, so validation hands the rebuilt list's hash to
validate_block_post_executionwhich checks it against the header. This commits to the submitted access list because the header's BAL hash is derived from the submitted bytes when the payload is converted into a block. The submitted BAL is additionally validated against the block gas limit before execution, mirroring engine-side validation.The v6 e2e test now also covers undecodable BAL bytes and a well-formed BAL that doesn't match execution.