Launched in 2017, Filecoin is an open-source decentralized storage network that uses blockchain to implement a cooperative digital storage and data retrieval solution.
Filecoin is based on IPFS and allows its users to rent any unused storage space they have on their hard drives in exchange for filecoins, Filecoin’s own cryptocurrency. Filecoin uses blockchain to register deals between storage providers and consumers and claims the use of blockchain as a data replication mechanism will make its solution resilient to censorship:
Filecoin resists censorship because there is no central provider that can be coerced into deleting files or withholding service. The network is made up of many different computers run by many different people and organizations. Faulty or malicious actors are noticed by the network and removed automatically.
Filecoin employs a storage proof algorithm to ensure that data has been stored as a replica of some original data stored somewhere else. This proof is actually implemented in Rust, while the rest of the system is written in Go.
InfoQ has spoken with Filecoin software engineer Aayush Rajasekaran, who built Filecoin’s Lotus implementation.
InfoQ: What is Filecoin?
Aayush Rajasekaran: Filecoin is a decentralized storage network designed to store humanity’s most valuable information. The Filecoin project encompasses the protocol that facilitates reliable storage, the online marketplace where storage clients and providers interact, and the cryptocurrency that provides the economic incentives to power the network.
At the heart of Filecoin is the concept of provable storage. Simply put, to “prove” storage is to convince any listener that you have a unique replica of a certain piece of data stored somewhere. It is important that the data stored be uniquely replicated, for if not anyone can claim to have stored a long string of zeros (or some other junk data).
The completely naive proof of storage would be to simply furnish the entirety of the stored data to someone demanding to see the proof. This is infeasible when the size of the data grows large. The Filecoin protocol specifies a secure cryptographic approach to proving storage. Storage providers submit such proofs once a day, which are validated by every node on the Filecoin network. The upshot is that someone storing data with a Filecoin storage provider does not have to worry about the data being secretly lost or corrupted. If that happens, it will be automatically detected by the network within a day, and the storage provider will be penalized appropriately.
The Filecoin marketplace provides a platform for storage clients and providers to meet and negotiate storage deals. A storage client is any entity that has some valuable data they would like to pay to store, while storage providers are entities with spare storage that they would like to leverage for financial reward. Clients transfer their data to providers, and pay them in Filecoin, the native cryptocurrency of the network.
The cryptocurrency itself is managed on a distributed ledger, a blockchain, akin to that used by Bitcoin and other cryptocurrencies. Blocks produced on the Filecoin network are valid if they contain a valid Proof of Storage. This is an easily computed piece of data that can only be produced by providers who have pledged storage to the network. Producing blocks earns the storage provider a block reward, which is an additional incentive to pledge storage to the network. Storage providers functioning in this capacity are called storage miners.
InfoQ: How does it differ from other blockchain-based solutions available today?
Rajasekaran: The key difference is that producing blocks on the Filecoin network isn’t wasteful. “Mining” on the Filecoin network is based on useful storage. This is in sharp contrast to the wasteful computation required in Proof of Work blockchains like Bitcoin — producing a block on such a network requires expensive hardware and high energy costs, but yields no benefit to any of the parties involved.
There is also large scope for Filecoin to interact with other blockchain-based solutions. Much of dApp development on networks like Ethereum today gets blocked by the problem of scaling storage: any information a dApp needs to persist winds up on-chain, and thus in the storage of every single node operator. Filecoin can provide the verified storage functionality that such dApps need. While Filecoin doesn’t currently support native Smart Contracts, adding such functionality would be fairly easy.
InfoQ: While promising, decentralized storage has its own challenges. Most users will be concerned by, say, the privacy of their data, or the security of their systems. How does Filecoin address such concerns?
Rajasekaran: Fortunately, there’s a lot of easy stuff that can protect user privacy without having to become core to the protocol itself, making innovation easy. Users can encrypt their data before sending it to a storage provider, and we can build clients that perform this encryption automatically. The Files project is an example of an application on Filecoin that automatically preserves privacy.
The reliability of the storage, on the other hand, is core to the protocol itself. A crucial aspect of the security guarantee is that the onus of detecting data loss is not solely on the storage client. As discussed, any corruption of the data is quickly noticed, and automatically penalized, by the network on the whole.
Further, the Filecoin marketplace allows storage clients to estimate the worth of their data. Clients can request storage providers put up collateral when they agree to a deal. The collateral is returned at deal expiration, but is lost by the provider if the deal fails. Clients who are willing to pay more for the storage of their data may find providers willing to accept larger collateral requirements.
InfoQ: Filecoin is not the only player in the decentralized storage arena. What makes it unique and gives it a competitive advantage over its competitors from your point of view?
Rajasekaran: Filecoin doesn’t view other participants in the decentralized storage as “competitors”. Filecoin is completely open source, so anyone is free to use or improve on our software. Filecoin is, however, the only project providing verifiable storage, where data corruption is automatically detected and penalized.
There’s also the sheer level of interest in and support for the project. We’re nearing 3 exabytes of storage currently dedicated to the network, despite being only a few months into the life of the network. This has in turn attracted significant developers, applications, infrastructure, and ecosystem funds, which makes this an awesome community to be a part of!
InfoQ: What kind of development do you envision for Filecoin and decentralized storage in general in the near future?
Rajasekaran: There are tons of opportunities – from preserving large culturally relevant datasets, decentralized video applications, apps that verify data integrity, consumer apps that make it easy to store & retrieve data, DeFi use cases, decentralized data markets, browser support, and many many more. Over 250 projects are entering the ecosystem through hackathons and accelerators, all of which are developing extremely creative use cases on top of Filecoin and IPFS.
Filecoin is not the only existing solution for cooperative storage. Other players in this arena include MIT’s Chord, Sia, and Storj.