2

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?

3
  • 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. Commented Nov 14, 2015 at 22:19
  • Is the target number a power of two, or can it be any 256-bit number? Commented 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. Commented Nov 15, 2015 at 2:28

1 Answer 1

7

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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.