Abstract
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 language 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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
Smallest denomination of ether: 1 ether = \(10^{18}\) wei.
- 2.
Addresses are usually written in hex with a 0x prefix.
- 3.
See [ato16] for a visual interpretation of the block structure in Ethereum.
- 4.
In June 2016, an unknown hacker exploited a vulnerability in the DAO code and withdrew around $50 million, leading to a controversial [ETC16] hard fork.
- 5.
See [May16] for a study of ECDSA security in Bitcoin and Ethereum.
- 6.
Though Keccak256 is the winning proposal in the SHA3 competition, it differs from the officially standardized SHA3. SHA3 in the Ethereum documentation and source code refers to Keccak256.
- 7.
Ethash is also referred to as Dagger-Hashimoto. Official documentation [Eth17a] states that Ethash “is the latest version of Dagger-Hashimoto, although it can no longer appropriately be called that since many of the original features of both algorithms have been drastically changed”.
- 8.
A commonly used term “51% attack” is not precisely correct: “51%” here means “strictly greater than 50%”.
- 9.
Interestingly, the reference Bitcoin implementation uses checkpoints to skip validation of very old blocks for efficiency, effectively providing finality for transactions older than the latest checkpoint [Bit16].
- 10.
Except those using dedicated privacy-preserving cryptographic techniques, e.g., Dash, Monero, Zcash.
- 11.
Decompiling bytecode to source code is hardly possible as the information about function and variable names is lost during compilation; nevertheless it is possible to display bytecode as a sequence of mnemonics or convert it into an intermediate higher-level representation suitable for analysis.
- 12.
This bug led to the DAO hack of 2016.
- 13.
A technical response to this issue could be updateable contracts: users communicate with a proxy contract, which redirects their transactions to the latest version of the main contract. Such scheme assumes that the developers are honest and competent so that the latest update does not run away with everyone’s money.
References
Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on Ethereum smart contracts (SoK). In: Maffei, M., Ryan, M. (eds.) POST 2017. LNCS, vol. 10204, pp. 164–186. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54455-6_8
EFF Action. Stop the BitLicense (2015). https://act.eff.org/action/stop-the-bitlicense
Andreev, O.: Proof that proof-of-work is the only solution to the Byzantine generals’ problem (2014). http://nakamotoinstitute.org/mempool/proof-that-proof-of-work-is-the-only-solution-to-the-byzantine-generals-problem/
atomh33ls. Ethereum block architecture (2016). https://ethereum.stackexchange.com/a/6413/5113
Augur (2017). https://augur.net/
Bhargavan, K., Delignat-Lavaud, A., Fournet, C., Gollamudi, A., Gonthier, G., Kobeissi, N., Kulatova, N., Rastogi, A., Sibut-Pinote, T., Swamy, N., Zanella-Béguelin, S.: Formal verification of smart contracts: short paper. In: Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security, PLAS 2016, pp. 91–96. ACM, New York (2016)
Bentov, I., Gabizon, A., Mizrahi, A.: Cryptocurrencies without proof of work. In: Clark, J., Meiklejohn, S., Ryan, P.Y.A., Wallach, D., Brenner, M., Rohloff, K. (eds.) FC 2016. LNCS, vol. 9604, pp. 142–157. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-53357-4_10
bitcoin/src/chainparams.cpp (2016). https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L146
Block size limit controversy (2017). https://en.bitcoin.it/wiki/Block_size_limit_controversy
Cryptocurrency statistics (2017). https://bitinfocharts.com/
Bitnodes.21.co. Global Bitcoin nodes distrubution (2017). https://bitnodes.21.co/
Biryukov, A., Khovratovich, D., Tikhomirov, S.: Findel: secure derivative contracts for Ethereum (2017). https://hdl.handle.net/10993/30975
Bonneau, J., Miler, A., Clark, J., Narayanan, A., Kroll, J.A., Felten, E.W.: Research perspectives and challenges for Bitcoin and cryptocurrencies. Cryptology ePrint Archive, Report 2015/261 (2015). http://eprint.iacr.org/2015/261
Bartoletti, M., Pompianu, L.: An empirical analysis of smart contracts: platforms, applications, and design patterns. CoRR, abs/1703.06322 (2017)
Buchman, E.: Understanding the Ethereum trie (2014). https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/
Buterin, V.: Dagger: a memory-hard to compute, memory-easy to verify Scrypt alternative (2013). http://www.hashcash.org/papers/dagger.html
Buterin, V.: Casper the friendly finality gadget (2016). https://github.com/ethereum/research/blob/master/casper4/papers/casper_paper.md
Buterin, V.: Long-term gas cost changes for IO-heavy operations to mitigate transaction spam attacks (2016). https://github.com/ethereum/eips/issues/150
Buterin, V.: Casper the friendly finality gadget (2017). http://vitalik.ca/files/casper_note.html
Buterin, V.: Design rationale (2017). https://github.com/ethereum/wiki/wiki/Design-Rationale
Buterin, V.: Minimal slashing conditions (2017). https://medium.com/@VitalikButerin/minimal-slashing-conditions-20f0b500fc6c
Buterin, V.: New experimental programming language (2017). https://github.com/ethereum/viper
Castor, A.: One of Ethereum’s earliest smart contract languages is headed for retirement (2017). https://www.coindesk.com/one-of-ethereums-earliest-smart-contract-languages-is-headed-for-retirement/
Chain (2017). https://chain.com/
Protecting the integrity of digital assets (2017). https://www.chainalysis.com/
Church, A.: A note on the Entscheidungs problem. J. Symb. Logic 1(1), 40–41 (1936)
Castro, M., Liskov, B.: Practical Byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4), 398–461 (2002)
Chen, T., Li, X., Luo, X., Zhang, X.: Under-optimized smart contracts devour your money. In: SANER, pp. 442–446. IEEE Computer Society (2017)
Cryptocurrency market capitalizations (2017). https://coinmarketcap.com/
Coindesk. ICO tracker (2017). https://www.coindesk.com/ico-tracker/
Ethereum contract security techniques and tips (2016). https://github.com/ConsenSys/smart-contract-best-practices
Corda (2017). https://www.corda.net/
Chen, L., Xu, L., Shah, N., Gao, Z., Lu, Y., Shi, W.: Decentralized execution of smart contracts: agent model perspective and its implications (2017). http://fc17.ifca.ai/wtsc/Decentralized%20Execution%20of%20Smart%20Contracts%20-%20Agent%20Model%20Perspective%20and%20Its%20Implications.pdf
Dag file size calculator (2017). https://investoon.com/tools/dag_size
Delmolino, K. Arnett, M., Kosba, A., Miller, A., Shi, E.: Step by step towards creating a safe smart contract: lessons and insights from a cryptocurrency lab. Cryptology ePrint Archive, Report 2015/460 (2015). http://eprint.iacr.org/2015/460
Duong, T., Fan, L., Zhou, H.-S.: 2-hop blockchain: combining proof-of-work and proof-of-stake securely. Cryptology ePrint Archive, Report 2016/716 (2016). http://eprint.iacr.org/2016/716
Digiconomist. Bitcoin energy consumption index (2017). http://digiconomist.net/bitcoin-energy-consumption
Ethereum documentation. Mining (2017). http://ethdocs.org/en/latest/mining.html
Domchi. What are the ethereum disk space needs? (2017). https://ethereum.stackexchange.com/q/143/5113
Daian, P., Pass, R., Shi, E.: Snow white: provably secure proofs of stake. Cryptology ePrint Archive, Report 2016/919 (2016). http://eprint.iacr.org/2016/919
Dryja, T.: Hashimoto: I/O bound proof of work (2014). https://pdfs.semanticscholar.org/3b23/7cc60c1b9650e260318d33bec471b8202d5e.pdf
Ellison, D.: An introduction to LLL for Ethereum smart contract development (2017). https://media.consensys.net/an-introduction-to-lll-for-ethereum-smart-contract-development-e26e38ea6c23
Egelund-Müller, B., Elsman, M., Henglein, F., Ross, O.: Automated execution of financial contracts on blockchains (2017). https://ssrn.com/abstract=2898670
ENS (2017). https://ens.domains/
Eyal, I., Gün Sirer, E.: Majority is not enough: Bitcoin mining is vulnerable. CoRR, abs/1311.0243 (2013)
The Ethereum Classic declaration of independence (2016). https://ethereumclassic.github.io/assets/ETC_Declaration_of_Independence.pdf
eth. How is the address of an ethereum contract computed? (2016). https://ethereum.stackexchange.com/q/760/5113
Ethash (2017). https://github.com/ethereum/wiki/wiki/Ethash
Ethash design rationale (2017). https://github.com/ethereum/wiki/wiki/Ethash-Design-Rationale
Ethereum Classic (2017). https://ethereumclassic.github.io/
Etherchain.org. Mining statistics (last 24h) (2017). https://etherchain.org/statistics/miners
Ethernodes.org (2017). https://www.ethernodes.org/network/1
Filecoin (2017). https://filecoin.io/
Gnosis (2017). https://gnosis.pm/
Golem (2017). https://golem.network/
Gencer, A.E., van Renesse, R., Sirer, E.G.: Service-oriented sharding with Aspen. arXiv preprint arXiv:1611.06816 (2016)
Hertig, A.: Ethereum’s big switch: the new roadmap to proof-of-stake (2017). https://www.coindesk.com/ethereums-big-switch-the-new-roadmap-to-proof-of-stake/
Hirai, Y.: Bamboo: a morphing smart contract language (2017). https://github.com/pirapira/bamboo
Hirai, Y.: Formal verification of Ethereum contracts (2017). https://github.com/pirapira/ethereum-formal-verification-overview
Hyperledger (2017). https://www.hyperledger.org/
jnnk. What is gas limit in Ethereum? (2015). https://bitcoin.stackexchange.com/a/39197
Johnson, N.: What is the exact “longest chain” rule implemented in the ethereum “homestead” protocol? (2017). https://ethereum.stackexchange.com/a/13750/5113
Junge, H.: What is Geth’s “light” sync, and why is it so fast? (2017). https://ethereum.stackexchange.com/a/11300
Kosba, A., Miller, A., Shi, E., Wen, Z., Papamanthou, C.: Hawk: the blockchain model of cryptography and privacy-preserving smart contracts. Cryptology ePrint Archive, Report 2015/675 (2015). http://eprint.iacr.org/2015/675
Kiayias, A., Russell, A., David, B., Oliynykov, R.: Ouroboros: a provably secure proof-of-stake blockchain protocol. Cryptology ePrint Archive, Report 2016/889 (2016). http://eprint.iacr.org/2016/889
Luu, L., Chu, D.-H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. Cryptology ePrint Archive, Report 2016/633 (2016). http://eprint.iacr.org/2016/633
Lerner, S.D.: Ethereum “Dagger” PoW function is flawed (2014). https://bitslog.wordpress.com/2014/01/17/ethereum-dagger-pow-is-flawed/
Lightning network (2016). https://lightning.network/
Luu, L., Narayanan, V., Zheng, C., Baweja, K., Gilbert, S., Saxena, P.: A secure sharding protocol for open blockchains. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 17–30. ACM (2016)
Luu, L., Teutsch, J., Kulkarni, R., Saxena, P.: Demystifying incentives in the consensus computer. Cryptology ePrint Archive, Report 2015/702 (2015). http://eprint.iacr.org/2015/702
Luu, L., Velner, Y., Teutsch, J., Saxena, P.: SmartPool: practical decentralized pooled mining. Cryptology ePrint Archive, Report 2017/019 (2017). http://eprint.iacr.org/2017/019
Mayer, H.: ECDSA security in Bitcoin and Ethereum: a research survey (2016)
Mazières, D.: The Stellar consensus protocol: a federated model for internet-level consensus (2014). https://www.stellar.org/papers/stellar-consensus-protocol.pdf
McAdams, D.: An ontology for smart contracts (2017). https://iohk.io/research/papers/#QCNR6SCZ
McCone, R.: Ethereum Lightning network and beyond (2015). http://www.arcturnus.com/ethereum-lightning-network-and-beyond/
Milutinovic, M., He, W., Wu, H., Kanwal, M.: Proof of luck: an efficient blockchain consensus protocol. Cryptology ePrint Archive, Report 2017/249 (2017). http://eprint.iacr.org/2017/249
Micali, S.: ALGORAND: the efficient and democratic ledger. CoRR, abs/1607.01341 (2016)
Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008). https://bitcoin.org/bitcoin.pdf
Landon Curt Noll. FNV hash (2017). http://www.isthe.com/chongo/tech/comp/fnv/index.html
Norvill, R., Pontiveros, B.B.F., State, R., Awan, I., Cullen, A.: Automated labeling of unknown contracts in Ethereum (2017). https://bradscholars.brad.ac.uk/handle/10454/12220
Department of financial services. Bitlicense regulatory framework (2015). http://www.dfs.ny.gov/legal/regulations/bitlicense_reg_framework.htm
O’Leary, R.R.: Ethereum’s Byzantium testnet just verified a private transaction (2017). https://www.coindesk.com/ethereums-byzantium-testnet-just-verified-private-transaction/
Oraclize (2017). http://www.oraclize.it/
Warp sync snapshot format (2017). https://github.com/paritytech/parity/wiki/Warp-Sync-Snapshot-Format
Pettersson, J., Edström, R.: Safer smart contracts through type-driven development (2016). https://publications.lib.chalmers.se/records/fulltext/234939/234939.pdf
Password hashing competition (2015). https://password-hashing.net/
Proof of stake FAQ (2016). https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ
Porru, S., Pinna, A., Marchesi, M., Tonelli, R.: Blockchain-oriented software engineering: challenges and new directions. CoRR, abs/1702.05146 (2017)
Qtum (2017). https://qtum.org/en/
Raiden network: high speed asset transfers for Ethereum (2017). http://raiden.network/
Ruoti, S., Andersen, J., Zappala, D., Seamons, K.E.: Why Johnny still, still can’t encrypt: evaluating the usability of a modern PGP client. CoRR, abs/1510.08555 (2015)
Roberts, D.: Behind the “exodus” of Bitcoin startups from New York (2015). http://fortune.com/2015/08/14/bitcoin-startups-leave-new-york-bitlicense/
Rootstock (2017). http://www.rsk.co/
U.S. Securities and Exchange Commission. SEC issues investigative report concluding DAO tokens, a digital asset, were securities (2017). https://www.sec.gov/news/press-release/2017-131
Schneier, B.: Debating full disclosure (2007). https://www.schneier.com/blog/archives/2007/01/debating_full_d.html
Securify. Formal verification of Ethereum smart contracts (2017). http://securify.ch/
Serpent (2017). https://github.com/ethereum/wiki/wiki/Serpent
Sergey, I., Hobor, A.: A concurrent perspective on smart contracts. CoRR, abs/1702.05511 (2017)
Sharding FAQ (2016). https://github.com/ethereum/wiki/wiki/Sharding-FAQ
SHA-3 competition (2007–2012) (2017). http://csrc.nist.gov/groups/ST/hash/sha-3/index.html
Sia (2017). https://sia.tech/
Siludin. Let’s talk about how poor this network is at handling any type of major transaction traffic (2016). https://redd.it/6ifl5f
Gün Sirer, E.: Thoughts on The DAO hack (2016). http://hackingdistributed.com/2016/06/17/thoughts-on-the-dao-hack/
Solidity official documentation (2017). https://solidity.readthedocs.io/
Sonm (2017). https://sonm.io/
Seijas, P.L., Thompson, S., McAdams, D.: Scripting smart contracts for distributed ledger technology. Cryptology ePrint Archive, Report 2016/1156 (2016). http://eprint.iacr.org/2016/1156
Storj (2017). https://storj.io/
Suiche, M.: Porosity. Decompiling Ethereum smart-contracts (2017). https://blog.comae.io/porosity-18790ee42827
Sunnarborg, A.: ICO investments pass VC funding in blockchain market first (2017). https://www.coindesk.com/ico-investments-pass-vc-funding-in-blockchain-market-first/
Schwartz, D., Youngs, N., Britto, A.: The Ripple protocol consensus algorithm. Ripple Labs Inc White Paper (2014). https://ripple.com/files/ripple_consensus_whitepaper.pdf
Sompolinsky, Y., Zohar, A.: Accelerating Bitcoin’s transaction processing. Fast money grows on trees, not chains. Cryptology ePrint Archive, Report 2013/881 (2013). http://eprint.iacr.org/2013/881
Szabo, N.: Money, blockchains, and social scalability (2017). https://unenumerated.blogspot.lu/2017/02/money-blockchains-and-social-scalability.html
Sztorc, P.: Nothing is cheaper than proof of work (2015). http://www.truthcoin.info/blog/pow-cheapest/
Tschorsch, F., Scheuermann, B.: Bitcoin and beyond: a technical survey on decentralized digital currencies. Cryptology ePrint Archive, Report 2015/464 (2015). http://eprint.iacr.org/2015/464
Vogelsteller, F., Buterin, V., et al.: Ethereum whitepaper (2014). https://github.com/ethereum/wiki/wiki/White-Paper
Vogelsteller, F., Buterin, V., Reitwiessner, C., Kotewicz, M., et al.: Merkle Patricia trie specification (2017). https://github.com/ethereum/wiki/wiki/Patricia-Tree
Vogelsteller, F.: ERC: token standard (2017). https://github.com/ethereum/eips/issues/20
Velner, Y., Teutsch, J., Luu, L.: Smart contracts make Bitcoin mining pools vulnerable. Cryptology ePrint Archive, Report 2017/230 (2017). http://eprint.iacr.org/2017/230
Wood, G.: Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper, 151 (2014). http://yellowpaper.io/
Wuille, P.: What does the term “longest chain” mean? (2017). https://bitcoin.stackexchange.com/a/5542/31712
ydtm. The bug which the DAO hacker exploited was not merely in the DAO itself (2016). https://redd.it/4opjov
Zhang, F., Cecchetti, E., Croman, K., Juels, A., Shi, E.: Town Crier: an authenticated data feed for smart contracts. Cryptology ePrint Archive, Report 2016/168 (2016). http://eprint.iacr.org/2016/168
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Tikhomirov, S. (2018). Ethereum: State of Knowledge and Research Perspectives. In: Imine, A., Fernandez, J., Marion, JY., Logrippo, L., Garcia-Alfaro, J. (eds) Foundations and Practice of Security. FPS 2017. Lecture Notes in Computer Science(), vol 10723. Springer, Cham. https://doi.org/10.1007/978-3-319-75650-9_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-75650-9_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-75649-3
Online ISBN: 978-3-319-75650-9
eBook Packages: Computer ScienceComputer Science (R0)