Capella x Shanghai = Shapella
The upcoming changes feature two simultaneous upgrades amalgamated to encompass all facets of the upgrade. Shanghai refers to changes to Ethereum’s execution layer, mainly enabling staked ETH to be deposited to execution layer wallets. The Shanghai upgrade requires a simultaneous change to the Beacon Chain, which has been dubbed Capella. Justin Florentine, a staff protocol engineer for ConsenSys’ Hyperledger-Besu, further explained the combined upgrades at the execution and consensus layers:“It is doubly named because it is the first simultaneous upgrade of Ethereum’s execution layer and consensus layer, and is highly anticipated because it will enable staked ETH withdrawals.”Within the Ethereum ecosystem, execution layer upgrades are named after cities that have hosted Devcon events, while consensus layer upgrades are named after stars. Therefore the upcoming upgrade’s technical name is Shapella, combining Shanghai and Capella. Nevertheless, given the focus on activating staked ETH withdrawals, the wider cryptocurrency ecosystem refers to the looming upgrade as Shanghai. As Beiko explained, Shanghai closes an important chapter in Ethereum’s evolution:
“It’s better to think of Shanghai as ‘finishing the Merge’ than related to future upgrades. We didn’t introduce withdrawals during the Merge because that upgrade was already the most complex in Ethereum’s history.”
Shanghai in a nutshell
As has been highlighted by several analysts and Ethereum developers, Shanghai features five EIPs. EIP-4895 will enable users to withdraw from the Ethereum staking contract, which had previously been locked. Reward payments will be sent automatically to withdrawal addresses at regular intervals to validators. Users also have the option to exit staking entirely, which will return their entire validator balance.Validator balances are maxed out at 32 ETH, meaning that balances above this threshold as a result of rewards do not contribute to the principal amount nor increase the weight of a validator on the network. EIP-3651, EIP-3855, EIP-3860 and EIP-6049 are the other four elements of the network upgrade. Matt Nelson, ConsenSys Hyperledger Besu and Web3 senior product manager, highlighted the impact of each of these EIPs. The Ethereum protocol prices gas based on how many units of work a function will require of a computer in the network. Changes to Ethereum’s gas costs often adjust to correct overpriced or underpriced operations that have central processing units doing more or less work than anticipated. Warm coinbase (3651), PUSH0 (3855) and the initcode changes (3860) are part of these corrections, according to Nelson. EIP-3651 changes the price of accessing the coinbase address of a validator that submits and executes transactions. Validators receive fees to their coinbase address for maintaining the network. As Nelson summed up, EIP-3651 looks to lower the gas cost of accessing a coinbase address so that users that submit transactions can pay the validators directly in specific conditions:Ethereum's Shanghai upgrade will unlock 17.6M ETH or over $28 billion. https://t.co/qt8K4Zn55y
— Cointelegraph (@Cointelegraph) March 2, 2023
“Regardless, this EIP corrects 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.”EIP-3860 will have a similar effect. Developers submit initcode to the network when deploying a new smart contract. When the initcode is executed, a smart contract “bytecode” is created on-chain and runs each time the contract is called and runs Decentralized Applications (DApps). Metering initcode intends to correct the gas cost required for network nodes to process and deploy the smart contracts specified in the initcode. Validating nodes currently check that contracts are valid on deployment, which costs time and gas to complete, which the initcode EIP aims to improve as Nelson explained:
“EIP-3860 applies a new cost to the initcode that scales in correlation to the size of the `initcode` to ensure handling that contract creation is costed appropriately.”Lastly, EIP-3855 carries out a “straightforward and simple change” to the Ethereum Virtual Machine (EVM) and gas costing. The current state of the EVM does not store a value of zero on the execution stack cheaply, with developers having to use the “expensive” PUSH1 operation to set a value to zero. Nelson highlighted that gas costs are directly linked to storage space in this instance, meaning the EVM only needs 1 byte to store a single zero, while more than 1 byte is needed to store a bigger number from the PUSH1 operation:
“This change creates a new PUSH0 opcode, which is cost for 1 byte of data storage (less than PUSH1), and will bring gas costs for developers (and ultimately users) down.”Beiko also reiterated that Ethereum Virtual Machine Object Format EIPs initially included in the Shanghai upgrade have been removed from the event.
What to expect
The effect of the Shanghai upgrade on cryptocurrency markets and the value of ETH is another pertinent question that is perhaps more difficult to answer. Andrew Thurman, an analyst at blockchain analytics platform Nansen, told Cointelegraph that the upgrade would have significant ramifications for supply flows and price of ETH, given that staking creates fundamental changes to Ethereum’s market structure:“Some believe that a successful network upgrade will spur more deposits, which would lead to bullish market activity. Others, meanwhile, believe that large portions of the staked ETH supply — now in excess of 17.5 million ETH — will be withdrawn and sold.”Simon Dudley, ConsenSys senior blockchain protocol engineer, summed up a shift in focus for the Shanghai upgrade to prioritize validator withdrawals. This meant that the implementation of certain EIPs were shifted further down the timeline to limit risks of further delays to the upcoming upgrade:
“For this reason, there was a strong desire among the core developers to prevent the Shanghai upgrade from becoming overly complicated.”A number of these EIPs have been pushed back to the Cancun upgrade which will precede Shanghai later in 2023. This includes improvements that will lay the foundation for sharding, namely “Proto-Danksharding” EIP-4844. Dudley noted that Shanghai intentionally excluded foundational sharding work, but work on EIP-4844 has continued in parallel. He also concedes that the deployment of Shanghai may well influence the ongoing work on sharding in the months to come:
“Shipping the Shanghai upgrade may have an impact on sharding because it frees up developers who were working on Shanghai to focus on the more complicated series of sharding upgrades, known as The Surge.”The Shanghai upgrade is scheduled to take place on the Ethereum mainnet in early April. The original date was pushed out from March 2023, with the Goerli test network — which allows for development testing before mainnet deployments — carrying out the Shapella upgrade on March 14.