In our Decentralized Data Structures tutorial, we explored how content addressing enable us to trust peers on the decentralized web. The concepts of content addressing and Content Identifiers (CIDs) are key to understanding how Filecoin verifies storage, so please go check out that tutorial now if you haven't yet done so.
On a decentralized, peer-to-peer network like IPFS, we can use crytograhic hashing to confirm that any number of peers are storing exact copies of our data. However, we're depending on the generosity of those parties and have no guarantee that our data will continue to be replicated over time. Filecoin, on the other hand, adds an incentive layer to promote long term, verifiable storage on the decentralized web.
When we pay a storage provider in a centralized system, we place explicit trust in a specific entity (AWS, etc.) to keep our data safe and store it for a promised period. With the decentralized Filecoin network, on the other hand, we have access to a variety of storage providers (referred to as storage miners) who are competing for our business. We pay for these storage deals with Filecoin tokens (FIL), a cryptocurrency.
Although we may not be familiar with these providers in the way we're acquainted with the well-known centralized storage providers, we can place our trust in the design of Filecoin's protocol and implementations, which in turn provide us with the ability to verify that storage miners are honoring their agreements to store our data for a set period of time. Thanks to Filecoin's blockchain, all participants in the network work together to verify each deal. These consensus mechanisms are how users in a distributed network come to agreement without the need for a central authority.
Proving systems, used by all blockchains, are cryptographic protocols where a prover proves something to a verifier. In the case of Filecoin, the storage miner is responsible for proving that they're storing the correct data over time, and verifier duties are shared by all participants in the network.
In this tutorial we'll explore the cryptographic proofs that Filecoin uses to verify storage, called Proof of Replication (PoRep) and Proof of Storage (PoSt).
It's important to note that cryptographic proofs are different from encryption. The Filecoin protocol does not provide encryption, although you may use it to store encrypted data.
Whereas blockchains often use proofs of work (meaning computation or processing power), Filecoin's proofs are proofs of useful storage (a kind of proof of stake). Because these proofs don't have to run continuously, they're more computationally efficient and less bad for the environment.