Shanghai Upgrade

What is Shanghai Upgrade?

Shanghai is the next planned network upgrade on Ethereum Mainnet which is expected to activate Withdrawal of staking rewards with EIP-4895. This could be extremely beneficial for the on-chain validators.

Shanghai upgrade may bring significant feature upgrades to EVM with a set of proposals. EIP-3540, also known as the EVM Object Format (EOF) proposes an extensible and versioned container format for the EVM with a once-off validation at deploy time. There are a bunch of EIPs proposed bt team Epsilon for EVM improvement.

Shandong is the first experimental testnet deployed with a bunch of EOF EIPs by the Ethereum JS team. Community may expect multiple iterations of this testnet to test different CFI EIPs.

Readiness Checklist

List of outstanding items before deployment.

Code merged into Participating Clients:

For more Information on this click here.

EOF Devnets Breakout Room

Nov 4, 2022, 14:00 UTC

Notes of the meeting

EIPs Considered For Inclusion

EIP-4895
EIP-4895: Beacon chain push withdrawals as operations introduces a system-level “operation” to support validator withdrawals that are “pushed” from the beacon chain to the EVM. These operations create unconditional balance increases to the specified recipients.
EIP-3540
EIP-3540: EVM Object Format (EOF) v1 introduces an extensible and versioned container format for the EVM with a once-off validation at deploy time. The version described here brings the tangible benefit of code and data separation, and allows for easy introduction of a variety of changes in the future. This change relies on the reserved byte introduced by EIP-3541.
EIP-3860
EIP-3860: Limit and meter initcode extends EIP-170 by introducing a maximum size limit for initcode. Furthermore, we introduce 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-3670
EIP-3670: EOF - Code Validation introduces code validation at contract creation time for EOF formatted (EIP-3540) contracts. Reject contracts which contain truncated PUSH-data or undefined instructions. Legacy bytecode (code which is not EOF formatted) is unaffected by this change.
EIP-3855
EIP-3855: PUSH0 instruction introduces the PUSH0 (0x5f) instruction, which pushes the constant value 0 onto the stack.
EIP-3651
EIP-3651: Warm COINBASE address shall be warm at the start of transaction execution, in accordance with the actual cost of reading that account.
EIP-1153
EIP-1153: Transient storage opcodes proposal introduces transient storage opcodes, which manipulate state that behaves identically to storage, except that transient storage is discarded after every transaction. In other words, the values of transient storage are never deserialized from storage or serialized to storage. Thus transient storage is cheaper since it never requires disk access. Transient storage is accessible to smart contracts via 2 new opcodes, TLOAD and TSTORE, where “T” stands for “transient:”
EIP-2537
EIP-2537: Precompile for BLS12-381 curve operations introduce nine separate precompiles to perform the operations. Mapping functions specification is included as a separate document. Mapping function does NOT perform mapping of the byte string into field element (as it can be implemented in many different ways and can be efficiently performed in EVM), but only does field arithmetic to map field element into curve point. Such functionality is required for signature schemes.
In the section below you can find more resources providing information on the Shanghai Upgrade.
Updates
2022-11-22 : Relaunch with EIP-4895 Withdrawals planned next week (updated)
2022-11-05 : Testnet restart at 2022-11-05T10:54:46Z, new chainId 1337903
2022-11-02 : EIP-3860 consensus bug in block 6101, fix in the works
2022-10-26 : Restarted! 🤩 ❤️ (Genesis: 1666736008, Oct 25 2022 22:13 UTC)
2022-10-25 : Shandong testnet restart (EIP-3540 and other fixes)
2022-10-19 : New PoW based faucet (thanks @pk910! ❤️ )
2022-10-18 : Various tx-submission-related stability fixes (tx pool, networking)
2022-10-17 : HCaptcha-based faucet being drained by bot (unstable)
2022-10-17 : Some Shandong media coverage
2022-10-17 : EIP-3540 not properly working, fix in the works
2022-10-14 : eth_estimateGas RPC method off, use higher gas price for txs
2022-10-13 : Shandong testnet launches (Twitter)