Advertisement

A Survey of Attacks on Ethereum Smart Contracts (SoK)

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

Abstract

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.

Keywords

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.

Notes

Acknowledgments

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”.

References

  1. 1.
    Announcement of imminent hard fork for EIP150 gas cost changes. https://blog.ethereum.org/2016/10/13/announcement-imminent-hard-fork-eip150-gas-cost-changes/
  2. 2.
    Bitcointalk: Hi!My name is Rubixi. https://bitcointalk.org/index.php?topic=1400536.60
  3. 3.
  4. 4.
    The ethereum network is currently undergoing a dos attack. https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack/
  5. 5.
    Ethereum reddit page. https://www.reddit.com/r/ethereum
  6. 6.
    Ethereum Wiki: Contract security techniques and tips. https://github.com/ethereum/wiki/wiki/Safety
  7. 7.
  8. 8.
  9. 9.
    Hacking, Distribute: Scanning live Ethereum contracts for the “unchecked-send” bug. http://hackingdistributed.com/2016/06/16/scanning-live-ethereum-contracts-for-bugs/
  10. 10.
    King of the Ether Throne: Post mortem investigation. https://www.kingoftheether.com/postmortem.html
  11. 11.
    MAker DART: a random number generating game for Ethereum. https://github.com/makerdao/maker-darts
  12. 12.
    RANDAO: a DAO working as RNG of Ethereum. https://github.com/randao/randao
  13. 13.
    Solidity: security considerations. http://solidity.readthedocs.io/en/develop/index.html
  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). http://r3cev.com/s/corda-introductory-whitepaper-final.pdf
  23. 23.
    Buterin, V.: Ethereum: a next generation smart contract and decentralized application platform (2013). https://github.com/ethereum/wiki/wiki/White-Paper
  24. 24.
    Churyumov, A.: Byteball: a decentralized system for transfer of value (2016). https://byteball.org/Byteball.pdf
  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.
    Etherscripter. http://etherscripter.com
  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. https://yoichihirai.com/deed.pdf
  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). http://eprint.iacr.org/2016/633
  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). https://bitcoin.org/bitcoin.pdf
  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. http://www.meti.go.jp/english/press/2016/pdf/0531_01f.pdf
  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). http://kadena.io/pact
  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). http://firstmonday.org/htbin/cgiwrap/bin/ojs/index.php/fm/article/view/548
  46. 46.
    UK Government Chief Scientific Adviser: Distributed ledger technology: beyond block chain. https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf
  47. 47.
    Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014). gavwood.com/paper.pdf
  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
  • Tiziana Cimoli
    • 1
  1. 1.Università degli Studi di CagliariCagliariItaly

Personalised recommendations