Skip to content

Only allow bids compatible with the head view - #5491

Closed
potuz wants to merge 4 commits into
ethereum:masterfrom
potuz:single_bid_broadcasting
Closed

Only allow bids compatible with the head view#5491
potuz wants to merge 4 commits into
ethereum:masterfrom
potuz:single_bid_broadcasting

Conversation

@potuz

@potuz potuz commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

The rationale for this PR is as follows. By allowing bids for branches that are not compatible with the head view, nodes will allow arbitrary messages on a global topic. Filtering by bid price is not useful since the builder can submit bids with arbitrarily large bids as they won't be includable by any honest proposer.

The alternative is to allow bids for arbitrary branches but restricting the number of bids per builder, it opens that DOS door, but it lacks the complexity of this PR.

The biggest drawback of this PR is that in order for account for the possibility of honest CL reorgs, the node needs to process attestations before the next slot, every slot, and run forkchoice, something that nodes typically only do when they are proposing. After thinking over this for a while I believe the DOS may be even better than an extra forkchoice run at the end of the slot just for this.

An alternative would be to only allow for the current head, but that does not cover the situation of proposer boost reorgs.

@github-actions github-actions Bot added the gloas label Jul 28, 2026
@potuz
potuz force-pushed the single_bid_broadcasting branch from b629d69 to 84fade5 Compare July 28, 2026 18:13
@github-actions github-actions Bot added the heze label Jul 28, 2026
- _[IGNORE]_ this is the first signed bid seen with a valid signature from the
given builder for this slot.
given builder for the tuple
`(bid.slot, bid.parent_block_hash, bid.parent_block_root)`.

@nflaig nflaig Jul 28, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would assume all clients do this, but need to make sure we only add a bid to seen cache if it passes the is_bid_on_current_head check below, but the gossip check here only says with a valid signature and not bid that passes validation, so maybe it's a bit ambiguous. At least in lodestar, we only add bids to seen cache if they pass all gossip checks. related to my comment here #5472 (comment)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yeah that is a bit misleading. The executable specs will clear it up.

@jtraglia

Copy link
Copy Markdown
Member

I'm going to close this one in favor of #5497. Several devs have remarked that this version is too complex:

image

@jtraglia jtraglia closed this Jul 30, 2026
jtraglia pushed a commit that referenced this pull request Jul 31, 2026
This is an alternative to #5491 requested by @nflaig. In this PR we are
not as strict as to only allow exactly what the proposer would do, but
rather check that it is one of the two paths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants