The Merkle root is the final node in a Merkle tree. It is a hash which includes the hashes of all transactions in a block. If a single transaction is altered within a block, this change will ripple upwards, changing the Merkle root completely. The Merkle root is included in the block header, so that if the Merkle root changes, the Proof-of-Work is rendered invalid. This setup ensures that once a block is published, no transaction within the block can be altered.