> For the merkle tree, is tree designed such all data blocks are on the leafs?
The leaf node stores the hash of data blocks and parent nodes are created by concatenating children. So we could stop comparison if parent nodes are different. Does that make sense?