Skip to content

Reject bids with block_hash equal to parent_block_hash - #5594

Merged
jtraglia merged 7 commits into
ethereum:masterfrom
nflaig:reject-bid-block-hash-equals-parent
Sep 3, 2026
Merged

jtraglia merged 7 commits into
ethereum:masterfrom
nflaig:reject-bid-block-hash-equals-parent

Conversation

@nflaig

@nflaig nflaig commented Sep 2, 2026 •

Copy link
Copy Markdown
Member

credit to @bshastry for finding this

image

@github-actions github-actions Bot added testing CI, actions, tests, testing infra gloas labels Sep 2, 2026
@jtraglia jtraglia changed the title Reject bids with block_hash equal to parent_block_hash Reject bids with block_hash equal to parent_block_hash Sep 2, 2026
Comment thread specs/gloas/p2p-interface.md Outdated
@nflaig
nflaig marked this pull request as ready for review September 2, 2026 17:18

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

LGTM, I have an ordering preference but not important.

Comment on lines +2119 to +2120
# Verify that the bid's block hash differs from its parent block hash
assert bid.block_hash != bid.parent_block_hash

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.

Probably we want to move all these cheap checks earlier than the if-else block in line 2095 because that one accesses the state. I expect implementations to do these earlier and ordering sneaks into specttests from time to time.

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, I'm going to spend some cycles ensuring a sane ordering of these later. I'll try to follow up on this next week.

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

LGTM, nice find @bshastry !

@jtraglia
jtraglia merged commit 54e6932 into ethereum:master Sep 3, 2026
36 checks passed
nflaig added a commit to ChainSafe/lodestar that referenced this pull request Sep 3, 2026
mergify Bot pushed a commit to sigp/lighthouse that referenced this pull request Sep 3, 2026
## Issue Addressed

Reject bids whose block hash equals the parent block hash

ethereum/consensus-specs#5594


Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>
gitToki pushed a commit to gitToki/prysm that referenced this pull request Sep 9, 2026
- Bump consensus spec tests from v1.7.0-alpha.12 to v1.7.0-beta.0,
through alpha.13 and alpha.14
- alpha.13: Look up payload availability at the parent block's slot
([consensus-specs#5473](ethereum/consensus-specs#5473))
- alpha.13: Enable equivocation tracking by default, gated on the early
cutoff window, required by the `should_apply_proposer_boost` fork-choice
tests
([consensus-specs#5441](ethereum/consensus-specs#5441))
- alpha.13: Source KZG spec test vectors from
ethereum/cryptography-specs
([consensus-specs#5398](ethereum/consensus-specs#5398))
- alpha.14: Explicitly set bid fields, including the slot, when
upgrading to Gloas
([consensus-specs#5550](ethereum/consensus-specs#5550),
[consensus-specs#5553](ethereum/consensus-specs#5553))
- alpha.14: Disallow proposer reorgs at epoch boundaries before Fulu
([consensus-specs#5547](ethereum/consensus-specs#5547))
- alpha.14: Refresh ethspecify references, add exceptions for named SSZ
collections
([consensus-specs#5528](ethereum/consensus-specs#5528)),
executable gossip validation functions
([consensus-specs#5294](ethereum/consensus-specs#5294)),
and the gas limit schedule
([consensus-specs#5533](ethereum/consensus-specs#5533))
- beta.0: Reject bids whose block hash equals the parent block hash, in
state transition and gossip
([consensus-specs#5594](ethereum/consensus-specs#5594),
cherry-picked from OffchainLabs#17443)
- beta.0: Read the parent slot from the latest block header when
applying the parent payload
([consensus-specs#5554](ethereum/consensus-specs#5554))
- beta.0: Rename the PTC SSZ types to `PayloadTimelinessCommittee*` in
ethspecify references
([consensus-specs#5558](ethereum/consensus-specs#5558))
- The beta.0 `minimal.tar.gz` is not published yet, so the WORKSPACE
minimal hash still points at alpha.14 and will be updated once the asset
lands

---------

Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gloas testing CI, actions, tests, testing infra

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants