A Takedown-resistant website, and the new Internet

15/07/2017 by pablo.cerdeira@gmail.com

Welcome! This is your first time in a takedown-resistant website! (probably).

This is the first post of a series of posts in which I’ll explain how the IPFS is going to change the way we share public documents and data (including real estate registration), how it can be used for smart contracts (and it is much better than blockchain for this! believe me), and how it will allow us to create an unstoppable and uncensorable internet.

The uncensorable internet

Yes, this site cannot be removed from the internet and I don’t have any company providing me the hosting service for it.

I can run this website without any server, without any host, because I’m using a brand new technology, still under development, called IPFS: the InterPlanetary File System. IPFS is a new decentralized peer-to-peer file system model, that allows all computers (cell phones included) to work together for file and computer process sharing.

Network topology types

This technology is going to revolutionize our society. Imagine a world where anyone could publish anything on the internet, without setting a web site, without paying for a host, without paying for a domain. And this is just the beginning. The IPFS will allow us to have impossible to takedown content, hosted in a swarm of computers distributed all over the world. A real case example is the Turkish version of the Wikipedia. A few months ago, the Judicial system of Turkey decided to block the Wikipedia. Some guys then decided to make it available in a distributed way, using IPFS. Check out the Uncensorable Wikipedia Project details here. And you can access the distributed, servless, Wikipedia, in English, here.

Distributed Wikipedia

Want more? What about making money renting the available space you have in your computers or cell phones? The IPFS team is now working on a crypto coin called Filecoin.io, which will allow you to rent the space not used by your computers and gadgets, earning real money, or receiving credits to host your files on the computer swarm of IPFS.

But there is more. Much more. With this technology, we will be able to build the most powerful distributed computer in the world. You can now share your computer processing power through the Computes.io website. The goal of this project is to distribute intensive computer tests (such as computer analysis of new drugs to fight cancer) through millions, or maybe billions of computers and cell phones.

It may be very important for companies such as Google and Facebook as well. The Facebook’s cost of revenue (related to the delivery and distribution of products, such as facility and server equipment depreciation, energy and bandwidth costs, facility and server equipment expense, as well as support and maintenance costs) represents 18.5% of its revenue. Can you imagine the total savings for Facebook if they decide to adopt a distributed file system, allowing their users to host the content they are sharing (videos, photos, etc.)?

The IPFS is not just another technology, intended to replace websites hosting (as Amazon, WordPress, etc.), cloud file services (as Dropbox, Google Drive, etc.), blockchain or distributed computing (as SETI@home). As a distributed file system (one of the lower levels regarding computing architecture), using billions of computers spread over the world, it is going to create a new structure for the internet. It will allow us to connect all the unused space and processing capabilities to work together, sharing content and processing power that could not be blocked by any judicial decision, from any jurisdiction. And it changes everything.

IPFS - The distributed InterPlanetary File System

If you know how a website hosting works, you are used to think in a computer somewhere in the world, hosting the files for your site. It can be at an Amazon data center, your company servers, Wordpress machines, etc.

But with IPFS it is entirely different. You can create your site in your personal computer or your laptop. With your website ready, you can announce it to the entire IPFS swarm of computers, saying: “ok everyone, I have a file, or a list of files, here on my machine, and I want to make it available to be accessed by anyone. Its hash is: [a very long, strange, and unique sequence of characters]”.

In fact, you can share anything, any file - be it legal or not - using the IPFS protocol. You can share gigabytes of data without paying a single penny for a data center. Take a look at this distributed website where I’m sharing more than 35 GB of presentations, PDFs, and videos of some of my work: https://ipfs.io/ipns/QmWJF2gBvVLaMdPbn2dUTonbTHNS9HoJwTQZCRj4Hq68FX

Distributed presentations website

Did you see the strange sequence of characters on the link above? This is the unique hash of the page serving my presentations. And, in fact, every single file (or file chunk, as IPFS splits the data into chunks of 256kb) can be accessed, and each chunk has its unique hash. The entire website can be distributed over millions or billions of different computers, each one hosting a group of pieces.

So, your personal computer is the server!

You may think: “ok, so you are serving your website from your personal computer, it is not without any server, as you were saying above. If your computer is off, your site is down”.

Wrong! My personal computer is the original content provider. But the content I’m providing, whether it is this website, or the presentations available on the link above, are copied to a lot of different computers on the IPFS swarm, becoming a distributed content, in a peer-to-peer network.

It is similar to a file being spread over a torrent network. The content is copied from my computer by some initial, random, peers, allowing it to be copied by other peers, each one hosting it for 12 hours (depending on the settings). So, after some time, no one knows who has the content, it is now distributed all over the internet, probably in many different countries.

In fact, the files are broken into small chunks, and every chunk can be hosted by different peers, in various countries.

So, after an initial distribution, I can turn off my computer and the website will still be alive for everyone. And there is no way to take it down. Even a judicial order cannot remove the content from all the computers in the swarm.

Accessing the content

Ok, so how to get the content back? The process is very similar to a torrent using a magnet link. Your computer joins the IPFS swarm and asks for the hash of the files. If a computer has the content, it will send it back to your computer. If not, the computer will send the request to the next one in the swarm. The process is repeated until all the files are located and sent back to your computer.

The IPFS is still under development, and the swarm size (number of computers) is currently insufficient. So, the content retrieving is slow (this is the reason why this site may be slow to load), and, sometimes, content can be lost.

The IPFS is not a technology for today. It will take some years, maybe 10 or more, to achieve the necessary maturity in order to be used by everyone. Today, only a few hundred, maybe a few thousand of computers, are using the IPFS. And you need to have some advanced technical skills to set it up well.

But the idea is to include the IPFS protocol in the web browsers (Firefox, Chrome, etc.) soon, and in the operational systems (Windows, MacOS, iOS, Android, etc.) in the future. With millions, maybe billions, using the IPFS in computers, cell phones and even in the Internet of Things, the content retrieval will be much faster, probably much faster than today for regularly hosted websites. The content persistence will also be much higher than we have these days with paid services as Dropbox, Google Drive, etc.

Gateways: the temporary solution

While we don’t have the IPFS installed by default in our web browsers and operating systems, we need to use gateways. Gateways are computers that can join the IPFS swarm for content requests and deliver in the traditional way (HTTP).

This is how you are accessing this website. My domain (pablocerdeira.me) is configured as a gateway. So, when you ask for this site content, my website is looking for it on the IPFS swarm to rebuild the site content, to send it back to you.

But you don’t need to use my domain for that. You can access this website using any other available gateway.

You may try any of the following links, and this same website will be loaded:

But, if you are a geek, you should try to retrieve this site content by installing the IPFS client (if you are afraid of using a terminal screen - that DOS black screen without windows - don’t try it yet). You will be able to load and navigate through the website locally, with much faster response time.

Conclusion

The IPFS protocol has the potential to change not only the internet as we know today but to affect some of the concepts our society are based on. With a worldwide network file system, we will provide to every citizen the ability to write and publish content that cannot be taken off the internet. We will have a real connected network of computers sharing space and computing power, above any jurisdiction.

Services providers, like Google or Facebook, will be able to save around 20% of its total costs (data centers costs, including computers, energy, etc.) by not hosting any file, focusing its efforts on content indexing and deliver to the clients.

We, as a society, will be able, for the first time in history, to create a global network of collaboration and sharing.

Of course, there will be some people using it for illegal purposes, as sharing pedophile content, pirated content, etc. But I believe the positive usages will supplant, by far, the adverse effects.

Nevertheless, our legal framework, based on state jurisdiction, is not prepared to face the challenges presented by the IPFS, and we need to discuss it.

Pablo Cerdeira is the Head of the Center of Technology and Society - CTS/FGV and the former Rio de Janeiro's Chief Data Office