Late, pragmatic answer to Moxie

At the beginning of the year, Moxie Marlinspike, founder of Signal, wrote now famous article about web3. There are many responses to the article, from more knowledgeable and famous people than I am. Initially, I decided to not contribute to the ocean of answers, mostly because I’ll write probably something very similar to Vitalik post and it will come from person with less knowledge and authority.

I am still discussing the article with some of my friends though. Some of them still believe that most of the criticism is correct. I am writing this for them, for regular developers, who have some rough idea on what the web3 is, but still disagree that this technology has any value for the real world projects. This is an opinion piece from a very pragmatic, ancient builder.

My first code in basic
My first code in basic

Web, one two three

The first web wasn’t decentralized. It is a myth. We just happily used lame applications with limited interactions like the Geocities. It was lovely and I don’t want to diminish contribution of the people that built those early experiences, but the idea that everyone will host their own server was dead on arrival. The age of applications we call web2 does not bring any difference to this in any sense. You can still host your own application from your laptop if you wish to do so. And it is easier than ever before.

There is an arrow of progress that these numbers follow correctly though. We still invent better technologies. The impact of blockchain is the same as the impact of first databases. It opens the door to new applications, applications that would be hard or impossible to build without it. Web3 to me is a continuing evolution that always existed and cannot be stopped.

Forward ever, backward never
Forward ever, backward never

Decentralization is a beautiful idea that is essential to the blockchain itself, but that does not necessarily mean we want to run our own servers. I was personally happy to use Infura or Alchemy for my deployments until Tornado Cash happened. These services are not a server though, that would be wrong simplification - if we want to oversimplify, the node gateway + smart contract + blockchain is the server. I think that this is clear to Moxie himself, but probably not clear to some of his readers. If you want to dive deep, there is an excellent response from Vitalik that is not simple to understand, but explains the matter very well. Centralized node gateways have only one big disadvantage: you can’t build something that is disapproved by the government. Since they are regular companies, it is easy for any government to demand them to stop services for a particular application. That may sound okay to you (it really isn’t, even in western model democracies), but don’t forget there are governments like China and Russia. I’ll return to the node gateways and their dangers in a future article.

Blockchain standardization committee, 1930, colored
Blockchain standardization committee, 1930, colored

Protocol vs platform

I think that on the basic level, Moxie is right. Startup tends to move faster than corporation, corporation moves faster than government (unless there is something endangering the interests of financial institutions). Public protocols are similar to governments. IPv6 was in development for so long, that nobody cared when it finally arrived. This does not mean we don’t need protocols though. The walled garden of the Apple ecosystem is built on tcp/ip as anything else. The problem we fight with the protocols is that they often try to do too much. Instead of defining a common ground for platforms, the protocol authors have a tendency to build the platform itself. ENS is an unfortunate example of this. And again, as in all of my arguments above, there is almost no difference between web apps based on databases and web apps based on the blockchain.

Building the application

In the practical part Moxie returns to the problem of node gateways and wallets. I will focus on node gateway providers as they make a big part of the whole Moxie disappointment. He is absolutely right in pointing out that any well known app you might be using is actually not communicating directly with the blockchain. I don’t see anything weird in this, I don’t know any application that works directly with the database either. But yes, when we talk about blockchain, there is enormous energy spent on the security, immutability and validation mechanisms, while our web applications use merely a window based on well known technologies to peek into this beautiful world. Your browser really depends on what the node provider says is a state of blockchain and the technology is absolutely same as you’d use to ask AccuWeather API for weather predictions.

Not every rainbow is from rain
Not every rainbow is from rain

The node providers territory is not easy to describe as a replica of the APIs as we know them though. The sentence below is from the original article and I think it simplifies the current options too much.

“As it happens, companies have emerged that sell API access to an ethereum node they run as a service, along with providing analytics, enhanced APIs they’ve built on top of the default ethereum APIs, and access to historical transactions.”

While this is true for Infura and Alchemy (both great services), there is also Ankr and let me quote again:

Web3 infrastructure provider Ankr is disrupting itself. What the team describes as a shift from platform to protocol is aimed at placing community-run nodes at the center of its strategy. 

Someone from Ankr marketing clearly read the Moxie article. What Ankr is doing is that instead of having a server running node endpoints for you, they contract the independent running nodes (I simplify intentionally for the sake of clarity). This is possible due to one critical difference: APIs are built around different databases in different technologies, while these providers provide access to blockchains. So while the API looks the same on the surface, underlying technology has a very different functionality. And that allows for a very healthy competition in the field of node providers and super fast innovation. While writing this article, I found that there is also a Pocket Network, very similar to Ankr and I think that we will see others popping up and providing even better services. Ankr is also moving the organization towards the DAO, making the dream of decentralized ownership of ethereum nodes not as distant as it seemed. It just iterated fast to the new form (poke to the Moxie agile argument).

Universe full of blockchains
Universe full of blockchains

Another interesting development is that blockchains themselves are getting even more decentralized. The promise of users that can build their own ethereum node iterated to the options like Cosmos or Polkadot, where you have a basic thin protocol serving as a communication layer to the blockchains you develop for your purpose. Therefore, the argument that

Iterating quickly on centralized platforms is already outpacing the distributed protocols and consolidating control into platforms.

is true for OpenSea and NFT royalties, there is a whole new cosmos in which you can create such functionality for your application. I believe that in future, we will have these main protocols enabling the core of the functionality, with multiple chains built on top of them for a specific purpose. All of that decentralized, governed by DAOs and iterating fast on application/platform level.

Yes, this image can disappear in the future
Yes, this image can disappear in the future

The rest of NFT related criticism is absolutely correct though. I think that most users really do not understand that they are buying a record in the blockchain that points to some URL. I am not sure there really are people creating NFTs pointing to some unreliable server, but IPFS is not much better. Don’t get me wrong, the technology is nice and there are companies like Cloudflare, Infura and Filecoin that makes the problem much smaller by providing “centralized” layer. But Moxie is right that there is absolutely no guarantee that the picture you spent your monthly salary on will be still there in two years. If you mint my article and Unsplash goes bankrupt, you will never see the pictures in this article again. That’s how it works and it is a problem worth fixing. I just don’t think it will be solved by OpenSea using some database, it will be probably some new ERC standard that will fix it for everyone.

If all of this sounds biased, read my other articles where I explain why I picked database instead of any decentralized solution for my web3 project.

I hope you liked this article. Collecting (minting) this article will help me to write more.

Subscribe to Adam Sobotka
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.