SolidityCheck:通过正则表达式快速检测智能合约问题
软件工程
2019-11-25 v2
摘要
作为近年来蓬勃发展的区块链平台,以太坊与比特币的不同之处在于它将智能合约引入区块链。Solidity 是最成熟且使用最广泛的智能合约编程语言之一,用于编写智能合约并将其部署到区块链上。然而,一旦区块链中的数据被写入,便无法修改。以太坊智能合约存储在区块链中,这使得智能合约无法再修复重入漏洞或整数溢出等问题之类的代码缺陷。目前,仍缺乏一种高效且有效的方法来检测 Solidity 中的这些问题。在本文中,我们首先对 Solidity 中所有可能的问题进行分类,然后提出一种面向 Solidity 的智能合约问题检测方法,即 SolidityCheck。该方法使用正则表达式定义问题语句的特征,并利用正则匹配和程序插桩来预防或检测问题。最后,通过大量实验表明 SolidityCheck 优于现有方法。
引用
@article{arxiv.1911.09425,
title = {SolidityCheck : Quickly Detecting Smart Contract Problems Through Regular Expressions},
author = {Pengcheng Zhang and Feng Xiao and Xiapu Luo},
journal= {arXiv preprint arXiv:1911.09425},
year = {2019}
}
备注
17 pages, 5 figures and 11 tables