Constantinople hard fork

Includes Petersburg · Mainnet 2019-02-28

CREATE2, which allows addresses to be determined in advance, and bit shift opcodes were added, and the block reward was cut to 2 ETH.

What changed

Users
There were almost no immediately noticeable changes. Bit shift opcodes were added, lowering the computation cost of some contracts a little, and the block reward was cut from 3 ETH to 2 ETH, which reduced the amount of newly issued ETH. The approach of knowing an address before deployment, which smart contract wallets later adopted widely, also started with CREATE2 in this fork.
Wallet & app developers
This is the side that changed the most. CREATE2 determines a contract address in advance from the deployer address, an arbitrary value (salt), and the init code. This made it possible to share an address before the contract has been uploaded and deploy it later. The bit shift opcodes (SHL, SHR, SAR) handle in a single step operations that used to be imitated with multiplication and division, saving gas. EXTCODEHASH cheaply reads only the code hash of another contract, so you can check which contract it is without copying the whole code. The storage gas adjustment proposal (EIP-1283), which was meant to be included together, was dropped from Petersburg after a reentrancy attack risk was found.
L2
One of the reasons CREATE2 was proposed was state channels. Both parties could trust and use the address of a contract not yet on the chain, making it possible to deploy the contract only when a dispute arises. There were no rollups like today's at that time, and this is about the extent of what this fork directly changed for L2.
Node operators
As a hard fork, every node had to update its client before the designated block. The difficulty bomb was delayed by 12 months, which prevented block times from gradually growing longer. Miners producing blocks at the time saw their reward drop from 3 ETH to 2 ETH per block. Validators did not exist yet, so this does not apply to them.

Key EIPs

← Hard forks · Roadmap