VM: Implement EVM Object Format (EOF) (EIP-3540) #1704
Labels
effort: E2 days
effort: E3 weeks
package: vm
prio: P3 important
target: master
Work to be done towards master branch
type: feature
EIP-3540 is long in the making and moved to CFI (Considered-for-Inclusion) for the
Shanghai
HF with strong developer backing in ACD 131 (February 4, 2022), so this should be safe to implement on our side as well.The EIP introduces a container format for EVM bytecode which allows for validation of this code at the time of deployment (pros and cons of deployment vs. runtime validation in the EIP). This will allow to more easily add new features to the EVM and deprecate existing feature and/or bytecodes.
For the VM we need to implement the switches from the Code Validation section from the EIP for contract creation txs and
CREATE
orCREATE2
instructions, likely to happen somewhere in/around the evm._executeCreate() method.For EOF(1) identified bytcode the validation rules need to be applied. There are also some changes to the VM execution semantics which needs to be considered, e.g. things need to run on
code
(e.g. "JUMPDEST analysis is only run on the code.") and not the whole container thing.Test for this EIP are in the works here: ethereum/tests#847
Two additional implementation notes:
master
, do not expect anything breaking hereshanghai
here yet (or assign this functionality) - too early in the process - but limit to an EIP which can be activated or notThe text was updated successfully, but these errors were encountered: