A Survey of Attacks on Ethereum Smart Contracts (SoK)

  • Nicola Atzei
  • Massimo BartolettiEmail author
  • Tiziana Cimoli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10204)


Smart contracts are computer programs that can be correctly executed by a network of mutually distrusting nodes, without the need of an external trusted authority. Since smart contracts handle and transfer assets of considerable value, besides their correct execution it is also crucial that their implementation is secure against attacks which aim at stealing or tampering the assets. We study this problem in Ethereum, the most well-known and used framework for smart contracts so far. We analyse the security vulnerabilities of Ethereum smart contracts, providing a taxonomy of common programming pitfalls which may lead to vulnerabilities. We show a series of attacks which exploit these vulnerabilities, allowing an adversary to steal money or cause other damage.


Security Vulnerability Consensus Protocol Longe Branch Direct Call Honest Node 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



The authors warmly thank Christian Reitwießner of Ethereum Foundation, Arthur Gervais of ETH Zurich, and Roberto Zunino of Università degli Studi di Trento for their comments on a preliminary version of this paper. All opinions expressed in this work are solely those of the authors. This work is partially supported by Aut. Reg. of Sardinia P.I.A. 2013 “NOMAD”.


  1. 1.
    Announcement of imminent hard fork for EIP150 gas cost changes.
  2. 2.
    Bitcointalk: Hi!My name is Rubixi.
  3. 3.
  4. 4.
    The ethereum network is currently undergoing a dos attack.
  5. 5.
    Ethereum reddit page.
  6. 6.
    Ethereum Wiki: Contract security techniques and tips.
  7. 7.
  8. 8.
  9. 9.
    Hacking, Distribute: Scanning live Ethereum contracts for the “unchecked-send” bug.
  10. 10.
    King of the Ether Throne: Post mortem investigation.
  11. 11.
    MAker DART: a random number generating game for Ethereum.
  12. 12.
    RANDAO: a DAO working as RNG of Ethereum.
  13. 13.
    Solidity: security considerations.
  14. 14.
  15. 15.
    Anderson, L., Holz, R., Ponomarev, A., Rimba, P., Weber, I.: New kids on the block: an analysis of modern blockchains. CoRR, abs/1606.06530 (2016)Google Scholar
  16. 16.
    Andrychowicz, M., Dziembowski, S., Malinowski, D., Mazurek, L.: Secure multiparty computations on Bitcoin. In: IEEE S&P, pp. 443–458 (2014)Google Scholar
  17. 17.
    Bhargavan, K., Delignat-Lavaud, A., Fournet, C., Gollamudi, A., Gonthier, G., Kobeissi, N., Rastogi, A., Sibut-Pinote, T., Swamy, N., Zanella-Beguelin, S.: Formal verification of smart contracts. In: PLAS (2016)Google Scholar
  18. 18.
    Bishop, M.: A taxonomy of Unix system and network vulnerabilities. Technical Report, CSE-95-10, Department of Computer Science, University of California at Davis (1995)Google Scholar
  19. 19.
    Bishop, M.: Vulnerabilities analysis. In: Proceedings of the Recent Advances in Intrusion Detection, pp. 125–136 (1999)Google Scholar
  20. 20.
    Boneh, D., Naor, M.: Timed commitments. In: Bellare, M. (ed.) CRYPTO 2000. LNCS, vol. 1880, pp. 236–254. Springer, Heidelberg (2000). doi: 10.1007/3-540-44598-6_15 CrossRefGoogle Scholar
  21. 21.
    Bonneau, J., Clark, J., Goldfeder, S.: On Bitcoin as a public randomness source. IACR Cryptology ePrint Archive 2015, 1015 (2015)Google Scholar
  22. 22.
    Brown, R.G., Carlyle, J., Grigg, I., Hearn, M.: Corda: an introduction (2016).
  23. 23.
    Buterin, V.: Ethereum: a next generation smart contract and decentralized application platform (2013).
  24. 24.
    Churyumov, A.: Byteball: a decentralized system for transfer of value (2016).
  25. 25.
    Clack, C.D., Bakshi, V.A., Braine, L.: Smart contract templates: foundations, design landscape and research directions. CoRR abs/1608.00771 (2016)Google Scholar
  26. 26.
    Delmolino, K., Arnett, M., Kosba, A.M.A., Shi, E.: Step by step towards creating a safe smart contract: lessons and insights from a crypto currency lab (2016)Google Scholar
  27. 27.
  28. 28.
    Eyal, I., Sirer, E.: Majority is not enough: bitcoin mining is vulnerable. In: Financial Cryptography and Data Security, pp. 436–454 (2014)Google Scholar
  29. 29.
    Frantz, C.K., Nowostawski, M.: From institutions to code: towards automated generation of smart contracts. In: Workshop on Engineering Collective Adaptive Systems (eCAS) (2016)Google Scholar
  30. 30.
    Garay, J., Kiayias, A., Leonardos, N.: The bitcoin backbone protocol: analysis and applications. In: Oswald, E., Fischlin, M. (eds.) EUROCRYPT 2015. LNCS, vol. 9057, pp. 281–310. Springer, Heidelberg (2015). doi: 10.1007/978-3-662-46803-6_10 Google Scholar
  31. 31.
    Gervais, A., Karame, G.O., Wüst, K., Glykantzis, V., Ritzdorf, H., Capkun, S.: On the security and performance of proof of work blockchains. In: ACM CCS, pp. 3–16 (2016)Google Scholar
  32. 32.
    Hirai, Y.: Formal verification of Deed contract in Ethereum name service.
  33. 33.
    Landwehr, C.E., Bull, A.R., McDermott, J.P., Choi, W.S.: A taxonomy of computer program security flaws. ACM Comput. Surv. 26(3), 211–254 (1994)CrossRefGoogle Scholar
  34. 34.
    Luu, L., Chu, D.H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. In: ACM CCS (2016).
  35. 35.
    Luu, L., Teutsch, J., Kulkarni, R., Saxena, P.: Demystifying incentives in the consensus computer. In: ACM CCS, pp. 706–719 (2015)Google Scholar
  36. 36.
    Marino, B., Juels, A.: Setting standards for altering and undoing smart contracts. In: RuleML, pp. 151–166 (2016)Google Scholar
  37. 37.
    Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008).
  38. 38.
    Nipkow, T., Wenzel, M., Paulson, L.C. (eds.): Isabelle/HOL: A Proof Assistant for Higherorder. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  39. 39.
    Nomura Research Institute: Survey on blockchain technologies and related services.
  40. 40.
    Pierrot, C., Wesolowski, B.: Malleability of the blockchain’s entropy. IACR Cryptology ePrint Archive 2016, 370 (2016)Google Scholar
  41. 41.
    Piessens, F.: A taxonomy of causes of software vulnerabilities in internet software. In: International Symposium on Software Reliability Engineering, pp. 47–52 (2002)Google Scholar
  42. 42.
    Popejoy, S.: The Pact smart contract language (2016).
  43. 43.
    Sompolinsky, Y., Zohar, A.: Secure high-rate transaction processing in bitcoin. In: Böhme, R., Okamoto, T. (eds.) FC 2015. LNCS, vol. 8975, pp. 507–527. Springer, Heidelberg (2015). doi: 10.1007/978-3-662-47854-7_32 CrossRefGoogle Scholar
  44. 44.
    Swamy, N., Hritcu, C., Keller, C., Rastogi, A., Delignat-Lavaud, A., Forest, S., Bhargavan, K., Fournet, C., Strub, P., Kohlweiss, M., Zinzindohoue, J.K., Béguelin, S.Z.: Dependent types and multi-monadic effects in F*. In: POPL (2016)Google Scholar
  45. 45.
    Szabo, N.: Formalizing and securing relationships on public networks. First Monday 2(9) (1997).
  46. 46.
    UK Government Chief Scientific Adviser: Distributed ledger technology: beyond block chain.
  47. 47.
    Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014).
  48. 48.
    Wüst, K., Gervais, A.: Ethereum Eclipse Attacks. Technical report, ETH-Zürich (2016)Google Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  • Nicola Atzei
    • 1
  • Massimo Bartoletti
    • 1
    Email author
  • Tiziana Cimoli
    • 1
  1. 1.Università degli Studi di CagliariCagliariItaly

Personalised recommendations