Difficulty is defined relatively: it is how much more difficult it is to mine a block compared to a fixed "maximum target", which corresponds to roughly 232 hashes.
In more detail, a Bitcoin block is PoW-valid when its hash (interpreted as a 256-bit integer) is less or equal to that block's "target". Difficulty does not exist at the protocol level; internally, everything uses targets.
The rules for target adjustment are as follows:
- Blocks whose height n is not a multiple of 2016 have the same target as their parent block.
- Blocks whose height n is a multiple of 2016:
- Take the parent's target
- Multiply that target by the number of seconds in two weeks.
- Divide the result by the difference (in seconds) between the timestamp of block n-2016 and that of block n-1.
- If the result is more than 4 times the parent target, or less than 1/4th of the parent target, clamp it.
- If the result is above the maximum target, use the maximum target instead.
- Round the target down to fit in Bitcoin's custom 32-bit floating point format (called the "nBits" encoding).
The expected number of hashes at a given target T is 2256 / (T+1). The higher the target, the easier it is to mine a block. The maximum target is thus a limit on how easy mining can get, and is the fixed constant (2224 - 2208) in Bitcoin. The expected number of hashes at this target is 248 / (216-1), or just over 232.
The difficulty is now a purely human representation of the target value: it is the maximum target divided by the actual target, and is at least 1 (at maximum target).

You can get bonuses upto $100 FREE BONUS when you:
💰 Install these recommended apps:
💲 SocialGood - 100% Crypto Back on Everyday Shopping
💲 xPortal - The DeFi For The Next Billion
💲 CryptoTab Browser - Lightweight, fast, and ready to mine!
💰 Register on these recommended exchanges:
🟡 Binance🟡 Bitfinex🟡 Bitmart🟡 Bittrex🟡 Bitget
🟡 CoinEx🟡 Crypto.com🟡 Gate.io🟡 Huobi🟡 Kucoin.
Comments