Introducing the Dweb
The web is the most successful programming platform in history, resulting in the largest open and accessible collection of human knowledge ever created. So yeah, it’s pretty great. But there are a set of common problems that the web is not able to address.
Have you ever…
- Had a website or app you love get updated to a new version, and you wished to go back to the old version?
- Tried to share a file between your phone and laptop or tv or other device while not connected to the internet? And without using a cloud service?
- Gone to a website or service that you depend on, only to find it’s been shut down? Whether it got bought and enveloped by some internet giant, or has gone out of business, or whatever, it was critical for you and now it’s gone.
Additionally, the web is facing critical internet health issues, seemingly intractable due to the centralization of power in the hands of a few large companies who have economic interests in not solving these problems:
- Hate speech, harassment and other attacks on social networks
- Repeated attacks on Net Neutrality by governments and corporations
- Mass human communications compromised and manipulated for profit or political gain
- Censorship and whole internet shutdowns by governments
These are some of the problems and use-cases addressed by a new wave of projects, products and platforms building on or with web technologies but with a twist: They’re using decentralized or distributed network architectures instead of the centralized networks we use now, in order to let the users control their online experience without intermediaries, whether government or corporate. This new structural approach gives rise to the idea of a ‘decentralized web’, often conveniently shortened to ‘dweb’.
You can read a number of perspectives on centralization, and why it’s an important issue for us to tackle, in Mozilla’s Internet Health Report, released earlier this year.
What’s the “D” in Dweb?!
The “d” in “dweb” usually stands for either decentralized or distributed.
What is the difference between distributed vs decentralized architectures? Here’s a visual illustration:
(Image credit: Openclipart.org, your best source for technical clip art with animals)
In centralized systems, one entity has control over the participation of all other entities. In decentralized systems, power over participation is divided between more than one entity. In distributed systems, no one entity has control over the participation of any other entity.
Examples of centralization on the web today are the domain name system (DNS), servers run by a single company, and social networks designed for controlled communication.
A few examples of decentralized or distributed projects that became household names are Napster, BitTorrent and Bitcoin.
Some of these new dweb projects are decentralizing identity and social networking. Some are building distributed services in or on top of the existing centralized web, and others are distributed application protocols or platforms that run the web stack (HTML, JavaScript and CSS) on something other than HTTP. Also, there are blockchain-based platforms that run anything as long as it can be compiled into WebAssembly.
Here We Go
Mozilla’s mission is to put users in control of their experiences online. While some of these projects and technologies turn the familiar on its head (no servers! no DNS! no HTTP(S)!), it’s important for us to explore their potential for empowerment.
This is the first post in a series. We’ll introduce projects that cover social communication, online identity, file sharing, new economic models, as well as high-level application platforms. All of this work is either decentralized or distributed, minimizing or entirely removing centralized control.
You’ll meet the people behind these projects, and learn about their values and goals, the technical architectures used, and see basic code examples of using the project or platform.
So leave your assumptions at the door, and get ready to learn what a web more fully in users’ control could look like.
Note: This post is the introduction. The following posts in the series are listed below.
- Social Feeds with Secure Scuttlebutt
- Building a Resilient Web with WebTorrent
- Serving the Web from the Browser with Beaker
- Building Cooperation and Trust into the Web with IPFS
- Creating Decentralized Organizations with Aragon
- Decentralised, Real-Time, Interoperable Communication with Matrix
- Identity for the Decentralized Web with IndieAuth
- Decentralizing Social Interactions with ActivityPub
22 comments