Moxie Marlinspike, the founder of the Signal messaging app, wrote a widely shared piece called “My first impressions of web3”. The article explains how many things around blockchain, cryptocurrencies, and NFTs aren’t as decentralized as people think. Running blockchain nodes requires computation power, so crypto wallets and “dApps” need an intermediary that provides a traditional client-server API between them and the blockchain. According to Moxies observations, the ecosystem is highly centralized around just a few of these intermediaries. They have the power to moderate and censor the ecosystem, such as blocking access to NFTs that still exist somewhere on the blockchain.
He starts the blog post with two statements. The first is that people don’t want to run servers, and the second is that platforms move faster than protocols.
I want to address the second statement first. It reiterates a previous post in which Moxie justifies that Signal is centralized. Being centralized allows them to move fast, while open-source and cryptography provide the necessary trust and insight in the platform and guarantee privacy. Apart from end-to-end encrypted messengers like Signal and Threema, Keybase is an excellent example of this model. I agree with him, and I disagree with decentralization purists who believe decentralized systems are always better. Not to be mistaken, I like distributed and federated systems and would love to see more for reasons I’ll get into soon. Still, centralization isn’t evil by definition and can sometimes work well, especially when there are measures to ensure that the interests of all stakeholders are aligned.
Going back to the first statement, I think Moxie makes the common mistake of a false dichotomy. It’s not a choice between everyone running a server or participating in a centralized platform. There’s a lot of middle ground. Think of managed hosting for open-source software—hundreds of companies of all sizes offer this. Smaller SaaS providers that interoperate with each other don’t even need to be open-source to interact with other small SaaS; open protocols are enough. Yes, protocols make change harder, but there’s still potential to innovate at the edge as Hey.com did with email. An intermediary between the end-user and a somewhat messy distributed protocol can do excellent business. It’s a level playing field for different companies competing at the edge without suffering from network effects that let consumers stick with incumbents due to lock-in. It’s my idea of an actual free-market economy.
In other words, it’s not wrong or hurting the decentralization of public blockchains to interact with them through a mediator. Problems start when one of these mediators becomes a monopoly or so strong that it could also be a centralized service. According to Moxie, this is what happens, but web3 proponents generally dismiss the concern because, in theory, there are other mediators. So, why are we seeing so few competitors? And why does the entirety of managed hosting services and micro-SaaS look like a dwarf compared to large cloud computing infrastructures or productivity suites from companies like Google, Microsoft, and Amazon?
Any price for a product on the market contains the R&D and marginal costs for each piece. For software, marginal costs are minimal, even for SaaS, because hosting has gotten cheap. The more you sell, the fewer R&D costs each copy includes. And because dominating a market is both possible and rewarding, venture capitalists are willing to fund unsustainable free products that outcompete bootstrappers trying to build sustainable businesses. Hosting has similar scale effects. Running a website for a few hundred visitors is easy because you only need a single server. Once traffic grows, you need to think about separating web and database instances, vertical and horizontal scaling, and other deployment and operations issues. Getting from a hundred to a million visitors is challenging. However, going to ten million is easier because you probably already have the necessary systems in place. You only need to deploy more instances. Neither markets nor technology rewards beings medium-sized, even though that could be the healthiest option.
Moxie ends his piece with two suggestions on improving our relationship with technology. The first is finding more ways to distribute trust without distributing infrastructure, effectively pushing the Signal/Keybase model. The second is making it easier to build. He claims that creating software has become harder in recent years and that distributed systems could accelerate the trend. I don’t think creating software has become harder per se or continues to do so. It could become even more accessible with better (AI-assisted) developer tools and the proliferation of no-code and low-code platforms that help people become citizen developers. Better technical writing for developer content can also lead people on this journey. In my opinion, one reason building software feels harder is that there are increasingly more tech stacks to choose from, which leads to analysis paralysis. There’s also a tendency to overengineer, such as believing you need to build a React app when static HTML with two lines of jQuery also does the trick. And not every app needs a sophisticated build and deployment pipeline. Finally, our expectations for good software have risen.
APIs are essential for (no-code) creators as they can be an abstraction layer for complexity, whether from underlying protocols and distributed systems or advanced algorithms like machine learning. The crucial question that we need to address is how we can make sure that not everyone relies on the same API and makes the API provider the gatekeeper it shouldn’t be. We need to determine how to build resilience into the API ecosystem by making it easier for upstarts to provide APIs and harder for incumbents to outcompete everyone and dominate the market. I don’t have answers to these questions yet, but a healthy API ecosystem needs to find them eventually.
Moxies piece is valuable because it helps people understand how the crypto and blockchain world works. It’s also refreshing to see more nuanced takes that go beyond uncritical web3 cheerleading on one side and complete naysaying or dismissing it as a scam on the other side.