I like this idea
My main concern with the proposal as currently written is that it seems to degrade the UX for home stakers. Based on my reading of the code in your current proposal, if you’re a home staker with a single validator and you opt into being a compounding validator, you won’t experience a withdrawal until you’ve generated MAX_EFFECTIVE_BALANCE_MAXEB
- MIN_ACTIVATION_BALANCE
ETH, which (based on your 11 year calculation) would take ~66 years.
Speaking for myself, I don’t think I’d want to opt into this without some way to trigger a partial withdrawal before reaching that point. You have to pay taxes on your staking income after all
Off the top of my head, I can think of 2 ways to mitigate this:
- Enable
MAX_EFFECTIVE_BALANCE_MAXEB
to be a configurable multiple of32
up to2048
by either adding a byte to every validator record or utilizing theWITHDRAWAL_PREFIX
and reserving bytes 0x01…0x40 to indicate the multiple of 32. - Enable execution-layer initiated partial withdrawals
Note that 1 is a bit of a hack. I’ve heard 2 discussed before and (after reading some comments) it looks like @wander already mentioned this