With the rise in using immature smart contract programming languages to build a decentralized application, more vulnerabilities have been introduced to the Blockchain and were the main reasons behind critical financial losses. Moreover, the immutability of Blockchain technology makes deployed smart contracts unfixable for the whole life of the Blockchain itself. The lack of complete and up-to-date resources that explain those vulnerabilities in detail has also contributed to increasing the number of vulnerabilities in Blockchain. In addition, the lack of a standardized nomination of the existing vulnerabilities has made redundant research and made developers more confused. Therefore, in this paper, we propose the most complete list of smart contract vulnerabilities that exist in the most popular Blockchains with a detailed explanation of each one of them. In addition, we propose a new codification system that facilitates the communication of those vulnerabilities between developers and researchers. This codification, help identify the most uncovered vulnerabilities to focus on in future research. Moreover, the discussed list of vulnerabilities covers multiple Blockchain and could be used for even future built Blockchains.
翻译:随着使用不成熟的智能合约编程语言构建去中心化应用的兴起,更多漏洞被引入区块链,并成为重大经济损失的主要原因。此外,区块链技术的不可篡改性使得已部署的智能合约在区块链整个生命周期内无法修复。由于缺乏完整且及时更新的资源来详细解释这些漏洞,也加剧了区块链中漏洞数量的增长。同时,现有漏洞缺乏标准化命名,导致研究重复且使开发者更加困惑。因此,本文提出了针对主流区块链中最全面的智能合约漏洞清单,并对每个漏洞进行了详细解释。此外,我们提出了一套新的编码体系,以促进开发者与研究人员之间对这些漏洞的沟通。该编码有助于识别最未被充分研究的漏洞,从而为未来的研究提供重点。更重要的是,本文讨论的漏洞清单覆盖了多个区块链,甚至可用于未来构建的区块链。