Skip to main content
QUICK REVIEW

[论文解读] VeriSmart: A Highly Precise Safety Verifier for Ethereum Smart Contracts

Sunbeom So, Myungho Lee|arXiv (Cornell University)|Aug 29, 2019
Security and Verification in Computing参考文献 48被引用 5
一句话总结

VeriSmart 是一个高度精确、完全自动化的以太坊智能合约验证器,能够以极低的误报率检测出算术安全错误(如整数溢出/下溢和除零错误)。它通过一种新颖的 CEGIS 风格算法自动发现并利用交易不变性,从而在真实智能合约上的精度和召回率方面优于现有工具。

ABSTRACT

We present VeriSmart, a highly precise verifier for ensuring arithmetic safety of Ethereum smart contracts. Writing safe smart contracts without unintended behavior is critically important because smart contracts are immutable and even a single flaw can cause huge financial damage. In particular, ensuring that arithmetic operations are safe is one of the most important and common security concerns of Ethereum smart contracts nowadays. In response, several safety analyzers have been proposed over the past few years, but state-of-the-art is still unsatisfactory; no existing tools achieve high precision and recall at the same time, inherently limited to producing annoying false alarms or missing critical bugs. By contrast, VeriSmart aims for an uncompromising analyzer that performs exhaustive verification without compromising precision or scalability, thereby greatly reducing the burden of manually checking undiscovered or incorrectly-reported issues. To achieve this goal, we present a new domain-specific algorithm for verifying smart contracts, which is able to automatically discover and leverage transaction invariants that are essential for precisely analyzing smart contracts. Evaluation with real-world smart contracts shows that VeriSmart can detect all arithmetic bugs with a negligible number of false alarms, far outperforming existing analyzers.

研究动机与目标

  • 为解决以太坊智能合约在不可变性和高财务风险背景下的精确且全面验证的迫切需求,特别是针对算术安全问题。
  • 克服现有工具在检测算术漏洞时存在高误报或漏报率的局限性。
  • 开发一种无需手动注释或不完整分析的自动化、可扩展且精确的验证方法。
  • 通过在分析过程中自动发现领域特定的不变性,实现智能合约的完全自动化、全面且精确的验证。
  • 证明自动不变性发现能显著提升真实世界智能合约分析中的验证精度和召回率。

提出的方法

  • 核心方法是一种 CEGIS 风格(反例引导的归纳归纳)算法,通过在验证过程中迭代生成和验证候选交易不变性。
  • 该算法通过分析智能合约中的控制流和数据流,自动发现交易不变性——即在任意事务交错下均成立的性质。
  • 它利用符号执行和 SMT 求解来验证候选不变性,并通过反例反馈进行迭代优化。
  • 该方法专为以太坊智能合约设计,聚焦于算术安全,包括溢出/下溢和除零错误。
  • 验证过程是全面且可靠的,确保不会遗漏任何漏洞,同时通过利用发现的不变性保持高精度。
  • 该方法具有通用性,可扩展至算术安全之外的其他智能合约安全属性。

实验结果

研究问题

  • RQ1完全自动化的验证工具是否能在以太坊智能合约中同时实现高精度和高召回率地检测算术安全错误?
  • RQ2自动发现交易不变性在提升智能合约验证精度方面有多有效?
  • RQ3CEGIS 风格算法能否被有效适配至智能合约领域,以减少误报率,同时保持全面性?
  • RQ4VeriSmart 在漏洞检测能力和误报率方面与现有最先进工具相比表现如何?
  • RQ5与通用抽象域相比,交易不变性在多大程度上捕获了精确算术安全验证所必需的语义约束?

主要发现

  • VeriSmart 在 60 个真实世界智能合约中检测到全部 487 个已知算术漏洞(如溢出/下溢),误报率仅为 0.41%。
  • 相比之下,现有漏洞检测工具如 Osiris、Oyente、Mythril 和 MantiCore 错过了超过 29.3% 的已知漏洞,且误报率更高(>5.4%)。
  • 得益于其自动发现并利用交易不变性的能力,VeriSmart 显著降低了误报率,优于最先进的验证器 Zeus 和 SMTChecker。
  • 该工具实现了近乎完美的召回率(100%)和近乎为零的误报率,证明了其不变性发现机制的有效性。
  • CEGIS 风格算法成功推导出有意义且领域特定的不变性,这些不变性无法被传统抽象域(如区间或八面体)捕获。
  • 评估结果证实,自动不变性发现对于实现智能合约验证的精度与全面性至关重要。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。