Ethereum Learns To Use A Fork (And Other Signs Baby Is Growing Up)

Written by Joseph Lubin, sam cassatt, and Amanda Gutterman.

We’ve been hearing some concern about Ethereum’s latest hard fork and how it affects the platform, so we thought we might explain what happened and attempt to clear up any misinformation.

Basically we think any consternation about recent (intentional and unintentional) forks or their effects is misplaced. In our view, the events of last week represent natural growing pains. The swift and effective way they were handled is further proof that our toddler-age platform is growing up into something special.

Some background for the less nerdy readership: An unintentional fork is an event experienced by a blockchain-based system in which, due to a software flaw, more than one canonical history develops. Generally when this is discovered, the system is halted, the flaw is identified, fixed, and then the system is reactivated, often with some reorganization of how transactions that were formerly processed are folded into the newly agreed-upon canonical history.

An intentional fork is achieved when software developers upgrade the software clients that run the system such that anyone who does not upgrade would find themself on a different and unsupported branch of the blockchain. This branch is basically a different and narrower view of the canonical history of the system, since it was not adopted by the majority.

Interestingly, as we have seen with the Ethereum Classic event, such minority branches can take on a life of their own, if a sufficient community develops around that version of “reality”.

Learning to use a fork

What happened with the latest hard fork?

It starts with the fact that there are two major versions of the Ethereum client software (and six minor versions that also achieve consensus with one another every 14 seconds on the public chain). One is called Geth and maintained by the Ethereum Foundation, and the other is called Parity. During an update to the Ethereum software, there was a slight difference in the behavior of these versions. This caused each one to believe that there was a divergent history of transactions on the Ethereum blockchain, effectively creating two different Ethereum blockchains.

This type of error is called a consensus failure. Fortunately once it was identified, developers acted extremely quickly to fix it, bringing Geth and Parity safely back into agreement. But the fact that the error happened at all temporarily lowered confidence in the network, either causing some ether holders to panic and naturally sell their ether, which led to a drop in price, or enabling speculators to short ether hard in the face of a piece of bad news, hoping to induce a bit of panic and a sizable price drop, enabling them to buy back in at far lower prices. This game has been played out over and over in bitcoin and other cryptocurrency markets for a few years.

Is this normal?

It’s tempting to compare Ethereum to Bitcoin since they are the two most widely used blockchains. Those who are knowledgeable about the space are aware that the comparison makes sense in some ways, but not others. The frequent comparisons can obscure the fact that the two blockchains emerged in different contexts with very distinct capabilities due to the different intentions of their core developer teams.

For example, if you compare Ethereum to Bitcoin in a total vacuum, the recent hard fork could seem existentially alarming. But if you understand the context in which the two blockchains emerged, you probably understand that Ethereum, Bitcoin’s much younger and more ambitious cousin, is slated to undergo upgrades like any other ambitious software application platform that wishes to become and stay relevant. This will cause teething pains similar to those suffered by every other computer language, program, or platform in history.

Bitcoin was invented in 2008 as an experiment in monetary theory and design. The news of its launch in 2009 was distributed to a small email list of cryptography enthusiasts. To all but a select group of computer scientists and people who identified as cypherpunks, Bitcoin sputtered along for years in relative obscurity. The first press coverage of Bitcoin came later in 2011, pegged to the fact that it enabled pseudonymous payments on Dark Web markets such as the Silk Road.

At its foundation, Bitcoin always was, and remains, a monetary system. Its main use cases are those closely concentrated around creation, transmission, and storage of a value token: the bitcoin.

Ethereum was never intended to be a money and payments system though many think that, in time, it can accomplish these and related use cases far better than Bitcoin does. Still Ethereum is first and foremost a decentralized application platform in the sense that TCP/IP and the web protocols layered on top can be considered the foundation of a client server-style application platform.

In mid 2012, interest in using the Bitcoin technology to serve a more diverse array of use cases picked up speed. Developers explored colored coins, meta-protocols on top of Bitcoin, and entirely different blockchain architectures. Vitalik Buterin, the then teen prodigy who would go on to invent Ethereum, was involved in some of these projects. He realized that the approach of adding use cases to the Bitcoin blockchain one at a time at the protocol or client level was unscalable. So he set out to design and build a platform for decentralized applications, so any average developer could build out their own use cases in an application layer that was cleanly separated from the protocol layer, making decentralized app development roughly as easy as web or mobile app development.

From the outset, Vitalik and the co-founders of Ethereum (including me, Joe) never intended to replace bitcoin (we were all bitcoiners) or create an alternative money or payments system. Ethereum is a software platform built to serve as the foundation of Web 3.0, the decentralized World Wide Web, which could offer the services that we know and love from Web 2.0, but using a decentralized, fully peer-to-peer architecture with your identity (e.g uPort) construct serving as the fundamental access point of interactions, rather than centralized services like Facebook.

Instead of perpetuating a world in which internet users continue to feed the coffers of centralized power structures in the roles of either customer or product, the aim of Ethereum’s founders was to replace the walled gardens and data silos of Web 2.0 that concentrate data and wealth in the hands of a small group of companies and their owners. That means, possibly, the eventual replacement of (or forcing a re-architecting of) Facebook, Twitter, AWS, Airbnb, Netflix, Amazon, Ebay, and others, an ambitious undertaking that at the core seeks to re-architect global systems to become more transparent and inclusive, and put you, the user, back in control of your identity, data, communications, and value, while accessing alternative or re-architected services like those we know and love from the Web 2.0.

That awkward phase

The growing pains of a technology platform are familiar to anybody that works in, or builds, technology. Not so long ago, back in 2013, Bitcoin experienced the very issue of having a consensus failure. It also encountered various other bugs and problems, including one that caused practically infinite amounts of bitcoins to be created by someone who discovered a flaw.

However, unlike Ethereum which was released six years later, Bitcoin had the luxury of identifying and correcting these failures in obscurity. Bitcoin did not come into the public eye until the runup of its price in 2013 to over $1000 brought attention from media and investors.

Because Ethereum represented such a strong advancement in blockchain technology much of the relatively large Bitcoin audience’s attention was present right from the outset of the Ethereum project. The attention on Ethereum, as opposed to Bitcoin during its early days, makes it easy to forget that it’s natural Bitcoin and Ethereum will have similar issues at various points technologically as they move from ideas to mature systems.

All things considered, the governance and the adaptability of the developers of Ethereum has been pretty remarkable. We continue to be impressed that issues are identified and resolved, some very quickly, and some requiring thoughtful and vigorous debate, but all serving to strengthen and harden the platform. Each new challenge is met with an effective response, demonstrating that the Ethereum platform is an antifragile system: it gets stronger with each new sustained assault. And frankly, we need the assaults to continue, and we thank the hackers that spent their hard-earned ether to demonstrate minor flaws and vulnerabilities. They have enabled the platform to mature faster.

Our baby blockchain will never develop into a world-class athlete without sustaining a few bumps and bruises along the way.

A very special blockchain

Not only is the recent hard fork an opportunity to strengthen Ethereum, it’s also a chance to discuss the unique properties of the platform that set it apart from other blockchains.

Unlike the Bitcoin blockchain, on which resides its most important element the bitcoin value token, Ethereum is not all about its value token, ether. Ethereum is a software platform for decentralized applications; ether is a token intrinsic to the proper functioning of the computation and data storage engine, that is often described as a cryptofuel, that enables the platform to run. The Bitcoin platform exists to serve the bitcoin token. Ether exists to serve the Ethereum platform, which represents far more than an opportunity to trade in a cryptocurrency. The value of ether comes from the fact that the platform has unprecedented potential to re-architect the way we live.

The Ethereum World Computer is a shared permissionless global resource. Similar to how your computer can freeze or slow down if you have too many tabs open, if everyone were trying to do something that used too many resources on the world computer, the platform would be unusable. If you let everyone use all the resources they liked, Ethereum would run out of resources in terms of computational steps and storage operations, in what is effectively the processor and hard drive of the computer. By associating a micro-cost with the consumption of resources, requiring ether payments economically disincentivizes overuse of the Ethereum resources, guarding against a “tragedy of the commons” scenario.

In the context of the public permissionless network, an economic disincentive to abuse is necessary since anyone can access it. But increasingly we are seeing the application of the Ethereum platform in a private corporate context or in semi-private contexts created by consortia of companies that want to do business more fluidly with each other. One example is how R3 connected 11 banks to do demonstration transactions with one another on an Ethereum-based private blockchain. Another example is our provenance project here at ConsenSys with BHP Billiton, the world’s largest mining company.

Use cases inside a permissioned system do not require ether, since resource consumption can be managed differently when all the actors are known and the resources are all owned by the users. The success of private Ethereum blockchains, which are making businesses work better every day, does not depend on the currency ether or even the existence of the public blockchain, but in time the synergies between private and public will prove immensely valuable.

The reason the consensus failure happened on the public Ethereum blockchain in the first place is that there were two different versions of the software, with two entirely different development teams, that got out of sync with respect to an esoteric issue that escaped rigorous testing. This does not represent a fundamental technological problem. It’s a simple, old-fashioned human coordination problem, and will drive development of even better version rollout processes. A private Ethereum blockchain, on the other hand, would generally be deployed with a unified architecture, so no such problem could occur.

Baby is growing up

As industry continues to investigate blockchain platforms, it’s apparent that Ethereum is becoming a de facto leader. For example, a few days ago JPMorgan publicly open-sourced its Quorum platform, architected and developed around the Go Ethereum client by Jeff Wilcke and his team. Several other major banks are using Ethereum, and Microsoft is anchoring its Bletchley platform on it as the foundational blockchain element. Industry, both publicly and confidentially, continues to contribute to Ethereum and work with us and others to help our promising, toddler-age codebase reach maturity. Stay tuned for news on this front.

It takes a (global) village to raise a blockchain. The live network and the community of open source developers contribute significantly to this effort. They continuously refine and harden the Ethereum platform, helping it get faster at responding to industry demands for the value propositions it offers. These investments of time and resources speak to their faith in Ethereum governance and the value that businesses and developers see in its capabilities.

May the fork be with you!

Like this piece? Sign up here for our weekly newsletter.

Written by Joseph Lubin, Sam Cassatt, and Amanda Gutterman. They are, respectively, the Founder, Chief Strategy Officer, and Chief Marketing Officer, of ConsenSys.