History of Ethereum
Ethereum is a cryptocurrency platform that pioneered the concept of smart contracts. This has led it to be the foundation for numerous other cryptocurrencies and to a long, complex development and deployment. In this article, we’ll talk about the history of Ethereum and where it plans to go in the future.
Ethereum grew out of Vitalik Buterin’s discontent with the limitations of Bitcoin and has become the second most valuable cryptocurrency in existence at the time of writing. Here, we’ll talk about the major milestones of the Ethereum cryptocurrency and how they were important to its development.
Bitcoin was developed to achieve one goal: create a decentralized alternative to the existing financial industry. The creator of Ethereum, Vitalik Buterin, saw the potential for using the blockchain for other things and pushed for a scripting language for Bitcoin to make development of applications on the blockchain possible but his proposal was rejected. In late 2013, he proposed the development of a new platform with support for more generalized scripting and application development. The Ethereum whitepaper describing the proposed technology was published by Buterin in November 2013.
In January 2014, the beginning of the development of the Ethereum platform was publicly announced. The original Ethereum development team consisted of Vitalik Buterin, Mihai Alisie, Anthony Di Iorio, and Charles Hoskinson.
Initially, development of the Ethereum platform was under a Swiss company called Ethereum Switzerland GmbH. The non-profit Ethereum Foundation was founded in June 2014 to support development of the Ethereum cryptocurrency platform.
To create the Ethereum Network, the Ethereum team needed development funding. Rather than go to venture capitalists, they decided to reach out to the cryptocurrency community in a crowdsale. The Ethereum crowdsale ran in July and August 2014 and allowed future users and investors to purchase Ether (tokens on the future Ethereum blockchain) in exchange for Bitcoin. Since Bitcoin was an established currency at the time, the Ethereum team could trade it in for fiat currency to cover development costs. As a result of the Ethereum crowdsale, 11.9 million Ethereum tokens were sold (about 13% of the circulating supply), raising about 18.4 million USD.
Olympic was an Ethereum testnet launched in May 2015. This private network allowed Ethereum developers to work out the kinks in the Ethereum protocol before public release.
The Ethereum development process was divided into four stages to make the development process smooth and understandable for developers. Frontier was the first stage of the Ethereum network and provided bare-bones Ethereum functionality. In this version, users could buy and sell Ethereum, perform Ethereum mining, and build, test, and upload Ethereum smart contracts and distributed applications. Frontier was publicly released on July 30, 2015. It provided a decentralized, distributed platform for distributed application development but made no promises about the safety or security of the platform.
First Ethereum ICO
Ethereum was initially funded by a crowdsale on the Bitcoin network. The Ethereum developers offered users Ether on their future platform in exchange for Bitcoin, which had a value in fiat currency (USD, Euro, etc.) at the time and could be converted to cover development costs. This allowed users who were interested in and wanted to support the future Ethereum network to contribute in exchange for a share in the value after launch (similar to buying stock in a company on the stock exchange).
Since Ethereum is designed as a smart contract platform with the ability to write cryptocurrency tokens on the platform, it’s not surprising that Ethereum has hosted crowdsales as well. The first Ethereum Initial Coin Offering (ICO) was for the Augur cryptocurrency.
The Augur cryptocurrency’s ICO was launched August 17, 2015 and continued until September 5 of that year. It raised over five million US dollars for the development of the Augur cryptocurrency. The purpose of Augur was to decentralize speculation on the financial market and other betting (sports events, etc.) by cutting out the middleman. Despite being the first ICO on the Ethereum blockchain, the complexity of Augur means that it is targeting a launch date in 2018. The first thing that users will be able to speculate on is whether or not Augur will be hacked (with Augur running a bug bounty program in parallel to the launch).
Homestead is the first “stable” Ethereum release and occurred on March 14, 2016 on block 1,150,000. The Homestead release is when the Ethereum blockchain was officially classified by the developers as “safe” and included a few protocol and networking changes that made future upgrades possible. This and all future upgrades are “hard forks” of the network, meaning that the blockchain going on from that point is incompatible with the pre-fork version.
The DAO Hack
One of the possible applications of blockchain is the creation of Decentralized Anonymous Organizations (DAOs). In a nutshell, a DAO is a smart contract that describes an organization. Initially, a group of programmers writes the code that describes how the organization will be managed, operate, etc. Once the smart contract has been launched, people can buy into it by purchasing tokens that represent a stake in the company. The DAO smart contract includes code that manages how the organization will make decisions and DAO tokens confer voting rights on their owners. In a way, Bitcoin is the first DAO in existence since owning Bitcoin gives users the right to vote on proposals regarding how the network will be updated and operated. “The DAO” was a specific DAO created on the Ethereum blockchain by a team from Slock.it, a German “smart lock” company that enabled sharing of possessions like cars, apartments, etc. (like a technology-based version of Airbnb). When The DAO went to crowdsale, it raised over 150 million USD, setting records and making it a big target for attackers.
The problems with The DAO is that the code had a flaw in it, a fact announced to the developers by concerned parties during the crowdsale. The DAO’s code had a “recursive call” bug that allowed users of the smart contract to withdraw twice as much Ether as they had invested in the contract. You can see how this could be a problem, since you’re withdrawing both your investment and an equal amount of someone else’s investment (and then you can put it all back in again and withdraw four times as much as your initial investment, etc.).
The DAO released a statement stating that they were aware of the issue and that no Ether within the DAO was at risk. Unfortunately, they were wrong. In June 2016, an unknown attacker exploited the vulnerability and withdrew 50 million USD in Ether from the smart contract (roughly 15% of all Ether at the time), draining it into a child DAO under their control.
The size of the hack created a large amount of discussion about how to fix the issue. The attacker (supposedly) even wrote an open letter to The DAO claiming that his reward (the stolen Ether) was legal based upon the fact that smart contracts are self-enforcing and self-contained, meaning that any action you can take within a smart contract (including exploiting a bug and draining its value) is perfectly legal under the terms of the smart contract. The letter threatened legal action if his work was invalidated and offered a reward to anyone who voted against proposals to invalidate it. In the end, the Ethereum network implemented a “hard fork” to refund the money users put into The DAO. This was accomplished using a block that moved all Ether from The DAO and child DAO accounts into a “refund contract” account that only allowed affected users to withdraw their original investment.
As a result of the DAO hack, the blockchain was modified via a hard fork to refund those accounts whose money was taken. However, the blockchain is supposed to be unchanging and smart contracts are self-enforced (as mentioned in the open letter mention above) so this action was extremely controversial within the Ethereum community.
As a result, the Ethereum blockchain split into Ethereum and Ethereum Classic. The Ethereum blockchain used the modified blockchain that returned all of the stolen currency to its original accounts while the Ethereum Classic blockchain retained the original blockchain, including the DAO hack. This split was not planned by the Ethereum developers and arose because of the conflict between fairness (returning stolen Ether to its owners) and the ideals of the blockchain (decentralization and the immutability of the blockchain). Since then, the two blockchains have remained divergent and are effectively two different cryptocurrencies that happen to share the same beginnings.
Just like your car, Ethereum runs on gas. In Ethereum, gas is a fraction of an Ether (Ethereum’s currency). Each operation in the Ethereum Virtual Machine costs a certain amount of gas, but before the Tangerine Whistle hard fork on Ethereum, the gas prices on some of the operations were too low. In that context, too low either meant that they required more computational effort per unit of gas than other operations or that the use of combinations of low-cost operations could have the same result as higher-cost operations.
In general, cheap alternatives sounds like a good thing, but in Ethereum’s case attackers were using the low cost of operations to launch Denial of Service attacks against the Ethereum network. By executing a large number of computationally expensive but gas-cheap operations on the Ethereum blockchain, the attacker was able to delay transactions on Ethereum, slowing down the Ethereum Virtual Machine.
In order to fix this issue, Ethereum implemented the Tangerine Whistle hard fork on Ethereum block 2,463,000, which was created on October 18, 2016. The main effect of this hard fork was to increase the gas prices of certain operations to make them reflect their actual computational complexity. While this wouldn’t make another Denial of Service attack impossible, it would make it more expensive for an attacker.
Flooding the network with low-cost, high-complexity transactions wasn’t the Tangerine Whistle attacker’s only method of messing with the Ethereum blockchain. In addition to slowing down the blockchain by introducing additional transactions, the attacker also bloated the blockchain by adding in multiple empty accounts.
An empty account can be created on Ethereum by transferring zero Ether to an address. Since the account contains no smart contract code, no stored data, and no value that it could send to other accounts, it contains nothing of value. However, since a transaction was made to the account, the result of the transaction is stored on the blockchain, increasing the size of the blockchain (and further delaying other transactions as well). Since a transaction is fairly cheap in gas, the attacker took advantage of this to attack the blockchain.
Spurious Dragon was a second hard fork of the Ethereum blockchain designed to thwart the Denial of Service attacker. This hard fork was scheduled for block 2,675,000, which was created on November 22, 2016.
The main goal of this hard fork was to debloat the state of the blockchain by removing empty accounts from the state of the Ethereum Virtual machine whenever they were involved in a transaction. This increased the cost of Denial of Service attacks that create multiple accounts (since at the very least you would need to transfer value into and out of the account to create it, which increases the gas price). Other effects were additional tweaking of the gas prices of some operations and implementing protection against replay attacks (where transactions from one Ethereum blockchain are reused on another chain).
The third phase of the Ethereum development roadmap is called Metropolis and is broken into two stages: Byzantium and Constantinople. The first of these stages, Byzantium, was implemented as part of Ethereum block 4,370,000, which was created on October 16, 2017. Among other things, major improvements include the introduction of zkSNARKs, delaying the difficulty “time bomb”, transaction status receipts, and smart contract upgrades.
zkSNARKs is a zero-knowledge protocol introduced in the Zcash cryptocurrency. A zero-knowledge proof lets a prover proof to a verifier that they know a secret without revealing the secret to the verifier. zkSNARKs is an efficient type of zero-knowledge proof and the capability to perform zkSNARKs proofs on the Ethereum blockchain has been introduced as part of the Byzantium upgrade. This increases the privacy of the blockchain and enables interaction between the Ethereum and Zcash blockchains.
Delaying the Difficulty Timebomb
thereum currently runs using Proof of Work, which is computationally expensive. To avoid this expense in the long term, Ethereum plans to switch to a Proof of Stake architecture (more on this later). In order to force the network to switch over when Proof of Stake is ready, the Ethereum protocol is designed to cause mining to get harder and harder over time, something called the “difficulty timebomb”. As part of the Byzantium upgrade, this increase in difficulty has been dialed back a bit to let developers have more time to develop the Proof of Stake infrastructure for Ethereum.
Transaction Status Receipts
To make things easier to “light” Ethereum clients, the Byzantium upgrade include a “status” field in transaction receipts. This lets clients verify that a transaction succeeded without executing the code itself.
Smart Contract Upgrades
On a related note, payments for smart contracts will now fail if the smart contract crashes. Other changes to smart contracts protect against “reentrancy attacks” against the contract.
Ethereum is a massive development project and, despite being active and “stable” for over two years is still very much a work in progress. The original development plan called for four main stages: Frontier, Homestead, Metropolis, and Serenity. Due to the size of the Metropolis upgrade, it has been broken into two phases: Byzantium and Constantinople. Byzantium is complete but Constantinople is still in the future at the time of writing.
In this section, we discuss what little detail is available regarding the upcoming scheduled hard forks (Constantinople and Serenity) of the Ethereum platform.
Constantinople is the second half of Ethereum’s Metropolis update. At time of writing, no date is set for this update but it is expected to be sometime in 2018. While the exact contents of the Constantinople upgrade are uncertain, it’s likely that it will include upgrades that set the stage for Ethereum abstraction, sharding, and Casper.
The goal of Ethereum is to be a platform that developers to build what they want on the blockchain using the Ethereum Virtual Machine (EVM). To accomplish this goal, Ethereum is intended to implement things as abstractly as possible to allow developers to make specific decisions based upon their use cases. In practice, Ethereum currently lacks abstraction in many areas (like digital signature algorithms) in order to make development possible. Constantinople will probably include some modifications to the Ethereum protocol to further abstract some of these “locked-in” settings.
One of Ethereum’s major limitations is scalability since it can only process about twenty transactions per second on its main blockchain. In order to enable parallelization and increase scalability, Ethereum is likely to implement sharding, where smart contracts promise only to affect a subset of the current state of the Ethereum Virtual Machine. This allows multiple smart contracts interacting with different parts of the current state to run in parallel without interfering with one another. It’s possible that Constantinople will include modifications and upgrades that set the stage for implementing a sharding protocol in Ethereum.
Casper is one of the most well-known aspects of the Ethereum roadmap and is the codename for the effort to transition Ethereum from Proof of Work to Proof of Stake. As part of the transition, it has been proposed that Ethereum implement a hybrid Proof of Work/Proof of Stake protocol where every fiftieth block is created via Proof of Stake while the remainder continue using Proof of Work. The exact implementation details and scheduling of Casper are unknown but it is possible that it will be implemented in part or in full as part of the Constantinople upgrade.
Serenity is the final scheduled stage of the Ethereum development process and marks the transition of Ethereum from a Proof of Work to a Proof of Stake system. This will decrease the computational and electrical requirements of Ethereum and help to stabilize Ethereum’s block speed. It’s likely that other upgrades will also happen as part of Serenity, but no specifics (including an ETA) have been released.