Ethereum History (Part 2)

In the first part of the “Ethereum History” series, we talked about the early years of the network’s existence, described the first-ever decentralized organization – The DAO – and its collapse, which led to the chain split and the emergence of an independent Ethereum Classic blockchain.

In today’s article, we will recall the events that happened to the network after the hard fork, the major network updates, some features of the blockchain, and the 2017 ICO boom.

DDoS-attack resistance

The disputes related to the chain split and events with The DAO project have not yet settled, when on September 22, 2016, the network became subject to a DDoS-attack. Attackers spammed the network with empty transactions, which caused problems while initiating transactions and including them into blocks. The vulnerability was detected in “Go” protocol implementation and caused by the low cost of gas to execute operation code during transactions. Transactions by attackers initiated input/output operations more than 50 thousand times per block.

This type of attack is called “denial of service”. After performing a large number of cheap operations, but with high computing requirements on the client-side, the attackers were able to delay transactions in the network, slowing down the Ethereum virtual machine.

To increase network stability, an unscheduled hard fork “Tangerine Whistle” was carried out on October 18. The “Whistle” was aimed at increasing the cost of executing some operating codes to a level that maximizes the cost of a possible attack. These changes made the attacks economically unprofitable but did not prevent them from happening.

In addition to the vulnerability related to operating codes, the attackers used another one, related to adding empty accounts.

The way Ethereum is organized differs from that in Bitcoin protocol. We talked about the model used in Bitcoin – UTXO – in one of our previous articles. The Ethereum network uses the “Account Model”, in which there are two types of accounts: external (managed by private keys) and contract (controlled by a certain code specified in the conditions of the related contract). With external accounts, a transaction can be created using a private key.

When performing a network attack, the attackers created empty accounts by repeatedly transferring zero ETH. Since the accounts contained neither smart contract code nor any values or data to send, they were useless. But since the transactions were made and the result was stored in a blockchain, they increased its size and additionally delayed other transactions. New attacks were carried out from 8 million empty addresses and increased block generation time by 1-2 seconds. 

On November 22, another hard fork called “Spurious Dragon” rolled out, consisting of several updates, which eliminated the consequences of previous attacks, changed the cost of some operating codes, and removed the empty accounts from the blockchain.

The ICO boom

2017 was the year of an unprecedented cryptocurrency hype, which led to new ATHs and then to the new participants’ disappointment and the fall of the entire cryptomarket.

As of the end of August 2017, the Ethereum platform hosted around 6 thousand tokens, and only 50 of them could boast $1M+ daily liquidity.

In 2017, the number of funds raised through ICO was 40 times higher and amounted to $3.8B. The largest project in 2016, which raised $16.5 million, was Waves, while in 2017, the Hdac project raised $258 million.

The peak of ICO growth took place in December 2017, after which the trend began to decline. On December 17, Bitcoin reached $20,000. During the fall of Bitcoin’s price throughout 2018, many projects ceased to exist because of poor management of funds or lack of development and ideas. Some startups kept funds in Ethereum, which led to their depreciation during the bear market and the fall of Ethereum from $1400 to $100.

2017 was an important milestone in the development of the Ethereum platform and the cryptocurrencies in general. It should be noted that in addition to a massive number of fraudulent projects that appeared during the ICO boom, numerous exciting and innovative blockchain-related projects raised a significant amount of funds. On top of that, a handful of Ethereum competitors appeared, such as EOS, Cardano, and Tron.

Metropolis update: Byzantium

Ethereum’s roadmap, which was published back in 2015, listed plans to move to the Proof of Stake (PoS) algorithm. One of the global updates and the third phase towards the elimination of mining was the Metropolis update, which was divided into two parts: Byzantium and Constantinople.

On September 25, 2017, Byzantium hard fork was held on the Ropsten test network, and on October 16 – it appeared on Ethereum’s main net. Hardfork included nine improvement protocols (EIP). One of the essential changes introduced was the postponement of the “difficulty bomb”, which we will describe below.

The transition of the network to PoS was planned to take place during the Serenity update, but because of the weak development and low level of confidence in the technology at the time, the developers decided to postpone the process. During the transition, two chains with different algorithms are meant to exist in parallel, and the PoW algorithm will host miners that may refuse to make the transition, supporting the old chain. In anticipation of this, the developers have laid the so-called difficulty bomb – a mechanism of exponential mining difficulty increase to stimulate the transition to the new algorithm.

The artificial increase in mining complexity began during the first launch of the Frontier network in 2015. But since the Serenity stage was still far away, the change in difficulty had to be postponed. Premature activation of the difficulty bomb occurred in June 2017, and from May to October, mining difficulty increased ten times. The average time to find new blocks has doubled, from 15 to 30 seconds.

Byzantium hard fork postponed the increase in mining difficulty and reduced the block reward from 5 to 3 ETH.

In addition to solving the production slowdown problem, zk-SNARKs were also added. zk-SNARKs are cryptographic elements developed by the team of anonymous ZCash cryptocurrency. They allow private transactions and provide interaction between Ethereum and Zcash blocks. The Ethereum virtual machine capabilities have also been expanded, gas costs have been optimized, block creation speed has been increased, and changes have been made to the way smart contracts function.

Metropolis update: Constantinople

Initially, the Metropolis hard fork was planned to be held in one stage, but due to the situation with the increasing difficulty and some EIPs, designed to simplify the next versions of the protocol not being ready, it had to be divided into two steps.

The second stage of Metropolis – Constantinople hard fork – was held on February 28, 2019. This update consisted of 5 EIPs and included the following changes: improvements to scale the network, increasing the block creation speed, solutions to improve the work of smart contracts and reduce gas costs, optimization, and creating conditions for the activation of the Casper protocol, aimed at the transition to a hybrid PoW/PoS consensus algorithm, as well as another solution to delay the complexity of mining.

Another 12 months postponement of the “difficulty bomb” was required due to the fact that a similar solution in Byzantium hard fork was only sufficient for four months instead of the planned 18 months. Network difficulty exceeded 3000TH as soon as March 2018, reaching a peak of 3500TH in August, when creating new blocks was taking around 14-15 seconds. 

In December 2018, the difficulty dropped to 2000TH, but this was due to multiple miners shutting down and the ETH price dropping from $800 to $100, after which difficulty started rising again.

The Constantinople upgrade reduced the network difficulty to 2000TH, and the emission volume dropped from 3 to 2 ETH per unit.

Another network upgrade, called St.Petersburg, was performed simultaneously with Constantinople. Its goal was to remove one EIP from the Ethereum testnet. The Constantinople update, which was meant to see the light in autumn of 2018, was constantly postponed due to a vulnerability in this EIP.

This vulnerability was detected by ChainSecurity smart contract audit company and allowed attackers to steal users’ funds. This vulnerability is called “repeated attack” and has already taken place in the history of Ethereum – an attack on The DAO, which we discussed in the first part of this series.

In the next article, we will talk about the last major network update before starting the phased transition to Ethereum 2.0, describe the main phases of this transition and recall the most memorable Ethereum happenings of 2019 and 2020.