In response to many questions about Holochain’s fitness for Web3, and in the face of growing criticisms of Web3, my colleagues and I share why we think Holochain is capable of building Web3. Not Web3 as it exists today — centralised, expensive, and finance-oriented — but a truly people-powered web built with distributed ledger tech that isn’t blockchain-based.
What are people saying about Web3? Tesla CEO Elon Musk can’t seem to find evidence of it. Twitter co-founder Jack Dorsey says it’s not what it appears to be. But I think the sharpest critique comes from Moxie Marlinspike. As co-creator of the Signal protocol that protects the privacy of most of our online conversations, he knows something about cryptography, but he isn’t too excited about ‘crypto’.
Moxie’s definition of Web3 is simple: it’s the class of technologies that wants to offer the features of Web2 — services that let us easily connect, create, interact — with the decentralised freedom that we enjoyed with Web1.
To most people, Web3 means blockchain. Moxie exposes some fairly serious challenges that blockchain faces — not just its ability to handle real-world applications, but also whether people even care about the problems it’s trying to solve.
When my colleagues and I read the article, we got excited. Moxie seemed to be making the same diagnoses we’ve made for years. We also realised — hey, Holochain addresses a lot of the problems he’s talking about! I’d like this article to be an invitation to a larger conversation both with him and the broader ‘Web3 world’.
True to the original spirit of the internet, Web1 was all about decentralisation. Its big innovation was the hyperlink, allowing any author to connect their work to someone else’s without permission. And because anyone could create web pages and run a server (if they had the technical skills), anyone could be a publisher.
Slowly and then suddenly, everyone wanted to join the web party — but not everybody had the technical skills. So Web2 built big servers and easy-to-use software, then invited the whole world. It spread out a generous banquet, offering the power to create not just documents and links but conversations, calendars, photos, videos, music, lists, diagrams, and more. And by getting us all together in the same room, it really did become a party — an explosion in our capacity to connect and interact with each other.
However, we know how the story has unfolded since then. Web2 looked like a good idea at the time, but it’s turned out to have a dark side. We appear to have become ‘the product’, as they say, not the authors of our own lives as we’d thought.
The centralisation that enabled the capture of our online lives is inherent in the design of HTTP, the protocol that powers the web. Over the years, more and more people have called for a re-decentralisation — a new web, a ‘Web3’ that avoids the mistakes of the original web by design.
Why do we need to reimagine the web? If the first web was already decentralised, why can’t we just go back to it? Moxie argues that the reason is simple: “people don’t want to run their own servers, and never will.”
Is this true? The 3000+ HoloPort owners worldwide would seem to disagree. But I think Moxie is really saying that people just want to get down to the business of doing what they want to do, not managing a bunch of tech. For most of us, the computer is just a tool, not a hobby.
1. Setup cost: You need a domain name and a stable IP address, which are either complicated or expensive.
2. Technical burden: Generally, server management is extremely complicated, and getting more so every day.
3. Security issues: Running web server and application software can expose your machine and network to security vulnerabilities.
4. Fragility: You’re the sole authority for your little piece of the web, so you bear the consequences if your server suddenly gets popular — or goes offline.
5. Isolation: Your server is just that — yours, and yours only. The power of Web2 is that it brings everybody together in a shared space. Does anybody want to give that up?
Blockchain simply doesn’t have an answer to most of these challenges. And it doesn’t need to — blockchain wasn’t designed to be the basis for Web3. It was designed to record events, particularly changes of ownership on a bunch of crypto tokens.
At best, problem #3 (security issues) is solved by the fact that blockchains ‘sandbox’ their running code. Problems #4 (fragility) and #5 (isolation) are irrelevant, but only because everybody has to store everybody else’s stuff anyway. Here we see a new problem — “everybody else’s stuff” is a lot of stuff, so it becomes too costly for all but the biggest players to run their own blockchain server.
Sounds like centralisation all over again. And Moxie describes how that’s playing out in reality — centralised, unaccountable gateways are now our windows into the supposedly decentralised ledger.
On top of that, the high operating cost puts a price tag on every online activity, which means that most Web3 applications justify the cost by being financially-oriented — currency trading, investment derivatives, property speculation, gambling, and ‘play-to-earn’ games. Moxie suggests that this is why the world is actually so excited about Web3. It’s about the money, not the decentralisation.
What if you could get the benefits of decentralisation for free while you used your normal, everyday apps and services? Well, Holochain can help — it neatly addresses all five barriers to running your own server. Here’s how.
1. Setup cost: In a Holochain app people connect securely, privately, and directly to each other’s computers, either via public IP addresses or through a relay service. Holochain creates an ‘overlay’ on top of the underlying network, making fixed IP addresses and domain names unimportant.
2. Technical burden: You don’t need to care or even know you’re running a personal ‘server’. It’s just a background process that’s built into the app, running on your computer with no configuration required. Really, it’s easy to set up, and it’ll get even easier in the future — you should give it a try!
3. Security issues: Holochain has a strictly defined network protocol that validates every interaction with your peers. It also sandboxes the back-end of every application, preventing it from gaining direct access to your filesystem and network.
4. Fragility: You’re responsible for the original copy of your data, along with a small slice of everyone else’s data — and only for the applications you use. If you go offline, other people serve your data for you. Everyone shares the load evenly — with a Twitter-like app, we predict that you’d only accumulate 20 MB of data per year, equivalent to three photos or five seconds of video.
5. Isolation: Holochain is intended to deliver apps with the decentralisation of Web1 and the connectedness of Web2. Each application has its own shared database that every participant can read from and write to. In other words, you and your peers are each other’s ‘Web2’ — not an organisation that sees you as the product.
There are still a couple centralisation points — the aforementioned proxy relay and a service called a ‘bootstrap’ are both hosted on remote servers. But they are about as irrelevant as Signal’s own servers are — they’re just places for peers to find each other and pass encrypted messages back and forth. Besides, you can always run your own, and you don’t even need them if you and your peers are in the same local network.
There’s one more downside of running your own web server: it’s hard to get everyone speaking the same ‘language’. It wasn’t such a big deal back in the Web1 days when the only language was ‘documents and links’. But as we started using the web for mass-scale, real-time interaction, it became important. We needed to make sure we were all speaking the same ‘tasks and meeting invites’ language as our colleagues, the same ‘posts and likes’ language as our friends and relatives, the same ‘money transfers’ language as the stores we shopped at.
Web2 platforms give us these shared languages — let’s call them ‘application protocols’ — as well as a central place to route every interaction through. Attempts to decentralise this have only been moderately successful.
Moxie argues that protocols evolve slowly, while platforms evolve quickly. That’s because a platform can make decisions without waiting for a whole crowd of others to reach consensus. But here’s the thing — some protocols don’t need to evolve quickly. As long as a ‘base protocol’ is versatile enough to let people create and express things in an unlimited range of fit-for-purpose application protocols, it can be as stale and boring as it likes. And it’s precisely the decentralisation, versatility, and stability of these base protocols — HTTP, email, and yes, Bitcoin and Ethereum — that allow platforms to innovate so quickly on top of them.
It’s true, though, that an application’s evolution can slow down if you try to decentralise it. So what will it take to enjoy the benefit of rapid innovation while maintaining healthy decentralisation?
- Users must be able to painlessly upgrade to a new application protocol across the entire network when they need to.
- Users must have choice over the versions of the application protocols they use — in other words, a group must be empowered to make its own governance decisions.
Holochain does all that! Its base protocol is versatile enough to build any sort of interactions people want to do online: social media, team productivity, currencies, carbon credits, micro energy grids, and so on. These are regular, real-world applications, not just applications that “[move] all aspects of life into an instrumented economy” as Moxie describes it. For these application protocols, we’ll soon be adding the ability for users to automatically download and activate an update — no manual steps needed.
Additionally, in contrast to Web2, where everyone is forced into the same experience, a Holochain application can give groups a choice about whether to accept protocol changes, while also being able to keep all their existing data. For instance, if a chat app releases an upgrade, one team in a company can upgrade because they want the new features, while another team in the same company can stay on the old version because they prefer the UI. They run the app; it’s their choice.
That only leaves one problem: how can we, as users of an app, be part of the design of the apps we use? How do we choose the rules that govern our interactions, gain a stake in the design of the protocols our apps speak? Moxie suggests that this might be the thing worth working on if we want to change our relationship to technology.
We also see an encouraging trend in the Holochain development community. Small, composable components are being developed, with the intention that beginning developers can reuse them easily without having to become experts in Holochain application design.
And projects like Neighbourhoods’ low code marketplace are another important step in that direction. It aims to offer a place where developers can offer generic, customisable parts that users can connect like Lego blocks into applications that suit their needs, without requiring any programming knowledge at all.
Finally, the developers behind Generative Objects, a low-code development tool, are working on adding Holochain support so that people can create their own applications from scratch, again without a line of code.
But we believe that digital tools are useful for more than just everyday apps, as important as they are. Traditional modes of governance are failing us left and right. We intend to help spark a Precambrian explosion of innovation in collective governance patterns. This requires an upgrade of humanity’s ability to create, express, and practice those patterns together. And we think that a software toolkit like Holochain will be a crucial part of making that happen.