# How 59 days was calculated from the Mastering Bitcoin book?

By | March 4, 2016

For some reason I was re-reading a particular section in a book called Mastering Bitcoin by Andreas M. Antonopoulos (http://chimera.labs.oreilly.com/books/1234000001802) and came across this paragraph:

This means that a valid block for height 277,316 is one that has a block header hash that is less than the target. In binary that number would have more than the first 60 bits set to zero. With this level of difficulty, a single miner processing 1 trillion hashes per second (1 tera-hash per second or 1 TH/sec) would only find a solution once every 8,496 blocks or once every 59 days, on average.

It seems innocent enough and I thought to myself, let me try the numbers to get 59 days. It’ll be a 10 minute job and I can then get on with my life.

Unfortunately, it didn’t quite work that way. I ended up getting some help from Stack Exchange and it was very worthwhile as it showed me that I didn’t really understand what the target meant.

### How it works

If you follow the section on difficulty representation, there is a formula to derive the target. I even blogged about it here. The issue was that with a target, and with a hash rate, how would you determine duration?

The key point to understand is that the target means you need to find a number from 1 -> 238,348 * 2^176 and there are 2^256 possibilities. Therefore, your chances are (238,348 * 2^176)/(2^256).

This results in 238,348 * 2^-80 or 1.9715 * 10^-19 to 4 dp.

### Analogy

You can compare this to rolling a dice. If I gave you a target of 2, meaning you had to roll a number that is 2 or less, your chances are 2 out of 6. So theoretically speaking, if the entire universe was perfectly balanced, all the planets were aligned and the moon was blue, on 6 rolls of the dice, 2 of them would result in a 1 and a 2.

### How to get 59?

Once you have this sorted, to get 59 days is easy. To cycle through 238,348 * 2^176 possible values at a speed of 1 TH/s (1 x 10^12) it is a straight multiplication. Then you just convert to a sensible unit by multiplying appropriately.