Ethereum is an open source, public, blockchain-based distributed computing platform and operating system featuring smart contract (scripting) functionality. It supports a modified version of Nakamoto consensus via transaction-based state transitions.
Ether is a token whose blockchain is generated by the Ethereum platform. Ether can be transferred between accounts and used to compensate participant mining nodes for computations performed. Ethereum provides a decentralized virtual machine, the Ethereum Virtual Machine (EVM), which can execute scripts using an international network of public nodes. The virtual machine’s instruction set, in contrast to others like Bitcoin Script, is thought to be Turing-complete. “Gas”, an internal transaction pricing mechanism, is used to mitigate spam and allocate resources on the network.
Ethereum was proposed in late 2013 by Vitalik Buterin, a cryptocurrency researcher and programmer. Development was funded by an online crowdsale that took place between July and August 2014. The system then went live on 30 July 2015, with 72 million coins “premined”. This accounts for about 68 percent of the total circulating supply in 2019.
In 2016, as a result of the exploitation of a flaw in The DAO project’s smart contract software, and subsequent theft of $50 million worth of ether, Ethereum was split into two separate blockchains – the new separate version became Ethereum (ETH) with the theft reversed, and the original continued as Ethereum Classic (ETC).
Vitalik Buterin picked the name Ethereum after browsing Wikipedia articles about elements and science fiction, when he found the name, noting, “I immediately realized that I liked it better than all of the other alternatives that I had seen; I suppose it was the fact that sounded nice and it had the word ‘ether‘, referring to the hypothetical invisible medium that permeates the universe and allows light to travel.”
Ethereum was initially described in a white paper by Vitalik Buterin, a programmer involved with Bitcoin Magazine, in late 2013 with a goal of building decentralized applications. Buterin had argued that Bitcoin needed a scripting language for application development. Failing to gain agreement, he proposed development of a new platform with a more general scripting language.
Ethereum was announced at the North American Bitcoin Conference in Miami, in January, 2014. During the same time as the conference, a group of people rented a house in Miami Gavin Wood, Charles Hoskinson, and Anthony Di Iorio, a Torontonian who financed the project. Di Iorio invited friend Joseph Lubin, who invited reporter Morgen Peck, to bear witness. Six months later the founders met again in a house in Zug Switzerland, where Buterin told the founders that the project would proceed as a non-profit. Hoskinson left the project at that time.
Ethereum was officially with an unusually long list of founders. Anthony Di Iorio wrote “Ethereum was founded by Vitalik Buterin, Myself, Charles Hoskinson, Mihai Alisie, & Amir Chetrit (the initial 5) in December 2013. Joseph Lubin, Gavin Wood, & Jeffrey Wilke were added in early 2014 as founders.” Formal development of the Ethereum software project began in early 2014 through a Swiss company, Ethereum Switzerland GmbH (EthSuisse). The basic idea of putting executable smart contracts in the blockchain needed to be specified before the software could be implemented; this work was done by Gavin Wood, then chief technology officer, in the Ethereum Yellow Paper that specified the Ethereum Virtual Machine. Subsequently, a Swiss non-profit foundation, the Ethereum Foundation (Stiftung Ethereum), was created as well. Development was funded by an online public crowdsale during July–August 2014, with the participants buying the Ethereum value token (ether) with another digital currency, bitcoin.
While there was early praise for the technical innovations of Ethereum, questions were also raised about its security and scalability.
Several codenamed prototypes of the Ethereum platform were developed by the Foundation, as part of their Proof-of-Concept series, prior to the official launch of the Frontier network. “Olympic” was the last of these prototypes, and public beta pre-release.
The Olympic network provided users with a bug bounty of 25,000 ether for stress testing the limits of the Ethereum blockchain. “Frontier” marked the tentative experimental release of the Ethereum platform in July 2015.
Since the initial launch, Ethereum has undergone several planned protocol upgrades, which are important changes affecting the underlying functionality and/or incentive structures of the platform.
In 2016 a decentralized autonomous organization called The DAO, a set of smart contracts developed on the platform, raised a record US$150 million in a crowdsale to fund the project. The DAO was exploited in June when US$50 million in ether were taken by an unknown hacker. The event sparked a debate in the crypto-community about whether Ethereum should perform a contentious “hard fork” to reappropriate the affected funds. As a result of the dispute, the network split in two. Ethereum (the subject of this article) continued on the forked blockchain, while Ethereum Classic continued on the original blockchain. The hard fork created a rivalry between the two networks.
After the hard fork related to The DAO, Ethereum subsequently forked twice in the fourth quarter of 2016 to deal with other attacks. By the end of November 2016, Ethereum had increased its DDoS protection, de-bloated the blockchain, and thwarted further spam attacks by hackers.
In March 2017, various blockchain start-ups, research groups, and Fortune 500 companies announced the creation of the Enterprise Ethereum Alliance (EEA) with 30 founding members. By May, the nonprofit organization had 116 enterprise members—including ConsenSys, CME Group, Cornell University’s research group, Toyota Research Institute, Samsung SDS, Microsoft, Intel, J. P. Morgan, Cooley LLP, Merck KGaA, DTCC, Deloitte, Accenture, Banco Santander, BNY Mellon, ING, and National Bank of Canada. By July 2017, there were over 150 members in the alliance, including recent additions MasterCard, Cisco Systems, Sberbank and Scotiabank.
Protocol upgrades are accomplished by means of a soft fork of the open source code base.
“Homestead” was the first to be considered stable. It included improvements to transaction processing, gas pricing, and security; and the soft fork occurred on 31 July 2015.
The “Metropolis Part 1: Byzantium” soft fork took effect on 16 October 2017, and included changes to reduce the complexity of the EVM and provide more flexibility for smart contract developers. Byzantium also added supports for zk-SNARKs (from Zcash), with the first zk-SNARK transaction occurring on testnet on September 19, 2017.
The “Metropolis Part 2: Constantinople” hard fork, and the simultaneous “St. Petersburg” network upgrade, occurred at block number 7,280,000 on February 28, 2019.
As with other cryptocurrencies, the validity of each ether is provided by a blockchain, which is a continuously growing list of records, called blocks, which are linked and secured using cryptography. By design, the blockchain is inherently resistant to modification of the data. It is an open, distributed ledger that records transactions between two parties efficiently and in a verifiable and permanent way. Unlike Bitcoin, Ethereum operates using accounts and balances in a manner called state transitions. This does not rely upon unspent transaction outputs (UTXOs). State denotes the current balances of all accounts and extra data. State is not stored on the blockchain, it is stored in a separate Merkle Patricia tree. A cryptocurrency wallet stores the public and private “keys” or “addresses” which can be used to receive or spend ether. These can be generated through BIP 39 style mnemonics for a BIP 32 “HD Wallet”. In Ethereum, this is unnecessary as it does not operate in a UTXO scheme. With the private key, it is possible to write in the blockchain, effectively making an ether transaction.
To send ether to an account, you need the Keccak-256 hash of the public key of that account. Ether accounts are pseudonymous in that they are not linked to individual persons, but rather to one or more specific addresses.
Ether is a fundamental token for operation of Ethereum, which thereby provides a public distributed ledger for transactions. It is used to pay for gas, a unit of computation used in transactions and other state transitions. Mistakenly, this currency is also referred to as Ethereum.
It is listed under the ticker symbol ETH and traded on cryptocurrency exchanges, and the Greek uppercase Xi character (Ξ) is generally used for its currency symbol. It is also used to pay for transaction fees and computational services on the Ethereum network.
Ethereum addresses are composed of the prefix “0x”, a common identifier for hexadecimal, concatenated with the rightmost 20 bytes of the Keccak-256 hash (big endian) of the ECDSApublic key (the curve used is the so called secp256k1, the same as Bitcoin). In hexadecimal, 2 digits represents a byte, meaning addresses contain 40 hexadecimal digits. An example of an Ethereum address is 0xb794F5eA0ba39494cE839613fffBA74279579268. Contract addresses are in the same format, however they are determined by sender and creation transaction nonce. User accounts are indistinguishable from contract accounts given only an address for each and no blockchain data. Any valid Keccak-256 hash put into the described format is valid, even if it does not correspond to an account with a private key or a contract. This is unlike Bitcoin, which uses base58check to ensure that addresses are properly typed.
Comparison to bitcoin
- Its block time is 14 to 15 seconds, compared with 10 minutes for bitcoin.
- Mining of ether generates new coins at a usually consistent rate, occasionally changing during hard forks, while for bitcoin the rate halves every 4 years.
- For proof-of-work, it uses the Ethash algorithm which reduces the advantage of specialized ASICs in mining.
- Transaction fees differ by computational complexity, bandwidth use and storage needs (in a system known as gas), while bitcoin transactions compete by means of transaction size, in bytes.
- Ethereum gas units each have a price that can be specified in a transaction. This is typically measured in Gwei. Bitcoin transactions usually have fees specified in satoshis per byte.
- Ethereum uses an account system where values in Wei are debited from accounts and credited to another, as opposed to Bitcoin’s UTXO system, which is more analogous to spending cash and receiving change in return.
Supply, Market and Stores
The total supply of ether was around Ξ106 million as of May 2019. In 2017, mining generated 9.2 million new ether, corresponding to a 10% increase in its total supply. Casper FFG and CBC are expected to reduce the inflation rate to between 0.5% to 2%. There is no currently implemented hard cap on the total supply of ETH.
Smart contracts can be public, which opens up the possibility to prove functionality, e.g. self-contained provably fair casinos.
One issue related to using smart contracts on a public blockchain is that bugs, including security holes, are visible to all but cannot be fixed quickly. One example of this is the 17 June 2016 attack on The DAO, which could not be quickly stopped or reversed.
There is ongoing research on how to use formal verification to express and prove non-trivial properties. A Microsoft Research report noted that writing solid smart contracts can be extremely difficult in practice, using The DAO hack to illustrate this problem. The report discussed tools that Microsoft had developed for verifying contracts, and noted that a large-scale analysis of published contracts is likely to uncover widespread vulnerabilities. The report also stated that it is possible to verify the equivalence of a Solidity program and the EVM code.
Ethereum is written in Turing complete language, which currently includes seven different programming languages. Developers use the language to create and publish applications which they know will run inside Ethereum. It’s a cumbersome system, but that’s not deterring developers from writing Ethereum programs.
Ethereum blockchain applications are usually referred to as DApps (decentralized application), since they are based on the decentralized Ethereum Virtual Machine, and its smart contracts. Many uses have been proposed for Ethereum platform, including ones that are impossible or unfeasible. Use case proposals have included finance, the internet-of-things, farm-to-table produce, electricity sourcing and pricing, and sports betting. Ethereum is (as of 2017) the leading blockchain platform for initial coin offering projects, with over 50% market share.
As of January 2018, there are more than 250 live DApps, with hundreds more under development. Some application examples include: digital signature algorithms, securitized tokens, digital rights management, crowdfunding, prediction markets, remittance, online gambling, social media platforms, financial exchanges and identity systems.
Ethereum-based customized software and networks, independent from the public Ethereum chain, are being tested by enterprise software companies. Interested parties include Microsoft, IBM, JPMorgan Chase, Deloitte, R3, Innovate UK (cross-border payments prototype). Barclays, UBS and Credit Suisse are experimenting with Ethereum blockchain to automate Markets in Financial Instruments Directive (MiFID) II requirements.
Ethereum-based permissioned blockchain variants are used and being investigated for various projects.
- J. P. Morgan Chase is developing JPM Coin on a permissioned-variant of Ethereum blockchain dubbed “Quorum”. It’s designed to toe the line between private and public in the realm of shuffling derivatives and payments. The idea is to satisfy regulators who need seamless access to financial goings-on, while protecting the privacy of parties that don’t wish to reveal their identities nor the details of their transactions to the general public.
- Royal Bank of Scotland has announced that it has built a Clearing and Settlement Mechanism (CSM) based on the Ethereum distributed ledger and smart contract platform.
In Ethereum all smart contracts are stored publicly on every node of the blockchain, which has costs. Being a blockchain means it is secure by design and is an example of a distributed computing system with high Byzantine fault tolerance. The downside is that performance issues arise in that every node is calculating all the smart contracts in real time, resulting in lower speeds.
As of January 2016, the Ethereum protocol could process about 25 transactions per second. In comparison, the Visa payment platform processes 45,000 payments per second leading some to question the scalability of Ethereum. On 19 December 2016, Ethereum exceeded one million transactions in a single day for the first time.
Ethereum engineers have been working on sharding the calculations, and the next step (called Ethereum 2) was presented at Ethereum’s Devcon 3 in November 2017.
Ethereum’s blockchain uses Merkle trees, for security reasons, to improve scalability, and to optimize transaction hashing. As with any Merkle tree implementation, it allows for storage savings, set membership proofs (called “Merkle proofs”), and light client synchronization. The Ethereum network has at times faced congestion problems, for example, congestion occurred during late 2017 in relation to Cryptokitties.