- The Shanghai upgrade will likely happen around March 2023
- A key feature of the Shanghai upgrade will enable Ethereum staking withdrawals, as opposed to the current model which does not allow for staked ETH to be withdrawn
- To note, Shanghai is the name given to the execution layer (EL) upgrade and Capella is the name of the coinciding consensus layer (CL) upgrade.
The Shanghai Upgrade
Currently, the Shanghai upgrade will focus on enabling withdrawals on the execution layer. Withdrawals (EIP4895) – a new type of transaction that will push withdrawals from CL to EL; currently both stake and consensus layer rewards are locked and have been since ETH staking went live on the Beacon Chain over two years ago (for a discussion of CL rewards vs EL rewards see here).
Two more prominent upgrades are being considered for Shanghai, but may come in a later update. These upgrades include:
- 4844 (aka proto-danksharding) – is about an important step toward scaling Ethereum; broadly the idea is to create a new transaction format that rollups can use, which reduces the cost and, therefore, helps with scaling (for more see here).
- EVM Object Format (EOF) (EIP3540, ‘3670, ‘4200, ‘4750, ‘5450)- today EVM bytecode lacks structure, which makes its execution resource intensive and makes introducing new features difficult. EIP-3540, the first of several EOF proposals to potentially be included in Shanghai would provide some basic structure, while being backwards compatible, which would alleviate many of the issues mentioned (for more, see EIP-3540).
The conundrum faced by the core Ethereum team was one big upgrade in June/July (including the three above) or several smaller upgrades with withdrawals being enabled as soon as possible. After some back and forth, the core team moved toward the second choice – to prioritize withdrawals shipping around March.
The Capella Upgrade
Capella is the consensus layer upgrade necessary for withdrawals. The Capella specifications are likely the most helpful for ETH stakers curious about how withdrawals will work. This is because the interactions required to do a full withdrawal happen on the CL, whereas the EL is concerned with taking a withdrawal request from the CL and processing it, i.e., sending the ETH to the correct address.
There are two broad types of withdrawals that will be handled by Capella – full and partial withdrawals.
Full withdrawals involve a validator request to exit the active validator set – this cannot be undone. After some delay a validator’s stake and accrued rewards become withdrawable and is picked up by the withdrawal sweep and sent to the validator’s withdrawal address.
Partial withdrawals will be automatic – any amount over 32 ETH will be sent to the validator’s withdrawal address. As validators earn consensus rewards their balance increases above 32 ETH. However, any amount above 32 ETH does not earn the validator additional rewards, i.e., a validator with 32 ETH earns the same amount of consensus rewards, all else equal, as a validator with a balance of 35 ETH, for instance. It is for this reason that the protocol will automatically withdraw amounts above 32 ETH.
It should be noted that there is a limit for both partial and full withdrawals. To strike a balance between clearing withdrawal queues and avoiding withdrawal-clogged blocks, the core community decided to limit how many withdrawals can happen per block to 16 (see ‘MAX_WITHDRAWALS_PER_PAYLOAD’). This number could change, but serves as a decent estimate, remembering that there is a potential for a block with every slot, which occurs every 12 seconds.
What Stakers Need to Know
For stakers wishing to exit entirely, i.e., remove their stake and their consensus layer rewards, a request must be made to exit the active validator set. The validator must wait a minimum of 4 epochs (~25 minutes). Currently there is a maximum of seven validators that can exit per epoch; in other words, every validator will need to wait their turn if there is a queue. During this time validators are required to continue performing their duties.
Once the validator has exited the active set they must wait an additional 256 epochs (~27 hours). After this delay, the validator’s stake and consensus rewards are said to be withdrawable. However, there is one final delay; as mentioned above there is a maximum of 16 withdrawals per block.
Staking Ethereum with Figment
If you are interested in staking Ethereum, Figment offers a host of services aimed at delivering safe and reliable staking rewards for your assets. Figment is the world’s leading provider of blockchain infrastructure. Our 200+ institutional clients rely on Figment to provide best in class staking services including seamless and easy integrations, complete staking coverage, detailed rewards reporting, insights, enterprise-grade liquid staking, and MEV-Boost activation on ETH.
When it comes to Staking Ethereum, Figment offers:
- Point-and-click staking: Experience the best point-and-click staking interface for ETH. Stake, unstake and claim rewards on Figment prime.
- The ability to collect more rewards: Figment clients benefit from our engineering and protocol expertise to maximize the chances of earning more rewards with MEV-Boost.
- Fully automated rewards reporting: Access detailed and comprehensive rewards statements in various formats.
Figment’s Protocol team has extensive Ethereum knowledge intended to help dive into the specifics such as governance and staking information. Contact us to learn more about Ethereum staking.