Happy Sunday! There’s blood on the streets and the only way to cope with a bear market is memes, alongside a healthy discussion about the nature of decentralisation.
The Decentralisation Dilemma
Contextualising Decentralisation
Ever since the concept of democracy was established in Ancient Greece around 500 B.C., its contours have varied over time, with early democracy and modern democracy (as we know it today) significantly differing from each other. For example, wherein early democracy obligated leaders to constantly seek input from their constituents, we now select leaders for a certain number of years and then re-elect them. In conjunction, for most of our history, democracy has been the upstart challenging the incumbent monarchy. As time went on and the concept of democracy matured – with key events like the American and French Revolutions showing how democracy could prevail against monarchy – early concepts of monarchy evolved into what we know it as today. Similarly, the same analogy can be applied to the development of decentralised networks. The original concept of decentralised networks was, and still is, very raw. Over time, it will need a lot of refinement to reach its end state, if there even is one, and mature decentralised networks, ready for mass adoption, will be materially different from what they initially were and what they currently are.
What exactly the meaning of decentralisation is and how ‘decentralised’ Web3 is, though, one of the most hotly debated topics across Web3. The debate came roaring back into prominence a couple of weeks ago after Moxie Marlinspike, renowned cryptographer and founder of Signal, the encrypted instant messaging service, published an article that highlighted the centralisation of critical services within the Web3 stack and shone the spotlight on some claims made by proponents, builders, and investors about the level of decentralisation, democratisation, and ownership that Web3 offers. The response to Moxie’s article has been strong, with some opinions labelling it as a ‘devastating critique’, Jack Dorsey saying that Web3 is a ‘centralised entity with a different label’, and Tim O’Reilly (who coined the term Web 2.0) asserting that recentralisation is essentially inevitable. There have been responses from numerous crypto-important people as well, with Vitalik Buterin, Brian Armstrong, and Sam Bankman-Fried, along with a host of other folks. Many of them attempt to break down how Web3 is not as centralised as it is being made out to be and how there are projects in-flight that help resolve many of the problems that Moxie has touched upon – and this is all correct!
It is vital to understand that the process of decentralisation is a marathon, not a sprint. Development only occurs in an iterative process, with constant critiques, audits of the status quo, a keen understanding of the points of failure, and, indeed, of history. Web3 must concentrate on avoiding the problems past decentralised systems ran into by learning from history in acknowledging the ideals behind Web 1.0 and Web 2.0, the reasons for why centralised systems prevailed then, and devise solutions to avoid these issues. Moxie’s article and the critiques of Web3 should not be viewed as criticisms against which battle lines must be drawn, and care must be taken to not pit this as a debate between two sides that will never meet. Rather, it should be viewed as a discussion, as improvements that must be made to achieve the ‘ideal’ state of decentralisation – whatever that may be.
Today, we will:
Frame the ‘centralisation v. decentralisation’ debate;
Walk through Moxie’s article and highlight some of the critiques he makes;
Touch upon some responses to Moxie’s article;
Talk about the process of decentralisation, why centralisation occurs, and what we can learn from history; and
Discuss the ‘ideal state’ of decentralisation, if there even is one.
Framing the ‘Centralisation vs. Decentralisation’ Debate
The ostensibly democratic and decentralised networks espoused by Web3 claim to solve the myriad problems of the centralised, seemingly monarchical structures of Web 2.0. The current state of the internet is characterised by Big Tech companies like Google, Apple, Amazon, Microsoft, and Meta, all which control user data and privacy and unilaterally make decisions that affect all their stakeholders. As Chris Dixon highlights, as a platform reaches the peak of its growth, its relationship with its users moves to one of extraction, and with its complements (developers, creators, and businesses) to one of competition.
This can be demonstrated by the censorship policies of social media platforms, by the ways in which Apple and Google act as gatekeepers to the mobile ecosystem by mandating that software be written according to the standards of each platform (placing significant barriers towards true interoperability) and by how Apple collects 5-6x standard rates for digital payments, down ranks competing services on its app platform, promotes its own services (Amazon-style) to the detriment of competitors, locks competitors out of key APIs, and constrains WebGL’s performance (used to develop in the web browser) to force developers to the App Store, where Apple takes a cut of all purchases.
Decentralisation purports to flip the equation on its head by enabling data and processing to be held by multiple parties, allowing users to be in control of their own data. Ownership across the internet is proved by a shared system of trust, the immutability and transparency of blockchains makes censorship immensely difficult to achieve, and the permissionless platforms mean that no single party can block anyone or deny access to the service. As such, since decentralised networks so directly seem to solve the problems posed by Web 2.0’s centralised systems, they are being held up as a panacea to the state of the internet as it is today.
Moxie Marlinspike’s First Impressions of Web3
To test some of the core theses about Web3 (namely, how decentralised Web3 is), Moxie decided to build a couple of decentralised applications (dApps) and create an NFT. He made two dApps, one called Autonomous Art and another called First Derivative, alongside an NFT that changes based on who is looking at it.
After a few days, the NFT Moxie made was removed from OpenSea because it violated their Terms of Service – but it also did not appear in any crypto wallet on his device, which shouldn’t be possible in a decentralised world, especially since the NFT is still located on the Ethereum blockchain. He drew two primary conclusions about how Web3 infrastructure is constructed from these experiences:
Centralised APIs / Ways of Interacting with the Blockchain: dApps or NFTs can only interact with the blockchain via nodes that are remotely running on a server, run by companies that sell API access to Ethereum nodes they run as a service. Currently, there are only two options for dApp transaction data (Infura or Alchemy), and primarily OpenSea for NFTs, which wallets like MetaMask call to interact with the blockchain. These client APIs do not verify the authenticity of the response, and the results are not even signed. Since most dApps use Infura or Alchemy, they have access to almost all read requests from all users, which is a significant privacy problem. Likewise, MetaMask makes an API call to OpenSea to display NFTs, which means that if the NFT is removed from OpenSea (like Moxie’s was), it also disappears from the user’s wallet. In this example, OpenSea can be compared to a Web 2.0 platform that owns all of a user’s data, and once that data is deleted from their servers, the user does not have any access to it whatsoever.
Storing Data On-Chain: In most cases, NFTs do not store data on-chain due to the expense of currently doing so, but instead contain a URL that points to the data, usually located on a server. Anyone with access to the server, compromises it, or buys the domain name in the future, can change the details about the NFT to anything they’d like, even if they do not own the token.
What this means is that the dApp’s view of transaction data is either Infura or Alchemy’s (unaudited and centralised) view of that data, and the wallet’s view of the user’s NFTs is OpenSea’s (unaudited and centralised) view of their NFTs. This, obviously, is a problem. If the Web3 tech stack itself has begun to rely so heavily on centralised services from the ground up, how can Web3 purport to be decentralised?
The Responses
Moxie’s article drew an immediate reaction from the Web3 community. A lot of the responses touched upon why his critiques were so important, namely because Web3 is still so nascent and has so much room to improve, that such audits are critical in driving the growth of the technology. Many responses, including that of Vitalik Buterin’s, also highlighted that Moxie’s critiques correctly criticised the current state of the ecosystem, but ‘missed where the blockchain ecosystem is going’. According to him, while today users mostly connect to the blockchain by the ways demonstrated by Moxie, there is currently work ongoing to either:
Run a light client, which is software that uses full nodes as intermediaries and interacts with them in a trust-minimised manner. Light clients only need to download the block headers of the blockchain, which contain a Merkle tree root, a fingerprint of all information on the blockchain about account balances or smart contract storage. If any information changes, the fingerprint changes as well. Due to the low amount of storage and computational power they need, light clients can run on mobile devices as well, which addresses one of Moxie’s most important critiques – that since blockchains cannot live on your mobile device, the only alternative is to access it via a node running remotely on a centralised server.
Have the smart contract code talk to ‘N’ different API endpoints run by ‘N’ different companies to minimise the centralisation of access to information.
Have the smart contract code connect directly to a P2P network to verify information and simultaneously conduct ‘data availability sampling’, which we’ll touch upon below.
These initiatives say a lot about the process of decentralisation. While the criticism that the Web3 tech stack is centralised is obviously a fair one, complete decentralisation should not be expected – it is not formed fully out of the womb. Centralised options are, in practicality, much easier to use than the decentralised options available to users today (like running a full node). This is not to say that the emergence of centralised alternatives is not worrying, since network effects and the relative ease of growing centralised platforms could very well lead to the centralised APIs becoming the status quo – and this would truly spell the end of the decentralised Web3 dream. Right now, however, it really isn’t too late, and critiques like those of Moxie’s are critical to help find gaps in the Web3 tech stack. The below tweet from Chris Cantino encapsulates the attitude we need to have:
As such, it makes sense to focus on what the process of decentralisation entails, explore why there is a tendency towards recentralisation, and understand the lessons we can learn from history.
The Process of Decentralisation
The development of any technology, let alone one as monumental as the internet of value, is not linear; rather, the road to where we want to get to – an open, equitable internet embedded with the principles of true ownership – is an unending, bumpy one with numerous ups and downs along the way. It is also completely unclear whether we will be able to attain this goal, but the aim is to continuously attempt to get closer and closer to the ‘ideal’ state, whatever that may be. To that end, it is obvious that the journey kick-started in the early 90s with Web 1.0 and its ideals of decentralisation, which evolved into the purportedly ‘centralised’ Web 2.0 and has now borne out into the Web3 dream, has faced issues in the past and will continue to face them. Web3 will not emerge fully formed, and whatever end state it reaches will not be one with which everyone is happy, but that does not mean it is worthless to attempt it. And to make the progress of development as linear as possible, it is important to learn from the past and not misrepresent it.
As highlighted by Emily Gorcenski, the ideals behind Web 2.0 were not about centralisation but, rather, were about decentralisation as well. According to her, Web 2.0 was created with the vision of a ‘decentralised mesh of information’ where the intent was not to concentrate power into Big Tech. Presenting it as a battle between the ‘evil, centralised Web 2.0’ and the ‘good, decentralised Web3’ may lead to us repeating the failures of Web 2.0 in preventing centralisation. As Emily points out so succinctly, ‘one cannot compare the promises of Web3 to the problems of Web 2.0’, and ‘by reframing Web 2.0 as centralised by design, Web3 exposes itself to the same threats that caused Web 2.0 to be centralised by effect’.
Many of the problems of Web 2.0 were caused because of the tendency towards recentralisation. Centralised organisations are by nature more efficient since they have a defined hierarchy and set of leaders who make decisions that permeate through the organisation. This lends itself to greater speed of thought and execution, and consequently, a better user experience at an earlier stage that allows centralised entities to achieve network effects and concentrate profits. This is a structural problem that is difficult to avoid unless, firstly, the Web3 industry recognises the need to use centralised solutions within the tech stack as ‘bridge’ solutions until decentralised alternatives are mature enough, and secondly, there is sustained oversight and criticism from the community that essentially forces the hands of projects and protocols that use centralised solutions when there are decentralised alternatives available.
The ‘Ideal’ State
Another fallacy that seems to have emerged is in the dichotomy that has been created between centralisation and decentralisation, with the former villainised and the latter venerated as a saviour. The truth, like with everything, is somewhere in the middle. While I stand on the side of more decentralisation being better as a whole, I also think that any extreme is not the state we want to reach. There are benefits to be had from pockets of centralisation, and it would be wrong to ignore the benefits it does bring.
Let’s take two examples: an issue pointed out by Benedict Evans, and DAO governance.
As Moxie has pointed out, many NFTs today only contain a URL that points to a file elsewhere, making it susceptible to being taken down in a centralised manner. However, solutions like Arweave or IPFS allow for storage of the image itself on-chain. What if, as the discussion below highlights, someone stores CSAM (child sexual abuse material) on-chain or airdrops it to the ENS domains of people who have advertised it on Twitter? I’m sure there are and will be solutions to this, but they will involve a degree of centralised decision-making, which is anathema to the purists.
With DAO governance, there have been studies conducted already on low voter participation rates and disorganised Discord servers, which is to be expected since we’re very early on in the DAO journey. There are ways to increase voter participation, with DAOs like Orca Protocol and Bribe Protocol springing up, and I’ve also touched upon ways of gamifying the voting process.
Regardless, making decisions in a completely decentralised manner is slow and inefficient. The best DAOs will probably combine a structure where there is a core group of contributors who are voted in and make 80% of the day-to-day decisions, with the remaining critical 20% of decisions being voted upon.
All in all, it is critical to have the right balance, with some pockets of the Web3 ecosystem centralised and some of the most critical parts of the ecosystem decentralised – the infrastructure stack. In the next article, I’ll shine a spotlight on a potential (non-exhaustive) list of solutions, ranging from projects like The Graph, Arweave, IPFS, Filecoin, and Chainlink, to novel methods of ‘tracking’ the level of centralisation within the ecosystem. There are many more fantastic projects attempting to decentralise the Web3 tech stack, like Skynet, API3, SpruceID, and Ceramic Network, among others, and while I won’t go into detail on all of them individually, it would be remiss not to at least mention them.
The best articles I’ve read over the last couple of weeks:
To join this journey into the worlds of tech, business, and Web3, subscribe below!
Disclaimer
This is a personal blog. Any views or opinions represented in this blog are personal and belong solely to the article authors and do not represent those of people, institutions or organizations that those authors may or may not be associated with in professional or personal capacity, unless explicitly stated. All content provided on this blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. The owner will not be liable for any errors or omissions in this information nor for the availability of this information. The owner will not be liable for any losses, injuries, or damages from the display or use of this information. Any views or opinions are not intended to malign any religion, ethnic group, club, organization, company, or individual.
👇🏽 please hit the ♥️ button below if you enjoyed this post.