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入力をサポートする静的解析プラットフォームであり、Ethereumスマートコントラクト関数のガス消費量に対する整合的で安全な上限値を自動的に推論する。ガス制限がこれらの上限値を超えていれば、コントラクトがガス不足により失敗する心配がないことが保証される。

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.

研究の動機と目的

  • ガス制限が不十分なために生じるEthereumスマートコントラクトにおけるガス不足脆弱性という広範な問題に対処すること。
  • すべてのパublicコントラクト関数におけるガス使用量の正確で整合的な上限値を計算するガス対応の静的解析プラットフォームを設計・実装すること。
  • EVMバイナリコード、逆アセンブル済みEVM、およびSolidityソースコードといった複数の入力形式をサポートし、広範な利用可能性を実現すること。
  • ユーザーのガス制限が推論された上限値を超えていれば、コントラクトがガス不足により失敗しないことを保証すること。
  • デプロイ前にスマートコントラクトにおけるガスの安全性を形式的に保証する、形式的に整合的でスケーラブルなソリューションを提供すること。

提案手法

  • プラットフォームは、EVM、逆アセンブル済みEVM、またはSolidityソース形式のスマートコントラクトコードに対して静的解析を実行し、ガス使用量の上限値を計算する。
  • シンボリック実行と制御フロー解析を用いて、すべての可能な実行パスにわたるガス消費量を追跡する。
  • ガス消費量はEVM命令ごとにモデル化され、各オペコードにはEthereum仕様で定義された固定ガスコストが割り当てられる。
  • 分析は、すべての実行可能経路に沿ってガスコストを集計することで、各パブリック関数の最大ガス使用量を計算する。
  • 整合的な上限値が合成され、すべての実行経路が計算された制限を超えないことを保証する。
  • 実用的なデプロイを可能にするために、既存のスマートコントラクト開発および検証パイプラインと統合される。

実験結果

リサーチクエスチョン

  • RQ1静的解析プラットフォームは、Ethereumスマートコントラクト関数のガス消費量に対して、整合的で安全な上限値を正確に推論できるか?
  • RQ2このプラットフォームは、コントラクトデプロイ前に潜在的なガス不足脆弱性をどれほど効果的に検出できるか?
  • RQ3EVMバイナリコードや高レベルのSolidityコードを含む多様な入力表現形式を、どの程度処理できるか?
  • RQ4実世界のスマートコントラクトにおいて、ガス上限値の推論の精度とスケーラビリティはどの程度か?
  • RQ5推論されたガス上限値を用いて、コントラクトがガス制限制約により失敗しないことを形式的に保証できるか?

主な発見

  • GASTAPは、入力形式に関係なく、与えられたスマートコントラクトのすべてのパブリック関数について、整合的で安全なガス消費量の上限値を正しく計算する。
  • 推論されたガス上限値が、ユーザーのガス制限を超えていれば、トランザクションがガス不足例外により失敗しないことが保証される。
  • プラットフォームは、EVMバイナリコード、逆アセンブル済みEVM、およびSolidityソースコードといった複数の入力表現形式をサポートしており、広範な互換性を実現する。
  • 解析は整合的であり、すべての実行経路が計算されたガス制限を超えないことを保証するため、ガス不足脆弱性についての偽陰性が発生しない。
  • プラットフォームはガスの安全性の形式的検証を可能にし、実行時におけるガス関連の障害を防止する実用的なソリューションを提供する。
  • この手法は実世界のコントラクトに対しても効果的にスケーリングされ、スマートコントラクト開発者にとってデプロイ可能なソリューションを提供する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。