How and why we need to validate a transaction? I've starting doing some researches about the Bitcoin protocol and the blockchain. I'm trying to understand all the sections in the Bitcoin white-paper.
So far, i couldn't understand what is the utility of adding the transactions merkle tree root on the block header. Yes, i know that it's done to save space as the paper said. But when do someone need it?

For example, when miners receives a new block, does they receive only the block header, or the block header with the transaction? Means, is the blockchain a chain of blocks of headers?

If the 8- Simplified Payment Verification section Satoshi said:


  It is possible to verify payments without running a full network node.
  A user only needs to keep a copy of the block headers of the longest
  proof-of-work chain, which he can get by querying network nodes until
  he's convinced he has the longest chain, and obtain the Merkle branch
  linking the transaction to the block it's timestamped in. He can't
  check the transaction for himself, but by linking it to a place in the
  chain, he can see that a network node has accepted it, and blocks
  added after it further confirm the network has accepted it.


How can the user obtain the obtain the Merkle branch linking the transaction to the block it's timestamped in ?
So far, i couldn't understand what is the utility of adding the transactions merkle tree root on the block header.


To ensure that the transactions in the block are committed to by the block hash.

The block hash is not actually the hash of the entire block, it is the hash of the block header. If there were no merkle root, the block header would not contain anything that ensures that the transactions that are part of the block are actually part of the block. By hashing all of the transactions together into the merkle root and putting that in the block header, blocks received must contain all of their transactions so that the block header is valid.