The Filecoin virtual machine (FVM) is a runtime environment for smart contracts, also called actors, on the Filecoin network. These smart contracts can be written in Solidity, and eventually any language that compiles to WASM will be supported. Smart contracts enable users to create and enforce rules for storing and accessing data on the network. The FVM is responsible for executing these smart contracts and ensuring that they are executed correctly and securely.
Today, the Filecoin network is a robust platform to verifiably store and access NFTs, public good datasets, web3 and Metaverse assets, and more. Think of it as the I/O layer of web3. But this is only the tip of the iceberg. There’s a ton more value and potential to be unleashed with the introduction of general smart contract programmability to the Filecoin network. Layering computation on top of storage also opens new dimensions for cross-chain interoperability and integration in a trustless manner.
Protocol Labs Researcher Raúl Kripalani introduced to the Filecoin community the Filecoin Virtual Machine, a core pillar in the next evolution of the decentralized storage ecosystem.
Why Smart Contracts in Filecoin
Smart contracts –or actors as we call them in Filecoin– can power intelligent and dynamic storage solutions that are very hard to create with web2 technology. Examples include:
- Decentralized computation over data stored in Filecoin (run the compute where the data is stored, rather than moving it over)
- Crowd-funded dataset preservation (e.g. everyone could fund storing societally important data like crime statistics or environmental warming)
- Smarter storage markets (e.g. dynamically pricing storage by time of day, replication level, or availability within a region)
- Multi-generational storage and permanent custodianship (e.g. storing data that spans multiple generations)
- Data DAOs and tokenized datasets (e.g. modelling the value of data as tokens and forming DAOs to coordinate and broker computation to be performed over it)
- Locally-stored NFTs (i.e. colocating the content of NFTs with the registries that track them)
- Time-locked retrieval (e.g. only unlock this data set when the company’s public results are available)
- Collateral loans (e.g. loans to storage providers for concrete purposes, like accepting FIL+ deals from specific clients, or onboarding capacity within a concrete time window)
- and much more.
They also enable developers to create bridges for cross-chain interoperability as means to share liquidity, and to integrate apps deployed in other chains (e.g. Ethereum, NEAR, Polygon, Solana, Flow, etc.), with the storage capacity and capabilities provided by the Filecoin network.
Read on to understand how the Filecoin Virtual Machine will kickstart a disruption of interoperable storage and compute in the web3 ecosystem at large.
Storage as the Layer 0
Currently, the Filecoin platform is data storage and retrieval centric. We think of these two features as making up the Layer 0 of the protocol.
FVM was created to address Protocol Labs’ ambition of creating a truly decentralized internet. To enable web-scale applications, you need both storage and programmability. FVM was created to bring general programmability to the Filecoin storage network.
FVM combines the power of smart contracts and verifiable storage. Like smart contracts, FVM has the ability to self-execute a certain behavior, once the predetermined conditions are met. Unlike most other smart contracts, FVM has the additional ability to access verified proof of stored data, within the virtual machine’s native environment.
This has huge potential impact because FVM allows web3 applications to function similarly to web2 applications, where applications can automate processes, while referencing large amounts of data to make optimal decisions. The main difference being that FVM enables that in a decentralized space, which comes with its own set of advantages.
The technical rigor applied to building FVM runs deep and we can geek out further in the docs. However, an important point of clarification to highlight is that FVM computes over state, not over the data. This means that when accessing verified proof of stored data, it manipulates the metadata of that stored data deal. It does not manipulate the data itself, stored in that deal.
Computation of data can be achieved off-chain, with FVM to coordinate those jobs, like in the example of Protocol Lab’s Compute over Data framework, Bacalhau.
What’s It for
The FVM enables developers to build many new use cases on top of and with the Filecoin network.
Data access control
One advantage centralized storage solutions have over web3 services is that they can limit individual data access.
The FVM enables Filecoin network participants to do the same. Threshold encryption networks, like Medusa, can individually or programmatically govern who can access a data collection without any contracts or validators having access to the data themselves.
In combination with data access controls, the FVM enables the creation and management of data-decentralized-autonomous-organizations (data DAOs). The FVM allows a group of individuals, or organizations, to curate and preserve data collection. Data DAOs can govern and monetize data access and pool the returns into a shared treasury to fund the collections preservation and long-term growth.
Before the FVM, storage deals only lasted a year or two. If users wanted to continue storing their data, they had to create new deals before the end of the current deal. This process was manual.
Now, the FVM allows users to store once and have repair and replication bots manage the repetitive storage deal creation tasks. Using a smart contract, users can provision a wallet with FIL, and storage providers can use that FIL to fund data storage permanently. Repair bots can monitor the storage deals and replicate the data with other storage providers when necessary.
This process gives users the long-term storage permanence that other blockchains claim while also benefiting from Filecoin’s verifiable storage proofs, ensuring that the network stores and replicates the data correctly.
Put your FIL to work. FIL token holds can help Filecoin storage providers gain access to FIL for storage collateral and receive interest in exchange. These loans can be under-collateralized thanks to the on-chain storage history of past storage provider performance. Community members can use this history to generate reputation scores, enabling everyone to identify good borrowers. On top of that, loans can be automatically paid back to investors by using a multisig as the storage provider’s owner address that includes lenders and a third party to help negotiate payback.
New FVM-enabled smart contracts give every FIL token holder access to new yield opportunities on their holdings while also benefiting the whole Filecoin economy.
Since the FVM is fully EVM-compatible, new ERC-20 tokens can be launched on the Filecoin network or bridged directly to token pools on other chains. As well as that, layer two networks can plug into Filecoin and leverage its storage power and security.
There are three stages to the development of Filecoin:
- Build a robust decentralized storage network.
- Onboard and safeguard humanity’s most important data.
- Allow computation over that data to enable web-scale applications.
The FVM covers stage 3. We had to ensure that the Filecoin network was stable, robust, and secure before we allowed any development on top of the network.
Imagining FVM Use Cases with Perpetual Storage and Data DAOs
Any number of use cases can be imagined with FVM, ranging from infrastructure to tooling to full solutions.
For example, you could have an FVM actor automate the replication of storage deals across the Filecoin network, to ensure a minimum number of copies are backed up at any given time. An FVM actor can automate the renewals of storage deals, based on client preferences. Now, with an improved resilience of stored data, this enables perpetual storage with FVM, which is a foundational need of any storage market.
Data DAOs could leverage that perpetual storage for its DAO’s data portfolio. Additionally, they could have an FVM actor coordinate and govern the upload of data to the DAO, by ensuring certain standards are met, for a scalable and clean dataset.
An FVM actor could then be used to mint tokens and NFTs for participating members of the DAO, to reward participation and incentivize ideal behavior.
Another FVM actor could also provide conditional access control to members, where participation increases opportunities for access for example and here’s a work-in-progress access control tool that Protocol Labs is building with FVM too, called Medusa.
A huge area of interest for Data DAOs is to complement the curation of massive datasets, with decentralized computation. An important distinction here is that FVM computes over metadata of data storage deals, while compute over data refers to computing the data itself, which is stored within the deal. An FVM actor can orchestrate the computation jobs over a decentralized network of computation providers, for a given piece of data. A great example of compute over data is Protocol Lab’s Bacalhau project, a distributed computation framework, which is currently focused on serving data processing and analytics use cases and is working on integrating FVM.
The possibilities with FVM are boundless and up to developers to ideate and build. For more brain juice to get started with, here’s a handy Request for Startups guide!
The FVM Roadmap
FVM is a work-in-progress which is incrementally delivered. We are currently at Milestone 2.1 of 3, of the full roadmap, which focuses on Ethereum Virtual Machines (EVM) compatibility of FVM, codenamed “FEVM”. By February 2023, FEVM will ship to the Filecoin main network and by mid-year 2023, we aim to complete another milestone and have a fully functional FVM.
FEVM allows EVM developers to utilize familiar Ethereum tooling out-of-the-box to deploy a smart contract instance to FVM, which means an easy transition for many Solidity-written applications to utilize FVM. Check out the quickstart here.
FVM is virtual machine-agnostic. The intent is to build FVM with the option to complement a wide and rapidly evolving landscape of blockchain and VM technologies, which we will continue to optimize for alongside the energetic FVM community! The team has picked a specific focus to build for EVM compatibility first because of its popularity with web3 developers.