Ethereum: State of Knowledge and Research Perspectives [chapter]

Sergei Tikhomirov
2018 Lecture Notes in Computer Science  
Ethereum is a major blockchain-based platform for smart contracts -Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. A peer-to-peer network of mutually distrusting nodes maintains a common view of the global state and executes code upon request. The stated is stored in a blockchain secured by a proof-of-work consensus mechanism similar to that in Bitcoin. The core value proposition of Ethereum is a full-featured programming
more » ... age suitable for implementing complex business logic. Decentralized applications without a trusted third party are appealing in areas like crowdfunding, financial services, identity management, and gambling. Smart contracts are a challenging research topic that spans over areas ranging from cryptography, consensus algorithms, and programming languages to governance, finance, and law. This paper summarizes the state of knowledge in this field. We provide a technical overview of Ethereum, outline open challenges, and review proposed solutions. We also mention alternative smart contract blockchains. Ethereum is not the only smart contract blockchain system [BP17]. Ethereum Classic [Eth17c] is an alternative blockchain originating from a controversial Ethereum update. Rootstock [Roo17] and Qtum [Qtu17] aim at implementing smart contracts in combination with the Bitcoin blockchain. Chain [Cha17a], Corda [Cor17], and Hyperledger [Hyp17] propose permissioned (i.e., with a fixed set of approved participants) smart contract blockchains, designed to simplify transactions between corporate entities. This paper focuses on Ethereum as the most mature open blockchain with Turing complete programming capabilities. We summarize the state of knowledge and outline the research perspectives in this rapidly developing field. We assume familiarity with the basic blockchain concepts; [BMC + 15] and [TS15] provide the necessary background. 2 Technical overview State and accounts Ethereum can be thought of as a state machine. Nodes of the Ethereum peerto-peer network maintain a shared view of the global state. A user interacts with the network by issuing a transaction representing a valid state transition. Nodes pick transactions from the mempool (the set of unconfirmed transactions), verify their validity, perform the corresponding computation (possibly changing ownership of units of the Ethereum native cryptocurrency ether ), and update the state. There are two types of accounts in Ethereum: externally owned accounts and contract accounts controlled by a private key or by a smart contract -a piece of code deployed on the blockchain -respectively. The account state consists of the following fields: nonce -the number of transactions sent by this account (for externally controlled accounts) or the number of contract creations made by this account (for contract accounts); balance -the number of wei 1 owned by this account; -storageRoot -Merkle Patricia tree root of this account's storage; -codeHash -hash of this account's contract bytecode. Accounts' 160-bit addresses 2 are derived from its public key or, in case of contract accounts, from the address of the contract's creator and its nonce [eth16]. The global state maps addresses to account states. The primary data structure in Ethereum is the Merkle Patricia tree -a radix tree optimized for key-value mappings with 256 bit keys [VBR + 17] [Buc14]. The root hash authenticates the whole data structure. Values pairs are editable in logarithmic time. The Ethereum state model (accounts and states) differs from than in Bitcoin. The Bitcoin blockchain stores unspent transaction output (UTXO); balances of addresses are calculated off-chain by wallet software. 1 Smallest denomination of ether: 1 ether = 10 18 wei. 2 Addresses are usually written in hex with a 0x prefix.
doi:10.1007/978-3-319-75650-9_14 fatcat:hypwhlvpzndmbllfqxytk4bj4y