Exclude slashed validators from proposing (EIP-8045) - #5115
Merged
jtraglia merged 6 commits intoJun 1, 2026
Conversation
barnabasbusa
marked this pull request as ready for review
April 16, 2026 12:52
4 tasks
jtraglia
reviewed
May 29, 2026
jtraglia
reviewed
May 29, 2026
jtraglia
reviewed
May 29, 2026
jtraglia
reviewed
May 29, 2026
Filter slashed validators out of the candidate pool upfront in get_beacon_proposer_indices, before invoking compute_proposer_indices, so the EIP-7917 proposer_lookahead only contains active and unslashed indices. EIP-8045 is scoped to proposer selection only; no other duties are modified.
proposer_lookahead (epoch_processing): - slashed validators do not appear in the newly appended lookahead epoch after process_proposer_lookahead - a full SLOTS_PER_EPOCH worth of proposers is still produced when the bulk of active validators are slashed
barnabasbusa
force-pushed
the
eip-8045-exclude-slashed-from-duties
branch
from
May 29, 2026 14:43
b770e35 to
1d76603
Compare
potuz
reviewed
May 29, 2026
potuz
left a comment
Contributor
There was a problem hiding this comment.
At the fork, the function upgrade_to_gloas is called after performing epoch transition. The epoch transition will call get_beacon_proposer_indices for the second half of the lookahead, which will not include the slashed validators. But the first half will include them as it was computed two epochs ago on Fulu.
I can't stress enough how much we need to test this situation:.
- Pre fork there are no slashed validators.
- Pre fork there are slashed validators in both epochs in the lookahead
- Pre fork there are slashed validators and some slashed validators would be included in the second half without this change.
2 tasks
15 tasks
jtraglia
approved these changes
Jun 1, 2026
Member
|
At ACDT today, we agreed to include this EIP in the specs for glamsterdam-devnet-5. I'm going to merge this PR so we can make the release. I'm pretty confident that the changes here are good.
Added tests for the latter two. I don't think the first one is that useful, but if others disagree we can always add it later. |
nflaig
added a commit
to ChainSafe/lodestar
that referenced
this pull request
Jun 2, 2026
4 tasks
mergify Bot
pushed a commit
to sigp/lighthouse
that referenced
this pull request
Jun 15, 2026
Changes implemented Ensure bids are for a higher slot than their parent (ethereum/consensus-specs#5302) Ignore PTC attestations for empty assigned slots (ethereum/consensus-specs#5281) Limit should_build_on_full checks to the previous slot (ethereum/consensus-specs#5309) Apply proposer boost if dependent roots match (ethereum/consensus-specs#5306) Exclude slashed validators from proposing (EIP-8045) (ethereum/consensus-specs#5115) Force the proposer to reorg late payloads (ethereum/consensus-specs#5210) Remove support for old deposit mechanism in Fulu (ethereum/consensus-specs#4704) Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu> Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com> Co-Authored-By: Eitan Seri-Levi <eserilev@gmail.com> Co-Authored-By: Michael Sproul <michael@sigmaprime.io> Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
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.
Currently, slashed validators can still be selected as proposers, though their blocks are considered invalid by the state transition function, resulting in missed slots. This is in particular problematic after a mass slashing event, at which point there can be a long period with degraded chain performance, until all slashed validators are exited. If mass slashing also comes with general network disruption, the missed slots can also significantly complicate the recovery process. This change filters out slashed validators during proposer selection in
get_beacon_proposer_indices, reducing disruption and increasing resilience in such scenarios.