Datastorage contracts and blockchain size

In the whitepaper it is mentioned a decentralized data store can be build using Ethereum:
Decentralized Dropbox. One setup is to encrypt a file, build a Merkle tree out of it, put the Merkle root into a contract alongside a certain quantity of ether, and distribute the file across some secondary network. Every day, the contract would randomly select a branch of the Merkle tree depending on the block hash, and give X ether to the first node to provide that branch to the contract, thereby encouraging nodes to store the data for the long term in an attempt to earn the prize. If one wants to download any portion of the file, one can use a micropayment channel-style contract to download the file from a few nodes a block at a time.
If I understand correctly, the file is not stored in the blockchain itself, but the Merkle tree used to validate parts of the file is. The contract periodically posts a price for anyone who sends proof that they know the contents of part of the file in the form of a hash of part of the file. Then if you want to download the file, you send Ether to another contract which then gives you a (temporary) link to download the file. The above quote suggests you download the file from the blockchain. As the file itself is not stored in the blockchain, that won't be possible. It makes more sence to pay the second contract, and the contract would reply with a link which will temporarily allow you to download the file.

But if I misunderstood and the file is actually stored in the blockchain: won't this lead to very fast blockchain bloating? On top of that, how would you prevent illegal content from being stored in a contract (it might cost a few wei, but some people go far to prove a point).


Sign In or Register to comment.