Skip to main content
QUICK REVIEW

[论文解读] GASTAP: A Gas Analyzer for Smart Contracts.

Elvira Albert, Pablo Gordillo|arXiv (Cornell University)|Nov 22, 2018
Security and Verification in Computing参考文献 13被引用 17
一句话总结

GASTAP 是一个静态分析平台,可自动推断以太坊智能合约函数的精确气体消耗上限,支持 EVM、反汇编 EVM 和 Solidity 输入。通过确保气体限制超过这些上限,可保证合约不会因气体耗尽而出现漏洞。

ABSTRACT

Gas is a measurement unit of the computational effort that it will take to execute every single operation that takes part in the Ethereum blockchain platform. Each instruction executed by the Ethereum Virtual Machine (EVM) has an associated gas consumption specified by Ethereum. If a transaction exceeds the amount of gas allotted by the user (known as gas limit), an out-of-gas exception is raised. There is a wide family of contract vulnerabilities due to out-of-gas behaviours. We report on the design and implementation of GASTAP, a Gas-Aware Smart contracT Analysis Platform, which takes as input a smart contract (either in EVM, disassembled EVM, or in Solidity source code) and automatically infers sound gas upper bounds for all its public functions. Our bounds ensure that if the gas limit paid by the user is higher than our inferred gas bounds, the contract is free of out-of-gas vulnerabilities.

研究动机与目标

  • 为解决因气体限制不足而导致的以太坊智能合约中广泛存在的气体耗尽漏洞问题。
  • 设计并实现一个气体感知的静态分析平台,为所有公开合约函数计算精确且可靠的气体使用上限。
  • 支持多种输入格式——EVM 字节码、反汇编 EVM 和 Solidity 源代码,以实现广泛的可用性。
  • 确保若用户的气体限制超过推断出的上限,则合约不会因气体耗尽而失败。
  • 为智能合约在部署前的气体安全验证提供一个形式化正确且可扩展的解决方案。

提出的方法

  • 该平台对以 EVM、反汇编 EVM 或 Solidity 源代码形式存在的智能合约代码执行静态分析,以计算气体使用上限。
  • 通过符号执行和控制流分析,追踪所有可能执行路径上的气体消耗。
  • 按 EVM 指令对气体消耗进行建模,每个操作码均根据以太坊规范分配固定的气体成本。
  • 通过聚合所有可行路径上的气体成本,计算每个公开函数的最大气体使用量。
  • 综合生成可靠的气体使用上限,以保证没有任何执行路径会超过计算出的限制。
  • 平台可集成至现有的智能合约开发与验证工作流中,实现实际部署。

实验结果

研究问题

  • RQ1静态分析平台能否准确推断出以太坊智能合约函数气体消耗的可靠上限?
  • RQ2该平台在合约部署前检测潜在气体耗尽漏洞方面的有效性如何?
  • RQ3该平台在处理多样化输入表示(包括 EVM 字节码和高级 Solidity 代码)方面的能力如何?
  • RQ4在真实世界智能合约中,气体上限推断的精度与可扩展性如何?
  • RQ5推断出的气体上限能否用于形式化保证合约不会因气体限制而失败?

主要发现

  • GASTAP 可成功为给定智能合约中所有公开函数计算出可靠的气体消耗上限,且不依赖于输入格式。
  • 推断出的气体上限足够充分,可保证只要用户的气体限制超过该上限,交易就不会因气体耗尽异常而失败。
  • 该平台支持多种输入表示形式,包括 EVM 字节码、反汇编 EVM 和 Solidity 源代码,具备广泛的兼容性。
  • 分析过程具有可靠性,确保没有任何执行路径会超过计算出的气体上限,从而彻底消除气体耗尽漏洞的漏报。
  • 该平台支持气体安全的形式化验证,为防止运行时气体相关故障提供了实用解决方案。
  • 该方法在真实合约上表现出良好的可扩展性,为智能合约开发者提供了可实际部署的解决方案。

更好的研究,从现在开始

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

无需绑定信用卡

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