Layr-Labs / eigenlayer-contracts

Other
617 stars 329 forks source link

EigenPod.verifyBalanceUpdate should handle the case where a validator's balance reaches 0 without having a "withdrawable epoch" set #239

Open wadealexc opened 11 months ago

wadealexc commented 11 months ago

Referencing discussions in the PR here: https://github.com/Layr-Labs/eigenlayer-contracts/pull/238#discussion_r1357405928

See also discussion on Slack: https://eigenlabs.slack.com/archives/C05PX94L3H9/p1697144597891359?thread_ts=1697139381.917899&cid=C05PX94L3H9

Sidu28 commented 11 months ago

Had a discussion with @gpsanant about this today. We both agreed that there isn't a reasonable way to prove this edge case: when a Validator is slashed down to 0, is withdrawable but has not withdrawn

One course of action I suggested was that we leave this as is (its a very extreme edge case), document it well and make operators aware that this could happen. This really only becomes a problem when more than 33% of validators double sign and they all get slashed down to 0, which is nuts.

The more long term plan is that Im going to try to see if I can get Terence from Prysm's help to lobby the becaon chain devs to add a "withdrawn" field somewhere. Its a long shot but if we come up with a solid proposal, it might just work.