Skip to main content
QUICK REVIEW

[論文レビュー] A Survey of Smart Contract Formal Specification and Verification

Palina Tolmach, Yi Li|arXiv (Cornell University)|Aug 6, 2020
Blockchain Technology Applications and Security参考文献 211被引用数 19
ひとこと要約

本調査では、スマートコントラクトの形式的仕様記述および検証技術について包括的な分析を提供し、形式的モデリング手法、性質仕様、検証手法を分類している。関数的正しさの検証にはモデルチェックイングが広く使われており、セキュリティの検証にはシンボリック実行が用いられているが、自動修復、ハイブリッドモデリング、標準化の分野におけるギャップが指摘されており、安全なスマートコントラクト開発のための今後の研究のためのロードマップを提示している。

ABSTRACT

A smart contract is a computer program which allows users to automate their actions on the blockchain platform. Given the significance of smart contracts in supporting important activities across industry sectors including supply chain, finance, legal and medical services, there is a strong demand for verification and validation techniques. Yet, the vast majority of smart contracts lack any kind of formal specification, which is essential for establishing their correctness. In this survey, we investigate formal models and specifications of smart contracts presented in the literature and present a systematic overview in order to understand the common trends. We also discuss the current approaches used in verifying such property specifications and identify gaps with the hope to recognize promising directions for future work.

研究の動機と目的

  • スマートコントラクトにおける形式的モデリング、仕様記述、検証手法を体系的に分析すること。
  • スマートコントラクトの文献で確認される共通の性質およびセキュリティ保証を特定すること。
  • 関数的正しさとセキュリティへの応用に基づいて形式的手法を分類すること。
  • 現在のアプローチの制限を浮き彫りにし、今後の研究方向性を提案すること。
  • 標準化された実践および検証済みライブラリを通じて、形式的手法の採用を促進すること。

提案手法

  • 本調査は、Google Scholarを用いた構造化された検索クエリを用いて、スマートコントラクトに適用された形式的手法に焦点を当てた体系的文献レビューを実施している。
  • 形式的モデリング手法はコントラクトレベルおよびプログラムレベルの表現に分類され、特にモデルチェックイングとシンボリック実行に重点が置かれている。
  • 著者らは、関数的正しさ、セキュリティ、公平性やライブネスなどの時間的性質を含むスマートコントラクトの性質の分類を構築している。
  • シンボリック実行、定理証明、ランタイム検証などの検証手法を評価しており、イーサリアムスマートコントラクトを用いた事例研究が含まれる。
  • 静的および動的解析を組み合わせたハイブリッドアプローチを組み込み、テストスイートおよびガス効率に基づいた自動パッチ生成の有効性を評価している。
  • ベンチマークデータセット、セキュリティパターン、およびSafeMathのような形式的に検証済みライブラリをレビューし、実用的採用状況およびツールの有効性を評価している。

実験結果

リサーチクエスチョン

  • RQ1どのような形式的手法がスマートコントラクトのモデリング、仕様記述、検証に用いられており、どのような性質が一般的に対象とされているか?
  • RQ2コントラクトレベルとプログラムレベルの形式的記述の両方が、関数的正しさおよびセキュリティの検証においてどのように比較されるか?
  • RQ3ブロックチェーン固有の制約により、形式的手法をスマートコントラクトに適用する際に直面する主な課題は何か?
  • RQ4静的および動的検証を組み合わせたハイブリッド分析手法は、脆弱性の検出にどの程度効果的か?
  • RQ5標準化されたパターン、検証済みライブラリ、ベンチマークは、スマートコントラクトの形式的検証の進展にどのような役割を果たしているか?

主な発見

  • モデルチェックイングは、不変性やライブネスなどの性質を含め、コントラクトレベルでの関数的正しさの検証に広く用いられている。
  • シンボリック実行および定理証明は、再入力やオーバーフローなどのセキュリティ脆弱性を検出するためのプログラムレベル検証において主導的である。
  • ランタイム検証手法は、実行トレースを分析することで、公平性やデッドロックなどの時間的性質の違反を効果的に検出できる。
  • テストスイートおよびガス制約に基づいた自動パッチ生成は、既存の振るまいを損なわずに脆弱性を修復する上で有望な結果を示している。
  • SafeMathのような形式的に検証済みライブラリの採用は、形式的手法の実用的実現可能性と影響力を示している。
  • 共同での標準化およびベンチマークの取り組みが増加しており、整理されたデータセットおよび評価フレームワークにより、ツールの信頼性と再現性が向上している。

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

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

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

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