Target

Revision as of 15:18, 9 January 2020 by Angus Adams (talk | contribs)

See also Difficulty.

The target is a 256-bit number (extremely large) that all Bitcoin clients share. The SHA-256 hash of a block's header must be less than or equal to the current target for the block to be accepted by the network. The lower the target, the more difficult it is to generate a block.

It's important to realize that block generation is not a long, set problem (like doing a million hashes), but more like a lottery. Each hash basically gives you a random number between 0 and the maximum value of a 256-bit number (2^256-1). If your hash is below the target, then you win. If not, you increment the nonce (completely changing the hash) and try again.

The bitcoin network tries to produce one block every ten minutes on average. As mining hash power changes over time, it achieves this through changing the target value.

Historically (prior to forking from BTC in August 2017), bitcoin changed its target every 2016 blocks (exactly two weeks if a block time of 10 minutes was kept perfectly). This change in the target is known as a 'difficulty adjustment'. Under the original difficulty adjustment paradigm, when adjusting the target, every bitcoin client compared the actual time it took to generate 2016 blocks with the two week goal, and modified the target by the percentage difference. Post forking from BTC in August 2017, bitcoin changed the original difficulty adjustment algorithm to what was coined the Emergency Difficulty Adjustment (EDA) algorithm. The EDA had the capacity to update the target value every time a new block was found (as opposed to every 2016 blocks), while still targeting a ten minute block average. The EDA was changed to the Difficulty Adjustment Algorithm (DAA) on 17 November 2017 to address instabilities associated with the EDA.


SOmething about original can only change by a factor of 4 max


What is the target now?

When does the target change next?

What has the target been in the past?

What is the maximum target?

The maximum target used by SHA256 mining devices is:

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Because Bitcoin stores the target as a floating-point type, this is truncated:

0x00000000FFFF0000000000000000000000000000000000000000000000000000

Since a lower target makes Bitcoin generation more difficult, the maximum target is the lowest possible difficulty.

Related Links

See also Difficulty