Simplifying the Filecoin Whitepaper
Here we’ll quickly breakdown what filecoin is and the system’s consensus protocol, potential vulnerabilities, and projected future state — all straight from the whitepaper in a way we call can understand!
You can have access to my annotated version of the white paper here — with notes included!
What is Filecoin?
Filecoin is a decentralized storage network that turns cloud storage into an algorithmic market. The market runs on a blockchain with a native protocol token (also called “Filecoin”), which miners earn by providing storage to clients. Essentially, filecoin is the airbnb of data storage — a peer to peer based exchange that accepts asks and bids to settle decentralized data storage transactions on blockchain.
Filecoin works as an incentive layer on top of IPFS, which can provide storage infrastructure for any data. It is especially useful for decentralizing data, building and running distributed applications, and implementing smart contracts.
Filecoin System Basics
There are 3 types of entities in the Filecoin system:
- Client — Pay to store data and to retrieve data in the DSN, via Put and Get requests
- Miner — Storage Miners provide data storage to the network. Storage Miners participate in Filecoin by o↵ering their disk space and serving Put requests. To become Storage Miners, users must pledge their storage by depositing collateral proportional to it.
- Retrieval Miner — Retrieval Miners provide data retrieval to the Network. Retrieval Miners participate in Filecoin by serving data that users request via Get. Unlike Storage Miners, they are not required to pledge, commit to store data, or provide proofs of storage.
Clients pay a network of miners for data storage and retrieval; miners o↵er disk space and bandwidth in exchange of payments. Miners receive their payments only if the network can audit that their service was correctly provided.
Filecoin Consensus Protocol
- The Filecoin protocol is a Decentralized Storage Network construction built on a blockchain and with a native token. DSNs aggregate storage ordered by multiple independent storage providers and self-coordinate to provide data storage and data retrieval to clients.
- Filecoin is a protocol token whose blockchain uses a novel proof, called Proof-of-Spacetime, where blocks are created by miners that are storing data.
- Provides a data storage and retrieval service via a network of independent storage providers that does not rely on a single coordinator, where: (1) clients pay to store and retrieve data, (2) Storage Miners earn tokens by o↵ering storage (3) Retrieval Miners earn tokens by serving data.
- Uses Proof-of-Replication (PoRep), a novel Proof-of-Storage which allows a server (i.e. the prover P) to convince a user (i.e. the verifier V) that some data D has been replicated to its own uniquely dedicated physical storage, and Proof-of-Spacetime, where a verifier can check if a prover is storing her/his outsourced data for a range of time.
- Filecoin mining power (amount of data stored per miner) is proportional to active storage
- Clients can select replication parameters to protect against different threat models.
- Clients can eventually retrieve data from miners
- Sybil Attacks: Malicious miners could pretend to store (and get paid for) more copies than the ones physically stored by creating multiple Sybil identities, but storing the data only once.
- Outsourcing Attacks: Malicious miners could commit to store more data than the amount they can physically store, relying on quickly fetching data from other storage providers.
- Generation Attacks: Malicious miners could claim to be storing a large amount of data which they are instead e ciently generating on-demand using a small program. If the program is smaller than the purportedly stored data, this inflates the malicious miner’s likelihood of winning a block reward in Filecoin, which is proportional to the miner’s storage currently in use.
- Deals are time-boxed and become invalid — but malicious clients could DDOs specified miners and hold their storage up for (ts — now) periods of time indefinitely…
- Given that clients will essentially need to strategize as to how many pieces they’re bidding to be assigned to m number of sectors AND that those pieces need to be encrypted — there seems a need for something to help manage bids and data encryption before transacting on such a network
- Level of encryption and sharding of data is somewhat undescribed — seems like clients can opt to store their data in one place by just bidding for one piece (instead of breaking up their data into multiple pieces)
- Is there any guarantee of zero storage faults given a certain amount of requested replicas?
- Is the collateral necessary to become a storage miner the filecoin token as well? If so, how is it initially obtained given token sale limitations? Will investors that have filecoin naturally select to transact on the network?
- How is the piece (data storage request) transacted, are there size limits to how big a piece can be? Isn’t it dangerous to put one piece on a sector (data storage miner space) at all — even if it’s encrypted?
- When sectors are sealed (closed due to inadequate leftover space on the storage drive), where is the replica stored?
- Are network assignments of pieces to sectors random?
- Are clients storing the hash of their data in another database, given that they might have billions of pieces given the size of each piece and assignment?
- What type of computational resource does being a Retrieval Miner entail?
- Where is the off-chain orderbook held and can this be altered?
Potential Future State and Application Stack
- Off chain settlements could incorporate the feeless structure/support of IOTA tangle at scale
- Potential to create smart contract based APIs that work within the specified Filecoin put framework (querying encrypted data even)
- Potential of Filecoin blockchain being the decentralized off chain storage of other blockchains like bitcoin
- Could even call smart contracts in storage and execute on another blockchain like ethereum to avoid gas fees…