Why exactly is a root hash used in relation to hash lists? Wikipedia has an rticle about hash lists, although I find it technically not very detailed. For example: We could solve same problem by sending (authenticated) hash of each data block, together with each data block.

So, why the need for a root hash? Is it because this way you could send single authenticated root hash, and no need to authenticate each hash for each data block?
Yes, the transfer of just the root hash can be a good reason for using a hash list. Then you can still hash the leaf hashes in a parallel fashion.

However, generally the root hash is simply needed so that the hashes aren't reordered / removed. Of course this won't protect against deliberate attack; you would have to use the root hash in a signature scheme for that.

Sending hashes together with data blocks only makes sense if you expect accidental damage. In that case you might want to use a non-secure hash or another error detecting / correcting code (such as PAR2). In general the transfer of hash lists or trees takes part separately.

In the end, a hash list is a very generic concept. How it is used depends a lot on the protocol and/or use case. Possibly that's why you don't find that much practical information on it.



Note that the Wikipedia page correctly specifies that often a root hash is used. What is probably more common is that the hashes are aggregated in a separate data structure, and that that particular data structure is signed. This data structure can include additional (meta-) information in the signature.

You can see this in e.g. XML digital signatures, the cryptographic message syntax (PKCS#7 or CMS) but also ePassports where the separate data groups containing the personal info / fingerprints are hashed separately and the result is put in a structure and signed. This way you can verify components separately, while using only a single signature.