Assume I am running a mini-blockchain that is I only have blocks’ headers but no transactions. I wish to verify a transaction of a third party. For that I need the transaction’s path to the Merkle root. Given that no one stores Merkle tree and it is computed on the fly. My question is that who will compute Merkle tree. That is:
Option # 1) I will receive all transactions hashes of the block and I will be computing the Merkle tree myself. Pitfall: That implies, I will be receiving lots of data and sender has to send lots of data.
Option # 2) A node running full-block chain will compute Merkle tree and will send me only the transaction path. Pitfall: the sender will be computing Merkle trees of lots of people. What reward he is getting for his services?
I feel both options are not ideal. May be there is a third option which I do not know. I will appreciate your reply.
PS: Please also point me towards a publication which has all the information.