-
Notifications
You must be signed in to change notification settings - Fork 996
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EIP-7044: Lock voluntary exit domain on capella #3288
Conversation
It is too late at this stage to be introducing a consensus change unless it is a security issue. |
This PR would qualify as a deneb fork change, not capella. |
Moved the change to /deneb directory. See 1c35eb1 for previous iteration committing the change to phase0 |
I'm not sure this PR does what it wants to do. If we imagine that we are a few hard forks down the line, let's call it
will return the fork version for Given that this is going to be a change to Deneb, could we achieve the desired result by replacing
with
|
I'd rather move to EL-initiated exits rather than mess w/ the exit via CL operation infrastructure main reason: we can get much more secure exit authorization strategies via e.g. 4337 smart wallets |
I would suggest that this change is orthogonal to any sort of EL-initiated exit. It's a simple UX boost with only a minimal change to the consensus layer and no alteration to the execution layer. If EL-initiated exits ultimately replace this then fine, but that seems to me to be a fair few hard forks away compared to this change, which could easily slip in to deneb. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
f624292
to
32036d8
Compare
This change is related to an earlier proposal for reducing the required trust between staking pool operators and their stakers. From conversations with multiple pool operators, I know this is a real problem they face. Admittedly, smart contract initiated exits will be able to solve the problem as well. |
I git merge #3406 and maked EIP7044 change in this branch:deneb-4844-clean...pr3288-comment I will push it to this PR once #3406 is merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good! just a couple of minor comments
tests/core/pyspec/eth2spec/test/deneb/block_processing/test_process_voluntary_exit.py
Show resolved
Hide resolved
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
tests/core/pyspec/eth2spec/test/deneb/block_processing/test_process_voluntary_exit.py
Show resolved
Hide resolved
tests/core/pyspec/eth2spec/test/deneb/block_processing/test_process_voluntary_exit.py
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. I added a comment about how it breaks valid/invalid convention
Motivation
For staker UX it's useful that a signed exit is valid in perpetuity. Currently signed voluntary exits are valid for only two forks, due the state only holding current and previous fork.
Description
Compute voluntary exit domain as
min(voluntary_exit.epoch, CAPELLA_FORK_EPOCH)
. This change is backwards compatible if merged before deneb.I have committed this change in the phase0 spec since "technically" it does not change spec logic, but I can see that leaking
CAPELLA_FORK_EPOCH
into phase0 directory is not ideal.