Filecoin is a peer-to-peer network that stores files using economic incentives and cryptography to ensure reliability. Users pay storage providers to store their files, and providers prove they’ve stored them correctly over time. Anyone can join Filecoin to store or get paid for storing files. Storage availability and pricing are controlled by open markets rather than a single company. Built on IPFS, Filecoin incentivizes reliable storage and access of content, enabling NFT and metaverse/game asset storage, permanent storage, and archiving. It supports various formats, including audio and video, and is used by NFT.Storage, Shoah Foundation, Internet Archive, Audius, and Huddle01.
Now that Filecoin launched FVM on March 14th, 2023, we would like to explore further into relevant topics of FVM.
The Design Objectives, Architecture, Components and Functions of FVM
- Design Objectives: The objectives behind the design of FVM is to allow Filecoin network to become an open data platform that can be used to support various types of smart contracts and decentralized Apps, which thus realizes the storage, access, verification, exchange, value conversion and circulation of data. In addition, FVM is also committed to the guarantee of Filecoin network’s security, efficiency, scalability and reliability.
- Architecture: FVM’s architecture is based on the layered structures of Filecoin network, which include storage layer, consensus layer, network layer and application layer. Despite the fact that FVM is generally located in the application layer, it also interacts with other layers. FVM includes the following components:
- FVM Runtime：FVM operates in the execution environment of smart contracts, which provides certain basic services such as status management, information transmission, exceptional handling and event triggers etc.
- FVM Actors：FVM Actors is known as the entity of smart contracts that can define the rules and regulations regarding the storage, access, logic and behavior of data. FVM Actors can be divided into two types, which are System Actors and User Actors. System Actors are known as certain basic contracts built in Filecoin network, for example, the contracts of storage market and payment channels etc. User Actors are known as the contracts defined by the developers themselves, which allows the realization of various business logics and functions.
- FVM Languages：FVM languages are the languages used by the developers to program smart contracts, which can be compiled into WASM format and operated on FVM Runtime. FVM supports various languages such as Solidity, Rust, AssemblyScript etc.
- FVM SDKs：FVM SDKs is known as the toolset used by the developers to develop smart contracts and decentralized Apps. FVM SDKs provides certain convenient interfaces and bases, such as file operation, encrypted algorithm, signature verification etc.
- FVM APIs：FVM APIs is known as the interface on which the developers and Filecoin interact with each other. FVM APIs allows developers to send information, inquire status and subscribe events etc.
- Functions: The functions of FVM allows Filecoin network to support various smart contracts and decentralized Apps, which thus realizes the storage of data and the rules, regulations and logics of access and the conversion and circulation of the data’s values. For example, the developers may create the following types of applications on FVM:
- Data Market: Data market is known as the platform that allows data providers and requesters to conduct data trading activities. By utilizing the storage and payment services provided by Filecoin network, the data market may realize the storage, verification, authorization and payment of data.
- Data Analysis: Known as the stage of data processing and mining, data analysis may realize the processing, analysis, authentication and rewards of data by utilizing the computing and verification services provided by Filecoin network.
- Data Governance: Known as the process of data management and supervision, data governance may realize the standardization, supervision, punishment and incentives of data by utilizing the consensus and governance services provided by Filecoin network.
- Interoperability and compatibility: EVM is also required to realize the interoperability and compatibility between its own platform and other blockchain platforms, and thus allows Filecoin network to conduct transfers of data and values with other blockchain platforms, for example:
- FEVM: FEVM is known as the environment on which EVM operates when EVM is virtualized into FVM, the environment allows the smart contracts and decentralized Apps on EVM to be seamlessly migrated into FVM and the interactions between the smart contracts and decentralized Apps on FVM and those on EVM. The advantages of FEVM is that it allows Filecoin network to sufficiently utilize the resources and users of EVM ecosystem and EVM ecosystem to enjoy the storage and data services provided by Filecoin network.
- FIPs：FIPs is known as the abbreviation of Filecoin Improvement Proposals, which are certain improvement proposals raised and executed by Filecoin community that aim at improving the performance, security, scalability and reliability of Filecoin network. FIPs can be involved in various aspects of FVM, such as runtime, language, SDKs, APIs etc. The advantages of FIPs is that it allows Filecoin network to continuously update and optimize, and that it also allows Filecoin community to be more active and gather user participation.
- FFI：FFI is known as the abbreviation of Foreign Function Interface, which refers to a mechanism that calls functions among different programming languages, the mechanism allows the smart contracts and decentralized Apps on FVM to interact with those on other blockchain platforms. The advantages of FFI are that it allows the realization of data and value exchanges between Filecoin network and other blockchain platforms, and it also allows Filecoin network to enjoy the computing and verification services provided by other blockchain platforms.
Filecoin EVM Runtime（FEVM）
FEVM is known as a virtualized environment that runs EVM on FVM, the environment allows both the seamless migration of smart contracts and decentralized Apps from EVM to FVM and the interactions between the smart contracts and decentralized Apps on EVM and those on FVM. Please refer to the following information for details:
- Background: EVM is the abbreviation of Ethereum Virtual Machine, which is known as the execution environment that runs smart contracts on Ethereum network. EVM supports the smart contracts programmed by Solidity language, and also includes many decentralized Apps based on EVM. Currently, EVM is one of the most mature and widely used smart contract platforms that enjoys abundant resources and attracts many users. However, EVM also involves certain limitations, for example, high cost, small size and low security level of storage etc. Such limitations have restricted the development and creativity of the smart contracts and decentralized Apps on EVM.
- Objectives: The objective of FEVM is to allow the seamless migration of the smart contracts and decentralized Apps from EVM into FVM and the interactions between the smart contracts and decentralized Apps on EVM and those on FVM. FEVM may allow the smart contracts and decentralized Apps on EVM to enjoy the storage and data services provided by Filecoin network, and thus realize the storage, verification, authorization and payment of data. What’s more, FEVM may also allow the smart contracts and decentralized Apps on FVM to sufficiently use the resources and users of EVM ecosystem, and thus realize the processing, analysis, authentication and rewards of data.
- Theory: FEVM is known as a virtualized environment based on FVM Actors. FEVM includes the following components:
- FEVM Actor：FEVM Actor is known as a system Actor that is responsible for the reception and processing of information from EVM or FVM and the management of FEVM Runtime.
- FEVM Runtime：FEVM Runtime is known as a virtual machine that is responsible for the execution of EVM node’s codes and the interactions between FVM Runtime.
- FEVM State：FEVM State is known as a status tree that is responsible for the storage of the status of FEVM Runtime, which includes account, balance, codes and storage etc.
- FEVM Bridge：FEVM Bridge is known as a bridge that is responsible for various functions such as the transmission of information, event trigger and function call between FEVM Runtime and FVM Runtime.
- Functions: The functions of FEVM allow the seamless migration between the smart contracts and decentralized Apps on EVM and FVM and the interactions between the smart contracts and decentralized Apps on EVM and those on FVM. For example:
- Migration: The developers may deploy the smart contracts and decentralized Apps on EVM onto FEVM. By simply converting the node codes of EVM into WASM format and sending the information of deployment through FEVM Actor, FEVM Runtime will create a new account in FEVM State and save relevant codes and initial status. The developers may also deploy the smart contracts or decentralized Apps on FVM onto EVM. By simply converting FVM node codes into EVM format and sending information of deployment through EVM, EVM Runtime will create a new account in EVM State and save relevant codes and initial status.
- Interactions: The developers may conduct interactions between FEVM and EVM or FVM. By simply sending information or calling functions through FEVM Bridge, the FEVM Bridge will conduct conversions and transmissions between FEVM Runtime and FVM Runtime. For example:
- Calling EVM from FEVM: The developers may send a calling information that designates target account, name of function, parameter and other details required through FEVM Bridge, then FEVM Bridge will convert the information into EVM format and send it to EVM Runtime, and then EVM Runtime will execute relevant function and return the result to FEVM Bridge, then FEVM Bridge will convert the result in FVM format and return it to FEVM Runtime.
- Calling FVM from FEVM: The developers may send a calling information that designates relevant details required such as target account, name of function and parameter through FEVM Bridge, then FEVM Bridge will convert the information into FVM format and send it to FVM Runtime, then FVM Runtime will execute corresponding function and return the result to FEVM Bridge, and then FEVM Bridge will convert the result into EVM format and return it to FEVM Runtime.
- Calling FEV from EVM: The developers may send a calling information that designates relevant details required such as target account, name of function and parameter through EVM, then EVM Runtime will send the information to FEV Actor, and FEV Actor will convert the information into FV format and send it to FV Runtime, FV Runtime will execute relevant function and return the result to FEV Actor, and then FEV Actor will convert the result into EV format and return it to EV Runtime.
- Calling FEV from FV: The developers may send calling information that designates relevant details required such as target account, name of function and parameter through FV, and FV Runtime will send the information to FEV Actor, then FEV Actor will convert the information into EV format and send it to EV Runtime, then EV Runtime will execute corresponding function and return the result to FEV Actor, then FEV Actor will convert the result into FV format and return it to FV Runtime.
Once Milestone 2.2 of the FVM roadmap is complete, developers will have the option to deploy actors on either the FEVM or native FVM, or both if they really want to. But which should you choose? The decision can be summed up as such: if you want better performance, write actors that are compiled to WASM and deployed to native FVM. If you are familiar with Solidity and want access to the EVM ecosystem of tools, but don’t mind less performance, deploy to the FEVM. See the pros and cons of each below:
The goal of the FVM project is to add general programmability to the Filecoin blockchain. Doing so will give developers all kinds of creative options, including:
- Orchestrating storage.
- Creating L2 networks on top of the Filecoin blockchain.
- Providing new incentive structures for providers and users.
- Frequently verifying that providers are storing data correctly.
- Automatically finding which storage providers are storing what data.
- Many more data-based applications.
Filecoin was the first network deploying programmability, post-genesis, to ensure that layer 0 of the Filecoin blockchain was stable and fully functional. Due to the large amounts of capital already secured within the Filecoin network, the development of the FVM needs to be careful and gradual.
- Decentralized Storage Use Cases:
- Tokenized Datasets and Data DAOs: This use case involves creating a dataset economy where users can tokenize and exchange valuable datasets with each other, while also requesting computation services like validation, analysis, and feature detection on the data.
- Replication Workers: With this use case, smart contracts can be written to ensure that data is always stored multiple times to ensure resiliency. The contract could also enforce user-defined policies regarding data location, latency, and price.
- Trust and Reputation Use Cases:
- Trustless Reputation Systems: This use case involves creating an overlay network of nodes that can monitor the network and gauge metrics like quality of service guarantees, performance, and latency for storage providers. This information can then be stored on-chain and used to inform users’ decisions about which providers to use.
- Conditional Loans for Sector Pledging: With this use case, users can take out loans to pledge storage sectors as collateral, with the terms of the loan enforced by a smart contract. The contract can enforce conditions for repayment, such as maintaining a certain level of replication.
- Decentralized Market Use Cases:
- Smarter Storage Markets: With this use case, smart contracts can enable richer functionality in storage markets, such as auto-renewal of deals, self-repairing deals in the event of sector issues, and time-locked or event-driven data deals.
- Storage Bounties and Auction Mechanisms: This use case involves using smart contracts to create bounties and auctions for storage providers to compete for storage deals.
4. Other Use Cases:
- NFTs minted, exchanged, and stored under a single roof.
- Storage bounties and auction mechanisms.
- Enabling L2 bridges.
- Futures and derivatives on storage that compose in DeFi fashion.
- Conditional loans for sector pledging.
By launching FVM, Filecoin has expanded its business scope from storage into public chain, and the new blueprint may evolve into a new ecosystem. Currently, there are hardly any effective Filecoin applications out there in the market, and the TVL of Filecoin remains at the bottom of the list of all public chains. At the time of writing, the TVL of Filecoin is only $2,517,104, which is only 1/10,000 compared with the total TVL of the cryptocurrency market ($ 47.22 bn in total), with the ecosystem of Filecoin DAPP can be neglected by now. Meanwhile, The TVL of ETH consists of almost 60% of the total TVL of the market.
By introducing and launching FVM, the DAPP ecosystem of Filecoin is expected to face exponential growth. However, considering the low level of Filecoin’s TPS, compared with other POS chains, the DAPP ecosystem of Filecoin hardly enjoys any advantages.
What makes Filecoin more potentially advantageous is actually its data ecosystem based on verifiable storage, as FVM involves the potential of becoming the execution layer of Ethereum, storing the data generated by the Apps of Ethereum and becoming the execution layer of multiple mainstream public chains and the infrastructure regarding the cross-chain telecommunications of the ecosystems of multiple public chains.
It is obvious that Filecoin network will develop into a more powerful and functional network through the continuous development and perfection of FVM.
Where To Buy FIL?
FIL can be purchased through several popular exchanges including Hotbit. Purchasing FIL through Hotbit is a comparatively rapid process which includes only several simple steps. The first step is to register a Hotbit account (in case you don’t have one). After finishing the registration, you may continue to trade through the transaction pair of the spot trading function of FIL/USDT.
“Overview.” Filecoin Docs, https://docs.filecoin.io/basics/what-is-filecoin/overview/.
“The FVM.” Filecoin Docs, https://docs.filecoin.io/smart-contracts/fundamentals/the-filecoin-virtual-machine/.