The story goes a bit like this: Ethereum is a repository of smart contracts and their associated data. Because Ethereum is a blockchain, the said smart contracts are immutable, meaning their content cannot be changed unless they have been written to accept future modifications.

This opens the door to unstoppable software applications, and, eventually, a techno-utopia, as described here by none other than Ethereum’s inventor, Vitalik Buterin.

People build businesses on this entire concept, referred to as trustlessness. For example, my company Slock.it broadens software autonomy to the physical world, ushering more profitable machine-to-machine communications. Both Augur and Gnosis build incorruptible predications markets. Very smart/successful people, including the developer of the first widely Internet browser, Marc Andreessen, go as far as equating Blockchains to the future of the Internet.

Hard vs Soft Forks

Enter “Hard forks”. Hard forks are seen by some as the arbitrary manipulation of the blockchain state to either revert, or outright rewrite smart contracts and their data by parties unknown, but likely looking like this guy:

Fig 1. The Hardforker gleefully contemplating the end of decentralization

Except, that’s not what hard forks are at all. Quite the opposite in fact.

Hard forks are the most democratic means of consensus on earth today. They are the ultimate referendum mechanism.

Here’s why: so called ‘soft forks’ are code modifications to software clients which, once implemented by 50–75% of the miners, change the consensus rules for everyone involved. You, as an end user, do not get a say whether you like these changes or not, only miners do. That’s because miners get a switch called ‘--block-the-silkroad’ or ‘--give-vitalik-10-million-ethers’ or, God forbid, ‘--dao-soft-fork’’. End user clients, including the Ethereum Wallet, have to follow.

Soft forks are at best temporary and at worst borderline dangerous due to miner centralization leading to a bribing/spamming vulnerability. (I will cover this in a separate post). Regardless, they will soon become obsolete: a year ago, Vitalik predicted that address-blocking soft forks will be “outright impossible”, once again proving that he is indeed from the future.

Taking Control

Hardforks on the other hand are entirely the decision of the end users, and no one else. The “Attacker”, the “Intelligentsia” and even the Illuminati have no say. Only end-user clients choose which fork to follow, just like they choose to run Homestead, or to run Morden. Odds are, you are running Homestead right now, following the hard fork from Frontier in February. But you could have chosen to run whatever fork you like, even continuing to use Frontier, or even using your own Fork. It’s your choice.

Any mined fork is a valid fork to follow. Does this mean we’ll live in a confusing world of multiple version of multiple clients, all implementing various governance or moral principles? For example, could we end up with a Geth version that allows for the Silk Road, but blocks child porn dapps and caps DAOs to 10 millions dollars? It’s unlikely, but again it’s ultimately your say, not the Ethereum Foundation’s.

Outside the general protocol roadmap, what code changes are released as part of a client could be the result of a vote. For example, you could vote on-chain to see a new Parity client release implementing the hard fork change of your choice. And if the Parity developers don’t listen, well, there are other clients out there. This is why client diversity is a good thing, but I’ll cover that in another article.

So, where to next?

Ethereum might have a shiny 1.0 label, yet it’s far from finished. In fact, it barely started on its journey to grow and evolve into Internet 2.0.

We are in the pre-cambrian age of Ethereum and Web 3. Fishes don’t even have legs yet.

Hard forks in Ethereum are upgrade mechanisms. Metropolis, Serenity, Ethereum 2.0, and everything in between until the fabled Ethereum 3.0 will be a hard fork. That we’re having a debate as to whether or not you have a say in their feature set is a good thing (tm).

As for The DAO, the current soft fork is IMHO a good (temporary) first step, but only a hard fork will allow for a proper opinion survey as to what should happen next: hard fork and nearly 100% fund recovery, or no fork and likely total loss. Whatever the answer is, it will be final and truly categorical. And yes, parallels with Brexit do come to mind, so vote carefully when the time comes.

So here’s the kicker: if you are against hard forks because you thought they represented the nuclear option or the jackboot of Vitalik the Evil Dictator, you’re wrong . And if you support hard forks because you believe that “technology has gone ahead of reality” and that “we all need to go back to pre-red pill days and accept a superior authority to keep us all safe”, you’re also wrong. Doubly wrong, in fact.

Hard forks are instruments of consensus, nothing more, nothing less. Hard forks represent consensus on consensus itself, they put the power over the network in the hands of the many. This makes a lot of people very uncomfortable indeed.

So yes, recent events will open a debate around client diversity, the trust we put in compilers and the need for contract formal verification. But behind these technical matters, the bigger question is: how should the many self-regulate and govern themselves in a software environment that is constantly evolving?