So, what is IPFS, and what’s with all the buzz surrounding it? Let’s start with the TL;DR version.
IPFS, (short for InterPlanetary File System), is a peer-to-peer (P2P) hypermedia protocol launched with the aim of unraveling a new internet revolution. It is a distributed system that enables users to store and access data such as files, applications, and websites. The broader objective of IPFS is to create a global computer network that guarantees private, secure, and censorship-resistant connectivity.
In this guide:
The problems with the centralization of the web
To understand the vision of IPFS, we first need to comprehend everything wrong with the current centralized structure of the internet.
If you think about it, the internet is much more centralized today than it was, say, 15–20 years ago. A tiny number of big corporations control a disproportionate amount of traffic and data on a global scale.
In fact, they directly impact the lives and careers of billions of people worldwide. The repercussions of such a blatant monopoly can be rather grave. For example, tech giants like Google or social media platforms like Twitter, Instagram, and Facebook, are frequently found violating data privacy laws or indulging in unethical business practices at the expense of users.
Furthermore, most of the servers hosting the bulk of the data created and shared every day (including your pictures, videos, documents, and other files) are controlled by a handful of companies, including the likes of Amazon, Google, IBM, and Microsoft. What if the servers of one or more of these companies suffer from a major outage? Or what if they lose control over user data due to a major security breach?
Governments can also easily censor or even shut down any internet platform if they deem it necessary. We have already seen tough government crackdowns on various internet platforms on multiple occasions in different parts of the world.
The genesis of all these recurring problems is the centralized structure of the internet. IPFS aims to resolve these issues once and for all.
What is IPFS?
The InterPlanetary Filing System (IPFS) is a P2Pp hypermedia protocol built by Protocol Labs. It is a decentralized service that uses an extensively distributed network of computers to host content.
The hosted content can be of a variety of types and categories, including, but not limited to, databases, websites, media files, documents, and apps. You can access any content stored in the IPFS network by entering a “link.” In fact, the process of accessing content is nearly identical to how you access a webpage by entering its URL.
Similar to how blockchain networks use nodes to draw the computing power necessary to verify data, IPFS also deploys hundreds of thousands of nodes that offer their storage bandwidth for the network to store data.
For those out of the loop, nodes are basically individual computer systems that collectively form the IPFS network. So, IPFS is basically capable of doing everything centralized web2 platforms do, but without requiring any centralized data storage.
Why use IPFS?
Protocol Labs, the company behind IPFS, vows that the technology can deliver superior performance on the following fronts:
As of today, the Hypertext Transfer Protocol (HTTP) is the standard form of the request-response protocol in the client-server infrastructure. The HTTP protocol only guides you towards a location — usually a single server. On the other hand, the P2P model of IPFS allows you to simultaneously retrieve different pieces of content from multiple nodes (or computer systems). This leads to substantial savings in bandwidth spending, thus ensuring faster connectivity.
As of today, companies like Amazon Web Services or Google Cloud practically own any data we voluntarily choose to store in their web servers. They can block you out of their platforms at will and restrict your access to your own content.
They can also buckle down to government pressure and lock you out, as often happens in countries like Iran and China. In contrast, the P2P model in the IPFS network ensures complete decentralization, which in turn, ensures information availability regardless of any kind of censorship attempt.
IFPS deploys two measures to ensure that malicious actors can not tamper with any data or file on its network.
- Immutability to make all data uploaded to the nodes on the network unchangeable.
- A hash is assigned to each file. The hash is like a fingerprint unique to that particular file only. You can compare a hash you search for with the hash code, you receive to make sure that you received the correct file.
The underlying decentralized model also means that hackers don’t have a focal point to attack.
The emphasis on decentralization in the IPFS protocol guarantees the benefits we have previously seen in earlier-generation P2P platforms such as BitTorrent. Each individual node on the network retains copies of a file. They then send these data upon a request for the corresponding hash, which is a unique locator code for that particular file. The process is similar to the “seeding” of a torrent file (More on that below).
Note that when a file is first uploaded on IPFS, the network makes only one copy of it, along with one hash. This guarantees that the amount of data that requires processing is comparatively far less. That, in turn, leads to less-intensive storage needs. In addition, this superior efficiency means that IPFS can do with (relatively) low-quality internet connectivity, thus making its network widely accessible.
How does IPFS work?
When you upload a file to IPFS, the network splits it into smaller pieces and distributes them across multiple computers (nodes). All the pieces of that particular file are recognizable by a single hash. The hash helps the network identify which nodes contain the different parts of the file corresponding to that hash.
Now, if you want to access and retrieve that file, all you have to do is enter the hash on a compatible web browser such as Brave Browser or Opera. The process is almost identical to you accessing a regular webpage by entering its address (URL) in a browser.
Once identified, IPFS requests all the nodes to transmit the pieces of the file they have via a P2P connection.
Note that just like your average blockchain network, IPFS is also immutable, meaning the file’s content cannot be changed. Because if you tamper with or modify a file and its content, its hash will also automatically change.
However, the network has a versioning system to eradicate any side effects from this uncompromising immutability factor. It lets you add new versions of a file and connect them to earlier versions. Among other benefits, this feature ensures that the entire history of that particular file remains intact and accessible.
How does IPFS store data, and what is an IPFS Object?
IPFS splits larger files into chunks of 256 KB, called IPFS Objects. Each IPFS Object of a file contains links to all the other IPFS Objects corresponding to that file.
The hash ID associated with a file is 24-character long and is called the content ID (CID). When you retrieve a file, the network verifies the hash to confirm the integrity of the file. If the hash check fails, it means that someone has modified the file.
To put it in perspective, let’s say you have uploaded a file to the IPFS network from your node. Shortly after, another user named Alice requests it and downloads it on their computer (node). After some time, another user named Bob requests the same file. Now, Bob can retrieve the file from your node, or from Alice’s, or more commonly, from both of you. Higher the number of downloads, more nodes will be available to help with subsequent download requests.
The network will periodically remove cached IPFS Objects from nodes. You can avoid that from happening by pinning a file to permanently store it on your node.
Note that you can subscribe to an IPFS-compatible cloud storage platform and make your data available to the IPFS network. This way, you can keep your data permanently pinned. Multiple storage platforms offer this service.
How to use IPFS
Some browsers including Brave Browser and Opera natively support IPFS browsing. With Brave and Opera, you can directly paste the IPFS link (CID) into the address bar to go to the site or file you’re looking for. Other browsers, meanwhile, might need an add-on for the same.
It is worth noting here that Brave Browser lets you access IPFS content via your own local node or a public gateway. The first option is preferable for those who want to locally verify content.
If you’re using any other browser such as Google Chrome or Mozilla Firefox, you can access IPFS content via a public gateway such as Cloudflare-IPFS, IPFS.io, or any other alternative gateway listed here.
How to run an IPFS node
If you want to run your own IPFS node, the simplest and easiest way to go about it is to get yourself an IPFS Desktop. That’s the official software suite developed by Protocol Labs, and it is available across all major OS platforms, including Windows, Mac, and Ubuntu.
IPFS Desktop is relatively straightforward to use, and it comes with a bunch of tutorials for new users. With the software suite, you can upload any file to the IPFS network with relative ease.
There is also a browser add-on (IPFS Companion) that lets you interact with IPFS Desktop and your node directly from your browser. The add-on is compatible with Chrome, Edge, Firefox, Brave, and Opera.
IPFS use cases and limitations
IPFS use cases include:
- It offers a pretty efficient way to access files (websites, videos, pictures, research papers, articles, etc.) from anywhere without depending on a centralized third party. This emphasis on decentralization makes the network faster, more democratic, and safer.
- Users are far less likely to be affected by content censorship. Because you will be accessing the data straight from a source (a peer through a P2P connection), you could access even censored or locally blocked information.
- IFPS can be pretty efficient in offering faster and more secure connectivity in places with relatively poorer internet connections.
Despite all these benefits, there are areas where IPFS needs to improve sooner or later.
For example, the lack of options to search content. As of this writing, IPFS lacks a fully functional search engine that you could use to search content. In other words, as of today, IPFS is more like the internet without Google (or Bing or DuckDuckGo, or any search engine, for that matter).
Similarly, as usual, decentralization can be a double-edged sword too. Especially if you consider the lack of regulation to be a major issue. In all fairness, it’s indeed an issue, considering that IPFS so far doesn’t seem to have any mechanism to curb potentially harmful content. Harmful content could mean anything such as hate speeches, fake news, child porn, copyright infringement, etc. And as you will probably agree, certain elements of risk are there if a platform is the proverbial Wild Wild West with absolute free speech.
That said, if Protocol Labs finds a way to resolve these issues soon enough, IPFS might very well become a big part of the emerging web3 paradigm and pioneer a new era for internet users.
Frequently asked questions
What is IPFS?
The InterPlanetary Filing System (IPFS) is a P2Pp hypermedia protocol built by Protocol Labs. It is a decentralized service that relies on a distributed network of computers for hosting content.
The hosted content can be of a variety of types and categories including, but not limited to, databases, websites, media files, documents, and apps. You can access any content stored in the IPFS network by entering a link (just as you would access a webpage by entering its URL).
Can IPFS be hacked?
Extremely unlikely. That’s because the IPFS network consists of an extensive network of computers (known as nodes) and ther are no centralized servers or systems for hackers to target.
Is IPFS a database?
No, IPFS is a peer-to-peer (P2P) hypermedia protocol and distributed system that enables users to store and access data, files, applications, and websites.
Is IPFS storage free?
IPFS doesn’t have any centralized storage. It deploys hundreds of thousands of nodes that offer their storage bandwidth for the network to store data.
What is the point of IPFS?
The broader objective of IPFS is to create a global computer network that guarantees privacy, security, and censorship resistance.
Is IPS a blockchain?
IPFS is not a blockchain. However, the two share similar traits such as immutability and a decentralized structure.