We know widely used explanation of the blockchain: "Every block contains a hash of the previous block". The sentence above implies that since every block contains a hash of the previous block, therefore every block should have a knowledge about transactions included into the previous block because every block has a following structure:

Block:

  1. Magic No
  2. Block Size
  3. Block Header
  4. Transaction counter
  5. Transactions

Block Header:

  1. Version
  2. hashPrevBlock
  3. hashMerkleRoot
  4. Time
  5. Bits
  6. Nonce

However, every block does not have knowledge about transactions incuded into previous block correct???

As fas as I understand there are two chains in the Bitcoin:

  1. a chain of blocks headers (a block chain)
  2. a chain of transactions (Prev Tx Hash)

Hence just to clarify, rather than saying: "every block contains a hash of the previous block", would not it be correct to say: "header of every block contains a hash of header of the previous block"?

Please correct my assumptions if I am wrong. Thanks.

up vote 10 down vote accepted

Blocks contain a header, and headers are chained, so blocks are chained also. Note the merkle root from your question: this attaches the transactions in the block to the header, making them a logical combined unit:

block chain

That is, you can't attach an arbitrary block to an arbitrary header---each header only attaches to one set of transactions.

You are correct that this expression is wrong: "every [valid] block contains a hash of the previous block". That phrasing may be useful for non-techies, but if you find it in any editable technical documentation, you should probably change it.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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