Berlin hard fork

Mainnet 2021-04-15

State access gas costs were adjusted, and a framework (typed transactions) that can hold multiple transaction formats was created.

What changed

Users
The cost of first reading state went up, so transactions that touch many contracts or storage slots at once cost more in fees than before. In return, the cost of reading again a location already read in the same transaction went down. Using an access list transaction, which declares the addresses and storage slots to be accessed in advance, could recover part of the increased cost. A simple transfer of ether to a single destination did not change.
Wallet & app developers
A framework that marks the type at the very start of a transaction (typed transactions) was introduced. Wallets and libraries had to be updated to read and sign both existing transactions and the new format. The access list transaction was the first new format built on this framework. Contract developers had to re-measure gas usage because of the higher cost of first reading state. The operation that computes modular exponentiation of large numbers (MODEXP) became cheaper, making cryptographic operations such as RSA signature verification cheaper.
Node operators
State access costs were raised because disk reads were priced below their real burden, which made them an attack vector for lengthening block processing time. With costs aligned, there was less room to slow nodes down with such transactions. Beyond upgrading the client to the new version before the designated block, nothing else changed directly.

Key EIPs

← Hard forks · Roadmap