[论文解读] Pre-deployment Analysis of Smart Contracts -- A Survey
本综述通过程序属性对智能合约漏洞及预部署分析方法进行了系统性分类,揭示了形式化方法与符号执行在验证活性属性和复杂领域特定属性方面表现卓越,而机器学习在检测多样化漏洞方面展现出高精度与高召回率,为静态分析的可用性提供了新视角。
Smart contracts are programs that execute transactions involving independent parties and cryptocurrencies. As programs, smart contracts are susceptible to a wide range of errors and vulnerabilities. Such vulnerabilities can result in significant losses. Furthermore, by design, smart contract transactions are irreversible. This creates a need for methods to ensure the correctness and security of contracts pre-deployment. Recently there has been substantial research into such methods. The sheer volume of this research makes articulating state-of-the-art a substantial undertaking. To address this challenge, we present a systematic review of the literature. A key feature of our presentation is to factor out the relationship between vulnerabilities and methods through properties. Specifically, we enumerate and classify smart contract vulnerabilities and methods by the properties they address. The methods considered include static analysis as well as dynamic analysis methods and machine learning algorithms that analyze smart contracts before deployment. Several patterns about the strengths of different methods emerge through this classification process.
研究动机与目标
- 为应对智能合约预部署分析研究文献快速增长所带来的导航挑战。
- 基于其针对的程序属性,识别并分类智能合约漏洞与分析方法,以更清晰地理解各类方法的优势与局限。
- 采用系统文献综述方法,建立透明且可复现的评审框架,以映射智能合约预部署分析领域的最新研究现状。
- 指出在完备性与基准测试方面的不足,特别是缺乏标准化的漏洞命名与共享基准,难以进行工具对比。
提出的方法
- 作者对2015年至2022年间的出版物进行了系统性文献综述,依据与智能合约预部署分析的相关性筛选研究工作。
- 根据其针对的程序属性对漏洞与分析方法进行分类,采用包含35种不同属性的分类体系,按类别如安全性、活性属性及领域特定约束进行组织。
- 评估了35种分析方法在静态分析、动态分析、符号执行、模型检测、定理证明与机器学习等类别中的表现,评估其验证特定属性的能力。
- 分类强调属性与方法之间的关系,揭示出如形式化方法是唯一适用于证明活性属性的方法,而符号执行是唯一用于验证地址完整性与存款有效性的方法等规律。
- 评估了完备性与基准测试实践,发现仅有11种属性与17种方法具备数学上证明的完备性,并指出标准化基准与漏洞分类体系的严重缺乏。
- 通过对比各研究中属性规格的表述,对术语进行标准化并确保一致性,例如将“单次进入”视为“状态保持性”的一种特殊情况。
实验结果
研究问题
- RQ1智能合约漏洞与预部署分析方法如何与特定程序属性相关联?从这种关联中可识别出哪些模式?
- RQ2哪些分析方法在验证特定类型属性(如活性、安全性或领域特定约束)方面最为有效?
- RQ3现有分析方法的完备性现状如何?其中有多少方法具备形式化的数学保证?
- RQ4当前的基准测试与漏洞分类体系在多大程度上支持对分析工具的可靠比较?
- RQ5机器学习方法在检测性能上是否可与传统静态分析相媲美或更优,特别是在识别复杂或新型漏洞方面?
主要发现
- 形式化方法(包括模型检测与定理证明)是唯一能够验证全部四种活性属性的方法,其中两种属性在本综述中未被其他任何方法覆盖。
- 符号执行是唯一用于验证两项特定领域特定属性(地址完整性与存款有效性)的方法。
- 机器学习(尤其是深度学习)在检测性能上超越了最先进的静态分析工具,并能覆盖广泛属性,包括活性属性与复杂领域特定约束。
- 在35种属性中仅有11种、在35种分析方法中仅有17种具备数学上确立的完备性,表明大多数现有工具在形式化验证方面存在显著缺口。
- 模糊测试在证伪各类属性方面极为高效,包括基础性、复杂性及用户自定义属性,使其成为发现反例的强大技术。
- 静态类型检查是唯一广泛应用于非以太坊智能合约的传统分析方法,而领域特定语言(如Michelson与Albert)则在语言层面集成形式化验证,通过类型系统显著提升安全性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。