Welcome to the decentralized web. This is a single web page being served peer-to-peer via IPFS. Notice the URL.
The next generation of the World Wide Web (Web 3.0) is being built on blockchains using tools and technologies similar to the ones that empower cryptocurrency, NFTs, smart contracts, and the world of DeFi. If Web 3.0 reaches its full potential, it will quite literally change the world. That’s a bold claim, so we need some bold evidence. Let’s start with a little demonstration.
You are on a page that looks very much like a page on shellypalmer.com. Except the page is not being served from a web server; you’ll be reading a single web page I uploaded to a decentralized database called IPFS (the InterPlanetary File System). This blockchain-powered, peer-to-peer database offers many of the features and benefits we may come to expect from Web 3.0 applications, so it’s a great place to see the ancestral DNA of Web 3.0 start to take form.
A Super-brief History of the Interweb
The internet predates the World Wide Web by almost 30 years. Web 1.0 (which we will define as static HTML pages viewable in a browser over a TCP/IP connection) shows up in the mid-90s. About a decade later, the advent of Web 2.0 brings dynamic websites and applications as well as audio and video streaming. It’s the web as you know it today. The goal of Web 3.0 is to decentralize the World Wide Web and put you in charge of your data. In this case, “to decentralize” specifically means ending the dominance of big tech.
Web 2.0 Location. Location. Location.
To access content using a Web 2.0 browser, you enter a URL (Uniform Resource Locator). Said differently, you need to know the “location” of the resource you wish to access. For example, www.shellypalmer.com is located at 22.214.171.124. A DNS (domain name server) keeps an index of which name matches which location (address).
Web 3.0 “May I See Your Content ID Please?”
Web 3.0 websites and apps can’t have a location; the content is distributed over peer-to-peer networks, so instead of using a URL, you find your distributed content with a unique content identifier or CID. (This is IPFS nomenclature and may not be a term used by other applications, but it is conceptually correct.)
Web 3.0 Content Is Immutable
This is where Web 3.0 starts to get interesting, because you are distributing unique content to a peer-to-peer network. Once the content becomes available on the network, it is immutable. You can’t edit, replace, or delete it. Each update generates a new CID. (We’ll get to how you update files stored on IPFS in a minute.) Let this sink in. Every page is forever. For reference, most Web 2.0 webpages last about 100 days online.
The following are IPFS specific, so to avoid confusion, the next few paragraphs describe features of IPFS and not necessarily features of all (or any other) Web 3.0 applications. While the terminology may be different, any decentralized storage solution will share some (or all) of these ideas.
DHTs Replace DNS (Alphabet Soup)
Time for some overly geeky stuff. Instead of a DNS, IPFS content is mapped using Distributed Hash Tables (DHTs). Repeat after me: “The DHT maps the CID and the peer IP address.” Every peer (client/server) node that wants to share your content will have a copy of a DHT that identifies your content.
So What Makes IPFS Publishing Different?
When you publish a file you want to share on IPFS, a new CID is generated. Your local DHT is updated and, until someone else downloads your content, you are the only computer serving your content. All the DHTs of your content peers will automatically be updated, but they will only have your specific IP address until others begin to download your files. This small window (before anyone downloads your content) is the only time you can actually delete a file (because it’s the last time it will only be on your computer). Once the content is out in the world, it will be there forever.
Updating Immutable Files
The concept of immutable content is very “blockchainy.” Technically, whatever you write to a blockchain is immutable and forever. But as interesting as immutable content may be for some applications, websites are dynamic, data is dynamic, prices are dynamic, typos need to get fixed, graphics need updating, etc. The IPFS workaround is simple. Instead of sharing the CID of your content, you hash your public key and share it. In an IPFS application, a hashed public key will do the job that a URL does for a Web 2.0 website. There are also third-party “pinning” services such as Pinata that address this issue.
This Is Just the Beginning
There is much more to this story. I used IPFS to help me tell a small part of the story of Web 3.0, but there are many other Dapps (decentralized applications) that you should explore to get a better understanding of the art of the possible. To start, have a look at other decentralized storage solutions such as Storj or the venerable, but very up-to-date, BitTorrent. If you’re looking for additional resources, check out our Crypto Resources page.
Do you have a blockchain project you want to chat about?
If the suggestion box is not visible, click here.
Author’s note: This is not a sponsored post. I am the author of this article and it expresses my own opinions. I am not, nor is my company, receiving compensation for it.