How and why we need to validate a transaction?
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.