Bitcoin difficulty adjustment: how the network keeps blocks near ten minutes
Miners join and leave all the time, yet Bitcoin blocks keep arriving roughly every ten minutes. The reason is a simple feedback rule that every node runs every 2,016 blocks.

Photo: “Thermometer” by renaissancechambara, CC BY 2.0, via Flickr (edited: cropped and resized).
Every 2,016 blocks, each Bitcoin node compares how long those blocks took with the two-week goal and rescales the mining target in proportion [1]. Faster blocks make mining harder; slower blocks make it easier. One adjustment can raise difficulty by at most 300% or cut it by 75% [1].
Key points
- 1Difficulty measures how hard it is to find a valid block compared with the easiest possible block.
- 2The goal is 2,016 blocks in 1,209,600 seconds — two weeks, or one block every ten minutes on average.
- 3The adjustment is proportional: if the last 2,016 blocks took 12 days instead of 14, difficulty rises by about 16.7%.
- 4A single adjustment is capped at four times harder or four times easier.
- 5The rule keeps block timing steady; it does not set fees, speed up transactions or say anything about price.
On this page
- What is Bitcoin’s difficulty?
- Why does Bitcoin need a difficulty adjustment?
- How does the adjustment work, step by step?
- How big can a single adjustment be?
- What happens when hash rate suddenly rises or falls?
- Can miners fake the timestamps?
- How does difficulty connect to hash rate?
- What does the difficulty adjustment not do?
- What mistakes do beginners make here?
- Frequently asked questions
- The bottom line
- Sources
What is Bitcoin’s difficulty?#
To create a block, a miner must find a block-header hash at or below a number called the target (see how Bitcoin mining works). The target is a huge 256-bit number, which is awkward to read, so people usually quote difficulty instead. The developer glossary defines difficulty as how hard it is to find a block relative to the easiest possible block, which has a difficulty of 1 [2].
Difficulty = target at difficulty 1 ÷ current targetThe two move in opposite directions: a smaller target means fewer winning hashes and therefore a higher difficulty [3]. The lowest possible difficulty is 1, reached when the target is at its maximum allowed value [3].
Each block header stores the target in a compact encoded form called nBits [4]. Every node can read it, and every node can check that a block’s hash really is at or below it.
Why does Bitcoin need a difficulty adjustment?#
The speed of block production depends on how many guesses miners make per second — the hash rate. Hardware gets faster, and miners switch machines on and off as prices and costs change. With a fixed target, more machines would mean faster blocks and fewer machines would mean slower ones.
The whitepaper anticipated this. To compensate for increasing hardware speed and varying interest in running nodes, the proof-of-work difficulty is set by a moving average targeting an average number of blocks per hour; if blocks come too fast, difficulty increases [5]. The Bitcoin Wiki describes the result: difficulty is adjusted so that, given the estimated computing power of the whole network, one block is found on average every ten minutes [6].
How does the adjustment work, step by step?#
There is no committee and no vote. Every full node runs the same calculation on the same public data and arrives at the same answer. Bitcoin’s developer guide describes it like this [1]:
- Wait for a 2,016-block boundary
Difficulty only changes at block heights that are multiples of 2,016. In between, every block must use the same target.
- Measure the elapsed time
Nodes take the timestamps stored in the first and last block headers of the period and subtract one from the other.
- Compare with two weeks
The ideal value is 1,209,600 seconds: 2,016 blocks × 600 seconds.
- Rescale the target in proportion
Too fast → smaller target (harder). Too slow → larger target (easier). The change is capped in both directions.
- Mine the next 2,016 blocks
The new target holds for the whole next period, then the process repeats.
In Bitcoin Core’s code, the core of the calculation is two lines: the new target is the old target multiplied by the actual timespan and divided by the target timespan [7]. Because difficulty is the inverse of the target, difficulty moves the opposite way by the same factor.
New target = old target × (actual time for the last 2,016 blocks ÷ 1,209,600 s)Equivalently, new difficulty = old difficulty × (1,209,600 s ÷ actual time). The actual time is clamped to between one quarter and four times the two-week target before the multiplication [7].
How big can a single adjustment be?#
If the last 2,016 blocks took less than two weeks, difficulty is raised in proportion, by as much as 300%. If they took more than two weeks, it is lowered in proportion, by as much as 75% [1]. In multiplier terms, one adjustment can make mining at most four times harder or four times easier.
| Time for 2,016 blocks | Average block time | New difficulty vs old | Change |
|---|---|---|---|
| 2 days | 1.43 min | × 4 (cap; raw ratio was × 7) | +300% |
| 7 days | 5.00 min | × 2 | +100% |
| 12 days | 8.57 min | × 1.1667 | +16.67% |
| 14 days (on target) | 10.00 min | × 1 | 0% |
| 16 days | 11.43 min | × 0.875 | −12.5% |
| 28 days | 20.00 min | × 0.5 | −50% |
| 70 days | 50.00 min | × 0.25 (cap; raw ratio was × 0.2) | −75% |
Hypothetical durations, computed with the proportional rule and the 4× limits. Ignores the small 2,015-interval skew.
New difficulty as a multiple of the old one
What happens when hash rate suddenly rises or falls?#
Between adjustments the target is fixed, so block times drift with hash rate. The adjustment then catches up at the next boundary. Two worked cases show the lag.
| Step | Value |
|---|---|
| Average block time = 600 s ÷ 1.2 | 500 s (8.3 min) |
| Time for 2,016 blocks = 2,016 × 500 s | 1,008,000 s ≈ 11.67 days |
| New difficulty = old × 1,209,600 ÷ 1,008,000 | old × 1.2 (+20%) |
| Average block time in the next period | back to about 600 s |
The period ran about 2.3 days early, and the next one starts with a difficulty that matches the new hash rate.
| Step | Value |
|---|---|
| Average block time = 600 s ÷ 0.75 | 800 s (13.3 min) |
| Time for 2,016 blocks = 2,016 × 800 s | ≈ 18.67 days |
| New difficulty = old × 14 ÷ 18.67 | old × 0.75 (−25%) |
| Average block time in the next period | back to about 600 s |
While the slow period lasts, confirmations take longer and fewer blocks are available for transactions, which can push fees up. Nothing breaks; the network simply waits for the next boundary.
The feedback loop
Can miners fake the timestamps?#
The adjustment relies on timestamps that miners write themselves, so there are limits on what they can write. A block’s time must be later than the median time of the previous 11 blocks, and full nodes will not accept a block whose header is more than two hours in the future by their own clock [4]. Those rules leave some wiggle room for individual blocks, but they stop a miner from claiming wildly wrong times.
How does difficulty connect to hash rate?#
Since difficulty is tuned so that blocks take about 600 seconds, you can work backwards from difficulty to the hash rate that must have been mining. The Bitcoin Wiki gives the approximation hash rate ≈ difficulty × 2^32 ÷ 600 [3]. At difficulty 1, that is around 7 million hashes per second [3].
| Step | Value |
|---|---|
| Difficulty 1 × 2^32 ÷ 600 | ≈ 7.16 million hashes/s |
| Difficulty at block 100,000: 14,484.16 | ≈ 104 billion hashes/s |
| Difficulty 22,012.49 (wiki example) | ≈ 157.6 billion hashes/s |
The block 100,000 difficulty is quoted in the wiki’s vocabulary page [6]; the 22,012.49 example and its result of “around 157 Ghashes per second” come from the wiki’s difficulty page [3]. Data providers such as Coin Metrics use the same idea to publish daily hash-rate estimates [8].
What does the difficulty adjustment not do?#
- It does not make transactions faster. More hash rate is absorbed by higher difficulty, so the average block interval stays about ten minutes.
- It does not set fees. Fees come from users competing for limited block space; see transaction fees explained.
- It does not react instantly. It only acts at 2,016-block boundaries, so a sudden change in hash rate shows up first as faster or slower blocks.
- It is not a price signal. A rising difficulty means more mining work, not more demand for bitcoin. Treat headlines that read it as a buy or sell signal with caution.
The difficulty rules in one place
What mistakes do beginners make here?#
- Thinking difficulty changes every block
On Bitcoin’s main network it changes only at multiples of 2,016 blocks. Charts that look smooth are usually showing hash-rate estimates, not difficulty.
- Confusing difficulty with hash rate
Difficulty is a rule set by the network; hash rate is the work miners actually do. Difficulty follows hash rate with a lag.
- Believing ten minutes is exact
Ten minutes is an average target. Individual blocks can arrive much sooner or much later, because finding a block is a matter of probability [3].
- Reading a difficulty record as bullish news
A new high says miners are spending more effort. It says nothing reliable about where the price will go next.
Frequently asked questions#
How often does Bitcoin’s difficulty change?
Every 2,016 blocks, which is about two weeks when blocks arrive on schedule [1]. Block explorers show a countdown to the next adjustment and an estimate of its size.
Can the difficulty go down?
Yes. If the last 2,016 blocks took longer than two weeks, difficulty falls in proportion, by at most 75% in one step [1].
Who decides the new difficulty?
Nobody decides it. Every node calculates it from public block timestamps using the same rule, and rejects blocks that use the wrong target [7].
Why every 2,016 blocks and not more often?
Bitcoin’s documentation does not give an official reason; the Bitcoin Wiki points only to a community discussion of the question [3]. A commonly discussed trade-off is that more frequent adjustments would react faster but rely more on individual timestamps — treat that as a viewpoint, not a documented design rationale.
Do other coins adjust difficulty the same way?
Not necessarily. Other proof-of-work coins can use different intervals and formulas. Check each network’s own documentation rather than assuming it works like Bitcoin.
The bottom line#
The difficulty adjustment is a thermostat: every 2,016 blocks it measures how long the last period took and rescales the target so the next period lands near two weeks. It is proportional, it is capped at four times either way, and it lags real changes in hash rate.
To see the effort the adjustment responds to, read the hash rate profile; to see how miners’ income reacts, continue with the Puell Multiple.
Sources#
Grade A = primary source (regulator, protocol specification, client code, original author). Grade B = expert secondary source used for explanation only.
- Abitcoin.org developer documentation. Developer Guides: Block Chain (proof of work), 2026.
- Abitcoin.org developer documentation. Bitcoin Developer Glossary: Difficulty, 2026.
- BBitcoin Wiki. Difficulty, 2026.
- Abitcoin.org developer documentation. Developer Reference: Block Chain (block headers), 2026.
- ASatoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System, 2008.
- BBitcoin Wiki. Vocabulary, 2026.
- ABitcoin Core (GitHub). src/pow.cpp (CalculateNextWorkRequired), 2026.
- BCoin Metrics Data Knowledge Base. Hash Rate (network data definitions), 2026.


