- Withdrawals are approaching! The Shapella network enhancement will be activated on the Ethereum network at epoch 194048, set for 22:27:35 UTC on April 12, 2023
- Stakers & node operators are encouraged to review this article as well as the Withdrawals FAQ
- Until April 5th, the Ethereum Bug Bounty rewards have been increased for vulnerabilities related to Shapella
- You may now register to receive email updates regarding these upgrade announcements. Scroll to the bottom of the page to complete this 📩
Following a seamless Goerli transition, client teams have set the Shapella upgrade to activate on the mainnet. A consensus was quickly established on an April 12th date during the 157th AllCoreDevs Execution Layer meeting.
This upgrade follows The Merge and allows validators to withdraw their stake from the Beacon Chain back to the execution layer. It also brings new features to both the execution and consensus layers, as detailed below.
Upgrade Specification
The Shapella upgrade consists of modifications to the execution layer (Shanghai), consensus layer (Capella), and the Engine API.
Shanghai
Changes to the execution layer included in Shanghai can be accessed here. For your reference, they include:
Please note that EIP-6049 represents only a deprecation notification. Client teams anticipate that SELFDESTRUCT semantics may evolve in future network upgrades, but the opcode’s function remains unchanged in Shanghai.
Moreover, the complete set of Shanghai changes can now be reviewed in the Ethereum Execution Layer Specification (EELS), which serves as a new Python reference implementation for the execution layer.
Capella
Modifications to the consensus layer for the Capella upgrade are outlined in the v1.3.0-rc.5 specifications. The README provides a comprehensive list of modifications. At a high level, the upgrade incorporates:
- Complete and partial withdrawals for validators
- BLSToExecutionChange messages, which permit validators utilizing a BLS_WITHDRAWAL_PREFIX to transition it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a prerequisite for withdrawals
- Separate state and block historical accumulators, replacing the original singular historical roots
Stakers are advised to consult the Withdrawal FAQ for additional guidance on how to prepare for Capella.
Engine API
Modifications to the Engine API can be located in the shanghai.md of the execution-apis repository. In summary, a WithdrawalV1 structure is introduced and integrated into relevant structures and methods. Modifications to execution layer APIs since The Merge have been compiled in the repository’s latest release.
Client Releases
The clients listed below provide support for Shanghai & Capella on the Ethereum mainnet. Previous Shapella releases were limited to testnet implementations and are not suitable for the mainnet upgrade.
When determining which client to operate, validators should pay particular attention to the risks of utilizing a majority client on both the execution layer (EL) and consensus layer (CL). An explanation of these risks and their implications can be found here. An assessment of current EL and CL client distribution and instructions for transitioning from one client to another can be accessed here.
Consensus Layer Mainnet Releases
Note: when operating a validator, both the Consensus Layer Beacon Node and Validator Client must be updated.
Execution Layer Mainnet Releases
Note: a problem has been detected in Erigon v2.41.0. This release will not be appropriate for the Shapella upgrade. Erigon users should upgrade to v2.42.0.
FAQ
As an Ethereum user or Ether holder, is there anything I should do?
In brief, no.
If you utilize an exchange, digital wallet, or hardware wallet, you do not need to take any actions unless instructed to do so by your exchange or wallet provider.
If you operate your own Ethereum node, refer to the next question.
As a non-staking node operator, what do I need to do?
To ensure compatibility with the Mainnet upgrade, upgrade your node to the specified version of your Ethereum client mentioned in the table above.
As a staker, what do I need to do?
To maintain compatibility with the Mainnet upgrade, update your node to the version of your Ethereum client mentioned in the table above. Ensure that both your beacon node and validator client are updated!
We also suggest reviewing the Withdrawal FAQ.
What occurs if I am a staker or node operator and I do not engage in the upgrade?
If you are utilizing an Ethereum client that has not been updated to the latest version (as listed above), your client will synchronize with the pre-fork blockchain once the upgrade is enacted.
You will remain on an incompatible chain adhering to the old regulations and will be unable to send Ether or function on the post-Shapella Ethereum network.
As an application or tooling developer, what should I do?
Shapella does not introduce disruptive changes for smart contracts. Application and tooling developers should evaluate the upgrade modifications to ensure any necessary corrections are performed, or to comprehend how to apply newly introduced features.
That being said, application developers should note that as of Shanghai, the SELFDESTRUCT opcode is deemed deprecated. Although its semantics do not alter as a part of this network upgrade, they are likely to change in future upgrades. Refer to EIP-6049 for further details.
Why is it termed “Shapella”?
Upgrades to the execution layer correspond to Devcon city names, while those to the consensus layer correspond to star names. “Shapella” merges Shanghai, the venue of Devcon 2, and Capella, the most luminescent star in the northern constellation of Auriga.
Where can I observe Shapella going live?
EthStaker & Ethereum Cat Herders are hosting a Shapella viewing party, commencing shortly before the upgrade is activated. You can join in here.
Thanks to everyone who played a part in the Shapella upgrade, and to all the stakers – both seasoned and new – who contributed to securing what are still the early stages of proof-of-stake Ethereum!
Cover image originally by Yiran Ding, modified by Tomo Saito.