Proof of work isn't, but could be

Joe Shipman

New Member
Dec 20, 2017
5
3
Princeton, NJ
We accept "proof of work" based on the assumption that there is no faster way to find a nonce which will give a new block a good enough hash value than brute-force search (currently requiring sextillions of guesses on average). But what if there were a hole in the crypto, a shortcut to finding likelier nonces? It would obviously be in the interests of the Bitcoin community to know whether someone had developed such a thing.

As things stand now, this isn't detectable, but only because of the presumption that a successful hash represents work. Everyone who really has done the work, though, not only knows about the successful guess, but also about quintillions or sextillions of unsuccessful guesses which can be compactly represented by specifying the method by which they were generated; in the usual case, it will be possible to say not only that your nonce gives a good hash, but that a large number of others don't--most likely, that yours is the first example in a very long arithmetic progression which succeeds after 10^20 or however many failures.

The success is quickly verifiable, but the failures aren't; however, if I note the first term and common difference of the arithmetic progression I used, and assert that there are no earlier solutions than the one I found, I establish for the record that I am an honest miner who has done the work, because a shortcut to finding solutions while testing a lot fewer of them wouldn't allow me to confidently specify a long enough solution-free progression to avoid suspicion. If the community randomly checked 1% of the new blocks that made such an assertion, someone who was using such a shortcut would eventually be found out or would have to maintain a suspicious silence about his search space or claim a statistically infeasible amount of good luck.

This can be started right away. No change in the protocol is needed for miners to document search space parameters as an "extended proof of work", but it would be socially beneficial to do so, because we would all want to know if someone possessed and was using a secret shortcut to finding good hashes. If this behavioral norm spread, eventually those who refused to go along would invite suspicion. The whole system would thereby acquire protection limiting the damage someone with a secret shortcut could do--the shortcutter could still fake it by verifying enough of a progression including his nonce to avoid suspicion for non-compliance, but it would quickly be noticed that he was consistently much more lucky than he ought to be unless he ended up doing a significant fraction of the brute-force work anyway.

If this practice spread enough, there might be support to change the protocol to include it, though I have no proposal for how to apply sanctions to violators whose purported unsuccessful search space was found to include a valid solution. Even if you think SHA is the pinnacle of secure hash functions, you shouldn't object to such a protocol change, because even though you don't need reassurance there is no hole in the crypto, it's good for Bitcoin overall if more people believe this.

-- Joseph Shipman ShipmanGameConsulting@gmail.com
 

Joe Shipman

New Member
Dec 20, 2017
5
3
Princeton, NJ
You miss the point. The original miner, if he discovered the nonce by a search, has learned not only that the nonce has a low hash, but that all the previous nonces he searched don’t. He is capable of informing us of the search parameters and if we want to check he really did that much work, we can redo his search. We don’t need to generate collisions, we just get a way of communally detecting if anyone has a secret way of generating good nonces more efficiently, a useful thing to confirm.
 
  • Like
Reactions: soodungg26
Mar 16, 2016
12
4
woodcoin.org
Well I am missing something, yes. Suppose I find a nonce N that solves a block, using a secret techinque. I tell you I searched all nonces 0 through N to find it. How can you prove me wrong? Note that miners in pools are given a range of nonces to work on (they don't start from 0).
 
  • Like
Reactions: soodungg26

Joe Shipman

New Member
Dec 20, 2017
5
3
Princeton, NJ
By doing the same search—if I find a different, earlier solution, then you didn’t really check that one even though you asserted there were no solutions between 0 and N-1.

Of course, it’s expensive to check you, but blocks will be spot checked occasionally, maybe a standard will evolve to check 0.1% of the claimed searches, with miners unwilling to specify realistic search parameters coming under a little suspicion. The community has an interest in knowing there isn’t a hole in the crypto.

If there is an even WORSE hole in the crypto, which allows you to confidently find ALL solutions in a range instead of just identifying a subset likely to be rich in solutions that saves you lots of work, then this doesn’t help, but I’m not claiming to detect every possible hole, just one plausible kind.
 
  • Like
Reactions: soodungg26
Mar 16, 2016
12
4
woodcoin.org
Well it would be an interesting search I suppose, to check for each block the mbillion or so nonces below the one that solved that block, to see if any also produce a solution. But in the end, if we did find some, it wouldn't prove anything. The miner would likely say "I was decrementing the nonce" or "I was multiplying the nonce by 2 %z", or "I was incrementing the extranonce", or any other potential ways to change the block header.
 
  • Like
Reactions: soodungg26

Joe Shipman

New Member
Dec 20, 2017
5
3
Princeton, NJ
I’m sorry I didn’t make this clearer, though I really tried—the honest miner is TRYING to cooperate so at the time he reveals the solved block he also states the search parameters so the search can be reproduced! This costs him nothing but is socially beneficial because it provides a way to verify his work if he comes under suspicion, just like “clean” athletes aren’t afraid of a drug test. I’m proposing a social norm that will make it more difficult for people to hide if they are using a secret shortcut that cuts their computational work by a significant factor.
 
  • Like
Reactions: soodungg26
Mar 16, 2016
12
4
woodcoin.org
I see, sorry for my slow comprehension :) An interesting idea. An "honest miner volunteer method report protocol" could be devised. I wonder if there is enough interest. It could be a selling point for pools. Good luck :)
 
  • Like
Reactions: soodungg26

imaginary_username

Active Member
Aug 19, 2015
101
174
Isn't this basically what weak blocks (or P2Pool, or any pool) does? Shares or weak blocks document "failed" attempts.
 

Joe Shipman

New Member
Dec 20, 2017
5
3
Princeton, NJ
When you join a mining pool and there is a new block to solve, you are assigned a set of nonces so the pool knows which numbers you are supposed to have attempted and you certify for them that you have, I presume that the pool managers do spot checks and kick out anyone who missed a solution they should have found, but the incentives and the math are such that there will still be a lot of this, and this is still internal to the pool, I am not aware that anyone’s failed attempts are documented in the blockchain itself. The pool manager could then append the endpoints of the failed attempts intervals based on what his miners affirmed they had done, if he wants to follow my suggestion.