Security Smells in Smart Contracts

Authored by: M. Demir, M. Alalfi, O. Turetken and A. Ferworn

Abstract: The popularity of blockchain technology encourages organizations to use more blockchain features in mission-critical processes such as trading, access control, and computational public safety. Automation of processes with smart contracts is one of these features that significantly enlarge the scope of a blockchain implementation. Smart contracts help automate business processes by modeling business activities on the distributed ledger. Smart contracts are significantly different from other programs from a defect fixing and security issue handling perspective. The opportunity of fixing such issues is only available in the narrow window before registering the contract on to the blockchain. After a smart contract becomes a part of the chain, it is not possible to update or fix any issues. This distinct nature of smart contracts makes it essential to detect the program issues early on by paying attention to security smells. Security smells are clues that point to a deeper problem in the programming space. In this study, we review the literature and identify vulnerabilities that programmers and beneficiaries of smart contracts must avoid. We explain these security smells and categorize them based on their nature. We also review the applications that detect these vulnerabilities and provide information about their approach and coverage. Our main contribution is the evaluation of smart contracts as a platform or aid for mission-critical applications such as access control platforms. We conducted this evaluation by identifying the issues related to smart contracts and informing the reader about the problem, challenges, and techniques. We conclude by defining future directions for our research.

Citation: M. Demir, M. Alalfi, O. Turetken and A. Ferworn, ” Security Smells in Smart Contracts,” in IEEE International Conference IEEE International Conference on Software Security and Reliability (QRS), Sofia, Bulgaria, 2019

Available at: