Skip to content

Reset withdrawable epoch when depositing to an exited builder - #5373

Merged
jtraglia merged 2 commits into
ethereum:masterfrom
jtraglia:reset-withdrawable-epoch-on-top-up
Jun 18, 2026
Merged

Reset withdrawable epoch when depositing to an exited builder#5373
jtraglia merged 2 commits into
ethereum:masterfrom
jtraglia:reset-withdrawable-epoch-on-top-up

Conversation

@jtraglia

Copy link
Copy Markdown
Member

@brech1 has pointed out an easy-to-abuse way of slowing down the validator sweep. This PR implements his suggested solution of resetting the builder's withdrawable epoch on deposit top-ups so that it cannot re-use those funds to sustain this attack. My napkin math tells me that it would require 75 ETH (~$150k) per minute to sustain this attack. This solution would prevent an attack from quickly getting that ETH back to re-deposit.

Note that EIP-8282 refactors this code, but there is value in having a separate PR ready for this now so we can judge/review it independently. I will handle the conflicts if/when we merge these two PRs.

PS: There's a discussion on discord about this.

@github-actions github-actions Bot added testing CI, actions, tests, testing infra gloas labels Jun 18, 2026
Comment thread specs/gloas/beacon-chain.md
@jtraglia
jtraglia merged commit 9bf115f into ethereum:master Jun 18, 2026
16 checks passed
@jtraglia
jtraglia deleted the reset-withdrawable-epoch-on-top-up branch June 18, 2026 17:41
jtraglia added a commit that referenced this pull request Jun 24, 2026
)

@0xMushow raised a point on discord that an attacker could continually deposit
1 ETH every `MIN_BUILDER_WITHDRAWABILITY_DELAY` epochs to prevent a builder
from getting their balance back. One solution to this would be to only reset
the withdrawalable epoch on top-ups if the balance has already been swept. This
guarantees that the builder will get their balance back & prevents the original
attack which this block of code prevented. See the following for more details:

* #5373

Big thanks to @0xMushow for recognizing this!
ensi321 added a commit to ChainSafe/lodestar that referenced this pull request Jun 26, 2026
implements the following spec changes required to pass `v1.7.0-alpha.11`
spec tests
- ethereum/consensus-specs#5359
- ethereum/consensus-specs#5377
- ethereum/consensus-specs#5373
- ethereum/consensus-specs#5365
- ethereum/consensus-specs#5364
- ethereum/consensus-specs#5368

---------

Co-authored-by: NC <17676176+ensi321@users.noreply.github.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.

7 participants