Decentralized file storage
The main idea of the blockchain is to be a decentralized environment where operations can be carried out without needing to trust third parties. However, blockchain is not the ideal framework for all scenarios. For example, it is not suitable for storing large files. This issue led to the development of decentralized data storage projects.
Neo and Ethereum have their file storage solutions, called NeoFS and Swarm, respectively. The purpose is to create a distributed environment that is fault-tolerant, resistant to Distributed Denial of Service Attacks, and that allows data privacy. In other words, the idea is to replicate the power of the blockchain but for data storage.
In addition to native solutions such as NeoFS, solutions unrelated to a specific blockchain have also been developed. One of the most famous is IPFS, short for InterPlanetary File System. IPFS is a data storage protocol that works peer-to-peer, in which anyone can participate in the network. The idea is to be more resilient, reliable, and efficient than protocols like HTTP.
Let’s see how IPFS works in general. Every stored file splits into chunks linked into a tree structure from their hashes. For greater transmission speed, the chunks can be distributed among different users. Rather than downloading a file from just one server, an IPFS client can download multiple chunks from multiple clients simultaneously.
In IPFS, the root of the hash tree, called a Merkle tree, identifies files. Thus, resources are determined by their content and not by the location where they are stored. For instance, when we want to access a document on a website, we need to have that document’s address on the website. This address can be called a URI, Uniform Resource Identifier. The URI holds information about where we can find a resource, not what we will find. If the content is modified, the customer will not notice a difference, as the URI will remain the same.
In IPFS, the file identifier is the root of the Markle tree. Thus, any change in the file’s content will change its hash. This clearly indicates when the file has been tampered with, ensuring users’ safety.
NeoFS is a distributed, decentralized object storage network built with Neo network integration in mind. Thus, such files can be accessed directly through smart contracts on the Neo network. Users can rent out storage in return for Neo GAS tokens or use GAS to store files in the network.
Currently, there is no dominant protocol in this area, but several proposals are in the maturity stage. We can expect that, over time, more and more files will migrate from traditional centralized storage services to the new decentralized protocols.