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.


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

  • 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: bitcoin.stackexchange.com/questions/89854/…
    – evannemo
    Aug 21 '19 at 16:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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