Cut and try: building a dream

Posted by Taylor Gerring on February 9, 2016

Last month marked the 2 year anniversary of Ethereum’s public announcement at The North American Bitcoin Conference in Miami, Florida, USA. Amid much rumour and excitement, a sizeable crowd mobbed the young Vitalik Buterin after his on-stage announcement, questioning the merit and his desire to build such a system.

It can be hard to truly appreciate how far we’ve come in the last couple years. Sometimes it feels as if the cryptoeconomic sphere moves at such a blistering speed that weekly news announcements have become the norm rather than the exception. Interest in the field has exploded for lots of great reasons, but none of that particularly matters unless the underlying technology exists. As interested observers, our job is to help manifest the idea of a blockchain-driven world into reality. With ideas enshrined in a white paper, the time to talk was over. Now was the time to build.

A look back

To frame things appropriately, consider that Ethereum was formally announced on January 25, 2014. Back then, the price of Bitcoin had recently peaked and was hovering around $800. Dogecoin was exceptionally popular and began fundraising to sponsor the Jamaican Bobsled Team. Alternative uses of “blockchain technology” included Namecoin as decentralized name system atop a global key/value store. An attempt at untraceable messaging was even invented as BitMessage. Only a month prior, researchers demonstrated in a paper that block times under 1 second were possible. In short, it seemed there was nothing blockchains couldn’t do.

Vitalik announcing Ethereum (Marc van der Chijs)

Although Bitcoin’s speed of settlement was a huge improvement over traditional systems, it was clear that more innovation could be had by further experimenting with whatever this “blockchain” thing was. At the time, there was much debate about so-called “blockchain bloat” and concerns that additional applications built on the Bitcoin protocol would cause problems scaling. Already, betting platforms had come under fire for creating lots of low-value transactions. There was a stirring in the bitcoin community that continues to this day.

With all these possibilities, how could a single protocol be made to accommodate all the varying needs? As a first experiment, Bitcoin was already gaining quickly in value. What began as a cypherpunk dream had blossomed into an industry. Changes to the core protocol risked billions in value and there was no clear governance in place for proposing and including changes. One path to acceptance was forming a consensus around a Bitcoin Improvement Proposal (BIP, for short) and offering the code in a “pull request” for public comment. Making the changes required to support more generalised use would be a radical proposal, to say the least.

Bootstrap

By April of 2014, Dr. Gavin Wood published the Ethereum Yellow Paper that would serve as the technical bible and de-facto specification for the Ethereum Virtual Machine (EVM). From this vantage point, Ethereum pursued a course of producing implementations that matched a specification, as opposed to being a specification defined by an implementation. Because Bitcoin as a protocol was defined by the reference C++ implementation, any ports would have to replicate all logic in intricate detail, including bugs. Today, the Bitcoin protocol is in a better place, with core consensus features separated from GUI into a discrete library. Furthermore, clients like BitcoinJ (a Java client, written by Mike Hearn) and btcd (a Go client) has moved the goal posts beyond a single system language.

Contrast this to the Ethereum ecosystem which today has no less than 6 implementations of consensus: C++, Go, Python, Java, JavaScript, and Haskell. When a discrepancy occurs due to either human or computer languages, a roundtable of client developers can compare results and discuss the ramifications of a particular interpretation so as to determine a specific course of action. Aided by automated and random testing, sometimes the result of a consensus failure was not in code, but the documentation itself. Nonetheless, the benefits of a specification-driven implementation began to shine, helping to neutralise human error as we interpreted words into code.

Ethereum Yellow Paper

Concurrent to this initial development, several legal entities were formed to provide a framework for coordinating the organised effort of building a decentralised DApp platform. The result was Stiftung Ethereum being established in June 2014 in Zug, Switzerland. With all the paperwork and agreements in place, a crowdsale of Ether tokens was held in Summer 2014, based on a proposal laid out earlier in the year. Within moments of launch, thousands of bitcoin began flowing to a multisig Bitcoin address, each purchase marking its place in history as supporters of an ambitious vision. In the spirit of complete decentralisation, no database was used, instead relying 100% on transactions as recorded in the Bitcoin ledger. If Ethereum were to build anything, it would be atop the shoulders of giants.

Kickstart

As the Ethereum proof-of-concept (PoC) series marched forward through the generous efforts of developers around the globe and the Ether Sale finishing towards the end of summer, the stage was set to execute on the vision outlaid by Vitalik only a few months earlier. In less than a year, the legal and financial framework was in place to begin full-scale development of a next-generation blockchain platform.

Almost immediately, the results of the sale were put to use paying back mounting legal debts and also for the months of developer effort that had yet to be compensated. Some had left their job and not seen a single satoshi in their Bitcoin wallet in a half-year, as others grew concerned about feeding their families and paying their mortgages. Times were tight for everyone involved.

Finally, around September 2014, the majority of funds would be available to support the complex engineering of bleeding-edge decentralisation technology. Born out of an interest in extending blockchains, Ethereum commenced a massive hiring effort, attracting developers across a variety of disciplines to carry out the hard work of fully flushing out what were only preliminary ideas.

DEVCON0 group photo (Wikipedia)

Only two months later, in November 2014, the majority of the Ethereum project team was assembled and descended upon Berlin to participate in the first Ethereum conference: DEVCON0. Although many had spoke via Skype, this was a time when most of the project members met for the first time. At this proto-conference, in a modest but beautiful space, developers took turns standing in front of peers explaining their vision for any given segment of the many protocols that would be necessary to develop “Web3”.

This was a key time for the project as the general community anxiously awaited more refined tools to begin building their own dream. Many iterations of protocols and several implementations of any given feature had yet to be developed. To understand this more clearly, it should be acknowledged that Ethereum had only reached PoC7 and many ideas were barely more coherent than theory.

As a team, we were only first starting to work with each other and the many tools and systems required for full-scale development had yet to be put in place. As a project, we identified the need to begin extensive testing and measurement to ensure each of the ideas were performing as expected. If the testing couldn’t prove the theory, the hypothesis was little more than fantasy.

Heroic efforts

So it would go for several months through the holidays with increased development occurring early in 2015. Around this time, Jeff Wilcke called the Go development team together in Amsterdam to evaluate the state of the software. Despite the face-to-face event in Berlin a few months earlier, this was the time that the go-ethereum team came together and experienced the first working Whisper DApp for in-office chat. It was exceptionally exciting to experience this vague notion of what the future might hold, but it also exposed our many weak points. This dogfooding was the nexus point from which many of the working groups were established to build towards the Mist vision.

An early Mist prototype

Already at this point in time, the bug bounty program was in full swing as we sought the most egregious bugs. As eventual users of the system, vigorously seeking problems brought far more benefit than hiding behind excuses. Because we were writing consensus software, there was little room for error and we would go as far as randomised fuzz testing to ensure that even unknown unknowns were handled to the best of our ability.

As the software audits progressed, the DevGrants program began to more publicly emerge with the announcement of the Ethereum Embedded program, making it exceptionally simple to run an Ethereum node on low-cost Raspberry Pi hardware. At the same time, the teams focused on ensuring a stable feature-rich command line interface (CLI) was available for developers to begin working with. It would take only a few more weeks until the eventual Olympic testnet was launched, providing a valuable testing bed for client patching and protocol upgrades.

As the suite of software and interfaces eventually marched towards stability and developer confidence grew around what we were building, murmurs of a Frontier launch started to permeate the community. Despite the excitement to release early and often, the community backed the developers decision to make sure the security and stability of the software was paramount, deferring to the software & security auditors on what must be changed before a wide-scale release.

Wild West

Eventually, the most severe problems would be fixed and Ethereum mainnet would launch the beta-esque Frontier mere months after many Ethereum developers met for the first time, ever. The dedication expressed by many of the developers would be a testament to the importance of the project we undertook. It was July 2015, a mere year since the crowdsale and Ethereum had a working network. No more could the label “vaporware” be applied to this idea of Bitcoin 2.0—Ethereum was real.

Network statistics dashboard

After a much-deserved reprieve in the summer following the relatively smooth launch of Frontier, the development teams refined rough edges in the software and began working towards improved abstractions to better model what the future of Ethereum might look like. A new & improved Ethereum Wallet beta was released based on a more robust toolkit than the prior Qt versions. This decision would yield huge dividends later as mobile builds would become a high-priority target for the project.

With the widening interest beyond the core Ethereum community, it was time to spread our collective wings to help the rest of the world see the same ideas that many early adopters had. Following a short delay, DEVCON1 was announced to take place in London, England for a week in November 2015. Almost 400 people joined together at this location for an entire week, totaling 80 talks and topics about the Ethereum ecosystem.

Full house at DEVCON1

Adding to the excitement, the community gleefully welcomed Nick Szabo, Imogen Heap, and representatives from IBM, Microsoft, and Deloitte. Unlike other crypto-conferences, there was little talk of price or speculation. Instead, the focus was squarely on building tools, standards, and shared understanding between technical and business folk.

Homesteading

Fast-forwarding to present day, there is a healthy network with increasing transaction volume along with dozens of DApps starting to appear. With the help of Consensys, one of many organisations in the ecosystem, Ethereum is already available for rapid deployment on Microsoft Azure and through the efforts of Slock, Ethereum can also be deployed on low-resource Ubuntu Core images. A large amount of effort has gone into mobile builds for both the C++ and Go clients that will become even more important as low-power devices replace traditional desktops for all but the most demanding tasks.

Ethereum Dapps explosion

Also rapidly progressing is so-called “light client” functionality along with state-pruning, both of which will allow for resource-constrained devices like phones and watches to process and store the blockchain. Combined with the mobile builds effort and Mist developments, the community is pushing Ethereum to new edges where previous cryptocurrencies haven’t often treaded.

We are now on the precipice of the Homestead hard fork, tweaking minor issues before releasing what will be considered the “stable” version of the network. Because the initial launch of Frontier network was significantly more stable than planned for, relatively few changes are being implemented for Homestead: a block difficulty change, addition of a new opcode, and some networking tweaks.

Beyond the immediate planned updated, there’s a bright future of developments ahead including solutions for scalability and a move from wasteful proof-of-work (PoW) to a more earth-friendly proof-of-stake (PoS). What began as an abstract model in one human head has evolved to a tremendous amount of developer effort to see that vision through, and it exists today thanks largely to the active community with a healthy attitude for creating something meaningful. In 2015, Ethereum made a transition from an idea to reality, backed by a growing ecosystem striving for something more.

Dreaming forward

The fundamental insight Vitalik described in his paper was how to abstract decentralised transfer of value to a generalised state transition function, supporting any application. Combined with a peer-to-peer network, Ethereum strives to do everything Bitcoin does and more. But our effort isn’t complete and there still remains much innovation to uncover.

“Isn’t it astonishing that all these secrets have been preserved for so many years just so that we could discover them.”

The implicit promise of upgrading Bitcoin was to prove feasibility in a sidechain for a chance to have the functionality merged back into the reference client. This promise has yet to be fulfilled and the result is a proliferation of external experimentation. Although much hullabaloo has been made about “the developer that quit bitcoin”, obviously the Bitcoin community isn’t dead, nor is its intrinsic use as a scarce digital resource valueless. Satoshi is a hero for recognising how to string several technologies together to create a truth protocol that no one explicitly controls. But the dream for Bitcoin to be the only transformative technology has been dead for a long time. We should instead embrace our new reality and look forward to all the possibilities that this important first attempt enabled.