- Add a rule that the withdrawal delay is not a fixed number of seconds or slots; instead, it is linearly proportional to the number of ETH that was in the active validator set at the time that you join (eg. 3 months if it’s 10 million, 9 months if it’s 30 million, but only ~3 weeks if it’s 2.5 million). Alternatively, we can add a cap at eg. ~3 months.
- Instead of having a hard ~3 month withdrawal time, when a validator withdraws put them at the end of a withdrawal queue, and if one period has length equal to 3 months * k (eg. k = 0.001), each period process a maximum
k * active_validator_set_sizevalidators from the front of the queue.
(1) ensures that under conditions of lower security demand, the total validator count does not decrease as much since more validators would be willing to participate with a lower withdrawal time, thereby spreading out the security loss evenly between reducing the cost of a 51% attack and reducing the maximum safe offline period. (2) ensures that validators can withdraw very quickly in “the normal case” but not during attacks. (1) and (2) can be combined by making the number of withdrawals processed per period be a fixed number.