中文

Slither:一种面向智能合约的静态分析框架

软件工程 2019-08-28 v1 密码学与安全

摘要

本文描述了 Slither,一个旨在提供关于以太坊智能合约丰富信息的静态分析框架。它通过将以 Solidity 编写的智能合约转换为称为 SlithIR 的中间表示来工作。SlithIR 使用静态单赋值(SSA)形式和精简指令集,以简化分析的实现,同时保留在将 Solidity 转换为字节码时会丢失的语义信息。Slither 允许应用常用的程序分析技术,如数据流和污点追踪。我们的框架有四种主要用例:(1)漏洞自动检测,(2)代码优化机会自动检测,(3)增进用户对合约的理解,以及(4)辅助代码审查。本文中,我们概述了 Slither,详述了其中间表示的设计,并在真实合约上评估了其能力。我们展示了 Slither 的缺陷检测快速、准确,并且在速度、鲁棒性以及检测与误报的平衡方面优于其他用于在以太坊智能合约中发现问题的静态分析工具。我们使用大型智能合约数据集比较了这些工具,并手动审查了 1000 个最常用合约的结果。

关键词

引用

@article{arxiv.1908.09878,
  title  = {Slither: A Static Analysis Framework For Smart Contracts},
  author = {Josselin Feist and Gustavo Grieco and Alex Groce},
  journal= {arXiv preprint arXiv:1908.09878},
  year   = {2019}
}