Skip to content
Satoshi Gazette
Glossary

Difficulty epoch

A run of 2,016 blocks sharing one difficulty, from a height divisible by 2,016 to the block before the next; at its end the difficulty is retargeted from how long it took.

Mining

Definition dated

also retarget period · difficulty period

Bitcoin's difficulty is set per epoch. Every block from a height divisible by 2,016 up to the block before the next such height carries the same target, encoded in its header's bits field. When an epoch's last block is found, the next block's target is computed from how long the epoch took against two weeks, the time 2,016 blocks would take at ten minutes each.

Within an epoch, a rise in hashrate shows up as blocks arriving faster, not as a higher difficulty. That is why the Network tab shows the current epoch's progress in blocks, with mempool.space's projection of the change: the next difficulty can be projected, but it is not known until the epoch ends.

The epoch is the unit in which the Gazette reports difficulty changes; the rule that sets each new value is defined under difficulty adjustment.

Common misreadings3

  • People say

    Difficulty adjusts every two weeks

    Precisely

    It adjusts every 2,016 blocks. Two weeks is the target for an epoch; a real epoch runs longer or shorter as the hashrate moves.

  • People say

    Difficulty tracks the hashrate block by block

    Precisely

    It is fixed for the whole epoch and changes only at the boundary, by at most a factor of four either way.

  • People say

    The retarget measures 2,016 block intervals

    Precisely

    It compares the timestamps of the epoch's first and last blocks, which span 2,015 intervals: an off-by-one in the original code that is now part of consensus.