It seems to me that the reason the proof-of-work involves finding a hash beginning with a (temporarily) fixed number of zeroes is because one can easily check whether they have solved the problem by comparing the hash they have generated with the value 2^k, where k = (256 - # of zero bits) and doing so is a relatively inexpensive operation. Also, it is easy to make the problem arbitrarily difficult up to a certain point (as well as having the difficulty increase exponentially with the number of zeros).

Are there any other reasons for why this particular problem was chosen for the proof-of-work?

  • 5
    It doesn't check for a number of zero bits. It checks whether the hash, when interpreted as a 256-bit number, is lower than a target number. That target number is occasionally adjusted. Nov 14, 2015 at 22:19
  • Is the target number a power of two, or can it be any 256-bit number?
    – Ali
    Nov 15, 2015 at 1:34
  • @Ali It can't be any 256 bit number (there's a format it needs to follow, see here) but you can use very nearly any value.
    – Nick ODell
    Nov 15, 2015 at 2:28

1 Answer 1


It reuses the HashCash construct invented by Adam Back (a scheme for proving work was done to send an email, resulting in it being treated as less spammy by spam filters), though with a newer hash function and different header structure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.