A Next-Generation Smart Contract and Decentralized Application Platform.
Ethereum is a decentralized network (often referred to as “the world computer”), created by Vitalik Buterin in 2013. Its network consists of an open-source, globally decentralized computing infrastructure, which executes programs called smart contracts. This network is fueled by a cryptocurrency named ether (ETH).
Since its ICO in 2015, Ethereum has relied on Proof of Work (PoW). Ethereum’s first block was mined in July 2015, although plans have been made to migrate to a Proof of Stake (PoS) consensus model, despite several setbacks.
Unlike Bitcoin, Ethereum is based on an account model (vs. UTXO) to record state changes. At its core, Ethereum relies on a Virtual Machine (EVM) with two types of addresses: externally owned addresses (EOAs) and contract addresses that are deployed on the EVM.
As of March 2020, Ethereum was the second-largest cryptocurrency by market capitalization. It has popularized the use of smart contracts, and thousands of teams are working on third-party solutions on the network for real business applications.
1. What is Ethereum (ETH)?
Ethereum is an open-source, globally decentralized computing infrastructure, executing programs referred to as smart contracts.
Ethereum’s supply was pre-mined (72 million). Among these pre-mined ethers, 60 million were sold during an Initial Coin Offering in 2015.
Its PoW algorithm is Ethash, an algorithm that was initially designed to prevent ASIC mining. Block time has a target of ~ 15 seconds (with a maximum block size of 1,500,000 gas). Mining rewards are paid at a fixed rate of 2 ETH, which was reduced from 3 ETH after the Constantinople hardfork.
Ethereum is (quasi) Turing-complete, but every transaction requires gas, whose price fluctuates based on real-time bandwidth use. As a result, transaction fees are a function of storage needs, bandwidth use, and computational complexity. Gas is used to prevent infinite execution of programs; it introduces an execution cap equal to the maximum fees set for a transaction.
Notwithstanding the lack of details on the implementation of the programmed PoS architecture in the original whitepaper, ETH 2.0 has become one of the most critical, anticipated, and controversial topics in the Ethereum community. Its PoS transition was delayed several times, with subsequent forks to postpone the ignition of the difficulty bomb.
2. Ethereum’s key features
In an account-based model, a typical transaction (between accounts A and B) involving the transfer of ethers from one wallet to another works as follows:
debit from account A.
credit to account B.
Ethereum maps all accounts into balances. Therefore, a send operation reduces one account’s balance and increases another account's balance.
In comparison, a UTXO transaction works as follows: an individual gives money and receives change (i.e., unspent amount).
According to Ethereum’s design rationale explanations, benefits of the account model are large space-saving (transactions require a single signature and produce one output), greater fungibility (harder to blacklist funds), simplicity (easier to build DApps), and constant light client reference (light clients can read information from the state tree in any specific direction). Despite these advantages, the account model may facilitate double spendings and replay attacks.
Global state and account structure
At its core, Ethereum is a transaction-based state machine. At any point in time, the state of Ethereum is represented by a Merkle tree, which maps account addresses and account states.
The state of Ethereum is updated by the addition of each new block. Each block contains valid transactions and is linked to its previous block by its header.
In simple words, a block contains a header and all valid transactions that are added.
In Ethereum, there are two types of accounts:
Externally owned accounts (EOA) are controlled by private keys and have no code associated with them. Individuals use their private keys to perform actions. An EOA only comprises its nonce (i.e., number of transactions sent) and the associated balance (i.e., number of ethers owned by the account).
Contract accounts are controlled by their contract code, which is immutable once deployed. In addition to nonce and balance, a contract account also stores its storage hash (i.e., a hash of the root of the Merkle Tree) and code hash (i.e., the hash of the EVM code for this specific account)
The Ethereum Virtual Machine (EVM) is the computer software (or computation engine) that interprets bytecode instructions for the Ethereum blockchain. Specifically, the EVM handles any smart contract logic, ranging from its deployment to the execution.
Based on 256-bit word format, the EVM has a simple stack-based architecture with multiple data components:
Program code ROM: an immutable program with the bytecode deployed for execution of the contract.
Memory: a component to store data temporarily.
Storage: a permanent component to store data.
Example of popular smart contracts
An ERC-20 token is a token that implements a standardized interface defined in EIP-20. An example of the implementation by Consensys is available here.
Owing to the popularity of token standards such as ERC-20, Ethereum has seen hundreds of thousands of tokens issued on its network. In addition, many other token standards are either in production (e.g., ERC-721, ERC-1155) or in progress. For a more comprehensive breakdown of the token standards on Ethereum, please read our report about the World of Tokenization.
Auction contracts are a natural fit for a smart contract on Ethereum. For instance, one can create a blind auction where any EOA can send bid offers to the contract. The highest bidder wins it. An example of an implementation of an open auction is available in the documentation of Solidity.
3. Ethereum 2.0: PoS, beacon chain, side-chains, and sharding
Ethereum 2.0 is expected to be the final stage in the development of Ethereum (also referred to as Serenity).
Despite the transition to Proof of Stake (aka “ETH 2.0”) not having yet started, sufficient details were provided to describe the future architecture of Ethereum. It is also worth noting that ETH 2.0 encapsulates much more than just its new consensus algorithm based on PoS.
Based on existing information, Ethereum 2.0 will introduce additional elements such as:
Beacon Chain: it acts as the “bridge” between shard chains and the main chain (the equivalent of the existing ETH 1.0 chain), which will provide staking rewards. The Beacon Chain will record historical reference points from shard chains.
Shard Chains: thanks to the use of sharding for scalability, each shard chain is bound to operate independently (of one another) with unique states and independent histories of transactions. The main link amongst shards will be recorded on the Beacon Chain.
eWASM: each shard is expected to have its own dedicated virtual machine “eWASM” (i.e., Ethereum-WebAssembly Machine). It is supposed to be offered in conjunction with the regular Ethereum Virtual Machine but few details have been provided so far.
Regarding the upcoming change in the validation algorithm, the new PoS is based on Casper: a “PoS finality gadget”.
Validators are expected to become active on Ethereum 2.0 upon completion of a valid deposit (~32 ETH) from the 1.0 chain into a new smart contract, along with a waiting period. Validators would also require to become light clients of the 1.0 chain to be approved for validating new blocks. In this new PoS consensus system, malicious validators would see their staked funds slashed.
Ethereum 2.0 is also expected to be rolled out progressively with several sub-phases:
Phase 0: the Beacon Chain will be launched, and the “finality gadget” will be introduced. This phase is expected to be completed in 2020. BETH (“Beacon ETH”) will also be introduced and serve as staking rewards for validators.
Phase 1: shard chains will be added. State information from the main chain will be split across shards. However, these new blocks will not contain “advanced” information (e.g., account features) and merely be used for data storage.
Phase 2: shard chains will be linked through the set-up of a common structured chain that supports smart contracts, external owned accounts, and assets.
Beyond: other features such as zkSTARKS are being examined for future long-term development plans post-phase 2.
Overview of teams working on Ethereum 2.0
There have been a significant number of teams working on ETH 2.0.
The table below introduces some of the most prominent ones.
Phase 0 - ICO: an ICO was conducted in the first half of 2015 for 60 million ethers. The ICO was one of the first conducted and funds were collected in BTC.
Phase 1 - Proof of Work (current): reliance on the Ethash function: a function (relying on Keccak) that was designated to prevent ASIC participation owing to memory hardness. However, since then, blocks have become mostly mined by ASIC devices.
Phase 2 - Proof of Stake: in its final (Serenity) phase, Ethereum blocks will be validated through staking and rewards will be distributed to validators.
Phase 0 was designated to bootstrap the network’s value, while phase 1 was designated to improve the supply’s distribution. Since mining block rewards are now collected by centralized ASIC pools, phase 2’s rollout will lead to mining rewards being collected by ether-holders, which will act as validators. This explains the on-going debate about ProgPoW.
The total supply of Ethereum is not capped, but as mining block rewards are fixed per block, the network’s inflation rate shall decay over time, in the (very) long-term approaching zero.
5. Project team
Ethereum’s development has been distributed and decentralized with multiple teams and individuals involved in the development of Ethereum. The table below describes some of the most prominent early-stage contributors to the development of Ethereum.