0

This question already has an answer here:

I am studying the bitcoin protocol and do not exactly understand why a Merkle root is used to register all the transactions. What is the point of using a tree-wise structure when you can also just take a hash over the concatenation of all transactions hashes? As far as I see, that would be less operations and therefore only more efficient?

marked as duplicate by chytrik, MCCCS, Raghav Sood, Andrew Chow Jul 3 '18 at 8:06

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Note: the question above is not exactly the same, but the top answer on it works perfectly as an answer to this question. – chytrik Jul 2 '18 at 10:29
  • I take it you have researched Merkle Trees and understand how they work? – Willtech Jul 2 '18 at 10:42
3

The Merkle tree structure is essential for section 7 (Reclaiming Disk Space) and section 8 (Simplified Payment Verification) in the whitepaper.

With simple concatenation, the only way to be convinced that a transaction exists in a block is to have access to the hashes of all transactions, which requires a lot of storage space.

With a Merkle tree you can:

  1. Prune large parts of the history, and still know that the data left intact is a legitimate part of the block.

  2. Convince a specific node that a transaction exists in a block, by showing the Merkle branch.

Merkle trees are also used in pooled mining, allowing the miner to construct the generation transaction independently while the pool or another node builds the bulk of the block.

Some more details are in this answer.

Not the answer you're looking for? Browse other questions tagged or ask your own question.