Ethereum
Ethereum is the second-largest cryptocurrency platform by market capitalization, behind Bitcoin. It is a decentralized open source blockchain featuring smart contract functionality. Ether is the cryptocurrency generated by Ethereum miners as a reward for computations performed to secure the blockchain. Ethereum serves as the platform for over 260,000 different cryptocurrencies, including 47 of the top 100 cryptocurrencies by market capitalization.
Ethereum provides a decentralized virtual machine, the Ethereum Virtual Machine, 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 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 minted. This accounts for about 65 percent of the total circulating supply in April 2020.
In 2016, as a result of an 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 with the theft reversed, and the original chain continued as Ethereum Classic.
Ethereum is currently developing and planning to implement a series of upgrades called Ethereum 2.0. Current specifications for Ethereum 2.0 include a transition to proof of stake and an increase in transaction throughput using sharding technology.
Etymology
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."History
Ethereum was initially described in a white paper by Vitalik Buterin, a programmer and co-founder of 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 the 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 has an unusually long list of founders. Anthony Di Iorio wrote "Ethereum was founded by Vitalik Buterin, Myself, Charles Hoskinson, Mihai Alisie, & Amir Chetrit 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.
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, was created as well. Development was funded by an online public crowdsale during July–August 2014, with the participants buying the Ethereum value token 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.
In 2019, an Ethereum foundation employee named Virgil Griffith was arrested by the US government for presenting at a blockchain conference in North Korea.
Enterprise Ethereum Alliance (EEA)
In March 2017, various blockchain start-ups, research groups, and Fortune 500 companies announced the creation of the Enterprise Ethereum Alliance 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.Milestones
Several codenamed prototypes of the Ethereum platform were developed by the Ethereum 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.
Protocol upgrades are accomplished by means of a hard fork.
Difficulty Bomb and The Ice Age
The Ethereum Difficulty bomb is the difficulty of the blockchain mining algorithm puzzle which began increasing in November 2016, from block 200,000. The onset of the Difficulty Bomb is referred to as Ethereum's Ice Age, as the Ethereum network started the transition from Proof of Work to Proof of Stake. A difficulty bomb was scheduled in February 2019 but was pushed back by developers.The DAO event
In 2016 a decentralized autonomous organization called The DAO, a set of smart contracts developed on the platform, raised a record in a crowdsale to fund the project. The DAO was exploited in June when 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 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.
Ethereum 2.0
Development is underway for a major upgrade to the Ethereum platform, known as Ethereum 2.0.The Ethereum 2.0 upgrade is designed to be launched in three phases:
- "Phase 0" will create the Beacon Chain, a proof-of-stake blockchain that will serve as the backbone of Ethereum 2.0
- "Phase 1" will create shard chains and connect them to the Beacon Chain
- "Phase 2" will implement state execution in the shard chains. The current Ethereum 1.0 chain is expected to become one of the shards of Ethereum 2.0.
- Minimize complexity by simplifying the Ethereum blockchain, even at the cost of efficiency.
- Improve up-time and keep the Ethereum network live during major network splits.
- Ensure longevity by building Ethereum 2.0 with elements which are either quantum secure or can be easily swapped out for quantum secure replacements when available.
- Increase security by using design techniques which allow a large number of validators to secure the network by staking their ETH holdings.
- Reduce barriers to entry, making it possible for a typical laptop to process or validate shards.
Characteristics
To send the Ethereum value token Ether to an account, you need the Keccak-256 hash of the public key of that account. Ethereum accounts are pseudonymous in that they are not linked to individual persons, but rather to one or more specific addresses.
Ether
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.
Addresses
Ethereum addresses are composed of the prefix "0x", a common identifier for hexadecimal, concatenated with the rightmost 20 bytes of the Keccak-256 hash of the ECDSA public key. In hexadecimal, 2 digits represent 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
Ethereum is different from Bitcoin in several aspects:- Its block time is 13 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, while bitcoin transactions compete by means of transaction size, in bytes.
- Ethereum uses an accounting 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
Markets and stores
Ether can be traded by regular currency brokers, cryptocurrency exchanges, as well as many online cryptocurrency wallets.Platform
Virtual Machine
The Ethereum Virtual Machine is the runtime environment for smart contracts in Ethereum. It is a 256-bit register stack, designed to run the same code exactly as intended. It is the fundamental consensus mechanism for Ethereum. The formal definition of the EVM is specified in the Ethereum Yellow Paper. Ethereum Virtual Machines have been implemented in C++, C#, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang, and soon, WebAssembly.Smart contracts
Ethereum's smart contracts are based on different computer languages, which developers use to program their own functionalities. Smart contracts are high-level programming abstractions that are compiled down to EVM bytecode and deployed to the Ethereum blockchain for execution. They can be written in Solidity, Serpent, LLL, and Mutan. There is also a research-oriented language under development called Vyper.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.
Applications
Ethereum apps are written in one of seven different Turing-complete languages. Developers use the language to create and publish applications which they know will run inside Ethereum. The stablecoins Tether and DAI, and the prediction market Augur are examples of applications that run on Ethereum.Many uses have been proposed for the 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 the leading blockchain platform for initial coin offering projects, with over 50% market share.
Enterprise software
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. Barclays, UBS and Credit Suisse are experimenting with Ethereum.Permissioned ledgers
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 tow 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 based on the Ethereum distributed ledger and smart contract platform.
Performance
Ethereum engineers have been working on sharding the calculations, and the next step 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, and light client synchronization. The Ethereum network has at times faced congestion problems, for example, congestion occurred during late 2017 in relation to Cryptokitties.