Skip to content

feat(rpc): validate BAL in builder submission v6#24297

Open
0xKarl98 wants to merge 4 commits into
paradigmxyz:mainfrom
0xKarl98:flashbots_validateBuilderSubmissionV6
Open

feat(rpc): validate BAL in builder submission v6#24297
0xKarl98 wants to merge 4 commits into
paradigmxyz:mainfrom
0xKarl98:flashbots_validateBuilderSubmissionV6

Conversation

@0xKarl98

@0xKarl98 0xKarl98 commented May 18, 2026

Copy link
Copy Markdown
Contributor

Rebuilds the block access list during flashbots_validateBuilderSubmissionV6 and 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_execution which 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.

Rebuilds the submitted BAL during builder submission V6 validation and rejects payloads whose rebuilt access list or hash does not match the submission.
@github-actions github-actions Bot added the S-stale This issue/PR is stale and will close with no further activity label Jun 12, 2026
mattsse added 2 commits June 12, 2026 11:00
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.
@mattsse mattsse requested a review from gakonst as a code owner June 12, 2026 09:50
@mattsse mattsse added A-rpc Related to the RPC implementation and removed S-stale This issue/PR is stale and will close with no further activity labels Jun 12, 2026
@mattsse

mattsse commented Jun 12, 2026

Copy link
Copy Markdown
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 validate_block_post_execution check instead of comparing the lists manually. Also extended the v6 e2e test with an undecodable BAL case and stronger error assertions.

@mattsse mattsse added the M-changelog This change should be included in the changelog label Jun 12, 2026

@mattsse mattsse left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@github-project-automation github-project-automation Bot moved this from Backlog to In Progress in Reth Tracker Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rpc Related to the RPC implementation M-changelog This change should be included in the changelog

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants