Filecoin is a market for storage with a cryptographic audit attached. A client pays a storage provider (SP) to keep some data for a fixed term, and the chain checks, continuously and without trusting the provider, that the data is still there. The provider has money locked up that it loses if the checks fail. Everything else, from sealing to Filecoin Plus, is machinery built around that idea.
Storage providers and sectors
Storage providers (once called miners) contribute disk space to the network. That space is organised into sectors, fixed-size units of 32 GiB or 64 GiB. A sector is the thing that gets proven, pledged and penalised; individual files are never tracked on their own.
A sector can be:
- Committed capacity (CC): full of zeros. The SP proves space, earns block rewards, and can later fill it with real data.
- A deal sector: containing client data, packed as one or more pieces.
Each piece has a piece CID (sometimes called CommP, starting baga...), a commitment over the padded data. That is different from the IPFS payload CID (bafy...) of the content inside it, a distinction that matters when you look up your data later.
Sealing and Proof-of-Replication
Before a sector counts, the SP seals it: runs the data through a slow, deliberately sequential encoding (Stacked DRG) keyed to that SP and that sector. The output is a replica that is unique even if two providers store identical data, or one provider stores the same data twice.
Sealing takes hours and serious hardware (lots of RAM, GPUs for the proof stages). At the end the SP posts a Proof-of-Replication (PoRep) on-chain, a SNARK showing that the sealed replica really is an encoding of the committed data. This stops two cheats: pretending to store many copies while keeping one, and generating the data on demand instead of storing it.
Snap Deals let an SP drop client data into an existing CC sector without redoing the full seal, which is why providers often keep a stock of CC sectors ready.
Proof-of-Spacetime: WindowPoSt and WinningPoSt
PoRep proves the data was stored once. proves it is still stored, over time. There are two kinds: