Before reading this proposal, review the updated IoTeX governance process here .
- 2022-09-01: Initial draft
This proposal introduces upgrades to the iotex-core blockchain protocol, including upgrading to EVM London and changing the first nonce from 1 to 0 for a new address.
The IoTeX blockchain uses the Ethereum Virtual Machine (EVM) to process Solidity smart contracts. Currently, the iotex-core blockchain protocol utilizes the Berlin release of the EVM. The latest production release of EVM is London, which added 5 Ethereum Improvement Proposals (EIPs) to the Berlin release. Three of these EIPs are relevant to the IoTeX blockchain:
EIP-3198 Returns the
BASEFEEfrom a block
EIP-3529 Reduces gas refunds for EVM operations
EIP-3541 Prevents deploying contracts starting with
Additionally, for historical reasons, the first transaction sent from an IoTeX address uses
nonce = 1, while on Ethereum the first transaction has
nonce = 0.
We propose upgrading the iotex-core protocol’s EVM to the London release, as well as updating IoTeX blockchain’s nonce format from
nonce = 1 to
nonce = 0 for new wallets to align with Ethereum.
Upgrading the EVM version will align IoTeX with the latest production version on Ethereum where smart contracts can now access use the
BASEFEE value for a block. In addition, it will fix the gas refund amounts to prevent some attacks and will prohibit the deployment of contracts whose bytecode starts by the
0xEF byte to ensure any conract deployed on IoTeX can still be deployed on Ethereum as is.
For the nonce behavior upgrade, while it is generally only a nuance and not an issue, we should correct the behavior so that the first transaction from a new address created after Mainnet v1.9 will use the same first
nonce = 0 format as is the case for Ethereum. This further enhances IoTeX blockchain’s Ethereum compatibility and paves the way for open integration with more projects, such as Gnosis Safe.
This proposal, if passed, will be activated as part of the Mainnet v1.9 code release. If approved by the community, Mainnet v1.9 will be activated via hard-fork in mid- to late-September 2022.
Please share your thoughts on this proposal using the comments section below – we appreciate your feedback!
If you are in support of this proposal, click “Yes” on the poll below.
If you are not in support of this proposal, click “No” on the poll below.