InterPlanetary File System (IPFS)
The InterPlanetary File System (IPFS) is an open-source project that aims to create a peer-to-peer file system, potentially revolutionizing the way we utilize the Internet. Its ultimate objective is to establish connectivity between devices through a shared file system, but in a different manner than the current Web operates. To grasp the fundamentals of IPFS, it is helpful to compare it with HTTP.
Currently, the World Wide Web relies on the HTTP and HTTPS protocols. In essence, these application protocols facilitate global data communication and accessibility. HTTP functions as a request-response protocol, connecting users (clients) to servers based on their location. For example, when Alice visits a website, her web browser sends a request to the hosting server (e.g., Amazon Web Services) for the content. If all goes well, the AWS server delivers the web pages to her.
However, the content on HTTP is not permanent as it is maintained by a centralized server. Moreover, since AWS hosts numerous websites, if their servers encounter issues and go offline, a significant portion of the Internet becomes inaccessible.
In contrast, IPFS enables the creation of a permanent and distributed Web, where various forms of digital data can be stored and shared. While HTTP relies on a specific server location to provide content, IPFS revolves around the content itself.
In the IPFS paradigm, Alice no longer directly requests content from the AWS server. Instead, she asks the distributed network, “Who can provide me this content?” and the nearest peers promptly respond.
Depending on the implementation, IPFS offers several advantages over HTTP, including resistance to censorship, data integrity, lower operational costs, improved performance, and enhanced security.
However, there are some limitations associated with IPFS, such as the lack of strong incentives for participation, resulting in a small population of peers. This limited adoption makes it challenging to ensure permanent availability of files. If certain data is only hosted by a handful of nodes and all of them go offline, that data becomes inaccessible.