New Proof of Work protocol - Proof of Random Run
-
I was thinking about another way to do proof of work protocols for blockchains, and I came up with an idea that I’m calling Proof of Random Run. I won’t go into how PoW works here, that can be an exercise for the reader if you don’t already know.
The idea is to use the properties of a PRNG to create a proof of work that is easy to verify but variably difficult to achieve. PRNG’s work by being initialized with a seed, and each iteration produces a new semi-random number. When a PRNG is initialized with the same seed, it will produce the same sequence.
The goal is to produce a seed which produces a sequence which is adjusted for difficulty:
- Of a given length.
- Containing only numbers of a certain property, such as being above a certain value.
To make this work, you would require the sha256(sha256(tx)) + nonce to be used as the seed for a PRNG which then produced a sequence, for example, that was 5 long that had only numbers greater than 0.5.
Because the seed is the txid + nonce, PoW couldn’t be precomputed and stored. The probability of a PRNG producing a sequence is easy to compute: For a sequence of given length with target numbers >= N, the probability is (1 - N) ^ length.
I was thinking the [url=http://en.wikipedia.org/wiki/Mersenne_twister]mersenne twister[/url] would be a perfect candidate for this, since it’s easy to implement and the technique isn’t subject to third-parts observation prediction, which is what makes MT unsuitable for cryptography.
Would this work? If not, why not?
-
I might need some help with this.
-
Bumping this thread for forum members outside our Slack to read.