Difficulty is a measure of how difficult it is to find a hash below a given target. The Bitcoin network has a global block difficulty. Valid blocks must have a hash below this target. Mining pools also have a pool-specific share difficulty setting a lower limit for shares. How often does the network difficulty change? What is the formula for difficulty?
Traditionally, it represents a hash where the leading 32 bits are zero and the rest are one this is known as “pool difficulty” or “pdiff”. The Bitcoin protocol represents targets as a custom floating point type with limited precision; as a result, Bitcoin clients often approximate difficulty based on this this is known as “bdiff”. How is difficulty stored in blocks?
What does the increase in mining difficulty factor mean to bitcoin miners?
Each block stores a packed representation called “Bits” for its actual hexadecimal target. The target can be derived from it via a predefined formula.
The largest legal value for this field is 0x7fffff. To make a larger value you must shift it down one full byte. Also 0x is the smallest positive valid value. How is difficulty calculated? What is the difference between bdiff and pdiff?
It uses a modified Taylor series for the logarithm you can see tutorials on flipcode and wikipedia and relies on logs to transform the difficulty calculation: Current difficultyas output by Bitcoin’s getDifficulty.
Graphs What is the maximum difficulty? There is no minimum target. The maximum difficulty is roughly: Can the network difficulty go down? See discussion in target. What is the minimum difficulty? The minimum difficulty, when the target is at the maximum allowed value, is 1.