Export Filecoin storage to other Web3 systems.

@Alex North and the Cryptonet Protocol Opportunities Group.

Goals

The Filecoin cross-chain interop project aims to make Filecoin storage easy and cheap to access from any networked system. When Filecoin storage can be accessed from any chain, it can become the default storage layer for Web3. Network effects might then drive increasing utility, as data accessible to many chains is more useful than data tied to one.

With a well-implemented system, we should be able to support new storage markets, services, and compute platforms (see Filecoin storage/data programmability) to be implemented on another blockchain just as easily as if they were built on Filecoin’s execution environment directly. Filecoin can then benefit from the increasing availability and commoditisation of decentralised computation.

Blog: Exporting Storage to Web3

Challenges

Cross-chain interoperability (aka bridging) is hard, and not a generally solved problem in Web3. Filecoin’s consensus algorithms and state representation were not designed with cross-chain inter-operability in mind. Exporting consensus validation and state inspection to resource-constrained blockchain execution environments may require trade-offs.

Happily, unlike many systems, Filecoin enjoys a state of continual innovation, and we have the opportunity to change how the core consensus protocols operate in order to support this interoperability.

The blockchain interoperability problem and Filecoin

Solutions

There are three majors pieces to a complete and secure interop solution

Export Filecoin consensus

To trust claims about Filecoin storage, applications on other chains need to be able to verify Filecoin block headers. This amounts to running a Filecoin light client inside a smart contract. Light clients for proof-of-stake networks (including Filecoin) are not as simple as proof-of-work networks, because the proof of a miner’s eligibility to produce a block is not self evident, but depends on the chain state which a light client doesn’t compute or store. The computations even for light client validation may be too expensive to execute inside another blockchain. A long chain finality period (currently 7.5 hours) will make for painfully slow cross-chain messaging.