Dr. Craig Wright on the double hash puzzle

Dr. Craig Wright on the double hash puzzle

In a recent post on Medium, Dr. Craig Wright addresses double hashes and why they were used when creating Bitcoin. As with a number of Bitcoin’s characteristics, the true story behind double hashes has been chopped up and put into a blender until a result was achieved that had nothing to do with the original design. Wright continues to publish bits and pieces to provide the real story and help to finally set the record straight on what Bitcoin is and what it isn’t.

Wright explains, “We can say that if we iterate a hash n times, it makes it n times as likely that a collision will occur. I am taking some liberty here, and the [math] involved in what I’ve explained is not completely accurate, but it is true that for each time we rehash a function using the same hash function, we lose collision security for the function. In fact, if we look at how addresses in Bitcoin are created, we see that the double-hashing function increases the effect even further. In other words, the hash of the hash in the scenario is more likely to lead to a collision than a single hash or even the hash of the same hash function (a double hash).”

He goes onto explain that the Wiki on Bitcoin Core (BTC) is completely wrong in its description of double-hashing. It isn’t used to increase security, as indicated, although, in addressing, if one hash function is determined to be vulnerable, the other hash function will stay secure longer.

One reason for the inclusion of the double-hash function in Bitcoin is to keep individual verification functions intact as Bitcoin Scales. Asserts Wright, “[A] value [can be] sent to a miner in a way that doesn’t allow them to broadcast a block without individual transactions. In a Merkle tree structure, we could have all of the block sent and solved apart from a single transaction. Doing so would allow us to construct an ASIC mining facility that does not host the data in blocks. The miner is now a distributed function.”

The function also allows for the creation of a system that is able to be distributed and validated in accordance with laws. They can act in conjunction with local jurisdictions and “allows us to have immutable data storage that can be filtered with the hash being validated and a subsequent prune of illicit material being allowed in certain jurisdictions.”

New to blockchain? Check out CoinGeek’s Blockchain for Beginners section, the ultimate resource guide to learn more about blockchain technology.