Why Ethereum Should be Worried About Filecoin
A Plain English Overview of Decentralized File Storage Systems
The Mobius Research & Development team is actively developing our Decentralized Data Marketplace and Proof of Stake Oracle Protocol. Broadly, one topic we are researching is second layer protocols that use Stellar as the root blockchain since it is up to ~100 times faster and over ~100,000 times cheaper than Ethereum today on average!
A specific field we’ve been researching is decentralized file storage, and while we aren’t ready to announce a product yet, we want to highlight some current research.
First some background info on the three major decentralized file storage projects.
Storj is a decentralized file storage system that requires the party requesting a file be stored to keep: A) a copy of the file and B) a computer online in order to constantly check whether the file is being stored by another party.
Here is a quick summary of how Storj works:
- A user U advertises that it will periodically pay $X to have file F stored.
- A provider P sees the advertisement and agrees to store F. It receives a copy of F from U and starts storing it.
- Periodically U asks P a question about F (technically it asks P to provide a Merkle proof for a specific challenge) such that if P answers the question correctly, U knows with some statistically significant chance that P has F stored. If P provides the correct answer, U pays $X to P.
- If U does not pay P, P deletes F — not a big deal: P stored F for a short amount of time it wasn’t paid for.
- If P answers the question wrong, U assumes P doesn’t have the file, doesn’t pay P, and advertises F for storage again to find a new provider.
Problems with Storj:
- U has to remain online asking P questions about F in order to test whether P has the file stored.
- U can only be certain one copy of F is stored — P could pretend to be P2 and claim it also has F stored in a separate location but in reality there is only one copy of the file. U could overcome this problem by encrypting F with a secret key and creating F2 which it pays to have stored. The problem then is U must keep the encryption key secret to prevent cheating, which means the file cannot be shared publicly from the decentralized storage system.
- U has to keep a copy of F because P might just disappear.
- Trust between U and P is minimized with very frequent challenges and micropayments. However, very frequent micropayments is not practical with Storj because it is based on Ethereum which only runs at ~7 token transactions per second and can cost dollars per transaction.
Sia improves on Storj by broadly making the following improvements:
1. A blockchain automatically generates the periodic questions about F for P to prove it has F instead of requiring U to do it.
2. Stores a Merkle tree of F on the blockchain (instead of solely by U) so any computer that is part of the network can verify the answer to the question is correct.
These improvements mean that U does not have to stay online asking or checking the periodic questions P must answer to prove it has F.
This is an improvement but Sia still suffers from Storj problems 2 and 3:
2. U cannot know that more than one copy of F is being stored and
3. U must retain a copy of F.
Filecoin improves upon Storj and Sia in two key ways:
1. Proofs of Replication (PoRep)¹ allows U (and the public) to know that multiple copies of F are stored in the system without encrypting F with a secret key. Being able to store multiple copies of F without encryption means the data of F in the decentralized storage system can be made publicly available to third parties while still guaranteeing multiple copies are stored.
Note that while Filecoin allows the network/public to be sure multiple copies of a file F are stored, it does not allow anyone to be sure the copies are geographically distributed — i.e. all the copies of F could still be on one hard drive! 😂
Very briefly, PoRep works by creating derived versions of F e.g. F* such that: a) it is easy to convert F* to F and b) it is VERY SLOW to convert F to F*.
If U wants F stored twice it asks for F and F* to be stored. U then asks questions about F and F* and if P provides the correct answers it knows F and F* are stored — hence two copies. The fact that it is VERY SLOW to go from F to F* is important because if P is slow answering the questions about F*, the assumption is P does not have F stored (otherwise when P gets an F* question it could generate it from F and pretend it always had it stored).
2. Proofs of Space Time (PoST) allow for less frequent question and answering of P to prove it has F stored.
Very briefly, PoST works by having P start a wall-clock timed blockchain calculated based on data (e.g. F) at the beginning of storing the file. Since the blockchain calculation uses an algorithm that is A) based on the data in F and B) wall-clock time predictable, P needs to only post something such as the current head of the blockchain every e.g. 24 hours. At the same time the network, as in Sia, can check the answer once every 24 hours and know if it matches the expected value that P had F stored for the whole 24 hours.
Some quick notes about the PoST algorithm:
a. It is slow as in you can predict the wall-clock running time BUT it is NOT resource intensive like a mining function (if it was there is no way it could be cheaper than S3 and maybe not even practical at any scale of file storage!).
b. It is constantly calculating on F throughout the time period so P must practically have the entire F stored for the period or it won’t be able to produce the correct answer for the period.
But Filecoin is MUCH MORE than File Storage!
Given the above you may think Filecoin is primarily a file storage competitor and that IS how it was pitched BUT it is much more than that 🤩
In the white paper on page 33 in § 7.1 (if you bought Filecoin you read the whole white paper in detail right?! 😂) it mentions support for “generic smart contracts” and states: “Users can associate programs to their transactions like in other systems (as in Ethereum ) which do not directly depend on the use of storage.”
Yes right there in the Filecoin white paper in a tiny section it mentions that on top of file storage it is creating a full Ethereum competitor (aka a public global supercomputer)!
So what is all the file storage stuff about?!
Instead of Proof of Work (PoW) mining, Filecoin uses Proof of Storage (PoS) to secure the network! Pretty cool 😎
Some have wondered how Filecoin will underprice big central file storage providers such as S3 given the decentralized no-trust environment requires many copies of a file be stored to know it is stored (so instead of storing once on S3 you may have to pay to have it stored 5 times on Filecoin) — here is how:
File storage costs will be subsidized by people paying for compute! You know on Ethereum how you have to pay gas for every transaction and that money goes to fund miners who are running computers doing useless work and just eating electricity?
In Filecoin the “gas” payments go to “miners” who instead of running massive computers doing useless mining are instead storing data that people are also paying them to store!
Imagine if instead of the Ethereum miners doing useless work they were doing useful computation such as 3D rendering and Pixar was paying them to render the movies — yes that is what Filecoin is doing via file storage!
This means Filecoin “mining” is A) MUCH more energy efficient (no more killing the planet!) and B) subsidized by people paying for useful “mining”!
What Does All This Have to do With Mobius?
Good question! More later 😛
As mentioned the Mobius R&D team is actively working on developing our Decentralized Data Marketplace and Proof of Stake Oracle Protocol.
- Thanks to Ben Fisch for answering questions about PoRep.