Try   HackMD

This note tracks potential EVM upgrade in the near future, and tries to give each naive workload and feasibility estimation.

Shanghai

List taken from Shanghai Network Upgrade Specification.

Included

EIP Workload Uncertainty [1]
EIP-3651: Warm COINBASE Either add some extra logic in the first BeginTx or introduce another state BeginBlock to warm COINBASE address Low-Medium
EIP-3855: PUSH0 instruction Extend current PUSH state to support it Low-Medium
EIP-3860: Limit and meter initcode Check the length should be less than 0x6000 in RETURN when is_create Low
EIP-4895: Beacon chain push withdrawals as operations Ignore

Cancun

List taken from Cancun Network Upgrade Specification.

Considered for Inclusion

EIP Workload Uncertainty
EIP-1153: Transient storage opcodes Create a new tag TransientStorage in State circuit that has per-tx lifespan Medium
EIP-4844: Shard Blob Transactions Ignored
EIP-6780: SELFDESTRUCT only in same transaction TODO Medium

Others

EIP Workload Uncertainty
EIP-2537: Precompile for BLS12-381 curve operations TODO
EIP-3540: EVM Object Format (EOF) v1 Extend Bytecode circuit to validate bytecode format if it has EOF magic prefix then annotate if it's valid, and add section_index for PC and JUMP* related logic and rename original index to container_index for CODECOPY and EXTCODECOPY High
EIP-3670: EOF - Code Validation Extend Bytecode circuit to validate bytecode bytes if it has EOF magic prefix then annotate if it's valid. Medium-High
EIP-4200: EOF - Static relative jumps Extend EVM circuit to have RJUMP, RJUMPI, and RJUMPV Medium-High
EIP-4750: EOF - Functions TODO
EIP-5450: EOF - Stack Validation TODO
EIP-4788: Beacon block root in the EVM TODO
EIP-5656: MCOPY - Memory copying instruction TODO
EIP-5920: PAY opcode TODO
EIP-7069: Revamped CALL instructions TODO

Reference


  1. Higher uncertainty naively means more time to come up with the solution, but not necessarily means more time to implement. ↩︎