"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.
Users/Holders
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
PUSH0
(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
initcode
and charging 2 gas for every 32-byte chunk ofinitcode
to 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
SELFDESTRUCT
semantics 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?
Shapella is a combination of two terms: Shanghai and Capella. Shanghai refers to the fork on the execution client side, while Capella represents the upgrade on the consensus layer client side.
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.
Stakers/Node Operators
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.
Client | Version |
---|---|
Execution Layer | |
Nethermind | 1.17.3 |
Geth | 1.11.5 |
Erigon | 2.42.0 |
Besu | 23.1.2 |
Consensus Layer | |
Teku | 23.3.1 |
Nimbus | 23.3.2 |
Prysm | 4.0.0 |
Lodestar | 1.7.0 |
Lighthouse | 4.0.1 |
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 0x01
address?
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 0x00
or 0x01
.
Developers
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 ofExecutionPayloadV1
that includes an additional 'withdrawals' field.ExecutionPayloadBodyV1
: Contains the body of an execution payload, including transactions and withdrawals.
Furthermore, PayloadAttributesV2
is an updated version of PayloadAttributesV1
that also contains an additional 'withdrawals' field.
New methods have been added to the API, including:
engine_newPayloadV2
engine_forkchoiceUpdatedV2
engine_getPayloadV2
These new methods are utilized when the timestamp value is greater than or equal to the Shanghai timestamp. Additionally, two more methods, engine_getPayloadBodiesByHashV1
and 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.
Related Articles
- 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
Related Videos
- 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 contact@etherworld.co.
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!