Last week, we discussed why we think Filecoin is a big milestone in the evolution of the Internet and outlined 4 key reasons why Filecoin can succeed, namely:
- The founding team’s experience at Protocol Labs
- Significantly lowering data storage costs
- Properly designed incentives
- Resilience and censorship resistance
This week, we sat down with the Filecoin team to discuss the project in greater detail and present a more comprehensive look at how Filecoin will return data storage to its naturally free and private state. This is part one of a multi-part series.
1. What is Filecoin?
Filecoin is a decentralized storage marketplace to preserve humanity’s most important data.
2. What problem is Filecoin trying to solve?
We created Filecoin because the amount of data humans generate is exponentially increasing, and we need more efficient ways to store and access it. We’re putting vast amounts of storage resources spread all across the globe to work to help solve that problem.
3. To operate successfully, the Filecoin decentralized storage network (DSN) requires 3 key properties: public verifiability, auditability, and incentive-compatibility. Can you provide insight into what those 3 properties mean in the context of the project?
Filecoin lets users select from a vast, decentralized marketplace of storage providers and choose the one that best suits their price, performance, and location requirements. It lets storage and retrieval providers operate “plug-and-play” cloud storage platforms that, spread across many users, can provide meaningful competition to large, centralized services. And it provides strong guarantees about the integrity of clients’ data and the fact that it has been stored reliably over time.
4. Filecoin seeks to achieve public verifiability and auditability through this notion of Proof-of-Storage. According to Filecoin’s documentation, Filecoin achieves Proof of Storage through the implementations of Proof of Replication (PoRep) and Proof of Spacetime (PoSt). What is Proof of Replication and how does it work in practice?
In a Proof-of-Replication, a storage miner proves that they are storing a physically unique copy, or replica, of the data. Proof-of-Replication happens just once, at the time the data is first stored by the miner.
As the storage miner receives each piece of client data, they place it into a sector. Sectors are the fundamental units of storage in Filecoin, and can contain pieces from multiple deals and clients.
Next, a process called sealing takes place. During sealing, the sector data is encoded through a sequence of graph and hashing processes to create a unique replica. The encoding process is designed to be slow and computationally heavy, making it difficult to spoof. (Note that encoding is not the same as encryption. If you want to store private data, you must encrypt it before adding it to the Filecoin network.) The sealing process also compresses the Proof of Replication using zk-SNARKs to keep the chain smaller so that it can be stored by all members of the Filecoin network for verification purposes.
5. What is Proof-of-Spacetime and how does it work in practice?
Whereas Proof-of-Replication is run once to prove that a miner stored a physically unique copy of the data at the time the sector was sealed, Proof-of-Spacetime (PoSt) is run repeatedly to prove that they are continuing to dedicate storage space to that same data over time.
First, PoSt randomly selects some leaf nodes of the encoded replica and runs merkle inclusion proofs on them to show that the miner has the specific bytes that should be there.
Then, the miner generates a proof that they know of a root for the replica which both agrees with the inclusion proofs and can be used to derive a publicly-known piece of data known as a “CommR.” The CommR can be used by anyone to verify the validity of the miner’s proofs.
The final stage of PoSt compresses these proofs into a single zk-SNARK, which allows it to be included in the public chain in a space-efficient way.
This blog post is being distributed by Amalgamated Token Services Inc., dba “CoinList,” or one of its subsidiaries. This blog post and use of the CoinList website is subject to certain disclosures, restrictions and risks, available here.