Smart Contract Decentralization

“Ethereum is decentralized. Smart contracts are executed on Ethereum. Therefore smart contracts are decentralized.”

This mental model is widely held (just look at the name “DeFi”), and in a certain sense it’s true. However, this model is also critically flawed.

There are several “hints” that this is true, such as how hacks impact all users and how upgrades are generally not opt-in. However the most notable hint is that web3 “decentralized” names are human-meaningful & secure, and therefore must be centralized (See Zookos Trilemma)

So what, it was all a sham? Smart contracts were centralized all along? Well, that’s not quite true either, turns out there are multiple dimensions on which a piece of software can be decentralized. Let’s take a closer look at each one.

The Physical Dimension

Software runs on physical hardware. Making reliable physical objects is hard for a lot of reasons. They can break, get stolen, need maintenance, or simply get lost. Building in some level of physical redundancy is mandatory for essentially every online service these days, and smart contracts are no exception. Ethereum uses an incentive structure to maintain a relatively diverse set of physical nodes & validators. Many may live in data centers, but there is also a healthy ecosystem of enthusiasts running their own hardware at home across the globe.

Smart contracts are highly decentralized in the physical dimension.

The Logical Dimension

Once you have a piece of software running on multiple physical machines, there is a problem fundamentally caused by the theory of relativity. Two computers cannot agree on a consistent state in real time. In software design there are two options for how to deal with this. Compensate, or double down. Peer-to-peer applications such as BitTorrent and the Lightning Network are examples of those that have doubled down on this problem. The software is designed such that no “global state” is required.

Blockchains on the other hand are systems that compensate for this relativity problem by applying a consensus mechanism. All physical machines are “eventually consistent” in their view of the world. In fact, attaining a logically centralized state with such high levels of physical decentralization is the fundamental innovation. Previously, logically centralized systems were limited in how many physical nodes could participate.

Smart contracts are logically centralized. It is this logical centralization that allows smart contracts to act as the trusted authority for ENS names.

The Political Dimension

The political dimension can be sub-divided into two parts:

  1. Who controls the physical layer?
  2. Who controls the logical layer?

The answers to each of these questions also have two parts:

  1. The actual entities that are in control of the layer
  2. The government(s) that has control over those entities

How do smart contracts fit into this dimension? Well it depends!

Ethereum provides very high political decentralization of the physical layer (nodes are distributed world-wide, and users choose their node operators freely). Smart contracts directly inherit this high physical-political decentralization from Ethereum.

Who controls the logical layer of a smart contract really comes down to the design of each individual contract itself:

  • One contract might be designed such that one person has complete control to manage and update all aspects of the software at will.
  • A second contract might have the admin functions controlled by a DAO.
  • A third contract might have no admin functionality at all and be fully autonomous (eg Tornado Cash)

The Use-case for Smart Contracts

In summary, smart contracts are not really a competitor to true decentralized peer-to-peer applications. Instead they are alternatives to proprietery, opaque backend servers run by companies. They offer transparency to the rules of the system and the potential for political capture.

A CEX must be trusted to operate a fair backend software that won’t be manipulated by an insider. A DEX is still logically centralized, but is fully transparent with how it operates and who controls the admin functions!

DNS authorities must be trusted to remain neutral and not censor domains (eg The Pirate Bay). ENS is fully transparent with how ownership and name resolution changes are made.


Appendix: Why doesn’t consensus layer centralization appear here?

“If American exchanges hold the majority of Ether, and they choose to enforce OFAC at the validation layer, then the chain will be politically captured.”

While it is true that centralized validators can choose to impose rules onto the network, it is ultimately the non-validating node operators (the users; the physical dimension) that will either accept or reject these rules.

When a rejection takes place, we call it a “hard fork”. The centralized validators are ejected/slashed out of their role. However, I want to be clear: this type of hard fork is not a panacea for regulatory capture! It could be that the OFAC chain is much more usable and valuable than the forked non-OFAC chain, and that users will “begrudgingly accept” the political capture of the validators.

So while I don’t include “consensus layer” as its own independent decentralization dimension, it is worth keeping in mind this risk for the political capture at the physical (people) layer. Without a large enough dissenting population, the minority may be stuck with a useless fork. (Super) majority rules.

Notes mentioning this note