Logo
    Filecoin cross-chain interoperability
    🤝

    Filecoin cross-chain interoperability

    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.

    • Enable rich storage application development on sub-chains, layer-two, and other blockchains
    • Support Filecoin’s broad adoption as the storage layer for Web3
    • No additional trust assumptions beyond the consensus security of the chains in use

    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.

    • 🤝Light client validation proposal for Filecoin

    Proof-friendly state

    With a trusted block header and state root hash, the next challenge is to prove the inclusion of a specific message or piece of state. Filecoin’s native chain state is DAG-CBOR IPLD and makes heavy use of complex data structures such as HAMTs. This scheme has great self-describing and traversal properties, but is not optimised for efficient proofs. The conceptual equivalent of a merkle inclusion proof would be many times larger and more expensive to verify than a traditional merkle tree.

    We need to develop new, proof-friendly data structures that make it easy and cheap for code in other chains to verify important pieces of Filecoin state.

    Importing other chains

    Exporting state is only half the problem. Rich applications will also require Filecoin actors to be able to verify state of other blockchains. These chains all have their own consensus mechanisms and state representation, and we have little influence to change them. Many other teams are building solutions here for interoperability between those chains, but they may not reach the same standards of trust-minimisation

    Roadmap

    A rough sequencing

    • 2023 Q1
      • Conceptual design for light client protocols and/or faster finality gadgets
    • 2023 Q2
      • Conceptual design for light client in a smart contract (or SNARK)
        • Implementation of light client and/or finality consensus changes
    • 2023 Q3-4
      • Implementation of Filecoin chain and state validation in EVM chains
    • 2024
      • Importing other chains (wait for ongoing R&D from other teams to provide solutions)

    Notes

    Below are notes from the đź“”Cryptonet Notebook tagged for cross-chain interop.

    đź“”
    Cryptonet Notebook

    ⛓️
    F3 proofs and catch-up design jam
    Nov 1, 2023 6:03 PM
    Alex North
    🤝
    Light client validation proposal for Filecoin
    Jan 30, 2023 12:27 AM
    idea
    Alex North
    🔍
    Filecoin block validation rules
    Jan 29, 2023 10:40 PM
    Alex North
    🤝
    The blockchain interoperability problem and Filecoin
    Jan 25, 2023 12:11 AM
    background
    Alex North
    🤝
    Blockchain interoperability notes & references
    Sep 20, 2022 8:27 PM
    Alex North

    CryptoNet is a Protocol Labs initiative.