What's new with the Ether Shanghai upgrade?
I've already written before about the major update coming to the Ethernet network: the Shanghai Upgrade, through which the Ethernet network will fully transition to a proof-of-stake consensus mechanism. The merge increases the centralization of Ether, which the Shanghai Upgrade should address.
The Ethernet Shanghai network update includes several Ethernet Improvement Proposals (EIPs). In a previous post about this major update, we described the EIPs that will be included in the Shanghai upgrade, which is planned to house six EIPs: EIP-3540, EIP-3651, EIP-3670, EIP-3855, EIP-3860, and EIP-4895. We described these EIPs in detail in our previous article.
The Ethernet Core Developer Conference 151 was held on December 8, where the upcoming Shanghai upgrade was discussed. The summary of this meeting was posted by Tim Beiko, an Ether Developer.
Three new EIPs were added: EIP-4200, EIP-4750 and EIP-5450. Let's take a more detailed look at what they are.
EIP-4200: EOF - Static Relative Jump
This EIP adds three new EVM jump commands, RJUMP, RJUMPI and RJUMPV, which are required for network optimization and cost reduction.
"A recurring topic of discussion is the EVM-only dynamic jumping mechanism. These provide a very flexible architecture with only 2 (!) instructions. However, this flexibility comes at a cost: it complicates code analysis and (in part) leads to the need for JUMPDEST markup. The main benefits of these directives from ...... are reduced gas costs (at deployment and execution time) and better analysis performance."
EIP-4750: EOF - Functions
This EIP, like EIP-4200, is designed to optimize the code. The optimization is achieved by dividing the code into several parts.
"The ability to include multiple code segments in the EOF format (EIP-3540) bytecode, each representing a separate subroutine/function, is introduced. Two new opcodes, CALLF and RETF, have been introduced to call and return such functions. In addition, the JUMPF instruction has been introduced to perform jumps to functions. Dynamic jump instructions are not allowed."
EIP-5450: EOF - Stack Validation
This EIP introduces extended code validation. and is designed to optimize the network.
"Currently, the existing EVM implementation performs extensive validity checks on each executed instruction, such as checking for stack overflow/underflow, sufficient gas, etc. This change is intended to minimize the number of such checks required at runtime by verifying at deployment time."
Two other EIP additions were discussed at Ethercore Developer Conference 151: EIP-663 and EIP-6064. The infinite SWAP and DUP instructions of EIP-663 introduce two new instructions: SWAPN and DUPN, which differ from SWAP and DUP in that the stack depth is increased from 16 to 256 elements. EIP-6046: DEACTIVATE replaces SELFDESTRUCT introduces a change to the SELFDESTRUCT instruction that "does not delete all stored keys and use special values in the account random number to indicate deactivated accounts." The SELFDESTRUCT directive was also renamed to DEACTIVATE.
One of the most interesting pieces of information in Ethercore Developer Meeting 151 was the deadline for the Shanghai upgrade. Developers stated that March 2023 is the deadline for the Shanghai hard fork.