Table of Contents

Can IPFS — the Distributed Web fight against content censorship?

Table of Contents

In this unpredictable time of the Internet, no one knows when we will lose our freedom on the Internet under the tech giant monopoly. Everyone should learn and start to train up on the basics of P2P technology.

The short answer is that IPFS can be part of the solution to protect you from content censorship. To understand why, let us first understand the fundamental of IPFS.


Can IPFS — the Distributed Web fight against content censorship?

Content-addressing vs. Location-addressing

Can IPFS — the Distributed Web fight against content censorship?
Figure 1. Content addressing of IPFS. The green cubes represent IPFS nodes.

IPFS nodes are responsible for storing and searching files. In the IPFS network, each file has a unique “hash” (or content’s fingerprint) string; although they are usually long and complex for humans to understand, each node relies on the “hash” to find the file’s location on the IPFS Web.

An example of hash string: Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

As shown in Figure 1, the file is stored in node A. The client-side only need to inquire about the hash of the file from node B to locate the file and download it to the client. The client-side does not need to know the information of node A during the access.

Anyone can access the HTTP Gateway of an IPFS node via browser and download an IPFS file over the network using HTTPS, a standard browser-supported protocol, using this format:

HTTPS://<ipfs gateway website>/ipfs/<file hash>

Now, let’s try. A quick search on Google and will locate a lot of public IPFS nodes that provide HTTP Gateway.

You can use a browser to visit the following example: https://10.via0.com/ipfs/Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

You can also try changing the “10.via0.com” in the above example to another HTTP Gateway such as ipfs.io, ipfs.fleek.co, etc. If the Gateway is working correctly, it will download the file without the client knowing where the file locates. This client only needs to see the hash of the content’s fingerprint, regardless of the file’s actual network location. And this is called “Content Addressing” instead of traditional “Location Addressing” access.

One of the most common methods censors use to block content is to block the address where the content resides, such as a domain name or IP address. However, in the IPFS world, the client does not need to visit the file’s server address when downloading it. The sensor does not know which address should be banned, which increases the difficulty of censorship.


Case study: The Catalonia Independence Movement

Can IPFS — the Distributed Web fight against content censorship?
Figure 2. The method used by censors to block node addresses

The censors refer to the public power who have vast resources to control the web and information. They tend to deprive the public of freedom to preserve the governance authority and structure. Hence, they will brutally block the IP address or domain of each IPFS HTTP Gateway. In response to such bans, users can only reach a new gateway when the previous one is banned. As shown in Figure 2, as long as IPFS nodes are not blocked, users can still download the file. But the premise is based on the user still have access to find and to discover the gateway address.

The Catalan government held an independence referendum in 2017. During that period, the Spanish government tried everything to block information and its election websites. The Cata government moved the entire website to IPFS, which is accessible through Gateway. IPFS.io. The Spanish government blocked Gateway. Ipfs.io the next day, but people can still access the website through other nodes, such as ipfs.io. People are also setting up remote nodes to maintain information flow to fight back on the Spanish government censorship.

Can IPFS — the Distributed Web fight against content censorship?

All Brave User can become an IPFS Node

Censors could block all public IPFS nodes, but it is difficult for them to block all citizens’ IP addresses because that will impact economic activity.

Brave Browser has built-in support for IPFS nodes. Brave users can become a node to help share files. However, there are still a lot of practical challenges to overcome. Brave allows users to become an IPFS node, but it cannot help users register an HTTP gateway. When all public node gateways are blocked, general users still don’t have a convenient way to download banned files.

But Brave land a crucial first step to open up the potential of IPFS.

Can IPFS — the Distributed Web fight against content censorship?
Figure 3. Each client can become an IPFS node

Now, let’s try to set up a node via Brave browser.

After installing the Brave Browser, go to the setting and search for the keyword ‘IPFS’. The IPFS function is not very stable. Hence, I will turn on the IPFS Public Gateway Fallback option. When the local IPFS node failed, it will automatically change to a public node to access the file. I will also turn on the IPFS Companion option to allows Brave to install an IPFS plug-in, a more user-friendly interface.

Can IPFS — the Distributed Web fight against content censorship?
Figure 4. IPFS setting on Brave

After starting the node, type brave://ipfs in the browser URL bar to check your setup. You will see the following information:

  1. The address of API and Gateway
  2. The number of ipfs objects stored
  3. The number of peers connected, etc

If the node fails to start, the page will be empty. Try restarting the node with an IPFS companion. If that still doesn’t work, then you may try restarting your computer.

Can IPFS — the Distributed Web fight against content censorship?
Figure 5. Type brave://ipfs in the Brave URL bar

After setting up the node, try to download an IPFS file from the Brave URL bar to the local node in the format ipfs ://<hash>.

An example:
ipfs://Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

Unlike accessing IPFS public nodes such as ipfs.io, when a client accesses a local node, the node searches and downloads files directly from the IPFS network. The user does not need to know the address of any public node gateway. In Catalan’s case, when the Spanish government banned gateway.ipfs.io, the public could continue to browse the website by simply visiting local nodes.

Each IPFS node will temporarily store the downloaded file for a while.

I tried to download this file, Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKcThen turned off the WiFi network, and reload the same file again, ipfs://Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc, local node responded successfully. The file is saved in my local node.

So if users download files to their local nodes, they can keep a backup copy of the file for other nodes, storing data in a distributed way.


Always “Pin” the vital history on the Internet

Can IPFS — the Distributed Web fight against content censorship?
Figure 6. Pinata — IPFS pinning service

“Pinning” is an essential concept in IPFS. If you want your files preserved permanently, you have to run your own IPFS nodes and stay pinned.

When you “pin” data on an IPFS node, you are telling that node that the data is important and it should be saved. Pinning prevents important data from being deleted from your node when the clearing process happens. However, you can only control and pin data on your node(s). You can not force other nodes on the IPFS network to pin your content for you. So, to guarantee your content stays pinned, you have to run your own IPFS nodes.

What is an IPFS Pinning Service?

In the IPFS world, the backup files that you shared with the IPFS nodes are not permanent. When space runs out, the IPFS node will automatically delete the backup. If you want the file to remain on the node for a longer time, you need to instruct the node to “pin” a piece of data. On the other hand, if no one pins a file in the entire IPFS network, it will no longer exist on the web after a specific time.

Here’s an introduction to an easy-to-use, free entry IPFS pinning service site, Pinata. You can pin a file to a generic network drive, each uploaded file will be given a unique hash that pins it in IPFS.

Taking the example for the previous session, Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc is also a pin in Pinata.


Throughout human history, the public authority has been trying to restraint freedom of expression and deter the press; ruling out dissenting voices and rewriting history. In today’s world, technology enables civil society to reclaim its voice on the Internet. Citizens’ shared memories can be stored on the Internet in an immutable way, such as pins in IPFS.

Taking the Hong Kong situation as an example, there is an investigation TV program of the “7.21 Yuen Long Incident” in 2019. People knew that the government would sooner or later destroy the information against its benefit. People spontaneously “manually back up” the data into their private storage space. However, it won’t have a significant impact if this information is stored on their hard drives at home.

I have been hoping for a solution that will make it easier for citizens to “pin” vital memories to IPFS. The web can then gather the power of ordinary people to preserve historical content in public space.

Based on Pinata’s charges, 1GB of data per pin costs about HKD 1.2 (~ USD 0.15) per month. Meaning it cost HKD 1 (~ USD 0.12) per person to pin this investigation TV program to IPFS for decades, given if we have 1,000 citizens who are willing to join.


In reality, rudeness and shamelessness are inevitable

Therefore, when using IPFS to publish information that “Big Brother” does not like, it is necessary to cooperate with anonymous technology to protect your privacy. Of course, the best thing to do is not “break the law” in the Boss’s place.


Read more: LikeCoin utilizes the IPFS network to transform the publication infrastructure to empower civic media and journalists.

Case study: LikeCoin


This content is translated from Edmond Yu’s original article on IPFS分佈式網絡能對抗內容審查嗎? published on Matters.news. Content is modified to serve english readers.

Website | Block Explorer | Discord | Twitter

Support my work. 👏🏻 Clap below if you like my post.