It occurred to me today that there is no good reason why filecoin can not store it’s own block-chain inside of it’s own distributed storage service. It isn’t really a chicken and egg problem. It should be able to be bootstrapped. All the blocks would be content addressed. When one goes to build an UTXO set they can just access the content addressed blocks as if they are on their own machine and discard them from local storage as they build up the UTXO set.
Further this would make it possible to have a large amount of sharding, since when someone sends you a transaction on a shard chain you can build the UTXO set for that shard chain in real time as needed and discard it again after you are satisfied with the authenticity of the transaction. You don’t need to trust someone else to audit the shard on your behalf and you don’t need to have the data stored locally to audit it yourself! That dilemma that we thought we always had to deal with it turns out is a false dilemma.
It seems like filecoin might have blockchain scaling solutions baked into it from solutions that they are developing to solve entirely different problems.
I’ve had thoughts along an almost identical line. I’ll add two things. 1) the block hashes can be exactly the IPFS hashes, so light nodes can be extremely lite, and 2) the trouble with the idea is that there is nothing to gauruntee that the historical data will stay pinned. If the actual transaction data drops off the system, the ability to verify the entire chain goes away.
I think that’s probably done to partition the two different kinds of data. Blockchain data, and then the data on the distributed storage network that’s uploaded by users. Also if the two resided in the same space it would be a single point of failure.
Furthermore it is much easier to roll out the Blockchain portion of Filecoin and then work in the distributed storage part over time. If you made the two dependent on each other it would increase complexity, and isn’t something you would necessarily want.
But to answer your question yes it would be possible. There’s a “hack” implementation of a blockchain using IPFS for storage: https://github.com/whyrusleeping/toychain
It would probably need to be something that uses a lot of the basic tools that are developed to facilitate filecoin while not actually being exactly the same as other arbitrarily stored data. Basically every miner who connected to the network could be expected to store a small portion. His “share” while also taking into account the necessary redundancy.
Sure. Not something to worry about until scaling becomes an issue some day. Then implemented carefully when the network is fully and robustly bootstrapped.
Is there any place to further discuss this idea of storing blockchain data on IPFS and making the IPFS hash literally identical to the block hash? So the proof of work is literally to attach a nonce to the end of the contents of the file to find a hash with a certain number of leading zeros? Does that even make sense to ask?