Ethereum

Ethereum is a decentralized, open-source blockchain with smart contract functionality. Ether

Ethereum is a decentralized, open-source blockchain with smart contract functionality. Ether (ETH or Ξ) is the native cryptocurrency of the platform. Among cryptocurrencies, Ether is second only to Bitcoin in market capitalization.

Ethereum was conceived in 2013 by programmer Vitalik Buterin. Additional founders of Ethereum included Gavin Wood, Charles Hoskinson, Anthony Di Iorio and Joseph Lubin.[5] In 2014, crowdfunded development work began; the network[clarification needed] went live on 30 July 2015. Ethereum allows anyone to deploy permanent and immutable decentralized applications onto it, with which users can interact. Decentralized finance (DeFi) applications provide a broad array of financial services without the need for typical financial intermediaries like brokerages, exchanges, or banks, such as allowing cryptocurrency users to borrow against their holdings or lend them out for interest. Ethereum also allows users to create and exchange NFTs, which are non-interchangeable[clarification needed] tokens connected to digital works of art or other real-world items and exchanged as a variety of digital property. Additionally, many other cryptocurrencies operate as ERC-20 tokens on top of the Ethereum blockchain and have utilized the platform for initial coin offerings.

A series of upgrades called Ethereum 2.0 includes a transition to proof of stake and aims to increase transaction throughput by using sharding.

History

Founding (2013–2014)

Ethereum was initially described in late 2013 in a white paper by Vitalik Buterin, a programmer and co-founder of Bitcoin Magazine, that described a way to build decentralized applications. Buterin argued to the bitcoin core developers that Bitcoin and blockchain technology could benefit from other applications besides money and that it needed a more robust language for application development: 88  that could lead to attaching[clarification needed] real-world assets, such as stocks and property, to the blockchain. In 2013, Buterin briefly worked with eToro CEO Yoni Assia on the Colored Coins project and drafted its white paper outlining additional use cases for blockchain technology. However, after failing to gain agreement on how the project should proceed, he proposed the development of a new platform with a more robust scripting language—a Turing-complete programming language—that would eventually become Ethereum.

Ethereum was announced at the North American Bitcoin Conference in Miami, in January 2014. During the conference, Gavin Wood, Charles Hoskinson, and Anthony Di Iorio (who financed the project) rented a house in Miami with Buterin at which they could develop a fuller sense of what Ethereum might become. Di Iorio invited friend Joseph Lubin, who invited reporter Morgen Peck, to bear witness. Peck subsequently wrote about the experience in Wired. Six months later the founders met again in Zug, Switzerland, where Buterin told the founders that the project would proceed as a non-profit. Hoskinson left the project at that time and soon after founded IOHK, a blockchain company responsible for Cardano.

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 (the initial 5) in December 2013. Joseph Lubin, Gavin Wood, & Jeffrey Wilcke were added in early 2014 as founders.” Buterin chose the name Ethereum after browsing a list of elements from science fiction on Wikipedia. He stated, “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 [it] sounded nice and it had the word ‘ether’, referring to the hypothetical invisible medium that permeates the universe and allows light to travel.” Buterin wanted his platform to be the underlying and imperceptible medium for the applications running on top of it.

Ethereum’s founding story and members are extensively featured in the 2021 book The Cryptopians: Idealism, Greed, Lies, and the Making of the First Big Cryptocurrency Craze. Author Laura Shin documents exciting and sometimes tense situations involving the project’s founding, the first-ever “DAO” (Decentralized Autonomous Organization), and the cryptocurrency craze of 2017.

Development (2014)

Formal development of the software underlying Ethereum began in early 2014 through a Swiss company, Ethereum Switzerland GmbH (EthSuisse).[24] The 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 the chief technology officer, in the Ethereum Yellow Paper that specified the Ethereum Virtual Machine.[25][26] Subsequently, a Swiss non-profit foundation, the Ethereum Foundation (Stiftung Ethereum), was founded. Development was funded by an online public crowd sale from July to August 2014, in which participants bought 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.

Launch and the DAO event (2014–2016)

Several codenamed prototypes of Ethereum were developed over 18 months in 2014 and 2015 by the Ethereum Foundation as part of their proof-of-concept series.[4] “Olympic” was the last prototype and public beta pre-release. The Olympic network gave users a bug bounty of 25,000 Ether for stress-testing the Ethereum blockchain. In July 2015, “Frontier” marked the official launch of the Ethereum platform, and Ethereum created its “genesis block.”[4][27]

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.[33][34] Protocol upgrades are accomplished by means of a hard fork.

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 crowd sale to fund the project.[35] The DAO was exploited in June 2016 when US$50 million of DAO tokens were stolen by an unknown hacker.[36][37] The event sparked a debate in the crypto-community about whether Ethereum should perform a contentious “hard fork” to reappropriate the affected funds.[38] This resulted in the network splitting into two blockchains: Ethereum with the theft reversed and Ethereum Classic which continued on the original chain.[39] The hard fork created a rivalry between the two networks. After the hard fork, Ethereum subsequently forked twice in the fourth quarter of 2016 to deal with other attacks.

Continued development and milestones (2017–present)

In March 2017, various blockchain startups, research groups, and Fortune 500 companies announced the creation of the Enterprise Ethereum Alliance (EEA) with 30 founding members.[40] By May 2017, 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.[41][42] By July 2017, there were over 150 members in the alliance, including MasterCard, Cisco Systems, Sberbank, and Scotiabank.[43]

In January 2018, Ethereum was the second-largest cryptocurrency in terms of market capitalization, behind Bitcoin.[44] As of 2021, it maintained that relative position.[2][3]

After the Constantinople upgrade on 28 February 2019,[28] there were two network upgrades made within a month late in the year: Istanbul on 8 December 2019 and Muir Glacier on 2 January 2020.[30]

In 2019, Ethereum Foundation employee Virgil Griffith was arrested by the US government for presenting at a blockchain conference in North Korea.[45] He would later plead guilty to the charges[clarification needed] in 2021.[46]

In March 2021, Visa Inc. announced that it began settling stablecoin transactions using Ethereum.[47] In April 2021, JP Morgan Chase, UBS, and MasterCard announced that they were investing US$65 million into ConsenSys, a software development firm that builds Ethereum-related infrastructure.[48]

There were two network upgrades in 2021. The first was “Berlin”, implemented on 14 April 2021.[31] The second was “London”, which took effect on 5 August.[32] The London upgrade included Ethereum Improvement Proposal (“EIP”) 1559, a mechanism for reducing transaction fee volatility. The mechanism causes a portion of the Ether paid in transaction fees for each block to be destroyed rather than given to the miner, reducing the inflation rate of Ether and potentially resulting in periods of deflation.[49]

On 27 August 2021, the blockchain experienced a brief fork that was the result of clients running different incompatible software versions.

Ethereum 2.0

Open-source development is currently[may be outdated as of March 2022] underway for a major upgrade to Ethereum known as Ethereum 2.0 or Eth2.[53]

The main purpose of the upgrade is to increase transaction throughput for the network from the current rate of about 15 transactions per second to up to tens of thousands of transactions per second.[54] This is to be accomplished by splitting up the workload into many blockchains running in parallel (referred to as “sharding”) and then having them all share a common consensus proof-of-stake blockchain, so that to maliciously tamper with any singular chain would require one to tamper with the common consensus, which would cost the attacker far more than they could gain from an attack.

Ethereum 2.0 (also known as Serenity) is designed to be launched in three phases:[citation needed]

“Phase 0” (or “Beacon Chain”) was launched on 1 December 2020 and created the Beacon Chain, a proof-of-stake (PoS) blockchain that will act as the central coordination and consensus hub of Ethereum 2.0.[55][56][57]
“Phase 1” (or “The Merge”) will merge the Beacon Chain with the current Ethereum network, transitioning its consensus mechanism from proof-of-work to proof-of-stake.[58] As of 26 January 2022, it is expected to be released in the second quarter of 2022.[51]
“Phase 2” (or “Shard chains”) will implement state execution in the shard chains[11] with the current Ethereum 1.0 chain expected to become one of the shards of Ethereum 2.0. Shard chains will spread the network’s load across 64 new chains. As of 22 January 2022, it is expected to be released in 2023.[52]

Design

Ethereum is a permissionless[clarification needed], non-hierarchical network of computers (nodes) that build and come to a consensus on an ever-growing series of “blocks”, or batches of transactions, known as the blockchain. Each block contains an identifier of the chain that must precede it if the block is to be considered valid. Whenever a node adds a block to its chain, it executes the transactions in the block in the order they are listed, thereby altering the ETH balances and other storage values of Ethereum accounts. These balances and values, collectively known as the “state”, are maintained on the node separately from the blockchain, in a Merkle tree.

Each node communicates with a relatively small subset of the network—its “peers”. Whenever a node wishes to include a new transaction in the blockchain, it sends a copy of the transaction to each of its peers, who then send a copy to each of their peers, and so on. In this way, it propagates throughout the network. Certain nodes, called miners, maintain a list of all of these new transactions and use them to create new blocks, which they then send to the rest of the network. Whenever a node receives a block, it checks the validity of the block and of all of the transactions therein and, if it finds the block to be valid, adds it to its blockchain and executes all of those transactions. Since block creation and broadcasting are permissionless, a node may receive multiple blocks competing to be the successor to a particular block. The node keeps track of all of the valid chains that result from this and regularly drops the shortest one: According to the Ethereum protocol, the longest of multiple competing chains is to be considered the canonical one.

Ether

Ether (ETH) is the cryptocurrency generated by the Ethereum protocol as a reward to miners in a proof-of-work system for adding blocks to the blockchain. It is the only currency accepted to pay for transaction fees, which also go to miners. The block-addition reward together with the transaction fees provide the incentive to miners to keep the blockchain growing (i.e. to keep processing new transactions). Therefore, ETH is fundamental to the operation of the network. Each Ethereum account has an ETH balance and may send ETH to any other account. The smallest subunit of ETH is known as a Wei, named after cryptocurrency pioneer Wei Dai,[59] and is equal to 10−18 ETH.[60] Ether is often erroneously referred to as “Ethereum”.[61]

Ether is listed on exchanges under the currency code ETH. The Greek uppercase Xi character (Ξ) is sometimes used for its currency symbol.[citation needed]

The shift to Ethereum 2.0 may reduce the issuance rate of Ether.[55] There is currently no implemented hard cap on the total supply of Ether.

Accounts

There are two types of accounts on Ethereum: user accounts (also known as externally-owned accounts) and contracts. Both types have an ETH balance, may send ETH to any account, may call any public function of a contract or create a new contract, and are identified on the blockchain and in the state by an account address.[55][63]

User accounts are the only type of account that may create transactions. For a transaction to be valid, it must be signed using the sending account’s private key, the 64-character hexadecimal string from which the account’s address is derived. The algorithm used to produce the signature is ECDSA. Importantly, this algorithm allows one to derive the signer’s address from the signature without knowing the private key.

Contracts are the only type of account that has associated code (a set of functions and variable declarations) and contract storage (the values of the variables at any given time). A contract function may take arguments and may have return values. In addition to control flow statements, the body of a function may include instructions to send ETH, read from and write to the contract’s storage, create temporary storage (memory) that vanishes at the end of the function, perform arithmetic and hashing operations, call the contract’s own functions, call public functions of other contracts, create new contracts, and query information about the current transaction or the blockchain.[64]

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 (the curve used is the so-called secp256k1). In hexadecimal, two digits represent a byte, and so addresses contain 40 hexadecimal digits, e.g. 0xb794f5ea0ba39494ce839613fffba74279579268. Contract addresses are in the same format, however, they are determined by sender and creation transaction nonce.

Virtual machine

The Ethereum Virtual Machine (EVM) is the runtime environment for transaction execution in Ethereum. It includes a stack, memory, gas balance (see below), program counter, and the persistent storage for all accounts (including contract code). When a transaction calls a contract’s function, the arguments in the call are added to the stack and the EVM translates the contract’s bytecode into stack operations. Stack items may be stored in memory or storage, and data from memory/storage may be added to the stack. The EVM is isolated from the other files and processes on the node’s computer to ensure that for a given pre-transaction state and transaction, every node produces the same post-transaction state, thereby enabling network consensus. The formal definition of the EVM is specified in the Ethereum Yellow Paper.[26][65] EVMs have been implemented in C++, C#, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang, and soon[when?] WebAssembly.

Gas

Gas is a unit of account within the EVM used in the calculation of a transaction fee, which is the amount of ETH a transaction’s sender must pay to the miner who includes the transaction in the blockchain.

Each type of operation which may be performed by the EVM is hardcoded with a certain gas cost, which is intended to be roughly proportional to the amount of resources (computation and storage) a node must expend to perform that operation. When a sender creates a transaction, the sender must specify a gas limit and gas price. The gas limit is the maximum amount of gas the sender is willing to use in the transaction, and the gas price is the amount of ETH the sender wishes to pay to the miner per unit of gas used. The higher the gas price, the more incentive a miner has to include the transaction in their block, and thus the quicker the transaction will be included in the blockchain. The sender buys the full amount of gas (i.e. the gas limit) up-front, at the start of the execution of the transaction, and is refunded at the end for any gas not used. If at any point the transaction does not have enough gas to perform the next operation, the transaction is reverted but the sender still pays for the gas used. Gas prices are typically denominated in Gwei, a subunit of ETH equal to 10−9 ETH.[66]

This fee mechanism is designed to mitigate transaction spam, prevent infinite loops during contract execution, and provide for a market-based allocation of network resources.

Governance

In October 2015,[67] a development governance was proposed as the Ethereum Improvement Proposal (EIP), standardized on EIP-1.[68] The core development group and community were to gain consensus by a process-regulated EIP.

Difficulty bomb

The difficulty bomb is an Ethereum protocol feature that causes the difficulty of mining a block to increase exponentially over time after a certain block is reached, with the intended purpose being to incentivize upgrades to the protocol and prevent miners from having too much control over upgrades. As the protocol is upgraded, the difficulty bomb is typically pushed further out in time. The protocol has included a difficulty bomb from the beginning, and the bomb has been pushed back several times.[70] It was originally placed primarily to ensure a successful upgrade from proof of work to proof of stake, an upgrade that removes miners entirely from the design of the network.[citation needed] The period during which the mining difficulty is increasing is known as the “Ice Age”.

Comparison to Bitcoin

Bitcoin’s primary use case is as a store of value and a digital currency. Ether can also be used as a digital currency and store of value, but the Ethereum network also makes it possible to create and run decentralized applications and smart contracts. Blocks are validated approximately every 12 seconds on Ethereum as opposed to approximately every 10 minutes on Bitcoin. Additionally, Bitcoin has a fixed supply of 21,000,000 coins, whereas Ether has no supply cap.[71] Ether and Bitcoin are both mined through proof-of-work and can be purchased on cryptocurrency exchanges.

Applications

The EVM’s instruction set is Turing-complete.[26] Popular uses of Ethereum have included the creation of fungible (ERC20) and non-fungible (ERC721) tokens with a variety of properties, crowdfunding (e.g. initial coin offerings), decentralized finance, decentralized exchanges, decentralized autonomous organizations (DAOs), games, prediction markets, and gambling.

Contract source code

Ethereum’s smart contracts are written in high-level programming languages and then compiled down to EVM bytecode and deployed to the Ethereum blockchain. They can be written in Solidity (a language library with similarities to C and JavaScript), Serpent (similar to Python, but deprecated), Yul (an intermediate language that can compile to various different backends – EVM 1.0, EVM 1.5, and eWASM are planned), LLL (a low-level Lisp-like language), and Mutan (Go-based, but deprecated). There was also[when?] a research-oriented language under development called Vyper (a strongly-typed Python-derived decidable language).[citation needed] Source code and compiler information are usually published along with the launch of the contract so that users can see the code and verify that it compiles to the bytecode that is on-chain.

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.[73] One example of this is the 2016 attack on The DAO, which could not be quickly stopped or reversed.[36]

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.[74]

ERC-20 tokens

The ERC-20 (Ethereum Request-for-Comments #20) Token Standard allows for fungible tokens on the Ethereum blockchain. The standard, proposed by Fabian Vogelsteller in November 2015, implements an API for tokens within smart contracts.[75] The standard provides functions that include the transfer of tokens from one account to another, getting the current token balance of an account, and getting the total supply of the token available on the network. Smart contracts that correctly implement ERC-20 processes are called ERC-20 Token Contracts, and they keep track of created tokens on Ethereum.[75] Numerous cryptocurrencies have launched as ERC-20 tokens and have been distributed through initial coin offerings.[76] Fees to send ERC-20 tokens must be paid with Ether.

Non-fungible tokens (NFTs)

Main article: Non-fungible token
Ethereum also allows for the creation of unique and indivisible tokens, called non-fungible tokens (NFTs).[77] Since tokens of this type are unique, they have been used to represent such things as collectibles, digital art, sports memorabilia, virtual real estate, and items within games.[78] The first NFT project, Etheria, a 3D map of tradable and customizable hexagonal tiles, was deployed to the network in October 2015 and demonstrated live at DEVCON1 in November of that year.[79] In 2021, Christie’s sold a digital image with an NFT by Beeple for US$69.3 million, making him the third-most valuable living artist in terms of auction prices at the time, although observers have noted that both the buyer and seller had a vested interest in driving demand for the artist’s work.[80][81] Land, buildings, and avatars in blockchain-based virtual worlds can also be bought and sold as NFTs, sometimes for hundreds of thousands of dollars.

Decentralized finance

Decentralized finance (DeFi) is a use case of Ethereum.[83] It offers traditional financial instruments in a decentralized architecture, outside of companies’ and governments’ control, such as money market funds which let users earn interest.[84] Decentralized finance applications are typically accessed through a Web3-enabled browser extension or application, such as MetaMask, which allows users to directly interact with the Ethereum blockchain through a website.[85][86] Many of these DApps can connect and work together to create complex financial services.[87]

Examples of DeFi platforms include MakerDAO and Compound.[88] Uniswap, a decentralized exchange for tokens on Ethereum grew from US$20 million in liquidity to US$2.9 billion in 2020.[89] As of October 2020, over US$11 billion was invested in various DeFi protocols.[90] Additionally, through a process called “wrapping”, certain DeFi protocols allow synthetic versions of various assets (such as Bitcoin, gold, and oil) to be tradeable on Ethereum and also compatible with all of Ethereum’s major wallets and applications.[90]

Enterprise software

Ethereum-based software and networks, independent from the public Ethereum chain, are being tested by enterprise software companies.[91] Interested parties include Microsoft, IBM, JPMorgan Chase,[60] Deloitte, R3, and Innovate UK (cross-border payments prototype).[92] Barclays, UBS, Credit Suisse, Amazon, Visa, and other companies are also experimenting with Ethereum.[93][94]

Permissioned ledgers

Ethereum-based permissioned blockchain variants are used and being investigated for various projects:

In 2017, JPMorgan Chase proposed developing JPM Coin on a permissioned-variant of Ethereum blockchain dubbed “Quorum”.[95] It is “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.”[96]
The Royal Bank of Scotland announced that it built a Clearing and Settlement Mechanism (CSM) based on the Ethereum distributed ledger and smart contract platform.[citation needed]
Performance
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; it is an example of a distributed computing system with high Byzantine fault tolerance. Every new transaction is recorded on a new block, which is connected to previous and future blocks in a chain. Fraudsters who want to tamper with one transaction/block would have to tamper all preceding and following blocks, which is possible, but extremely difficult.[97]

The downside is that performance issues arise because every node calculates all the smart contracts in real-time. 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. This has led some to question the scalability of Ethereum.[98] On 19 December 2016, Ethereum exceeded one million transactions in a single day for the first time.[99] Visa has also signaled interest in processing NFT and Ethereum transactions.[100]

Ethereum engineers have been working on sharding the calculations, and the next step (Ethereum 2) was presented at Ethereum’s Devcon 3 in November 2017.[101]

Ethereum’s blockchain uses Merkle trees for security reasons, to improve scalability, and to optimize transaction hashing.[102] As with any Merkle tree implementation, this allows for storage savings, set membership proofs (called “Merkle proofs”), and light client synchronization. The network has faced congestion problems, such as in 2017 in relation to Cryptokitties.