<p>To see how it simplifies verification, consider that in order to verify a transaction T is part of the blockchain, the verifier has to get from the transaction hash to the merkle root. If there are n transaction, there are log_2(n) levels to climb in the merkle tree, so to speak. To climb from the transaction T's hash to its parent P, we only need its sibling, since that is how the tree is built. Then to climb the next level we only need the sibling of the parent we calculated P, and so forth. </p>

<p>To climb all log_2(n) levels of the tree we only need T's hash plus log_2(n) extra hashes (including the merkle root). If we did a linear concatenation of blocks, we would need much more information than log_2(n) &lt;&lt; n</p>

<p>I found this article helpful for illustration:</p>

<p><a href="https://en.bitcoin.it/wiki/Merged_mining_specification#Merkle_Branch">https://en.bitcoin.it/wiki/Merged_mining_specification#Merkle_Branch</a></p>

<p>Hope this helps </p>

CC BY-SA 3.0
2016-07-26T03:13:28.383Z
This is the answer that really explains the question – why Merkle root vs straight hash.
uzyn
CC BY-SA 3.0
2013-10-14T08:42:11.380Z
2013-10-14T08:42:11.380Z
syzygy
<p>I believe it's to enable Simplified Payment Verification (SPV).  A client who doesn't wish to download the full blockchain can still verify that a transaction exists in the blockchain by confirming that the block headers are linked, and validating the relevant parts of the merkel tree to confirm the transaction really exists in the block.</p>

CC BY-SA 3.0
2013-05-08T10:54:57.547Z
2013-05-08T10:54:57.547Z
Ashley Holman
<p>The Merkle tree allows verifying that a transaction exists in the block without having the entire block, by following its Merkle branch. Among other things this enables:</p>

<ol>
<li><p>SPV (lightweight) clients</p></li>
<li><p>Blockchain pruning</p></li>
<li><p>Smart pool miners</p></li>
</ol>

CC BY-SA 3.0
2013-05-14T19:01:56.787Z
What are "blockchain pruning" and "smart pool miners"?
Pacerier
CC BY-SA 3.0
2013-05-22T15:01:27.790Z
@Pacerier: Pruning means deleting old spent transactions from the blockchain. Smart miners means that the miner constructs the block himself, and sends the pool the Merkle branch of the generation transaction to prove that it credits the pool.
Meni Rosenfeld
CC BY-SA 3.0
2013-05-08T11:36:41.527Z
2013-05-08T11:36:41.527Z
Meni Rosenfeld
<p>I understand what the merkle root is and how it is calculated, but I have not been able to figure out what is the actual purpose behind using this kind of hashing solution?</p>

<p>I mean, I know that the root itself must be there, to identify the exact block's payload, but what I don't get is why didn't he just choose to calculate the hash using a normal double SHA256 over the entire block's transactions? Why did he come out with this tree-idea instead? </p>

<p>I do not see the tree based hashing to be adding any security, neither to have any useful advantages over a regular (linear) hash... so am I missing something?</p>

<merkle-tree>
What is the benefit of using a Merkle Root rather than simply hashing all of the transactions in the block?
Gigi
# What is the benefit of using a Merkle Root rather than simply hashing all of the transactions in the block?

(Asked by: username_0 on 2013-05-08)

I understand what the merkle root is and how it is calculated, but I have not been able to figure out what is the actual purpose behind using this kind of hashing solution?

I mean, I know that the root itself must be there, to identify the exact block's payload, but what I don't get is why didn't he just choose to calculate the hash using a normal double SHA256 over the entire block's transactions? Why did he come out with this tree-idea instead?

I do not see the tree based hashing to be adding any security, neither to have any useful advantages over a regular (linear) hash... so am I missing something?

**Tags:** merkle-tree


---

## 3 answers

### Answer by username_4 on 2013-05-08. Score: 14 | Accepted answer

The Merkle tree allows verifying that a transaction exists in the block without having the entire block, by following its Merkle branch. Among other things this enables:

1. SPV (lightweight) clients
2. Blockchain pruning
3. Smart pool miners

> **Comments:**
> **username_5**: What are "blockchain pruning" and "smart pool miners"?  
> **username_4**: @username_5: Pruning means deleting old spent transactions from the blockchain. Smart miners means that the miner constructs the block himself, and sends the pool the Merkle branch of the generation transaction to prove that it credits the pool.  

---

### Answer by username_1 on 2013-10-14. Score: 15

To see how it simplifies verification, consider that in order to verify a transaction T is part of the blockchain, the verifier has to get from the transaction hash to the merkle root. If there are n transaction, there are log\_2(n) levels to climb in the merkle tree, so to speak. To climb from the transaction T's hash to its parent P, we only need its sibling, since that is how the tree is built. Then to climb the next level we only need the sibling of the parent we calculated P, and so forth.

To climb all log\_2(n) levels of the tree we only need T's hash plus log\_2(n) extra hashes (including the merkle root). If we did a linear concatenation of blocks, we would need much more information than log\_2(n) << n

I found this article helpful for illustration:

<https://en.bitcoin.it/wiki/Merged_mining_specification#Merkle_Branch>

Hope this helps

> **Comments:**
> **username_2**: This is the answer that really explains the question – why Merkle root vs straight hash.  

---

### Answer by username_3 on 2013-05-08. Score: 7

I believe it's to enable Simplified Payment Verification (SPV). A client who doesn't wish to download the full blockchain can still verify that a transaction exists in the blockchain by confirming that the block headers are linked, and validating the relevant parts of the merkel tree to confirm the transaction really exists in the block.


---

