Specification for an extension of ECIP-1040 to allow contract creation transaction to create multiple versions.
This ECIP defines an extension to the base layer of account versioning (ECIP-1040) to allow multiple account versions to be used in contract creation transaction. Although this is not necessary at this moment, it will once we have multiple independent VMs (such as eWasm).
The base account versioning layer only allows contract of the newest version to be deployed via contract creation transaction. This is a reasonable assumption for current Ethereum network, because most of new features added to EVM are additions, and developers almost never want to deploy contracts that are not of the newest version. In this section, we provide an extension to allow multiple versions of contracts to be deployed via contract creation transaction.
Add an additional field
version (256-bit integer) in contract
creation transaction. So it becomes
version. When signing or
recovering, sign ten items, with
s as defined by EIP-155.
The transaction would be executed with the code’s version in
version supplied, and deploys contract of
not supported or validation does not pass, return out-of-gas.
By providing the additional field
version, a contract creation
transaction can specify which version it wants to deploy. In case of
two independent VMs such as EVM and eWASM, we can allow two
LATEST_VERSIONs to be specified – one for EVM and another for
eWASM. Both of them then can deploy new contracts via transactions.
This ECIP only changes transaction formats and does not change any VM execution logic, thus it has no backwards compatibility issue.
Not yet provided.
Not yet implemented.
This work is licensed under Apache License, Version 2.0.