Skip to content

Merkle Tree and Bitcoin

A post on Twitter summarizes how Merkle tree works, but has caused some debates.

To be fair, the original post did a fairly good job to explain Merkle tree, albeit quite basic, not nearly as deep as how Dr. Craig S. Wright explained it in Merkle Trees and SPV, and further in Simplified Payment Verification.

But as the two BSVers pointed out in Twitter replies, with its limited block size BTC does not need a Merkle tree at all.

People often do not realize that Merkle tree in the context of Bitcoin is an inherent part of Simplified Payment Verification (SPV).

To scale Bitcoin like BSV does, it’ll get to a point where SPV is necessary, hence requiring Merkle tree hashes.

But with maximum 5000 transactions per block, BTC simply isn’t worth a Merkle tree.

So BTC does not do SPV, yet it talks about Merkle tree. Why?

It is like a kid playing a paper fold plane but throwing around terminologies of aerodynamics to impress.

But with BTC, the truth is even more embarrassing than that.

They thought they got rid of Satoshi and SPV so they could focus on the Ponzinomics of Digital Gold. But they continue to recite concepts from the whitepaper to create an appearance of legitimacy.

By doing that, however, they not only fail to acknowledge BTC contradicts the whitepaper, but also fail to realize that they contradict themselves.

Merkle Tree contradicts BTC

Because BTC’s central thesis is its small blocks which lead to a small dataset, it is more efficient and even more secure if BTC just uses an index of the whole list, rather than using a merkle tree. A Merkle tree is based on hashes, so at least theoretically, it is easier to find a hash collision in a hashed tree than finding a collision in a simple list.

The efficiency of a Merkle tree increases exponentially with the size of the data set. For example, take the BTC block which has less than 5000 transactions per block. Under Merkle tree’s hashing scheme which combines every two data entries into one hash, and then every two hashes into another combined hash, so on, 5000 transactions would need 12 levels of hashing. In comparison, a block that has 1 billion transactions would only need 30 levels of hashing. Although the total number of transactions increased 200,000 times, hashing levels increase less than 3 times (30 versus 12).

In addition to the fundamental structure of Merkle tree, the odds that the same UTXO traces back to multiple transactions that appear in the same block may also have an impact on the overall efficiency. Given the large number of bitcoin addresses that could exist, BTC’s less than 5000 transactions per block means each block is essentially a flat structure if you trace the transactions by UTXOs. Very rarely you’d have a UTXO thread that goes beyond just a single transaction within the same block. How rare? The theoretical upper limit of the total number of bitcoin addresses is 2.1 quadrillion (assuming the extreme case of one sat corresponding to one address). Even if we reduce the theoretical base by 1 million times, we still have 2.1 billion possible bitcoin addresses at any given time. Compare that with 5000 transactions in each BTC block, and estimate the odds.

But regardless, Merkle tree belongs to very large datasets which include a large number of transactions, which is a characteristic of BSV.

BSV uses Merkle tree to enable SPV, and uses SPV to make light client nodes a reality, and to enable instant payment verification, which is much needed in real commerce.

BSV has unbounded scalability and true Peer-to-Peer, partially thanks to Merkle tree.

But just talking about Merkle tree does not create any of these properties.

Another reason why BTC supporters talk about Merkle tree is probably because they mistakenly think that Merkle tree is part of what makes Bitcoin secure.

That’d be another misunderstanding, but I’m only guessing why they do that, trying to make sense. They might have other reasons.

In any event, it doesn’t seem that BTC supporters are aware of the fact that Merkle tree in the context of Bitcoin has nothing to do with security but everything to do with scalability.

But it would be even more out of touch if they indeed talk about Merkle tree in terms of scalability, because that would be like talking about the functions of a high-speed freeway when their entire territory is of the fixed size of a courtyard not even allowed to expand ever.