This note tracks potential EVM upgrade in the near future, and tries to give each naive workload and feasibility estimation.
List taken from Shanghai Network Upgrade Specification.
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 |
List taken from Cancun Network Upgrade Specification.
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 |
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 |
Higher uncertainty naively means more time to come up with the solution, but not necessarily means more time to implement. ↩︎