In the whitepaper, it is mentioned that a decentralized Dropbox would pay fees in 2 ways:
1. Proof of storage - a contract will periodically randomly select an index in the Merkle tree, and reward a node that proves it has the data.
2. Quote: When a user wants to re-download their file, they can use a micropayment channel protocol (eg. pay 1 szabo per 32 kilobytes) to recover the file;
How can #2 be performed? Say I'm a user and I send a message to the contract asking for a file with a certain ID. How would a node respond with the data and collect the fee? Specifically, I don't understand how:
1. Since the node storing the file needs to generate a new message, how will he collect the fee? Shouldn't he pay fee, since he's creating a new message?
2. How will the original user requesting the file actually receive it? There's an async process here where the user asks the Ethereum network for the file, and the node holding the file broadcasts to the network that it has it.
I would appreciate any explanation.