Ethereum Mainnet Shapella Upgrade

Ethereum has proposed to implement the Shanghai – Capella (Shapella) upgrade after the completion of the Merge upgrade (transition from the proof-of-work (PoW) consensus mechanism to proof-of-stake (PoS) consensus mechanism) on the network.

In Ethereum’s transition from the proof-of-work (PoW) to proof-of-stake (PoS) consensus mechanism, network validators were expected to stake 32ETH to be eligible in the block validation process while accruing network rewards for validating transactions. However, since the completion of the Merge, validators have not been able to access their staked ETH. The Shanghai upgrade through EIP-4895 designed to primarily focus on ensuring that network validators can access or withdraw their ETH (both staked and accrued ETH). The upgrade also introduces other improvements related to gas fees.

The Shapella upgrade combines changes to the execution layer (Shanghai), consensus layer (Capella) and the Engine API. The Shanghai upgrade is expected to implement a change that unlocks validator withdrawals of staked ETH in securing the network as its major change among other upgrades. The Capella upgrade is the consensus layer upgrade with features that includes automatic withdrawals for withdrawable validators, partial withdrawals sweep for validators with certain credentials and balances, and an operation to change withdrawal credentials to enable withdrawals for a validator. The Engine API introduces changes to the execution layer APIs in Shanghai.

The Ethereum Mainnet Shapella upgrade is expected to occur when the Beacon chain epoch reaches 194048 and when mainnet reaches timestamp 1681338455. This is estimated to take place on April 12, 2023, 10:27 pm UTC / April 13, 2023, 2:27am GST.

Announcement | Ethereum Mainnet Shapella Upgrade

 

Evaluation Process  

 MidChains has:  

  • Evaluated what is changing.

  • Analysed the impact of the changes. 

 

What is Changing? 

Shanghai

  • EIP-4895: Beacon chain push withdrawals as operations - This EIP proposes a new method to support validator withdrawals to be pushed from the Beacon chain onto the Ethereum Virtual Machine (EVM) via a new “system-level” operation type. The architecture is “push”-based, rather than “pull”-based, where withdrawals are required to be processed in the execution layer as soon as they are dequeued from the consensus layer. This EIP suggests a new type of object – the “withdrawal operation” as it has special semantics different from other existing types of EVM transactions.

  • EIP-3651: Warm COINBASE – This EIP proposes to allow block builders and validators access the COINBASE address (which is a software used by validators and block builders), at a lower gas cost. The COINBASE address shall be warm at the start of transaction execution, in accordance with the actual cost of reading that account. At the start of transaction execution, “accessed_addresses” shall be initialized to also include the address returned by COINBASE. This is expected to improve Maximal Extractable Value (MEV) payments by correcting a previous oversight on the cost to access the COINBASE address and gives some added benefits to users and developers that open-up new use cases. (Coinbase in this case refers to the first transactions in a new block on a blockchain network. This is not related to the entity exchange Coinbase)

  • EIP-3855: PUSH0 instruction – introduces a code dubbed “PUSH0” (“0x5f”) instruction, that will reduce gas costs for developers by pushing the constant value 0 onto the stack. The “base” gas cost is used for instructions that places constant values onto the stack, such as ADDRESS, and ORIGIN, among others.

  • EIP-3860: Limit and meter initcode – introduces a cap on the gas cost for developers when interacting with “initcode” (a code used by developers for smart contracts). This is an extension of the EIP-170 by introducing a maximum size limit for “initcode” - (MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152). The EIP-3860 further introduces a charge of “2” gas for every 32-byte chunk of “initcode” to represent the cost of jumpdest-analysis. Lastly, the size limit results in the nice-to-have property that EVM code size, code offset (PC), and jump offset fits a 16-bit value.

  • EIP-6049: Deprecate SELFDESTRUCT – proposes to deprecate the SELFDESTRUCT opcode and warns against its use as it has a potential future behavior change. The 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.

 Execution Specification – execution-specs/shanghai.md at master · ethereum/execution-specs · GitHub

 

Capella

This upgrade introduces the following in the consensus layer:

  • Full and partial withdrawals for validators

  • BLSToExecutionChange messages, allowing validators using a BLS_WITHDRAWAL_PREFIX to update it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, which is a prerequisite for withdrawals.

  • Independent state and block historical accumulators, replacing the original singular historical roots.

Consensus Specification - consensus-specs/beacon-chain.md at dev · ethereum/consensus-specs · GitHub

 

Engine API - Shanghai

  • Introduces a WithdrawalV1 structure and added to relevant structures and methods. Changes to execution layer APIs since The Merge have been bundled in the repository's latest release.

Release - execution-apis/shanghai.md at main · ethereum/execution-apis · GitHub

 https://github.com/ethereum/execution-apis/releases/tag/v1.0.0-beta.3

 

Impact Analysis 

MidChains will support the Ethereum Mainnet Shapella upgrade. Deposits and withdrawals for ETH and all ERC20 standard tokens (LINK, MATIC, USDC, ZRX, AAVE, BNT, BAT, COMP, CRV, CHZ, MANA, ENJ) shall be temporarily halted during the upgrade period as a precautionary measure. No action is required by clients who hold ETH and ERC20 standard tokens. Clients’ funds will not be impacted by this upgrade. All deposits and withdrawals made after the upgrade are expected to be processed without any impact. Ethereum Shapella upgrade is not noted to be contentious.

 

Impact on Client Funds: No impact to clients' funds post network upgrade.

Regulatory implications: None. 

Maturity / Market Capitalization: None. 

Security and Operations: Enhanced security, and improved efficiency upon completion of the upgrade.

Traceability / Monitoring: None

Exchange Connectivity and Demand: No impact.  

Type of Distributed Ledger Technology (DLT): No impact.

Innovation and Efficiency: lower gas fees and improved efficiency. 

 

Upgrade Preparation 

All Ethereum node operators are required to upgrade nodes. No action is required by clients who hold ETH and listed ERC20 standard tokens (LINK, MATIC, USDC, ZRX, AAVE, BNT, BAT, COMP, CRV, CHZ, MANA, ENJ).

MidChains will temporarily halt deposit and withdrawal of ETH and all ERC20 standard tokens (LINK, MATIC, USDC, ZRX, AAVE, BNT, BAT, COMP, CRV, CHZ, MANA, ENJ) during the upgrade.