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.
Asked
Active
Viewed 36 times
1 Answers
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