Ethereum
Ethereum is a decentralized, open-source blockchain featuring smart contract functionality. Ether (ETH) is the native cryptocurrency of the platform. It is the second-largest cryptocurrency by market capitalization, after Bitcoin. Ethereum is the most actively used blockchain.
Ethereum was proposed in 2013 by programmer Vitalik Buterin. Development was crowdfunded in 2014, and the network went live on 30 July 2015, with 72 million coins premined. The Ethereum Virtual Machine (EVM) can execute Turing-complete scripts and run decentralized applications. Ethereum is used for decentralized finance, and has been utilized for many initial coin offerings.
In 2016, a hacker exploited a flaw in a third-party project called The DAO and stole $50 million of Ether. As a result, the Ethereum community voted to hard fork the blockchain to reverse the theft and Ethereum Classic (ETC) continued as the original chain.
Ethereum has started implementing a series of upgrades called Ethereum 2.0, which includes a transition to proof of stake and an increase in transaction throughput using sharding
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 argued that Bitcoin and blockchain technology could benefit from other applications besides money and needed a scripting language for application development that could lead to attaching 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 general scripting language that would eventually become Ethereum.
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 from Toronto 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 %story% Amir Chetrit (the initial 5) in December 2013. Joseph Lubin, Gavin Wood, %story% Jeffrey Wilcke were added in early 2014 as founders." Formal development of the software 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 the 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 from July to 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.
In 2019, Ethereum Foundation employee Virgil Griffith was arrested by the US government for presenting at a blockchain conference in North Korea.
Etymology
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 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.
Launch and milestones
Several codenamed prototypes of Ethereum were developed by the Ethereum Foundation as part of their proof of concept series. "Olympic" was the last prototype 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. In July 2015, "Frontier" marked the tentative experimental release of the Ethereum platform.
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. The latest upgrade to Ethereum was "Muir Glacier", implemented on 1 January 2020.
The DAO event
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 2016 when US$50 million of DAO tokens were stolen 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. It resulted in the network splitting into two blockchains: Ethereum with the theft reversed and Ethereum Classic which continued on the original chain. 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.
Enterprise Ethereum Alliance
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. 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. By July 2017, there were over 150 members in the alliance, including MasterCard, Cisco Systems, Sberbank, and Scotiabank.
Ethereum 2.0
Open-source development is currently underway for a major upgrade to Ethereum known as Ethereum 2.0 or Eth2. The main purpose of the upgrade is to increase transaction throughput for the network from the current of about 15 transactions per second to up to tens of thousands of transactions per second.
The plan is to increase throughput 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 one chain would require that one tamper with the common consensus, which would cost the attacker far more money than they could ever gain from the attack.
Ethereum 2.0 (also known as Serenity) is designed to be launched in three phases:
"Phase 0" 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.
"Phase 1" will create shard chains and connect them to the Beacon Chain.
"Phase 2" will implement state execution in the shard chains with the current Ethereum 1.0 chain expected to become one of the shards of Ethereum 2.0.
Design
Ethereum is a permissionless, non-hierarchical network of computers (nodes) which build and come to consensus on an ever-growing series of "blocks", or batches of transactions, known as the blockchain. Each block contains an identifier of the block that it must immediately follow in the chain if it is to be considered valid. Whenever a node adds a block to its chain, it executes the transactions therein in their order, 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's computer separately from the blockchain, in a Merkle Patricia tree.
Each node communicates with a relatively small subset of the network, known as its peers. Whenever a node wishes to include a new transaction in the blockchain, it sends it to its peers, who then send it to 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 valid, adds it to its blockchain and executes all of said transactions. As the network is non-hierarchical, a node may receive competing blocks, which may form competing chains. The network comes to consensus on the blockchain by following the "longest chain rule", which states that the chain with the most blocks at any given time is the canonical chain. This rule achieves consensus because miners do not want to expend their computational work trying to add blocks to a chain that will be abandoned by the network.
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 in the payment of transaction fees, which also go to miners. The block reward together with the transaction fees provide the incentive to miners to keep the blockchain growing (ie. to keep processing new transactions). Therefore, Ether 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 unit of ETH is known as a Wei and is equal to 10-18 ETH.
Ether is listed on exchanges under the ticker symbol ETH. The Greek uppercase Xi character (Ξ) is sometimes used for its currency symbol.
The shift to Ethereum 2.0 may reduce the issuance rate of Ether. 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 their address.
User accounts are the only type which may create transactions. For a transaction to be valid, it must be signed using the account's private key, a 64-character hexadecimal string that should only be known to the account's owner. The signature algorithm used is ECDSA. Importantly, this algorithm has the property that it allows one to derive the signer's address from the signature without knowing the private key.
Contracts are the only type of account which has associated code (a set of functions and variable declarations) and contract storage (the values of the variables at any given time). Contracts are passive entities, only able to do anything as a result of an account calling one of its functions. During the execution of its code, a contract may: send ETH, alter its storage values, create temporary storage (memory) that dies at the end of the function, call any of its own functions, call any public function of a different contract, create a new contract, and query information about the current transaction or the blockchain.
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 se*****256k1). In hexadecimal, 2 digits represent a byte, meaning 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 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. EVMs have been implemented in C++, C#, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang, and soon 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 creating 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. For a transaction to be valid, the sender's starting ETH balance must be greater than or equal to gas limit × gas price. The sender buys the full amount of gas (ie. 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.
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, a development governance was proposed as the Ethereum Improvement Proposal (EIP), standardized on EIP-1. The core development group and community were to gain consensus by a process regulated EIP.
Difficulty bomb
The difficulty bomb is a mechanism where the difficulty of blockchain mining began increasing in November 2016, from block 200,000. This onset is referred to as Ethereum's Ice Age, which was implemented as an incentive for the network to transition from a PoW to a PoS blockchain. A difficulty bomb was scheduled in February 2019 but was pushed back by developers.
Comparison to Bitcoin
Ethereum is different from Bitcoin, the cryptocurrency with the largest market capitalization as of 2020, in several aspects:
Bitcoin is a singular form of digital money where users can send, receive, and hold only bitcoins. Ethereum is a smart contract platform which allows entities to leverage blockchain technology to create numerous different digital ledgers and can be used to create additional cryptocurrencies that run on top of its blockchain. For example, Ethereum can be used to create tokens that are pegged 1:1 with the value of the United States dollar (called a stablecoin) if a user wanted to transfer or hold the value of dollars on the blockchain. Ether itself can also be sent, received and held as digital money.
Bitcoin is aimed to only be money, compared with Ethereum where a goal is to also run applications (like the Google Play or Apple App store).
Its block time is 13 seconds, compared to 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 (PoW), Ethereum uses the Ethash algorithm, which is intended to reduce 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 uses an accounting system where values in Wei (the smallest denomination of 1 Ether, 1 ETH = 1018 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.
Applications
The EVM's instruction set is Turing-complete, meaning that Ethereum contracts can do anything that computer programs in general can do. Popular uses of Ethereum have included the creation of fungible (ERC20) and non-fungible (ERC721) tokens with a variety of properties, crowdfunding (eg. initial coin offerings), decentralized finance, decentralized exchanges, decentralized autonomous organizations (DAOs), games, prediction markets, and verifiably-fair 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 is also a research-oriented language under development called Vyper (a strongly-typed Python-derived decidable language). 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. One example of this is the 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.
ERC-20 Tokens
The ERC-20 Token Standard allows for fungible tokens on the Ethereum blockchain. Numerous cryptocurrencies have launched as ERC-20 tokens and have been distributed through initial coin offerings. Fees to send ERC-20 tokens must be paid with Ether.
Decentralized finance
Main article: Decentralized finance
Decentralized finance (DeFi) is a use case of Ethereum. 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. Examples of DeFi platforms include MakerDAO and Compound. Uniswap, a decentralized exchange for tokens on Ethereum grew from $20 million in liquidity to $2.9 billion in 2020. As of October 2020, over $11 billion was invested in various DeFi protocols. Additionally, through a process called "wrapping", certain DeFi protocols allow synthetic versions of various assets (such as Bitcoin, gold and oil) to become available and tradeable on Ethereum and also compatible with all of Ethereum's major wallets and applications.
Enterprise software
Ethereum-based 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, and Innovate UK (cross-border payments prototype). Barclays, UBS, Credit Suisse, Amazon, and other companies are also experimenting with Ethereum.
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". 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."
The 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.
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[clarification needed] 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 (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 network has faced congestion problems, such as in 2017 in relation to Cryptokitties.
The raw transaction format is hashed to create the transaction identifier (txid). From these txids, the merkle tree is constructed by pairing each txid with one other txid and then hashing them together. If there are an odd number of txids, the txid without a partner is hashed with a copy of itself.калькулятор ethereum