Why frontends won't be decentralized

Decentralizing frontends is hard and won't happen anytime soon.

By Gareth on 24th Jul, 2024


What's the point of decentralization?

If you have a bar of gold under your mattress and the government decides they want that gold, you can fight to keep it or try to get out of the country with it.

Tokens on sufficiently decentralized networks like Bitcoin and Ethereum are no different to that bar of gold. However, unless you're a technical wizard, moving those tokens around requires an interface, typically a web interface.

So in the context of DeFi, the point of decentralization is censorship resistant access and control of your assets.

The government should not be able to control your access to your assets.

The problem with decentralizing access to your onchain assets is that governments can control the access points to web interfaces through DNS.

The DNS problem

Imagine the internet as a huge city, and websites are buildings in this city. DNS is like the city's information desk at the town hall. When you want to visit your friend's house (a website), you only know their name, not their address. So you go to the information desk and ask, "Where does John Smith live?" The friendly clerk at the desk (the DNS server) quickly looks through their records and tells you, "John lives at 123 Main Street.".

The problem is the clerk at the town hall. She's employed by the government and if the government doesn't want anyone to visit John, because he's organising a protest, the government can tell the clerk to deny any requests for John's address.

This doesn't completely block you from finding John, but because everyone typically goes through the information desk at the town hall, it puts 99% of people off going any further. People are busy, they don't have time to walk the streets searching for John's house. So John's protest dies.

To decentralize access truly, we must first tackle this centralization at the heart of the internet. Enter the Ethereum Name Service (ENS), the best attempt to provide a decentralized alternative to DNS. However, here's the catch: getting the entire internet to switch from traditional top-level domains (TLDs) to ENS domains is like asking the world to start driving on the left side of the road tomorrow. It's a massive, disruptive change involving significant shifts in infrastructure, browser compatibility, and user behavior. It's just not going to happen any time soon.

So what alternative solutions do we have?

The mess with mirrors

Some might argue that mirrored sites could offer a solution. These are alternative URLs hosting the same content, providing redundancy and resisting censorship. But this is where the theory diverges from reality. Users trust websites based on familiar domain names and the brand reputation tied to them. Introducing many different, unfamiliar domains breeds confusion and mistrust.

Moreover, mirrors are far from bulletproof. They can be taken down, and keeping them synchronized is a logistical nightmare. Users are left questioning whether the mirror they’re using is safe or has been compromised, hardly the seamless experience we aspire to provide.

Local app stores?

Another proposed solution is to have local DeFi app stores. That is, a way to download entire web apps onto your computer and for those apps to only rely on non-centralized supporting services for fetching data and perfoming operations with your assets.

Whilst this again seems like a good idea, in practice it just doesn't work:

  1. It forces DeFi protocols to build extremely limited apps that will inevitably have worse UX than typical web apps. This is not going to help convince the masses to use DeFi...
  2. It again, like ENS, requires a massive disruptive change involving significant shifts in infrastructure and user behavior.

So now what? It all seems kind of hopeless, right? We're on this path with the development of the internet which appears to only lead to centralization and censorship.

If you're disappointed in this summary of our options, good, so am I, and unfortunetly I don't have a smoking gun to offer in this post.

The only current solution we do have in this fight is to open-source everything.

By making the code for DeFi apps open-source and easily deployable, we don't decentralize the access itself, but we distribute the power and control over its deployment and maintenance.

Open-source projects thrive on transparency and trust. Anyone can inspect the code for vulnerabilities or backdoors. Developers can fork the project, create their own versions, and host them independently. This ensures the project's resilience and longevity. But let's be honest—this approach relies on the technical acumen of users and developers to deploy and maintain these apps.

It’s not a practical, long-term, solution for the future of censorship resistant finance.