geeogi

timings of eth staking withdrawals, january 2023

The Shanghai upgrade including staked ETH withdrawal is targeted for March 2023 and will enable validators to initiate a full or partial withdrawal of their staked ETH for the first time since staking began in 2020. Soon LSD users and operators will be able to redeem their staked ETH and rewards natively allowing for arbitrage around the 1:1 peg – but it won't be instant.

It’s likely that many validators will be keen to exit in March (selling, restructuring etc.) and since exits are subject to a rate limit it could take around 80 days for a validator to withdraw their entire stake (see below for calculation).

You don't have to wait in the exit queue though. Validators could instead choose to partially withdraw their stake e.g. withdraw their staking rewards while keeping their principle 32 ETH staked (in fact, any excess balance above 32 ETH will be automatically moved to the withdrawal queue and withdrawn to the validator's withdrawal address this way). Partial withdrawals don’t need to move through the exit queue and will only need to move through the withdrawals queue which is estimated to take a week at most.

So, depending on the demand for native redemptions, it’s possible for operators like Lido to cover redemptions through partial withdrawals of their staking rewards. At the moment Lido has around 200k ETH ($300m) sitting in rewards eligible for partial withdrawal and in theory redemptions could start as soon as the week after the Shanghai upgrade. A community call detailing the Lido withdrawal design is scheduled for the 24th.

the exit queue

Validators wanting to withdraw their entire stake will enter the exit queue where validators are processed FIFO every epoch (32 blocks). The number of validators processed per epoch, known as the churn limit, is proportional to the size of the validator set and is currently 8. Given the validator set is around 500,000 this would mean that if 30% of validators decide to exit in March it will take around 80 days to process the entire queue.

see churn_limit and validator lifecycle

the withdrawal queue

After moving through the exit queue validators will then have to wait in the withdrawals queue. Partial withdrawals move straight to this queue. This queue is fast moving with 16 withdrawals processed per block meaning that the entire validator set could be processed in around 4 days (assuming their withdrawal credentials are 0x01 format).