Merkle root vs message digest? My question is in relation to the operational difference between a merkle root and a plain old message digest.

To calculate a merkle root I need to complete the following steps :


hash each transaction in a block
create a merkle tree from all the hashed transactions
work back up the merkle tree hashing pairs of transactions until I calculate the merkle root


To create a plain old message digest I would do the following :


Take all transactions in a block hash them at the same time to create a message digest


My question is, how is a merkle root more beneficial from an operational standpoint than a plain old message digest?
Initially, they appear the same, only considering that there is a hash included in the block.

A Merkle Tree is more efficient to prove a transaction is included in a block since otherwise, it is necessary to have and hash each transaction to prove a transaction is included using a message digest, so a full node can do this, but an SPV client (and a pruned node looking outside the blocks it has kept) cannot.

There is some more information on how this works in these answers: Merkle Root and Merkle Proofs