Skip to main content
QUICK REVIEW

[論文レビュー] Profiling Gas Leaks in Solidity Smart Contracts

Gerardo Canfora, Andrea Di Sorbo|arXiv (Cornell University)|Aug 12, 2020
Blockchain Technology Applications and Security参考文献 30被引用数 5
ひとこと要約

本論文は、イーサリアムスマートコントラクトにおけるガスコストの増加を引き起こす19のソリディティコードスモールを特定し、ガス効率を評価するための静的解析スイートであるGasMetを提案する。2,186件のコントラクトを対象とした実験により、これらのメトリクスがデプロイコストと強く相関していることが確認され、開発者が高コストなコードセグメントを特定・最適化できるようになった。

ABSTRACT

Nowadays, more and more applications are developed for running on a distributed ledger technology, namely dApps. The business logic of dApps is usually implemented within smart contracts developed through Solidity, a programming language for writing smart contracts on different blockchain platforms, including the popular Ethereum. In Ethereum, the smart contracts run on the machines of miners and the gas corresponds to the execution fee compensating such computing resources. However, the deployment and execution costs of a smart contract depend on the implementation choices done by developers. Unappropriated design choices could lead to higher gas consumption than necessary. In this paper, we (i) identify a set of 19 Solidity code smells affecting the deployment and transaction costs of a smart contract, and (ii) assess the relevance of such smells through a survey involving 34 participants. On top of these smells, we propose GasMet, a suite of metrics for statically evaluating the code quality of a smart contract from the gas consumption perspective. An experiment involving 2,186 smart contracts demonstrates that the proposed metrics have direct associations with deployment costs. The metrics in our suite can be used for more easily identifying source code segments that need optimizations.

研究の動機と目的

  • スマートコントラクトのデプロイおよび実行中に不要なガス消費を引き起こすソリディティコードスモールを特定すること。
  • 34名のソフトウェア工学プロフェッショナルを対象としたアンケートを通じて、これらのコードスモールの関連性を評価すること。
  • スマートコントラクトのソースコードにおけるガス効率を評価するための静的メトリクスのセットであるGasMetを開発すること。
  • 実世界のスマートコントラクトにおけるGasMetメトリクスと実際のデプロイコストとの相関関係を実証的に検証すること。

提案手法

  • スマートコントラクト開発における一般的なアンチパターンの分析を通じて、ガスコストに影響を与える19のソリディティコードスモールを同定した。
  • 34名の参加者を対象にアンケートを実施し、同定されたコードスモールの関連性および影響の度合いを評価した。
  • ガス非効率性を定量的に測定できる静的コードメトリクスのスイートとして、GasMetを設計した。
  • 2,186件の実世界スマートコントラクトにGasMetを適用し、デプロイコストとの関連性を測定した。
  • 統計的分析を用いて、GasMetメトリクスと実際のガス消費量との間の関係の強度を評価した。

実験結果

リサーチクエスチョン

  • RQ1どのソリディティコードスモールがスマートコントラクトにおけるガス消費の増加に顕著に寄与しているか?
  • RQ2業界の実務家が見た場合、これらのコードスモールはどれほど関連性があり、実際の開発現場で一般的に見られるものか?
  • RQ3提案されたGasMetメトリクスは、実世界のコントラクトにおける実際のデプロイコストとどの程度相関しているか?
  • RQ4GasMetは、高コストガス消費を引き起こす可能性のあるコードセグメントを効果的に特定できるか?

主な発見

  • 同定された19のコードスモールは、コントラクトのデプロイおよび実行時のガス使用量の増加と強く関連している。
  • アンケート参加者により、同定されたコードスモールの大多数が実際の現場で関連性があり、一般的に見られることが確認された。
  • GasMetメトリクスは、分析対象の2,186件のスマートコントラクトにおいて、デプロイコストと直接的かつ測定可能な関連性を示した。
  • 本研究により、GasMetは高ガス消費コードセグメントを効果的に特定し、最適化の対象とできることが確認された。
  • 結果から、ガス効率を意識したコード品質管理が、デプロイおよび実行コストの顕著な削減に寄与することが示唆された。

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

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

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

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