0

There is something I cannot understand about Merkle trees. I understand how they are calculated and etc., but I cannot understand how they are used on a blockchain. If a block stores only the Merkle root, how can a blockchain explorer let you search and view specific transactions? I think this requires that a block must store the whole array of transactions, not just the Merkle root. Please help me understand this. Thanks in advance.

evannemo
  • 25
  • 4

1 Answers1

1

The block header contains the merkle root, but the full block itself contains all the transactions, in order of their appearance as merkle leaves.

Raghav Sood
  • 17,027
  • 3
  • 22
  • 43
  • All right now I think I understand. Does that also mean that a light node saves the chain of the block headers and a full node saves the whole blocks? – evannemo Aug 21 '19 at 15:56
  • @evannemo Yes that is correct. SPV nodes store the block headers of all the blocks which is how they can verify that a transaction is included in the block when they are provided with a Merkle path by connected full nodes. – Ugam Kamat Aug 21 '19 at 16:41
  • @UgamKamat Can you explain this a little further? What is a merkle path? And how is this verification done? I have opened a new question, if you think you can explain it in details please have a look here: https://bitcoin.stackexchange.com/questions/89854/what-is-the-complete-process-and-purpose-of-a-block-validation-using-merkle-tree – evannemo Aug 21 '19 at 16:50