consensus-specs icon indicating copy to clipboard operation
consensus-specs copied to clipboard

Raise EJECTION_BALANCE from 16ETH to something higher

Open dmitry-brizhinev opened this issue 5 years ago • 4 comments

I want to propose that EJECTION_BALANCE should be higher. Not fixated on any particular number, but I was thinking something like 28ETH or 30ETH.

I asked on reddit: https://www.reddit.com/r/ethstaker/comments/jc8asx/inactive_validators_should_be_ejected_much_faster/ Got some support and some pushback, but no strong arguments against.

Reasoning:

  • The current value of 16ETH is fairly arbitrary. Vitalik mentions that if it was lower then committees are less stable, but he doesn't mention any reason it can't be higher.
  • EJECTION_BALANCE acts as a limit on how much ETH a validator can lose due to something going wrong and taking them offline (especially if something goes really wrong and 33% of other validators are offline too). If EJECTION_BALANCE is higher, staking is safer.
  • The downside of raising EJECTION_BALANCE is that if you drop below it in phase 0 you can't earn any more staking rewards
  • However, any situation where this applies - where you fall below EJECTION_BALANCE - is a situation where you might prefer not to fall any further.
  • I can only speak for myself, but I would never allow my balance to reach 30ETH if I could possibly avoid it. Temporary things like computer failure should be rectifiable well before that point. So if the balance has reached 30ETH and I haven't done anything about it, that probably means something has gone horribly wrong, the balance is going to keep falling further, and I would prefer to cut my losses and be ejected.
  • As a bonus, higher EJECTION_BALANCE speeds recovery when the network is not finalizing.

Some commenters on reddit thought maybe it should be raised for medalla but not mainnet, because incentives make it less likely that mainnet will fail to finalize. However it could still happen due to client bugs or major disasters. Even if the network always finalizes, this proposal still reduces the risk of other personal circumstances like illness or computer failure.

dmitry-brizhinev avatar Oct 20 '20 10:10 dmitry-brizhinev

I kind of agree. One of the scary things right now about being a validator is that you would typically lose more if you simply completely "lose" your key, or become incapacitated or die so you can't operate your validator, than you would for committing a slashable offence in most cases.

Raising the ejection balance seems like a reasonable way to lessen this concern.

dankrad avatar Oct 20 '20 15:10 dankrad

it's worth noting that this doesn't necessarily provide much speed up for "As a bonus, higher EJECTION_BALANCE speeds recovery when the network is not finalizing."

Validators are added to exit queue when they reach EJECTION_BALANCE but if mass amounts of validaotrs are offline, they will remain active (and losing balance) until they are (slowly) processed from the queue

djrtwo avatar Oct 21 '20 16:10 djrtwo

Oh, I hadn't realised that.

Do I understand correctly: MIN_PER_EPOCH_CHURN_LIMIT = 4 validators can be removed per epoch (unless there are more than 4 * CHURN_LIMIT_QUOTIENT = 4 * 65536 = 262144 validators = 8.5 million ETH worth of stakes). So with 262144 validators it would take ~100 days for 1/3rd of them to exit.

That does seem to reduce the importance of EJECTION_BALANCE. It also won't protect you from losing funds in the case of non-finality, only if you drop below while other validators are not exiting.

dmitry-brizhinev avatar Oct 22 '20 00:10 dmitry-brizhinev

I can see Danny's point, and it may make sense: After all, an extended period of non-finality is a correlated failure, so we may argue that people should be punished accordingly, and losing most of their balance is correct. However, what rubs me the wrong way in this case it's that those with the lowest balances would be the first to exit and the ones with the best chance of having some of their balances spared. :(

I think there is still a case for a higher ejection balance to eventually stop the normal inactivity leak (possibly exacerbated by repeated temporary quadratic leaks).

dankrad avatar Oct 28 '20 11:10 dankrad

I am closing this issue because it seems stale. Please, do not hesitate to reopen it if this is a mistake

leolara avatar Jun 04 '25 09:06 leolara