Contents
1. Introduction
Filecoin (FIL) is the native asset of the Filecoin, an open source, decentralised storage and content delivery network based on a blockchain mechanism which was built to serve as the incentive layer for the InterPlanetary File System (IPFS).
2. Background and History
A primer on Filecoin’s beginnings and influences.
Filecoin is a decentralised data storage and distributed network which aims to disrupt the cloud storage and content delivery network industries. The initial idea came from the incentive structure of Bitcoin mining but instead to use that mechanism to do some ‘useful work’. That is, encouraging as many people as possible to add hard drives, utilising unused storage space to create a decentralised, efficient and robust foundation for humanity’s information.
Figure 1 illustrates the differences between Filecoin and centralised incumbents such as Amazon S3/Google Cloud Storage.
Figure 1: Filecoin versus Amazon S3/Google Cloud Storage
Stanford Computer Science graduate and Y-combinator alum Juan Benet is the creator of both Filecoin and IPFS. The first version of the Filecoin protocol wrapped Proof-of-Retrievability for a growing dataset into the mining function, forcing miners to offer a storage service as part of the mining process. It also introduced how to store and retrieve data while keeping miners focused on storing as many different pieces of users’ data as they could. But it did not fully eliminate the use of Proof-of-Work — or reliance on another consensus protocol and also needed improvements to scalability.
Between 2014 and 2017, Protocol Labs shifted focus to the InterPlanetary File System (IPFS) which grew popular during those years while work on Filecoin stalled for a while. IPFS is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. But there is no mechanism to incentivise people to adopt IPFS and achieve its goal of replacing HTTP.
In this peer-to-peer protocol, each file is indexed with a cryptographic hash, permitting the distribution of large volumes of data with high efficiency, as well as creating a more decentralised and resilient web. You can learn more about IPFS here. What Filecoin does it basically leverage the storage system of IPFS to create an algorithmic market.
Figure 2: InterPlanetary File System
Along with IPFS, Protocol Labs are also responsible for libp2p (a modular network stack used by many cryptocurrencies), IPLD (InterPlanetary Linked Data), Multiformats and drand (distributed randomness beacon) — these systems were built to make Filecoin possible.
Libp2p was extracted out of IPFS, which is the lower level networking stack for the distributed web protocol. During 2014, Juan Benet found that there was no p2p library that Filecoin contributors could rely on, which led to the creation of libp2p. A less generic version of it was adopted by Ethereum (called ‘devp2p’), while Ethereum 2.0 will use Libp2p as Filecoin does.
As Ethereum’s popularity grew in the years following its launch, it culminated in the rise of decentralised applications (or Dapps), along with the blossoming of interest in the smart contract platform from both academia and enterprise. The feasiblity and need for decentralised storage became ever more important. Based on the advancements over the years and several discoveries of their own during a research phase in early 2017, Filecoin developed a new and improved protocol in 2017.
Filecoin found a way to do what they term ‘useful storage proof of work mining’ via sequential and frequent Proofs-of-Replication which proves cryptographically that the replica has been stored in independent physical storage and has not been de-duplicated with other replicas. The proof also proves that the replica was actually physically stored and was not computed on demand.
Filecoin is the first project from CoinList, a funding platform built by AngelList and Protocol Labs, the latter founded by Juan Benet. CoinList innovated with an open-source framework for token sales known as the Simple Agreement for Future Tokens (SAFT) with Filecoin being the first such token sale. The FIL offering was one of the largest ever, raising around $205 million in total. It was also one of the most controversial .token sales due to the fact that tokens were only offered to accredited investors ($200,000+ in income or a net worth of at least $1 million).
Some key dates and milestones for Filecoin are shown below:
- August 2013: Conceptualisation of Filecoin and IPFS, two protocols to decentralise cloud storage and the web respectively.
- May 2014: Protocol Labs founded by Juan Benet, part of the YCombinator S14 program.
- July 15, 2014: First version of the Filecoin protocol released, early contributors joined, and Filecoin paper released.
- Q1 2017: Re-design of the Filecoin protocol, invention of Proof-of-Replication.
- July 19, 2017: Filecoin whitepaper published.
- July 24, 2017: Launch of advisor presale. Filecoin raised $52 million with a presale of FIL tokens to a group of around 150 advisors, including Sequoia Capital, Andreessen Horowitz, Winklevoss Capital, Union Square Ventures, as well as individual investors.
- August 10, 2017: the public offering of FIL tokens facilitated by token sale platform CoinList was launched, where funds were raised via a method known as a Simple Agreement for Future Tokens (SAFT), giving accredited investors an allocation of tokens once the network is live in exchange for an upfront investment. The sale ended on September 7 and raised a total of $153.8 million.
- September 7, 2017: End of Filecoin token sale. When valuing BTC and ETH contributions at the time of investment, approximately $205.8 million was raised in total. The filecoin token sale became the largest ever Initial Coin Offering as the price of BTC/ETH appreciated during August/September, so the total funds were worth ~$253 million on September 2, and ~$233 million by September 7.
- January 2019: Filecoin code opened to the community, first devnets are launched.
- September 11, 2019: Launch of Filecoin devs grant program.
- December 11, 2019: First public testnet.
- May 14, 2020: Second phase of public testnet.
- August 3, 2020: ‘Space Race’ incentivised testnet which lasted three weeks and stress tested the network. The top 100 miners earned FIL tokens proportional to their storage power and that of the network. The incentivised testnet rewards were encoded into the genesis block and will vest linearly over six months form mainnet launch.
- October 15, 2020: Filecoin mainnet launch at block #148,888. FIL tokens begin to be distributed. The price of FIL posted an all-time high price above $200 per token.
- November 15, 2020: The Filecoin network surpasses 1 Exbibyte (EiB) of storage capacity in the first month.
- November 15, 2020: Filecoin’s market capitalisation breaches $1 billion for the first time.
- December 11, 2020: The market capitalisation of the Filecoin network reaches a record high of $1.37 billion.
- December 29, 2020: All-time low recorded for the price of FIL, near $20.
3. Economics of FIL
Demand and supply factors affecting filecoin.
Demand for FIL
One of the main sources of demand for FIL is to use it as a payments currency to store/retrieve any type of data on the decentralised storage network. The Engineering Filecoin’s Economy paper describes Filecoin as an island economy, which convers raw materials in the form of electricity, disks, algorithms and so on, into valuable storage services to be traded with the outside world, with FIL as the native currency.
Clients pay to store/retrieve data and choose from available service providers using the network’s native asset, FIL. Data can also be encrypted before submitting to providers to keep it private. Once data is added to the network, a client can disappear and return to retrieve it at a later date as the network will constantly check it is still there. The FIL tokens that a client pays will only be released to the miner if the data is stored correctly, which is verified by the network. If the network detects a failure will use an erasure coding scheme to repair that failure.
Filecoin makes storing data in the cloud cheaper and more secure. In essence, what Filecoin does is enable anyone to become a storage provider, in a similar way to how Airbnb has empowered individuals and small businesses to compete with large-chain hotels. To become a storage provider without a network such as Filecoin, there are high barriers to entry and consumers usually have to buy a bundle of other products from incumbents like Amazon. Also, storage prices are determined by the free market in Filecoin rather than a central authority.
Individuals and companies can utilise their unused storage and earn FIL tokens as either a storage miner or retrieval miner. To earn rewards, miners must constantly prove the data they are storing is still there. No specialist hardware is required to become a miner. Only general purpose hardware like CPUs/GPUs are required as well as spare storage space.
The probability of earning the block reward and transaction fees is not proportional to the hashing power as in Proof of Work networks like Bitcoin and Ethereum, but rather the amount of storage the miner contributes to the Filecoin network.
There are two types of miners in the Filecoin network (outlined below) and two corresponding markets (one for storage and one for retrieval) where FIL is used as the unit of account:
- Storage miners: store client data for rewards. They decide how much space they are willing to reserve for storage. The miner is obliged to continuously provide proofs that they store the data once an agreement is reached with a client. The proofs can be checked by anyone and can confirm whether the storage miner is reliable. Storage Miners participate in Filecoin by offering their disk space and serving PUT requests.
- Retrieval miners: provide client data at their request. They can get the data either from clients or storage miners. Micropayments are used to faciliate the exchange of data and FIL tokens between retrieval miners and clients. The data is split into pieces and clients pay a small number of coins for each piece. Retrieval Miners participate in Filecoin by serving data that users request via GET. A retrieval miner can also work as a storage miner.
Storage/retrieval miners also need to have FIL tokens to carry out their duties; if they do not follow through with a deal for storage or retrieval, their collateral is slashed in a similar way to some Proof-of-Stake protocols (like Ethereum 2.0).
The execution of the decentralised storage network is summarised by Figure 3, grouped by party and ordered chronologically by row:
Figure 3: Execution of the Filecoin DSN
Miners must lock FIL tokens for consensus security, storage reliability and contract guarantees which acts to reduce the available supply. Good behaviour is incentivised with rewards while bad behaviour is penalised through slashing, similar to how Ethereum 2.0 operates.
As more storage space is utilised and more miners join the network, more FIL tokens will be: locked as pledge collateral, required as deal collateral and payment to meet storage demand. The amount of FIL tokens locked in collateral and slashed for misbehaviour is dependent on the community.
Storage Market
The storage market links clients with storage miners, with all asks and bids stored on the blockchain. When clients submit a bid, they must deposit the amount of FIL tokens required for the deal and they can also select the number of replicas to be stored. Storage miners pledge storage to the network and FIL tokens are deposited for the duration of the deal, which will be returned once successfully executed, i.e., the miner generates proofs of storage for the data they committed to store. In contrast, if the proofs are invalid then the storage miner will lose some of their collateral.
Three forms of collateral are involved with storage mining: i) the initial pledge collateral, ii) block reward as collateral, and iii) storage deal provider collateral. The first is to cover any penalties and fees to ensure stability of the network. The second allows miners to reduce the initial pledge collateral by vesting block rewards over time. Finally, the storage deal provider collateral is a mechanism to incentivise miners to carry out their work and store data for the client.
After the pledge transaction is confirmed and recorded on the blockchain, storage miners can submit their asks and set their price for storage to clients. When an ask and a bid are matched, the client sends the data to the storage miner, then a deal order is signed and submitted to the blockchain. The data is then assigned that miner by the network, where an allocation (specifically the AllocTable) tracks each miner’s sector, a unit of the total storage capacity which contain pieces of data submitted by clients.
Once a sector is filled, it is sealed. Through the act of sealing, the data is transformed into a unique copy which is associated with the public key of the storage miner. To guarantee that storage miners are storing the data, they repeatedly generate proofs of replication, which are posted onto the blockchain and then verified by the network.
For missing or invalid proofs, storage miners are penalised and their collateral slashed. If a significant number of proofs are missing or invalid, then the storage miner is considered faulty by the network, the order fails and a new order is created for the same piece. In the event that every storage miner storing a piece is faulty, then the piece is lost and the client receives a full refund.
Retrieval Market
The retrieval market is an off-chain exchange linking clients with retrieval miners in a peer-to-peer manner. Retrieval miners submit their ask orders to the network and reveal which pieces of data they have while clients submit bids. Once an order is matched, which is checked by retrieval miners, the piece is sent to the client. When the piece is received by the client, a deal order is signed and submitted to the blockchain.
The lifecycle of a file is illustrated by Figure 4.
Figure 4: Lifecycle of a File
The demand for FIL should also grow in line with the growth of the ecosystem which currently has more than 90 projects building on the network. Hackathons and accelerators are also expanding the ecosystem.
As more decentralised applications (Dapps) are built on top of Filecoin by developers and greater interoperability with other protocols, this should act to increase the utility value of FIL. At the time of writing, two of the most popular Filecoin Dapps are Slate and Textile:
- Slate is a file-sharing network that leverages the conecpt of decentralised storage to collect, organise and link files.
- Textile is a provider of tools to connect and extend Filecoin, Libp2p and IPFS, empowering developers with a decentralised database providing IPFS-based storage and content hosting.
By addressing the high costs of storing data on chain, Filecoin is an important piece in solving the puzzle of recreating the Web2 ecosystem with a decentralised Web3. Filecoin can also be of value to the DeFi sector by providing permissionless frontends and opening up data heavy tasks to and from DeFi applications. Other use cases include archival storage and decentralised video hosting.
Supply of FIL
Filecoin’s supply is capped with the total number of tokens to ever exist being 2 billion FIL. The emission curve is inspired by, and quite similar, to Bitcoin’s. However, there are two important differences.
First, Filecoin has adopted a dual-minting model with ‘Simple minting’ and ‘Baseline minting’. Only 330 million FIL will be released on a six year half-life as part of simple minting and this is new supply that will come onto the market regardless of what Filecoin participants do. However with baseline minting, there is up to 700 million FIL that will be minted based on the network’s performance.
Second, the half life of Filecoin is six years, while in Bitcoin it is four years, which means that 97% of the FIL supply from simple minting (~320.1 million FIL) will be distributed in approximately 30 years.
The purpose of baseline minting is to create a strong incentive to collaborate and build a network capable of storing a large share of humanity’s most important information. The full release of these tokens depends on the Filecoin network reaching a Yottabyte of storage capacity in under 20 years. The dual-minting emission is designed to prevent rewarding early participants for simply getting in early.
Figure 5: Filecoin Emission
While most of the supply is geared towards mining rewards, the rest of the tokens are in the hands of investors who participated in the SAFT and Protocol Labs/the Filecoin Foundation, as shown by Figure 6.
Figure 6: Distribution of FIL tokens
- Mining rewards make up 70% of the token’s total supply (or 1.4 billion FIL), consisting of two categories: the Storage Mining Allocation (55%) and the Mining Reserve (15%).
All mining rewards undergo some form of vesting to encourage long-term network alignment. For example, three-quarters of the block rewards earned by miners vest linearly over 180 days while one-quarter are made available immediately to improve miner cash flow. Unreliable storage reduces the utility of the network and block rewards earned by these sectors will be slashed and burned.
A mining reserve of 210 million FIL tokens is held back from the circulating supply to incentivise future types of mining. The community will decide how these tokens would be released, which sets of stakeholders should be incentivised, and so on.
- SAFT investors hold 8% of the total supply, amounting to 150 million FIL tokens.
All SAFT holders received their tokens subject to various linear vesting terms beginning at network launch. The majority of SAFT tokens purchased are vesting linearly over three years (58%), 22% are vested over six months, 15% are vested over one year, and the remaining 5% of SAFTs tokens vest linearly over two years. In the advisor pre-sale, investors paid $0.75 per token. In the public sale, FIL tokens were sold for $1.19.
- Future Fundraising: Some tokens will be distributed in future fundraising efforts (3% of the total supply), amounting to 50 million FIL.
- Protocol Labs: Protocol Labs, its members and contributors collectively hold 15% of the total supply (300 million FIL) which will vest linearly over six years beginning at network launch.
When Protocol Labs encourages ecosystem development through grants with important collaborators, those also typically vest over six years.
- Filecoin Foundation: Five percent of the total supply (100 million FIL) were allocated to the Filecoin Foundation to vest linearly over six years beginning at network launch.
Another important apsect of the FIL supply is that EIP-1559 is already integrated meaning that transaction fees are burned, reducing the circulating supply. Some FIL are burned to fund on-chain computations and bandwidth as network message fees (the priority fee is not burned but goes to block-producing miners for including a message). Along with the tokens burned as a result of storage and consensus faults, the burning of transaction and network message fees creates long-term deflationary pressure.
Block Explorers such as Filfox and Filscan can be used to explore the supply of FIL, the distribution of supply, largest holders and other statistics.
4. Technology
A look under the hood to see how Filecoin functions.
The Filecoin blockchain is not like Bitcoin or other popular cryptocurrencies where it is a chain of blocks. Rather the Filecoin blockchain is actually a chain of tipsets, where tipsets are a set of blocks that have the same height and the same parent tipset.
Nodes are directed to build on top of the heaviest chain with the network’s consensus protocol. Since multiple storage miners can create blocks in the same epoch with tipsets, the network throughput is improved.
The Filecoin blockchain system includes:
- a Message Pool subsystem: The Message Pool is a pool of messages in the Filecoin protocol, acting as the interface between Filecoin nodes and the peer-to-peer network of other nodes used for off-chain message propagation. The message pool is used by nodes to maintain a set of messages they want to transmit to the Filecoin VM and add to the chain (i.e., add for “on-chain” execution).
- the Filecoin Virtual Machine: is the system component that is responsible for the execution of an actor’s (i.e., smart contract) code. Any operation executed on the Filecoin VM produces an output in the form of a State Tree.
- a State Tree subsystem: manages the creation and maintenance of state trees (the system state) deterministically generated by the virtual machine from a given subchain,
- a Chain Synchronisation subsystem: this protocol is used to synchronise the Filecoin blockchain, specific to Filecoin’s choices in state representation and consensus rules, but general enough that it can serve other blockchains, and
- a Storage Power consensus subsystem: the main interface enabling agreement on the state of the system by nodes.
The blockchain mechanism is used to keep track of all FIL transactions and accounts. The Filecoin Virtual Machine executes cryptographic contracts and market mechanisms between clients and miners and deals recorded on the chain continue to be processed over time without further interaction from the original parties.
Full node store the blockchain, which includes the Allocation Table (which denotes which miners are reponsible for which pieces of data), the order book for the strorage/retrieval markets, transactions, storage sectors with client data, proofs (verifiable records of correct behaviour) and contracts (the state and execution of smart contracts).
In other blockchains like Ethereum, a GasFee is specified in the unit of native currency and the miner producing a block is paid a priority fee based on how much gas is consumed by the message. In Filecoin, an amount of the fees is burned to compensate for the network’s resources (all nodes need to validate the messages) and the idea is based on Ethereum’s EIP-1559.
The Filecoin blockchain grows through successive rounds of leader election in which a number of miners are elected to generate a block. Filecoin’s blockchain runs on storage power. Miners agree on which subchain to mine by determining the amount of storage backing that subchain. The Power Table tracks the amount of storage contributed through sector commitments and Proofs of Spacetime.
The Filecoin blockchain has a block time of 25 seconds, known as an epoch. For each epoch, a secret election will select a small number of leaders (some epochs may have a single leader or several laders), where the elected storage miners are chosen via Winning Proof of Spacetime. The probability of winning an election is proportional to each miner’s assigned storage.
These leaders extend the chain by creating a block and propagating it to the network. Each miner will check if they are an elected leader in each epoch through a scheme which is fair, secret and publicly verifiable. To create new blocks, each miner must submit a compressed Proof-of-Storage for a specified sector. Elected miners that produce blocks are rewarded with FIL, as well as the opportunity to charge other Filecoin participants fees to include messages in the block.
As each epoch passes, there is more certainty over previous blocks and the system eventually reaches a state where there is certainty that the likelihood of a different history is sufficiently small. A block is committed once the majority of network participants add their weight to the chain the block belongs to either by extending the chain or by signing blocks.
Two consensus algorithms used in Filecoin ensure that storage on the network is publicly verifiable: Proof-of-Replication (or PoRep) and Proof-of-Spacetime (or PoSt). Proof of Replication is a novel Proof-of-Storage which allows a prover to convince the verifier that some data has been replicated to its own uniquely dedicated physical storage. Proof-of-Spacetime is used to prove that once a deal is made, that the miner is storing the data over time.
Figure 7 illustrates Proof of Replication:
Figure 7: Proof of Replication
The prover commits to store a number of distinct replicas of some data, and then convinces the verifier that it is indeed storing each of the replicas via a challenge/response protocol. These cryptographic proofs help to prevent Sybil attacks, outsourcing attacks and generation attacks.
Proof-of-Spacetime is used to regularly check to ensure that a random selection of encoded data is present in the right location. Over time, randomly selected miners have random sectors challenged. The data is verified and then compressed into a cryptographic proof. Miners then provide a public proof that a given encoding of the data existed in physical storage continuously over a period of time.
Both Proof-of-Replication and Proof-of-Spacetime use zk-SNARKS, making cryptographic proofs short and easy to verify. Zk-SNARKs, short for Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge, let us prove that a cryptographic proof has been done correctly without revealing the details of the proof itself or the underlying data.
Therefore, these proofs enable the Filecoin network to make lots challenges, aggregate them, make a succinct proof and put them on the main chain in a compact way. Zk-SNARKs are much more efficient compared to Filecoin’s original proofs, reducing the on-chain footprint from hundreds of kilobytes to just 192 bytes. Consequentially, the storage demands on nodes are minimised and the time required to verify a transaction is reduced.
Payment channels enable a series of off-chain microtransactions for applications built on top of Filecoin to be reconciled on-chain at a later time with fewer messages that involve the blockchain. Payment channels are used in the retrieval market of the Filecoin Network, but they could be applied to other use cases as well.
Smart Contracts
Filecoin offers support for smart contracts related to data storage, allowing clients to embed conditions for which they are offering storage services. For instance, a contract could specify befreohand which miners a client wants to use without having to go through the market or the client may want to create different reward strategies for miners.
There’s also support for more general smart contracts. For example, the Filecoin network is integrated with Ethereum so developers can access data and interact with smart contracts.
Technological Challenges
Filecoin Improvement Proposals (or FIPs) will be used to improve the network and determine updates to parameters/mechanisms, similar to Bitcoinʼs BIPs.
Scalability
- Greater adoption of Filecoin and IPFS is required for the decentralised storage network to match retrieval speeds of centralised incumbents.
- There is room for improvement with respect to the Proof of Replication consensus algorithm, as it could be made faster and more efficient. It is up to the community to solve this open problem.
Decentralisation
The Filecoin token sale was controversial since it was not open to the public and advisors were able to get tokens at a discounted rate (althogh this is in return for supporting and helping to develop the Filecoin network over the long term). Most of the tokens are concentrated in the hands of the Filecoin team and Filecoin Foundation, to an even greater degree than Ethereum and other major cryptocurrencies with founder rewards. It remains to be seen whether the team can deploy that capital effectively to achieve their long-term vision and justify the value of the Filecoin network.
Filecoin shares the problem of centralisation that major Proof of Work cryptocurrencies like Bitcoin are wrestling with. By taking a look at a Filecoin block explorer such as Filfox, you’ll see that a large majority of storage miners are located in China. If most miners are located in the same jurisdiction, there are possible risks related to the protocol and regulation. But as demand for storage grows globally, this should act to improve the distribution of storage miners and ensure more geographical dispersion.