Mining difficulty: the network's thermostat
Difficulty is the number that keeps block production on schedule no matter how much hashrate shows up. How the target works, how adjustments react to hardware booms and busts, and why difficulty — not hashrate claims — is the ground truth.
One number, one target
Recall the lottery: a block wins if its hash falls below a target value. Difficulty is simply the inverse of that target — the higher the difficulty, the smaller the target, and the more guesses a winning ticket takes. Difficulty doesn't make hashing harder per guess; it makes winning guesses rarer.
Expected attempts per block ≈ difficulty × (the constant for the hash's output space). Double the difficulty and you need double the guesses — so at a fixed hashrate, blocks come half as often; at double the hashrate, they come on schedule again.
The thermostat: difficulty adjustment
Chains want blocks on a clock — one per 10 minutes, one per minute, whatever the target interval is. So every chain runs a difficulty adjustment algorithm (DAA): it periodically compares how fast blocks actually arrived against the target and moves difficulty the other way. Blocks too fast → difficulty up. Blocks too slow → difficulty down. Hashrate floods in, the thermostat cools it; miners leave, it heats back up.
How *quickly* the thermostat reacts is a design choice with real consequences:
| Adjustment style | Behavior | Trade-off |
|---|---|---|
| Slow periodic (Bitcoin: every 2,016 blocks ≈ 2 weeks) | deliberately sluggish | stability over responsiveness — if 30% of hashrate vanishes, blocks run slow for days until the next retarget |
| Per-block / continuous (modern chains: LWMA, ASERT-style) | every block nudges difficulty toward the observed rate | keeps block time tight through hashrate swings; small coins need this when their hashrate is volatile |
Worked example
A chain targets 60-second blocks. Over the last adjustment window, blocks actually arrived every 50 seconds — too fast, meaning hashrate outgrew difficulty. The DAA scales difficulty by 60/50 = ×1.2. Next window, the same hashrate now produces blocks every 60 seconds again. If a price crash then ejects a third of the miners, blocks stretch to 90 seconds until the next adjustment relaxes difficulty by ×0.67.
Why difficulty is the ground truth
Reported "network hashrate" is usually an *estimate* back-computed from difficulty and block times — marketing pages can inflate it. Difficulty, by contrast, is written into consensus and visible in every block header. When a small coin claims enormous hashrate, check its difficulty: trivial difficulty means the "hashrate" is borrowed or fleeting (the merged-mining lesson shows exactly how that happens).
See it live on pow.family
Project dashboards chart difficulty next to network hashrate — watch the thermostat track hashrate moves in the live data, and see each coin's current block-time adherence for yourself.

