POW specification

Is there an actual exact POW specification in human readable format? Except the source code with a little comments.

The mathematical spec is at [0], while the C-code spec is at [1]

[0] https://github.com/tromp/cuckoo/blob/master/doc/mathspec
[1] https://github.com/tromp/cuckoo/blob/master/doc/spec

1 Like

Thank you. With the mathspec it becomes more clear. Except the SIPHASH key initialization from the header and nonce, and final solution hashing.

The above is the general, blockchain independent, C32 PoW specification.

That’s the Grin specific interface with the PoW.
In Grin, the siphash key K is computed as the blake2b hash of the pre-pow header (up to and including the nonce), and the final solution hash is the blake2b hash of the sequence of 42 32-bit cycle indices.

If you leave out the middle step of going from K to a 42-cycle, then it’s just like Bitcoin’s double hash:-)

1 Like