Bits The target in a compact format.
Here's what the target was when Block 406,800 was mined:
And this is the Bits field you'll find in the block header for it:
Bits is just a shorthand version of the Target.
It looks alien at first, but it's basically split in to two parts:
- Exponent: This gives you the size of the target in bytes.
- Coefficient: This gives you the initial 3 bytes of the target.
So if you want to find out what the Target was when a block was mined, the Bits field will help you work out the (slightly rounded up) value of it.
Remember that the exponent is a hexadecimal number, so
0x18 means that's
24 bytes in decimal.
The coefficient part taken from the original target is always rounded up. Here's the current target.
The full target is often shown as 32 bytes in length, which is where all those preceeding zeros come in. But really all of the following are the same number:
Target: 0x00000000000000000696f4000000000000000000000000000000000000000000 Target: 0x0696f4000000000000000000000000000000000000000000 Target: 0x696f4000000000000000000000000000000000000000000
Why have "Bits"?
Question: Why ever would you convert the Target in to "Bits"? Why not just store the full Target in the block header?
Answer: Because the block header doesn't need to store the absolute precision of the full Target, so the Bits format saves on space.