According to the bitcoin white paper a block contains Previous Hash, Nonce and Root Hash. The root hash is a merkle tree root node of all the transactions that have been confirmed to that particular block.

I read here in the fifth paragraph of the top answer that "a transaction that claims to have been from block #234133 we can get the transactions for that block, verify the Merkle tree, and know that the transaction is valid."

So say a block m somewhere in the blockchain holds n transactions. Where and how is the mapping of a particular set of transaction to a particular block stored? Because the blockchain itself only contains the root hash of all transactions to save space. So are there other hidden components that haven't been published in the white paper and are there resources to get a comprehensive idea about them?


  • The whitepaper is nothing like a statement of how the system is designed, it's at best an overview of the concepts. The actual implementation doesn't even strictly follow what is said, and you shouldn't expect a 9 page document to. – Anonymous Sep 26 '20 at 0:46

The merkle tree is dynamically recreated to validate it in a block, the order of transactions in the block implicitly describe what the merkle tree should look like when reconstructed. The transactions are stored as part of the block, quite literally the header, a number stating the number of transactions to follow, and then a list of all the transactions follows.

  • But how do you find a particular transaction or a block that has the particular transaction when you wish to verify the transaction as having taken place? – Bittu Sep 26 '20 at 0:58
  • You either read all blocks and keep an index of the transactions, or you ask a service that does know. – Murch Sep 26 '20 at 1:35

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.