Over the past several months, Ethereum core developers have been working on the London network upgrade. It will follow Berlin, which went live in April.
While the upgrade blocks haven’t been set across the various networks yet, the list of EIPs included in London is now final. As per the upgrade specification, they are:
- EIP-1559: Fee market change for ETH 1.0 chain
- EIP-3198: BASEFEE opcode
- EIP-3529: Reduction in refunds
- EIP-3541: Reject new contracts starting with the 0xEF byte
- EIP-3554: Difficulty Bomb Delay to December 1st 2021
Let’s look at each of these in more detail!
EIP-1559: Fee market change for ETH 1.0 chain
One of the most anticipated changes to Ethereum, EIP-1559 is the largest change that will be introduced in London. The EIP will introduce a “base fee” in blocks on the network which will track the gas price that the network will accept from transactions based on demand for blockspace. This means that it will be easier for wallets and users to estimate what the right price for their transaction should be. Additionally, EIP-1559 adds a new transaction type where users can specify the maximum fee they are willing to pay, along with the maximum they are willing to send to the miner, and get a refund for the difference between that maximum and the base fee and miner tip. Finally, the EIP will also cause part of the transaction fees to be burnt, which is something that a large part of the community see as a critical improvement to the Ethereum network’s economics.
It would take much more than a singular post to go over the mechanics, benefits and implications of EIP-1559. A list of resources covering each aspect of the EIP can be found here. A full PEEPanEIP episode about EIP-1559 is also available here.
EIP-3198: BASEFEE opcode
This EIP is a companion EIP to EIP-1559. It simply adds an opcode, BASEFEE, which returns the value of the base fee for the block it is executed in. This will enable smart contracts to access this value on chain, which can help with submitting fraud proofs and creating trustless gas price derivatives. For a full overview of the proposal, see PEEPanEIP-3198: BASE FEE opcode with Ratan Rai Sur.
EIP-3529: Reduction in refunds
Another significant change introduced in London is the removal of gas refunds from SELFDESTRUCT and reduction of refunds for SSTORE. While the refunds were originally intended to incentivize developers to clear the state when possible, in practice they have led to an increased state size with the invention of Gas Tokens. Using these refunds, Gas Tokens can fill up the state when gas prices are low and then get refunds for the execution of transactions when gas prices rise.
Along with this, gas refunds contribute to variance in block execution time. Before London, up to 50% of the refunded gas could be used to execute further computation within the same block. This means that, in practice, the maximum block size could be up to 1.5x the gas limit. EIP-3529 lowers this “execution refund” from 50% to a maximum of 20%. This change will help offset some of the additional block size variance introduced by EIP-1559, which allows block to use up to twice the current gas limit.
EIP-3541: Reject new contracts starting with the 0xEF byte
EIP-3541 is a simple change which lays the groundwork for broader EVM improvements, described in EIP-3540. This EIP will make it impossible for new contracts starting with the 0xEF byte to be deployed. Existing contracts will not be affected. Once London is live, the shortest sequence of bytes starting with 0xEF which does not match the starting sequence of existing contracts could then be reserved as a way to identify contracts which comply with EIP-3540 semantics. Note: EIP-3540 will require an additional network upgrade to be deployed. It is also worth noting that if EIP-3540 is never deployed, EIP-3541 can also be used to reserve starting bytes for use in another scheme.
EIP-3554: Difficulty Bomb Delay to December 1st 2021:
EIP-3554 delays the difficulty bomb, also known as the ice age. The difficulty bomb/ice age is a mechanism that was introduced in Ethereum to “freeze” mining as the network transitions to proof of stake. Given that the proof of stake transition is not yet ready, we need to delay when the bomb will “go off”. This has already been done three times in the past: in the Metropolis (EIP-649), Constantinople (EIP-1234) and Muir Glacier (EIP-2384).
While previous delays have been quite long, this time core developers opted for a shorter delay, pushing the bomb back to December 2021. By then, either the transition to proof of stake will happen, or another network upgrade will need to take place on the network.
And there you have it: the entire list of changes being introduced in London. Blocks for the testnets, and the associated client release versions, should soon be announced on the Ethereum Foundation blog.
Ethereum Cat Herders are conducting an Ethereum blockchain users and developers survey in association with Nethermind client to better understand the future requirements of client developers in terms of tools and documentation. Consider responding to the survey if you interact with the Ethereum blockchain, run Ethereum 1.0 or Eth2.0 validator nodes, or otherwise contribute to blockchain technology.