<p>The merkle root is included in the block header as a cryptographic commitment of the transactions that were included in that block. Without such a commitment, the POW for the block would be computed independent of the transactions included in the block. Transaction ordering is important, so a cryptographic proof/commitment needs to be included in the POW, otherwise the network would be unable to verify which transactions are in each block. </p>

<p>The merkle tree structure itself could be replaced by something else (eg just chain all transactions, hash that, and include the result in the header as a cryptographic commitment), but using the merkle tree structure has some added benefits (faster verification for SPV wallets, for example).</p>

<p>There may be some other reasons I am not remembering, but the cryptographic commitment is the most obvious that comes to mind. </p>

CC BY-SA 4.0
2018-08-30T23:11:59.600Z
2018-08-30T23:11:59.600Z
chytrik
<p>Simply, no. Instead, probably, it'd concat all the TXIDs in the block and [Double] Sha256 them. This can be calculated much faster than a Merkle Tree. Merkle Trees have no use other than allowing someone without the complete set of the data to verify that a specific transaction was in the tree.</p>

CC BY-SA 4.0
2018-09-01T17:58:28.147Z
I guess it's technically true that the Merkle tree structure is only used to verify a tx is in a block without the full set of txs, however, SPV is not the only place where that ability is used. See my answer for additional applications - https://bitcoin.stackexchange.com/a/78838/575.
Meni Rosenfeld
CC BY-SA 4.0
2018-09-01T17:05:28.713Z
2018-09-01T17:05:28.713Z
MCCCS
<p>Yes.</p>

<p>To find a non-SPV application of the Merkle tree, you needn't look further than the first mention of "Merkle Tree" in the <a href="https://bitcoin.org/bitcoin.pdf" rel="nofollow noreferrer">Bitcoin whitepaper</a>. It appears in section 7, "Reclaiming Disk Space", which explains how it can be used to prune old, irrelevant transactions, even among full nodes.</p>

<p>SPV itself is presented in section 8, aptly titled "Simplified Payment Verification".</p>

<p>Another application is not mentioned in the Bitcoin whitepaper, because it is a later development and is not strictly a part of the core protocol, and that is in mining pools. With a Merkle Tree, a miner can tweak the generation transaction independently based on the pool's template (for a wider range of hash attempts), or alternatively choose his own work and submit to the pool a proof that he is working for the pool.</p>

CC BY-SA 4.0
2018-09-01T17:56:39.550Z
2018-09-01T17:56:39.550Z
Meni Rosenfeld
<p>I understand how full nodes use Merkle proofs to convince SPV clients that certain transactions are valid / invalid.</p>

<p>Does the Bitcoin software use Merkle trees in any other way?</p>

<merkle-tree>
If SPV clients didn't exist, would Bitcoin still use Merkle trees?
justinmoon
# If SPV clients didn't exist, would Bitcoin still use Merkle trees?

(Asked by: username_0 on 2018-08-30)

I understand how full nodes use Merkle proofs to convince SPV clients that certain transactions are valid / invalid.

Does the Bitcoin software use Merkle trees in any other way?

**Tags:** merkle-tree


---

## 3 answers

### Answer by username_1 on 2018-08-30. Score: 3

The merkle root is included in the block header as a cryptographic commitment of the transactions that were included in that block. Without such a commitment, the POW for the block would be computed independent of the transactions included in the block. Transaction ordering is important, so a cryptographic proof/commitment needs to be included in the POW, otherwise the network would be unable to verify which transactions are in each block.

The merkle tree structure itself could be replaced by something else (eg just chain all transactions, hash that, and include the result in the header as a cryptographic commitment), but using the merkle tree structure has some added benefits (faster verification for SPV wallets, for example).

There may be some other reasons I am not remembering, but the cryptographic commitment is the most obvious that comes to mind.


---

### Answer by username_2 on 2018-09-01. Score: 2

Simply, no. Instead, probably, it'd concat all the TXIDs in the block and [Double] Sha256 them. This can be calculated much faster than a Merkle Tree. Merkle Trees have no use other than allowing someone without the complete set of the data to verify that a specific transaction was in the tree.

> **Comments:**
> **username_3**: I guess it's technically true that the Merkle tree structure is only used to verify a tx is in a block without the full set of txs, however, SPV is not the only place where that ability is used. See my answer for additional applications - https://bitcoin.stackexchange.com/a/78838/575.  

---

### Answer by username_3 on 2018-09-01. Score: 2

Yes.

To find a non-SPV application of the Merkle tree, you needn't look further than the first mention of "Merkle Tree" in the [Bitcoin whitepaper](https://bitcoin.org/bitcoin.pdf). It appears in section 7, "Reclaiming Disk Space", which explains how it can be used to prune old, irrelevant transactions, even among full nodes.

SPV itself is presented in section 8, aptly titled "Simplified Payment Verification".

Another application is not mentioned in the Bitcoin whitepaper, because it is a later development and is not strictly a part of the core protocol, and that is in mining pools. With a Merkle Tree, a miner can tweak the generation transaction independently based on the pool's template (for a wider range of hash attempts), or alternatively choose his own work and submit to the pool a proof that he is working for the pool.


---

