"Shapella is coming." While the Ethereum community is excited, some people are still confused about the upcoming upgrade. The EtherWorld team has made their best effort to answer all common questions regarding the Shapella hard fork.
What changes are happening on the CL side?
The Capella upgrade is the third major upgrade to the consensus layer or Beacon Chain after the Altair and Bellatrix upgrades. It includes features related to validator withdrawals, such as automatic withdrawals of withdrawable validators and partial withdrawals sweep for validators with
0x01 withdrawal credentials and balances in excess of
MAX_EFFECTIVE_BALANCE (32 Ether). For information on the consensus layer changes, we recommend reading our detailed blog post.
Which EIPs will be activated in the Shanghai upgrade?
In the execution layer, the following EIPs will be activated:
- EIP-3855: PUSH0 instruction - Introduces the
0x5f) instruction, which pushes the constant value 0 onto the stack.
- EIP-3860: Limit and meter initcode - Extends EIP-170 by adding a maximum size limit for
initcodeand charging 2 gas for every 32-byte chunk of
initcodeto account for jumpdest-analysis costs. The size limit ensures that EVM code size, code offset (
PC), and jump offset can fit within a 16-bit value.
- EIP-4895: Beacon chain push withdrawals as operations - Facilitates the activation of withdrawals. For more details, watch our informative video on this topic.
- EIP-6049: Deprecate SELFDESTRUCT - Serves as a deprecation warning, with client teams anticipating changes to
SELFDESTRUCTsemantics in future network upgrades. However, the opcode's behavior remains unchanged in Shanghai.
- EIP-3651: Warm COINBASE - This EIP ensures that the COINBASE address is warm. Prior to EIP-3651, accessing COINBASE was costly due to the cold address status under the access list framework introduced in EIP-2929. For more information, refer to our detailed blog post.
What is Shapella?
Do Ethereum users or Ether holders need to take any action during the Shapella upgrade?
No action is required from Ethereum users or Ether holders during the Shapella upgrade.
How quickly can validators make partial withdrawals?
A single withdrawal queue handles both partial and full withdrawals for validators. Every slot (12 seconds), 16 partial withdrawals are processed starting from index 0. Full withdrawals take longer within the same queue. The number of full withdrawals per day depends on the active validator count and increases as more validators join. The processing time for withdrawals is contingent upon the active validator count, with an estimated time of approximately 4.34 days.
What preparations are necessary for stakers?
To ensure compatibility with the Mainnet upgrade, stakers must update their node to the latest version of their Ethereum client, which will facilitate the hard fork.
Are partial/full withdrawals subject to gas fees each time?
No, partial/full withdrawals will appear in the validator's execution layer address without incurring any charges from the Ethereum network. This is regarded as a balance increase rather than a transaction, resulting in a gasless state change.
How can validators determine if they have a
0x00 or a
There are several ways to verify this, with the simplest method being the use of the ethdo tool. Execute the following command:
ethdo validator info --validator=<yourvalidatorIndex> --verbose
This will display a "withdrawal credentials" field that begins with either
What should dApp developers be aware of in the Shapella upgrade?
A. It is important for dApp developers to know that the
SELFDESTRUCT opcode is now considered deprecated. EIP-6049: Deprecate SELFDESTRUCT does not suggest a specific modification but serves to discourage its use and inform developers that future alterations may break their code.
What are the changes being introduced to the Engine API?
A: The Engine API is implementing new structures and methods, such as:
WithdrawalV1: Represents the validator withdrawal object.
ExecutionPayloadV2: An enhanced version of
ExecutionPayloadV1that includes an additional 'withdrawals' field.
ExecutionPayloadBodyV1: Contains the body of an execution payload, including transactions and withdrawals.
PayloadAttributesV2 is an updated version of
PayloadAttributesV1 that also contains an additional 'withdrawals' field.
New methods have been added to the API, including:
These new methods are utilized when the timestamp value is greater than or equal to the Shanghai timestamp. Additionally, two more methods,
engine_getPayloadBodiesByRangeV1, have been introduced to retrieve execution payload bodies.
The Shapella network upgrade is scheduled to be activated on the Ethereum network at epoch
194048. This event is expected to take place on April 12, 2023, at 22:27:35 UTC. After the network upgrade is complete, we will start exploring the forthcoming Dencun upgrade.
- Shapella Testing
- Why Ethereum Clients prefer SSZ over RLP?
- Upcoming Changes to Ethereum Blockchain
- How Warm COINBASE helps in Gas Cost Reduction?
- Transient Storage for Beginners: EIP-1153 Explained
- The Future of Ethereum Goerli Testnet
- ETH Withdrawals: Everything You Need to Know
- Client Diversity
- Reth: Ethereum Execution Layer Client Written in Rust
- Sign-In with Ethereum: EIP-4361
Disclaimer: The information contained on this web page is for education purposes only. Readers are suggested to conduct their own research, review, analyze and verify the content before relying on them.
To publish press releases, project updates and guest posts with us, please email at email@example.com.
Subscribe to EtherWorld YouTube channel for ELI5 content.
Support us at Gitcoin
You've something to share with the blockchain community, join us on Discord!