EIP-4345 Difficulty bomb delayed to June 2022 (Difficulty Bomb Delay to June 2022)
Final · Consensus & staking · EIP status Final · created 2021-10-05
Changes the block difficulty calculation to use a fake block number, with 10,700,000 blocks subtracted from the real one, so that the effect of the difficulty bomb is pushed back to appear from June 2022.
Why it is needed
Ethereum has a built-in mechanism called the difficulty bomb, which exponentially raises block difficulty over time and gradually lengthens the block interval. It is meant to force the network to move on to the next stage, but if it goes off before upgrade preparations are finished, blocks slow down and all users are inconvenienced. When this proposal was made in October 2021, the goal was to finish The Merge, the transition from proof of work to proof of stake, before June 2022. So the timing is readjusted so that the bomb's effect begins to appear very gradually right around then, giving the Merge work breathing room while keeping the pressure that prevents the transition from being postponed. If the Merge is not ready by then, the bomb can be delayed again.
What changes
Today
- Under the existing settings, the difficulty bomb would activate earlier and block times would begin to grow
- There is a risk that the network slows down before Merge preparations are finished
After EIP-4345
- The difficulty calculation behaves as if it were looking at the bomb 10,700,000 blocks later, so the effect is pushed back to around June 2022
- By projection, it starts gently, with block times increasing by about 0.1 seconds in June 2022 and about 0.5 seconds in July
- If the Merge is delayed, the bomb can be delayed further
Who is affected
- Users: Block times keep their usual pace without sudden increases.
- Miners: The difficulty increase caused by the difficulty bomb is pushed back to after June 2022.
- Client teams: Clients must be implemented to use the fake block number in the difficulty calculation starting from FORK_BLOCK_NUMBER.
- Core developers: There is time to finish the Merge work, but the bomb does not disappear entirely, so schedule pressure remains.
In depth
Easing difficulty with a fake block number
In calc_difficulty, block.number, which was used in the exponential ice age component, is replaced with the following expression. fake_block_number = max(0, block.number - 10_700_000) if block.number >= FORK_BLOCK_NUMBER else block.number. That is, for blocks after FORK_BLOCK_NUMBER, the value of the real number minus 10,700,000 (minimum 0) is used only for the bomb calculation, and the rest of the difficulty adjustment logic is left untouched. As a result, clients calculate difficulty as if the bomb were adjusted 10,700,000 blocks later than it actually is.
The projection behind the 10,700,000 offset
The projection script in the source uses as inputs a block number of 13423376 as of October 15, 2021, a difficulty of 9545154427582720, and a block adjustment of 10700000. It sets the number of blocks in a month as (86400 * 30) // 13.3, derives diff_adjustment = 2 ** ((future_blknum - block_adjustment) // 100000 - 2) from the future block number, and converts it to a ratio against the current difficulty. This calculation projected that block times increase by about 0.1 seconds in June 2022, 7.5 months later, and by about 0.5 seconds in July, 8.5 months later. The value aims at a level where the effect starts to become visible but there is still room to respond if needed.
Relationship to the Merge schedule
This delay targets the Merge happening before June 2022. Instead of removing the bomb entirely, it is timed to that point, which secures time to finish the transition while keeping the incentive to upgrade. The source states explicitly that the bomb can be delayed further if the Merge is not ready by then.
Security considerations: the hashrate drop variable
If the effect of the bomb is misestimated, block times can run longer than expected until the next hard fork ships. When difficulty changes sharply this error grows, and long-term difficulty changes also affect the timing of the bomb epoch. In particular, if the network hashrate drops sharply before the Merge, the point at which the bomb is felt in block times could come earlier, and the offset of 10,700,000 was chosen with this possibility in mind. The source document judges that such variables affect network usability but are unlikely to lead to a security problem.
Backwards Compatibility and Status
There are no known backwards compatibility issues. This is because it is a single change that only alters the block number used in the bomb term of the difficulty calculation. The status of this EIP is Final, meaning the specification is settled and will not change further.