The Interplanetary Filing System (IPFS) is a blockchain network used to store all types of files in a decentralized, peer-to-peer (P2P), and trustless way. It aims to replace Hypertext Transfer Protocol (HTTP), the dominant request-response protocol on the Internet. Therefore, it seeks to revolutionize the web’s ability to search, store, and transfer information. First introduced in 2014, IPFS introduces various methods to increase bandwidth savings, preserve information, and decentralize the web to ensure speed, efficiency, security, and openness.
What Is IPFS?
The InterPlanetary Filing System (IPFS) is a peer-to-peer (P2P) hypermedia protocol designed to make the Internet faster, safer, and more open. It was originally created by Juan Benet to transfer scientific datasets up to 100 GB in size between peers. He found that current methods for transferring and storing information on the web were slow, controlled by very few people, and easily hackable. With these observations, Benet set out to improve the system through IPFS from the following aspects:
- Speed: Currently, Hypertext Transfer Protocol (HTTP) is the most common form of request-response protocol in the client-server computing model (the web). However, where HTTP downloads from only one server, the P2P IPFS retrieves pieces from multiple nodes (users) simultaneously, meaning substantial bandwidth savings.
- Efficiency: IPFS’s decentralized structure works in a similar way to BitTorrent. Nodes keep copies of the data (files, movies, pictures, etc) to then send it to the user upon a request of the hash (a unique locator code for the file), similar to seeding. When the data is first uploaded to IPFS, only one copy is made, with one hash, which means there is less information to process and requires less-intensive storage needs. Additionally, this means that IPFS doesn’t rely on an Internet connection as strongly as current systems do, thereby making the information more widely accessible.
- Security: To ensure that data is not modified or tampered with, IPFS uses two systems. First, all data that is uploaded to the system is immutable, i.e., unchangeable. Second, each file is given a unique fingerprint — a hash. A user can compare the hash code they searched for against the hash code they received. If it is identical, then so is the information within.
- Decentralization: IPFS’s P2P system guarantees information availability, regardless of censorship. Currently, the web is highly centralized, with single companies, such as Amazon Web Services or Google Cloud, owning huge server farms that hold all the data published online. A government or major company could censor or even wipe out the information we can access, as happens in countries including China and North Korea. By using a decentralized and trustless P2P system, IPFS guarantees accessibility to data, by everyone.
How Does IPFS Work?
IPFS is built on blockchain technology, meaning that it is decentralized and trustless, and relies on its nodes to store and share information across the network. In a similar way to nodes verifying and storing information (cryptocurrency transactions, for example) on Ethereum (ETH) or Bitcoin (BTC), IPFS uses its nodes to share and store information (files, videos, etc) on its network. It does so in the following ways:
- Searching for information: Servers currently search for information based on URLs, which tell the web where the information you want is located (a website, for example). This can be problematic when a server goes offline or is hacked. IPFS bypasses this path through the server by using unique hash codes to locate the file content itself. The hash code directly accesses the file you are looking for, as opposed to the file location.
- Storing and securing information: Files are stored in IPFS Data Objects on the blockchain. Each Data Object holds up to 256 KB of data, but can be linked to subsequent IPFS Data Objects to store more data. A whole project is therefore stored across various IPFS Data Objects linked together across the blockchain, thereby making the project more difficult to hack or remove.
- Tracking data change history: Although the data stored on IPFS is unchangeable, it does allow for versioning. This means that a user can upload improved versions of a file as they work on it. Each file is given its own hash code and uploaded as a Commit Object. These are then linked in the same way as Data Objects, allowing us to track the uploading order and thus see the progression of the information (for example, versions of a thesis, novel, research, etc).
How Can IPFS Be Used?
IPFS allows a user to access files (videos, websites, articles, research papers, and so on) anywhere without the need for a centralized party. This makes it faster, more secure, and more open. Users could access information that might otherwise be censored, as the data is accessed straight from the source. Moreover, this information could be accessed in regions without good Internet connectivity, thereby further empowering those in poorer or more corrupt countries.
Another function, particularly useful for academics or businesses, is the ability to track work progression, as IPFS links each version of a file to the last, thereby keeping a linear trace. Finally, the name InterPlanetary refers to the fact that in the future this information could be transferred between planets. Currently, under good conditions, it would take four minutes to send an information request from Mars to Earth, and four minutes to send it back, plus a few milliseconds of processing time. However, if the content had already been downloaded on Mars once, then the file would already be stored there and could thus be downloaded immediately. In this regard, IPFS really is the web of the future.
Who Is Behind IPFS?
Juan Benet is a Stanford computer science graduate. He saw the benefits of cutting out central control during the Napster-led music revolution, where music became unlimited and free for the first time. Despite the legal scrutiny that ended up suppressing many of these achievements, he had seen what was possible with P2P network architectures.
While working in scientific innovation in 2013, Benet realized that the tools used for sharing and versioning large datasets were inefficient, error-prone, and stagnant due to centralization. In an effort to change this, he combined GitHub’s data-linking structure with BitTorrent’s P2P system to create IPFS. With this, he founded Protocol Labs in May 2014, with IPFS and Filecoin as two of his first projects.
What Are IPFS’s Limitations?
IPFS offers an exciting look into a future with faster access to data and no government censorship, but how feasible is it currently, and what challenges does it pose?
- No way to search: IPFS’s use of content-based addressing (hashing) ensures that information is unchanged and avoids website crashes. However, it remains unclear how to browse the information on this new system. IPFS is a place where individuals can store a vast array of content, so having a user-friendly search system is essential. Without an accessible search engine, it is like the Internet without Google. Clearly, IPFS was built with hash searches in mind, but this alienates those who are less technologically inclined. As this is easily fixable and being discussed in their own forums, it is only a matter of time until an easier search system is implemented.
- Unregulated: As a decentralized network, IPFS brings the Internet back to the people, but this also comes with dangers. So much data without a central point raises the question of how it will be regulated. How will it be possible to curb harmful content, such as fake news, hate speech, terrorist groups, black markets, or copyright infringements? Other blockchains use proof-of-work or proof-of-stake to verify transactions and information, but who, or what can verify and regulate such complex information as articles, videos, and the like?
- File availability: Each user or node stores a cache of the files they have downloaded, meaning that they stay accessible for other users. However, if all the nodes storing a piece of information stop using the system, then that data is lost and becomes inaccessible, like BitTorrent without seeders. This means that it is paramount for users to be incentivized to keep copies. With this in mind, IPFS designed Filecoin, incentivizing users to store data copies online for as long as possible.
- Lack of content creator rewards: If all the information belongs to the users, with no centralized party looking to make a profit, then there will be no advertisements or other profit-generating tools. That raises the question, how will content creators be rewarded? And if they are not rewarded, then what incentive is there for them to create more content?
How to Make Money with IPFS?
As mentioned above, one of IPFS’s issues is its file availability. To counter this, Filecoin was built on top of IPFS as a blockchain that offers a market for storage. Using Filecoin, users can sell off spare hard drive space to store data and get assets, in the form of Filecoin, in return. This incentivizes users to keep files online for as long as possible and drives more traffic to IPFS due to its being a money-making opportunity.
Conclusion
IPFS’s decentralization and reduced reliance on an Internet connection offers an exciting step into a world where everyone can access information. It is particularly promising for people in areas with limited Internet connectivity, or in areas where governments curb access to data or manipulate it. IPFS’s increased speed and efficiency are also encouraging, and perhaps open the path for further technological advances on the platform.
However, there are a few issues that need addressing — most notably, security. Although users can double-check that the information received matches the information searched for (via the hash code), the lack of regularization is concerning. Another issue is content creation, as there is no incentive for making content. Finally, and more specific to IPFS, is the difficulty faced when searching for information. Content-based addressing is smart, but how does a user locate the required hash in the first place? IPFS clearly has a lot to offer and looks well-placed to revolutionize file storing and web browsing, but the outstanding issues need to be resolved first.