I am studying the theory of authenticated data structures, like Merkle Trees and I have a doubt: Why use them?
For example, to be sure that a cloud provider didn't modify my files, why do I have to ask for a particular data block and have the cloud reply with a hash path from the leaf to the root to authenticate all the tree (and then all the database)?
Isn't it simpler to ask a for particular piece of the DB (suppose the DB is divided in blocks) and receive from the cloud provider that block with a digital signature? In this way, I can ask continually for a lot of blocks without using a Merkle tree at all.
I am reading materials about the RSA accumulator, bilinear maps, Bloom filters, etc., and every time I read about different protocols built over particular data structures. Since using these techniques has a computational cost (e.g., RSA accumulators can be expensive) my question is as asked before: Instead of having a single digest that authenticates the entire set or DB, why not require different pieces of data with the digital signature?
I hope you can answer my strange question!