Istanbul hard fork

Mainnet 2019-12-08

Gas costs were adjusted, and the chain ID opcode and lower precompile prices were added.

What changed

Users
Fees went down for apps that put a lot of data in transactions. Calldata gas was lowered from 68 to 16 per byte, so transactions with large data became noticeably cheaper. Conversely, the price of opcodes that read stored values went up, so calling contracts that read a lot of state used more gas than before. Apps that verify zero-knowledge proofs paid lower fees thanks to the precompile price cuts. How much users noticed depended on which apps they used.
Wallet & app developers
EIP-1884 raised the gas price of state-reading opcodes such as SLOAD, BALANCE and EXTCODEHASH. Contracts that read a stored value within the 2300 gas given when receiving ether failed after the fork, so code with a hard-coded gas amount had to be checked. In exchange, SELFBALANCE was added to read a contract's own balance cheaply. The CHAINID opcode from EIP-1344 lets a contract read its own chain ID directly, so the chain ID can be included in signature verification (EIP-712) to prevent the same signature from being reused on another chain. EIP-1108 made the alt_bn128 precompiles cheaper, which greatly reduced the cost of verifying zero-knowledge proofs (zk-SNARKs).
L2
Rollups post L2 transaction data to L1 as calldata, and EIP-2028 cut the gas per byte from 68 to 16, which greatly reduced this cost. This change made it possible for rollups to run on mainnet at a realistic cost. For zk rollups, the precompile price cut from EIP-1108 also lowered the cost of proof verification. The CHAINID opcode is also used by L2 contracts to identify their own chain.
Node operators
Apart from updating the client, nothing changed in how nodes are operated. As the state grew, the real burden on nodes of reading stored values became heavier than the gas price reflected. The state-read price increase in EIP-1884 was an adjustment to match this. As a result, transactions that slowed block processing by repeating cheap reads became less common, and the burden on nodes was reflected more closely in gas costs.

Key EIPs

← Hard forks · Roadmap