Mainnet Shapella Announcement
- Withdrawals are coming! The Shapella network upgrade will activate on the Ethereum network at epoch 194048, scheduled for 22:27:35 UTC on Apr. 12, 2023
- Stakers & node operators should read this post as well as the Withdrawals FAQ
- From now until April 5th, the Ethereum Bug Bounty rewards have been doubled for Shapella vulnerabilities
- You can now sign up to receive emails for these upgrade announcements. Scroll to the bottom of the page to do so 📩
After a smooth Goerli transition, client teams have scheduled the Shapella upgrade for mainnet activation. Consensus was quickly reached on an April 12th date during the 157th AllCoreDevs Execution Layer meeting.
This upgrade follows The Merge and enables validators to withdraw their stake from the Beacon Chain back to the execution layer. It also introduces new functionality to both the execution and consensus layer, described below.
Upgrade Specification
The Shapella upgrade combines changes to the execution layer (Shanghai), consensus layer (Capella) and the Engine API.
Shanghai
Execution layer changes included in Shanghai are available here. For reference, they are:
- EIP-3651: Warm COINBASE
- EIP-3855: PUSH0 instruction
- EIP-3860: Limit and meter initcode
- EIP-4895: Beacon chain push withdrawals as operations
- EIP-6049: Deprecate SELFDESTRUCT
Note that EIP-6049 is only a deprecation warning. Client teams expect SELFDESTRUCT semantics to change in future network upgrades, but the opcode’s behavior remains unchanged in Shanghai.
Additionally, the full set of Shanghai changes can now be viewed in the Ethereum Execution Layer Specification (EELS), which is a new Python reference implementation for the execution layer.
Capella
Changes to the consensus layer for the Capella upgrade are specified in the v1.3.0-rc.5 specifications. The README lists the full set of changes. At a high level, the upgrade introduces:
- Full and partial withdrawals for validators
- BLSToExecutionChange messages, which allow validators using a BLS_WITHDRAWAL_PREFIX to update it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a prerequisite for withdrawals
- Independent state and block historical accumulators, replacing the original singular historical roots
Stakers are encouraged to read the Withdrawal FAQ for more information on how they should prepare for Capella.
Read more: Mainnet Shapella Announcement | Ethereum Foundation Blog