Skip to main content
QUICK REVIEW

[論文レビュー] Tezla, an Intermediate Representation for Static Analysis of Michelson Smart Contracts

João Santos Reis, Paul Crocker|arXiv (Cornell University)|Jan 1, 2020
Blockchain Technology Applications and Security参考文献 11被引用数 4
ひとこと要約

この論文では、意味的同等性、制御フロー、ガス消費を保持する、Michelsonスマートコントラクト向けのストアベースの中間表現(IR)であるTezlaを紹介する。スタックベースのMichelsonコードを明示的な変数代入とφ関数を持つ静的単一代入(SSA)形式に変換することにより、Tezlaは既存のプログラム解析フレームワークを用いた有効な静的解析を可能にする。これは、非自明な性質(例:符号解析)を検証するためのSoftCheckプラットフォームとの統合による事例研究によって実証されている。

ABSTRACT

This paper introduces Tezla, an intermediate representation of Michelson smart contracts that eases the design of static smart contract analysers. This intermediate representation uses a store and preserves the semantics, ow and resource usage of the original smart contract. This enables properties like gas consumption to be statically verified. We provide an automated decompiler of Michelson smart contracts to Tezla. In order to support our claim about the adequacy of Tezla, we develop a static analyser that takes advantage of the Tezla representation of Michelson smart contracts to prove simple but non-trivial properties.

研究の動機と目的

  • Tezosスマートコントラクトで使用されるスタックベースの言語であるMichelsonに対する有効な静的解析サポートの欠如に対処すること。
  • Michelsonのスタックベースのモデルと、通常ストアベースでSSA形式を想定した静的解析ツールとの間のギャップを埋めること。
  • 意味的に忠実なIRを介して、Michelsonコントラクトにおけるガス消費やリソース使用量などの性質の形式的検証を可能にすること。
  • 正しさとリソース意味論を保持する、再利用可能で自動化されたMichelsonからTezlaへのデコンパイラを提供すること。
  • TezlaをTezosエコシステムにおける原理的で静的解析プラットフォームの基盤として使用する可能性を実証すること。

提案手法

  • TezlaはMichelsonのスタック操作を変数代入に変換し、スタック操作を明示的なストアベースの操作に置き換える。
  • プッシュ系命令は変数代入に変換され、スタックを消費する操作は変数引数付きの関数呼び出しに変換される。
  • IF_CONS や IF_NONE などの分岐構造は、SSA形式を維持し制御フローを追跡するためにφ関数を用いてモデル化される。
  • LOOP_LEFT などのループ構造は、ループの各イテレーション間でSSA意味論を保持するためにφ関数を用いてエンコードされる。
  • ガス消費はTezlaの意味論に明示的にモデル化されており、リソース使用量の静的検証が可能になる。
  • MichelsonからTezlaへの自動デコンパイラが実装されており、意味論、制御フロー、リソース使用量を保持している。

実験結果

リサーチクエスチョン

  • RQ1スタックベースのMichelsonスマートコントラクトの意味論を、制御フローとリソース使用量を保持したまま、ストアベースの中間表現として効果的にモデル化できるか?
  • RQ2Michelsonのようなスタックベースの言語から導出される表現において、静的単一代入(SSA)形式を自然に強制する方法は何か?
  • RQ3既存の静的解析フレームワークは、Tezlaのような意味的に忠実なIRを介して、Michelsonコントラクトをどの程度適応して解析できるか?
  • RQ4Tezlaは、符号解析やガス消費といった非自明な性質の検証をMichelsonコントラクトでサポートできるか?
  • RQ5Michelsonコントラクトにおけるエントリポイントの多態性は、Tezlaでどのようにモデル化され、分析可能になるか?モジュラリティと解析の精度を向上させるにはどうすればよいか?

主な発見

  • Tezla表現は、元の意味論と制御フローを保持したまま、スタックベースのMichelsonスマートコントラクトをストアベースでSSA形式の中間表現に成功して変換した。
  • MichelsonからTezlaへのデコンパイラはガス消費の意味論を保持しており、リソース使用量の静的検証を可能にしている。
  • 事例研究により、TezlaがSoftCheckプラットフォームを介してMichelsonコントラクトに符号解析などの静的解析技術を適用可能にしていることが実証された。
  • Tezlaにおけるφ関数の使用により、リストの分解や反復処理を含む分岐およびループ構造の正確なモデル化が可能になった。
  • 解析結果から、Tezlaは明確な制御フローグラフの生成を可能にし、変数の符号やリソース使用量といった性質の検出を可能にしている。
  • 著者らは、TezlaがMichelsonコントラクトの原理的で静的解析の基盤として実用的であると確認しており、今後はリソース意味論の形式的定式化と既存の検証プラットフォームとの統合を計画している。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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