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.
References
- 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/Google Scholar
- Bitcointalk: Hi!My name is Rubixi. https://bitcointalk.org/index.php?topic=1400536.60Google Scholar
- Ethereum Classic. https://ethereumclassic.github.io/Google Scholar
- The ethereum network is currently undergoing a dos attack. https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack/Google Scholar
- Ethereum reddit page. https://www.reddit.com/r/ethereumGoogle Scholar
- Ethereum Wiki: Contract security techniques and tips. https://github.com/ethereum/wiki/wiki/SafetyGoogle Scholar
- Explaining eip 150. https://www.reddit.com/r/ethereum/comments/56f6we/explaining_eip_150/Google Scholar
- GovernMental main page. http://governmental.github.io/GovernMental/Google Scholar
- Hacking, Distribute: Scanning live Ethereum contracts for the "unchecked-send" bug. http://hackingdistributed.com/2016/06/16/scanning-live-ethereum-contracts-for-bugs/Google Scholar
- King of the Ether Throne: Post mortem investigation. https://www.kingoftheether.com/postmortem.htmlGoogle Scholar
- MAker DART: a random number generating game for Ethereum. https://github.com/makerdao/maker-dartsGoogle Scholar
- RANDAO: a DAO working as RNG of Ethereum. https://github.com/randao/randaoGoogle Scholar
- Solidity: security considerations. http://solidity.readthedocs.io/en/develop/index.htmlGoogle Scholar
- Understanding the DAO attack. http://www.coindesk.com/understanding-dao-hack-journalists/Google Scholar
- Anderson, L., Holz, R., Ponomarev, A., Rimba, P., Weber, I.: New kids on the block: an analysis of modern blockchains. CoRR, abs/1606.06530 2016Google Scholar
- Andrychowicz, M., Dziembowski, S., Malinowski, D., Mazurek, L.: Secure multiparty computations on Bitcoin. In: IEEE S&P, pp. 443---458 2014 Google Scholar
Digital Library
- 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
Digital Library
- Bishop, M.: A taxonomy of Unix system and network vulnerabilities. Technical Report, CSE-95-10, Department of Computer Science, University of California at Davis 1995Google Scholar
- Bishop, M.: Vulnerabilities analysis. In: Proceedings of the Recent Advances in Intrusion Detection, pp. 125---136 1999Google Scholar
- Boneh, D., Naor, M.: Timed commitments. In: Bellare, M. ed. CRYPTO 2000. LNCS, vol. 1880, pp. 236---254. Springer, Heidelberg 2000. Google Scholar
Digital Library
- Bonneau, J., Clark, J., Goldfeder, S.: On Bitcoin as a public randomness source. IACR Cryptology ePrint Archive 2015, 1015 2015Google Scholar
- Brown, R.G., Carlyle, J., Grigg, I., Hearn, M.: Corda: an introduction 2016. http://r3cev.com/s/corda-introductory-whitepaper-final.pdfGoogle Scholar
- Buterin, V.: Ethereum: a next generation smart contract and decentralized application platform 2013. https://github.com/ethereum/wiki/wiki/White-PaperGoogle Scholar
- Churyumov, A.: Byteball: a decentralized system for transfer of value 2016. https://byteball.org/Byteball.pdfGoogle Scholar
- Clack, C.D., Bakshi, V.A., Braine, L.: Smart contract templates: foundations, design landscape and research directions. CoRR abs/1608.00771 2016Google Scholar
- 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 2016Google Scholar
- Etherscripter. http://etherscripter.comGoogle Scholar
- Eyal, I., Sirer, E.: Majority is not enough: bitcoin mining is vulnerable. In: Financial Cryptography and Data Security, pp. 436---454 2014Google Scholar
- Frantz, C.K., Nowostawski, M.: From institutions to code: towards automated generation of smart contracts. In: Workshop on Engineering Collective Adaptive Systems eCAS 2016Google Scholar
- 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.Google Scholar
Cross Ref
- 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
Digital Library
- Hirai, Y.: Formal verification of Deed contract in Ethereum name service. https://yoichihirai.com/deed.pdfGoogle Scholar
- Landwehr, C.E., Bull, A.R., McDermott, J.P., Choi, W.S.: A taxonomy of computer program security flaws. ACM Comput. Surv. 263, 211---254 1994 Google Scholar
Digital Library
- 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 Google Scholar
Digital Library
- Luu, L., Teutsch, J., Kulkarni, R., Saxena, P.: Demystifying incentives in the consensus computer. In: ACM CCS, pp. 706---719 2015 Google Scholar
Digital Library
- Marino, B., Juels, A.: Setting standards for altering and undoing smart contracts. In: RuleML, pp. 151---166 2016Google Scholar
Cross Ref
- Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system 2008. https://bitcoin.org/bitcoin.pdfGoogle Scholar
- Nipkow, T., Wenzel, M., Paulson, L.C. eds.: Isabelle/HOL: A Proof Assistant for Higherorder. LNCS, vol. 2283. Springer, Heidelberg 2002 Google Scholar
Digital Library
- Nomura Research Institute: Survey on blockchain technologies and related services. http://www.meti.go.jp/english/press/2016/pdf/0531_01f.pdfGoogle Scholar
- Pierrot, C., Wesolowski, B.: Malleability of the blockchain's entropy. IACR Cryptology ePrint Archive 2016, 370 2016Google Scholar
- Piessens, F.: A taxonomy of causes of software vulnerabilities in internet software. In: International Symposium on Software Reliability Engineering, pp. 47---52 2002Google Scholar
- Popejoy, S.: The Pact smart contract language 2016. http://kadena.io/pactGoogle Scholar
- 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.Google Scholar
- 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
Digital Library
- Szabo, N.: Formalizing and securing relationships on public networks. First Monday 29 1997. http://firstmonday.org/htbin/cgiwrap/bin/ojs/index.php/fm/article/view/548Google Scholar
- 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.pdfGoogle Scholar
- Wood, G.: Ethereum: a secure decentralised generalised transaction ledger 2014. gavwood.com/paper.pdfGoogle Scholar
- Wüst, K., Gervais, A.: Ethereum Eclipse Attacks. Technical report, ETH-Zürich 2016Google Scholar




Comments