A technical look at three companies driving decentralized storage
First of all, I wrote this article not to argue which project is better than the other, which decisions in terms of tech are right or wrong, nor the advantage or disadvantage of each project. I am writing this to point out the design differences behind these three decentralized storage networks. Blockchain-based decentralized storage is a long-term commercial path, and it is good for different teams to explore different directions within the same field. The wins of one group only benefit the entire field.
Allow me to first introduce our three storage platforms.
Filecoin — Filecoin is an open-sourced, public cryptocurrency and digital payment system intended to be a blockchain-based digital storage and data retrieval method. Learn more at FileCoin’s official website.
PPIO — A decentralized data storage and delivery platform for developers that value affordability, speed, and privacy. Documentation and access to the demo app can be found on the PPIO official website.
I‘ll compare these three decentralized storage networks from several different aspects.
The biggest problem for blockchain projects is the application scenario. Most DApps don’t have users. There are currently no popular products except for some gambling-related games. Data storage and its related services are one of the scenarios where it is possible to create a phenomenal blockchain application.
But decentralized storage is different from traditional digital currency projects. For example, Bitcoin and Ethereum are computing-centric digital currencies, with contracts being their main course. All the network needs is a block generator, which is the node to execute a contract or to package a transaction. The consensus of Bitcoin and Ethereum is to choose this block node. But decentralized storage is completely different. It’s the sharing economy that needs both service users and service providers to run. User pay fees to providers to share part of providers’ resources, like how Uber and Airbnb operate.
From a value perspective, data storage and data distribution are two dimensions of decentralized storage. Storage allows data to be saved to the Internet and later retrieved when needed. Data storage can be used for backup, multi-device synchronization, file sharing in a small group, and cloud storage. Data distribution allows data to quickly reach people in need. It can be used to share files on a large scale, file downloading, VOD, live streaming, video conference, VPNs etc. Decentralized data storage shares the hard disk and decentralized data distribution shares bandwidth.
Filecoin designs storage miners and index miners and uses them for data storage and data distribution accordingly. However, the project is more focused on storage than distribution.
Storj is designed for storage scenarios.
PPIO is designed for both storage and distribution but pays more attention towards distribution scenarios. PPIO will soon improve its streaming output capabilities at the application layer to support mainstream video-on-demand and live streaming solutions.
The positioning of Storj and PPIO is relatively close. They are designed to directly serve front-line developers. Both Storj and PPIO support Object-based storage interfaces and are compatible with the AWS S3 interface. PPIO is also compatible with the OSS interface and provides a better POSS interface for user experience. It’s convenient for developers using the AWS S3 interface. PPIO and Storj aim to productize the technology by providing developers with a useful and easy tool to develop products.
Filecoin is an infrastructure. It only realizes the storage and bandwidth layer functions. Filecoin provides a data storage market, where you can buy raw storage. If front-line developers need to migrate from AWS S3 services to Filecoin, they need to adjust the original architecture for the migration. I think it’s possible that Filecoin becomes the underlying infrastructure of AWS S3. For example, AWS S3 buys storage space from the Filecoin storage market to replace its own data center and then implements AWS S3 services on the decentralized storage nodes.
To summarize, PPIO and Stroj want to make products themselves. They are designing toB products for full stack implementation. Developers can quickly and easily develop products on PPIO and Storj by using their SDK. This approach is more like creating a storage version of Android. Filecoin, on the other hand, is an ecosystem that is designing a storage infrastructure. Other parties can improve the ecosystem by implementing open source projects later on to realize the full stack. Filecoin is more like the storage version of the Linux native operating system. Android contains the kernel of Linux. This is the difference between the full stack and infrastructure.
Quality of Service (QoS)
Because decentralized storage, in essence, is part of the sharing economy, service providers must provide services to users. Quality of Service (QoS) plays an important role in the service. For example, if Uber can’t provide enough cars to users, or if the Uber drivers always cancel the request at the last minute, will anyone still use Uber? The same goes for decentralized storage services. If decentralized storage service providers cannot provide a better user experience than centralized cloud storage, it provides no value to the end users. To make decentralized storage a truly disruptive technology, it has to provide a better user experience than current existing cloud storage services, starting with certain niche markets.
QoS does not refer to the TPS indicator used by most blockchains to measure performance. Instead, it refers to the QoS of traditional cloud storage services such as usability, reliability, durability, return test, download speed, etc. For streaming media specifically, the QoS refers to delay time with the program source, the time to start the playback, the number of jams during playback, the jam time, etc.
PPIO values QoS more than anything else. PPIO is designed from the bottom to achieve high QoS. PPIO also has a full QoS system to continuously tune and improve the network for a stable and reliable service.
Storj discussed some core storage metrics like durability in its white paper and blog articles. So I think QoS is one of the concerns of the Storj team.
Filecoin hasn’t mentioned anything related to QoS in its white papers or in their codes. The Filecoin team is concentrating on building the infrastructure now. But they may consider QoS in the future.
Comparing the three decentralized storage networks, Filecoin chooses to be decentralized from the start with the project now fully open sourced. PPIO has decided to follow a three-phase plan towards decentralization and to open source gradually. Finally, Storj is more centralized in terms of its current storage and scheduling index system. However, it should be noted that its token is based on Ethereum ERC20 which is decentralized. I’m not sure if Storj will become more decentralized in the near future.
PPIO choose to realize the decentralization gradually for the following reasons:
- The very complicated proof mechanism of blockchain needs to be rested in the long-term to achieve safe and efficient requirements
- Quality of service (QoS) needs to be optimized step by step, and the algorithm needs to be adjusted in a more flexible way
- The economic model needs to be tested and run, and it needs to be updated as well.
Economy Incentive Design
1. Indexing Market (Bandwidth Market)
PPIO, Storj, and Filecoin all support transactions between download service providers (Storage Node/Miner) and download service users (User). Miners provide the data to download services to the user, and users pay the download fee to the miner.
2. Matching Market
Storj adopts the market maker model, in which the service demander (Client/User) pays directly to the Storj platform and then obtains the service. The service provider (storage node/miner) obtains tokens and rewards from the Storj platform. This trading model is a centralized trading model characterized by high efficiency but is not decentralized and transparent enough.
Filecoin adopts a matching model in which all service demanders (Client/Users) and service providers (storage nodes/miners) are freely paired in the Filecoin market (including the storage market and the indexing market). It’s completely decentralized.
The PPIO platform is flexible. Users and Miners can freely choose the match off-the-chain, or entrust a third-party scheduling platform to coordinate and match. PPIO itself also develops a scheduling platform to allocate resources and nodes.
3. Coin Pool Node
Traditional Internet products provide storage and bandwidth service through packages. Users typically pay a one-time payment (fiat) for using the service with a maximum storage limit within a certain period. For example, $5/month for 5T of storage space, and $4/month for 500G of traffic. So you might pay for more than you will use. But in the blockchain world, all services are charged based on the actual usage. On the blockchain algorithm, the service provides proofs, and the proofs are the basis for the charge. There is a vast difference between these two models.
PPIO innovatively introduced a role called payment gateway, which can use economic actuarial means to transform the less uncertain storage service in the blockchain into a deterministic storage service for the user. The same as the package mode. This method reduces the migration and cognitive costs of users moving from the Internet to the blockchain.
Storj directly accepts the user‘s payment, and there is no service and settlement on the blockchain. So the project doesn’t have to think about migration costs.
Filecoin, on the other hand, solves service and settlement problems on the blockchain. But it does not consider how to make migration easier.
PPIO supports Overlay Network. Each storage node (miner) will take the storage node with the faster physical connection as its neighbor. Therefore, in the process of data transmission and information interaction, every node can take full advantage of its neighbor nodes to improve significantly network efficiency.
Stroj has not emphasized the similar feature.
Filecoin itself does not provide similar features. Filecoin positions itself as underlying infrastructure so their team may expect to have other third-party developers implementing P2P overlay networks in the upper layer.
2. Optimization of Media Streaming Transmission
Both Filecoin and Storj are designed for file downloading. Therefore there is no special consideration for media streaming.
PPIO implements a special data-driven download algorithm for media streaming to ensure smooth playback of live streaming media.
P4P (Proactive Network Provider Participation for P2P) is a method for ISPs and P2P software to optimize connections. It enables peer selection based on the topology of the physical network, and reduces traffic on the backbone network and the operation costs of network providers, to improve data transfer efficiency. Compared to P2P that selects nodes randomly, P4P mode can coordinate network topology data and select nodes effectively, thus improving network routing efficiency.
The PPIO team has had a rich experience dealing with operators when doing PPTV, therefore I believe we can successfully implement ISP-friendly P4P technology in our platform. Filecoin and Storj currently do not use P4P in their designs.
4. Adaptive Scheduling of Popular Content
PPIO supports P2P-CDN. In P2P-CDN, adaptive scheduling of popular content is a very important means to improve the quality of service. The adaptive scheduling of popular content is to automatically schedule popular content in the network to many more storage nodes. The more nodes hosting the content, the better the user experience, and the more nodes making a profit. Conversely, when the file is not popular anymore, the network will adaptively reduce the copies. Thus, the network forms a dynamic balance. PPIO continues to put to design and improve this algorithm.
Filecoin and Storj at this stage have not designed this mechanism.
1. Erasure Technology
PPIO implements the method of full copy and erasure; Storj designs only erasure code; Filecoin may not consider erasure.
To understand why PPIO has chosen a different approach to erasure, we must first note that erasure codes are essential for storage systems. Because of the erasure technique, the data loss rate can be significantly reduced. Durability is the indicator of the erasure technique. The erasure codes are to divide the file into n parts after appropriate expansion. As long as there are k parts, the complete file can be recovered. If n pieces are placed on different machines, even if there are n-k machines offline will also not affect file recovery.
Because PPIO position itself as data storage and distribution platform, it designs the erasure code and the full copy dual mode for the fragmentation of the file in the upper layer. The full copy is mainly used for distribution because the full copy transmission can ensure the efficiency of data acquisition. And erasure is to better ensure that the data will not be lost. Even when the numbers of miners are fluctuating, the erasure code technology can help to achieve high durability with little redundancy (99.999999999%)..
2. Storage Node Preference Based on Overlay Network
The choice of the storage node can be compared to the Tracker download of BitTorrent, specifically for resources and users.
PPIO designed a distance-preferred storage node algorithm. PPIO’s node-selection algorithm is multi-dimensional, including network distance (obtained in overlapping networks) and the records of price, commitment time, node stability and node credit, but the network distance is the first consideration.
Filecoin’s infrastructure, storage, and proofs are complementary. Filecoin’s supply and demand sides are completely self-matching off the chain. Nodes get rewarded if they have both signatures and proofs. That said, the entire Filecoin design does not have a role similar to BitTorrent Tracker, which is used to match the relationship between resources and miners.
Storj did not reveal too much detail at this point. But the team must have considered this problem. This is an issue that has been considered in even the oldest P2P projects.
Storj only uses the ERC20’s Token to identify the contribution of its storage nodes, and its platform is not based on the blockchain. Therefore, the transaction between the client (Client/User) and the storage node (storage node/miner) is done through a centralized service node (Satellite). Storj is not a public chain project; it is an application in Ethereum.
Both Filecoin and PPIO have their own chains. They not only realize the value circulation in the chain but also complete the transaction and certification in the chain. They are real blockchain-based storage and distribution platforms.
1. Consensus Algorithm
Filecoin was decentralized at the beginning of the design, inventing a consensus algorithm called EC algorithm. Storj uses the Ethereum public chain to achieve the consensus, without its own consensus algorithm. PPIO will implement a combination of VRF and BFT in the final decentralization phase, similar to the mechanism of the DFINITY public chain. The PPIO team has chosen to adopt a more centralized DPOS consensus algorithm in the early stage to simplify any technical difficulties.
2. Storage Proof Algorithm
With common public chain projects, the consensus algorithm and the proof algorithm are integrated, such as PoW, PoS, etc. But in a decentralized storage project, the proof algorithm design is very difficult. I’ll analyze the storage proof algorithms separately.
Filecoin supports PoRep (Proof of Replication) and PoSt (Proof of Spacetime). The PoRep refers to the proof obtained after the node generates a network copy. PoST is a proof that a file occupies a particular space and saves a certain time. Filecoin is the first project that proposed these two algorithms. In the Filecoin white paper, these two proof algorithms and processes accounted for more than 70% of the content detailed.
Storj proposed PoS (Proof of Storage) in its white paper. PoS is not as rigorous as PoRep and PoSt from what is written in their Whitepaper.
PPIO also uses PoRep and PoSt, and the two proof mechanisms are indeed very rigorous. In addition, PPIO also created its own PoD (Proof of Download), which is mainly used to prove the multi-point data download. PoD is friendly to media streaming related service. PPIO also proposed LPoC (Light Proof of Capacity) in the white paper to cold start the storage nodes. Since then the team has decided not to implement LPoC, because LPOC cannot produce a service with real value. Like BurstCoin, LPoC consumes hard disk resources without providing anything valuable; this is not in line with the value proposition of the PPIO project.
3. Blockchain Structure
Filecoin designs a single main chain architecture which makes the structure very simple. Storj itself is not a public chain; instead, it is an application based on ETH, which only has one chain.
In order to make performance better, PPIO has already considered content compliance in different regions, and have designed the structure of the main chain + multiple contract chains. You can think of the contract chain as being equivalent to a side chain. There are two main reasons why PPIO has adopted this design:
- When the performance of one chain is not enough, multiple chains provide some flexibility to expand. The side chain can be considered as instigating the Sharding process.
- Regarding the compliance of content regulation in different regions, PPIO will follow the laws of different countries. Therefore it may be necessary to deploy a separate contract chain for each country, and the contract details can be different.
4. Information on Chain
On the blockchain, once data is written onto a block (this process is also called a winding), it cannot be deleted and cannot be tampered with. The nature of the blockchain is a distributed database. The information is synchronized and approved by thousands of machines all over the world and it’s nearly impossible to delete.
When it comes to storage blockchains, it is natural for everyone to think that the data stored on the chain cannot be deleted or modified. Unfortunately, this is not the case.
Filecoin, Storj, and PPIO do not put storage data on the chain. In other words, the actual stored data is not written on the blockchain. Therefore this data could be deleted and tampered with.
So what information is stored on these three public chains?
Storj is based on the ETH public chain. The information on the chain is written in the Stroj contract on ETH, the famous ERC20 contract. Only assets and transactions are on the chain.
In addition to assets and transactions, Filecoin puts proof information and contracts on the chain.
The following is a table providing a fast summary of some of the technical differences between the projects.