黃牛山人
黃牛山人

分散式出版實踐者 網誌:bchai.cc

Can the IPFS distributed network resist content censorship?

(edited)

Yes and No. IPFS can improve the immunity of content to censorship, but it cannot completely avoid the impact of censorship. However, in troubled times, everyone should learn the basics of P2P technology and even develop life habits, because no one knows when the freedom on today's Internet will disappear.

Let's brush up on the basics of IPFS applications.

Content addressing vs location addressing

Figure 1: Content addressing of IPFS

The green cube in Figure 1 represents the IPFS node, which is responsible for storing and searching files. In the IPFS system, each file has a unique "hash" (hash, or content fingerprint) string. Although the format is long and complex and cannot be understood by humans, each node relies on this The hash string can be used to find the location of the file represented on the IPFS network.

 Example of hash string: Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

As shown in the figure above, the file is stored in node A, but the client only needs to query the hash of the file from node B. Node B will find the network location of the file and download the file through the appropriate path and provide it to the client. The client does not need to know the information of node A during the access process.

We can access the http gateway of the IPFS node with a browser, that is, download a file in IPFS on the network using https, a protocol supported by general browsers. The format is

 https://<ipfs gateway URL>/ipfs/<file hash>

You can also search on Google to find many IPFS public nodes that provide http gateway . You can try using your browser to access the following examples:

https://10.via0.com/ipfs/Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

You can also try changing "10.via0.com" in the above example to other http gateways, such as ipfs.io, ipfs.fleek.co, etc. As long as the gateway is functioning normally, the file can be downloaded, and the client is not required at all. Know where the file actually is. This kind of client only needs to know the hash of the content fingerprint and does not care about the addressing method of the actual network location of the file. It is called "content addressing", in contrast to the traditional "location addressing" access method.

One of the most common methods used by censors to block content is to block the address where the content is located, such as a domain name or IP address. However, since the client does not need to directly access the server address where the file is located when downloading it, the censor does not know which address should actually be blocked, making the censorship more difficult.


The Catalonian experience

Figure 2: The means used by censorship agencies to ban node addresses

The censors generally have public power and a large amount of resources, and do not mind depriving the public of freedom to maintain the governance structure, so they will roughly block the IP address or domain of each IPFS http gateway; the way users can respond is to block one and access it. another. As shown in Figure 2, as long as all nodes of IPFS are not completely banned for one day, users can still download files. Of course, users must find the gateway address that has not been banned.

The Catalan government held an independence referendum in 2017. During the process, the Spanish government used every means to prevent it, including blocking information websites related to the referendum. The Catalan government then moved the entire website to IPFS, and the public can access it through gateway.ipfs.io. The Spanish government immediately blocked gateway.ipfs.io the next day, but people can still access the website through other nodes such as ipfs.io. There are even more private nodes established spontaneously to maintain information flow and resist the Spanish government's brutal dictatorship.

The Prime Minister of Catalonia announced the IPFS version of the referendum website on Twitter

Let every Brave citizen become a node

Censorship agencies can block all IPFS public nodes, but it is difficult to block all people’s IP addresses because this will seriously affect economic activities.

Currently, Brave browser has built-in support for IPFS node settings, allowing every Brave user to become a node to help share files. There are still many details that need to be overcome in actual operation. For example, although Brave allows users to become nodes, it cannot become a gateway (http gateway). When all public node gateways are blocked, ordinary people still lack a convenient method to download. Suppressed archive; but this is an encouraging direction.

Make each client an IPFS node

After successfully installing Brave browser, search for the "IPFS" keyword in the settings and you will find a bunch of related settings. Because this function feels not very stable yet, I will turn on the IPFS public gateway fallback option so that if the local IPFS node breaks for no reason, it will automatically change to the public node to access files. In addition, I will also turn on the IPFS Companion option. After turning it on, Brave will request to install plug-ins to provide a more convenient user interface to control the node status.

Brave IPFS settings

After starting the node, you can enter brave://ipfs in the browser URL bar. If the setting is successful, you can see the following information, including the API and gateway local addresses, and the amount of stored ipfs objects (each object seems to be 256 bytes , but the value of the product is wrong and needs to be further clarified), the number of connected peers and other information. If the node fails to start, this page will be empty. Every time I encounter this problem, I first use IPFS companion to restart the node. If it doesn't work, I just restart the computer to solve it.

Enter brave://ipfs in the Brave URL bar

After successfully starting the node, you can try to directly access the local node in the Brave URL bar to download a file on IPFS. The format is ipfs://<hash>, for example:

 ipfs://Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc

Different from accessing IPFS public nodes such as ipfs.io, when the client accesses the local node, the local node will directly search and download files in the IPFS network. The user does not need to know the address of any public node gateway. If applied to the Catalonia example mentioned above, after the Spanish government blocked gateway.ipfs.io, people only need to access the local node to continue browsing the website.

In addition, after each IPFS node downloads a file, it will temporarily store the file in the node for a period of time. I tried downloading the file Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc once, turning off the WIFI network connection and reloading ipfs://Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc. The local node can still respond successfully, which means the file has been temporarily stored on the local machine. This is important because if everyone uses their own node to download, a content backup will be left in each node in disguise, making the data storage more dispersed.


"Pin" important historical materials on the Internet forever

Pinata – IPFS pinning service

However, the temporary backup left by IPFS nodes when sharing files is not permanent. When the space is insufficient, the backup will be automatically deleted to free up space. If you want files to remain on the node for a long time, you need to instruct the node to "pin" a certain piece of data. On the other hand, if no one pins a file on the entire IPFS network, the file will no longer exist on the network after a period of time.

Introducing Pinata , an easy-to-use and free entry-level IPFS pinning service website. The operation is like uploading files to a general network disk. Each uploaded file will have a unique hash and will be pinned in IPFS. The picture Qma8gELJHYoJYxhr8JQmmmckSP8mPa34Wrj7NwivGLfkKc used as an example above was pinned on Pinata.

In human history, institutions with public power have constantly rewritten history, deprived freedom of the press to suppress dissent, and achieved the goal of controlling the past to control the present. However, today civil society can regain the right to speak in history on the Internet and write citizens’ shared memories on the Internet, such as pins on IPFS to make them immortal. For example, in the 2019 investigative program about Hong Kong's "721 Yuen Long Incident", citizens knew that sooner or later the government would destroy the information that was detrimental to them, so they all spontaneously "manually backed up" it to their own private storage space, but the data was hidden on the hard drive at home. It's of little significance. I have always hoped that there would be a solution that would allow citizens to easily "pin" important memories to IPFS and gather the power of the public to preserve historical materials in public space.

Referring to Pinata's charges, 1 GB of data per pin only costs about HK$1.2 per month. That is, 1,000 citizens can spend HK$1 each to pin this episode of the investigation program to IPFS for decades. What, are you willing to give this small amount of strength?


Can't stop being rude and shameless

Although IPFS can effectively improve the availability of data on the Internet, it does not have any protection measures to hide users. Therefore, the regime can shamelessly claim that the person who publishes the information has "broken the law", and the crime can be arbitrarily placed on "inciting secession" or the like. , and then use brutal means to imprison those who tell the truth. During the referendum in Catalonia, the Spanish government arrested many citizens who posted referendum information websites.

Therefore, if you use IPFS to publish information that Big Brother does not like, you must use anonymity technology to protect your privacy. Of course, the safest thing is not to do "illegal" things on the boss's territory, and don't try the law yourself, you know.

CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

Loading...
Loading...

Comment