Skip to main content
QUICK REVIEW

[論文レビュー] Towards Safer Smart Contracts: A Survey of Languages and Verification Methods

Dominik Harz, William J. Knottenbelt|arXiv (Cornell University)|Sep 26, 2018
Blockchain Technology Applications and Security参考文献 27被引用数 75
ひとこと要約

包括的なスマートコントラクト言語(高位、IR、低位)と検証手法の調査。セキュリティ特性、形式的意味論、メータリング、および検証ツールチェーンに焦点を当てる。設計のトレードオフを分析し、安全なスマートコントラクトの将来の方向性を概説する。

ABSTRACT

With a market capitalisation of over USD 205 billion in just under ten years, public distributed ledgers have experienced significant adoption. Apart from novel consensus mechanisms, their success is also accountable to smart contracts. These programs allow distrusting parties to enter agreements that are executed autonomously. However, implementation issues in smart contracts caused severe losses to the users of such contracts. Significant efforts are taken to improve their security by introducing new programming languages and advance verification methods. We provide a survey of those efforts in two parts. First, we introduce several smart contract languages focussing on security features. To that end, we present an overview concerning paradigm, type, instruction set, semantics, and metering. Second, we examine verification tools and methods for smart contract and distributed ledgers. Accordingly, we introduce their verification approach, level of automation, coverage, and supported languages. Last, we present future research directions including formal semantics, verified compilers, and automated verification.

研究の動機と目的

  • セキュリティ機能とアーキテクチャ(パラダイム、型、命令セット、意味論、メータリング)を重視して、現在のスマートコントラクト言語を調査する。
  • 低レベル、IR、そして高レベル表現全体にわたるスマートコントラクトの検証ツールと手法を調査し、自動化、カバレッジ、および言語サポートを含める。
  • スマートコントラクトに特有のセキュリティ特性(呼び出し整合性、原子性、独立性、実行時正確性)を分析し、形式的意味論や検証済みコンパイラなどの将来の研究方向を論じる。

提案手法

  • 言語を高レベル、仲介表現(IR)、および低レベルのレベルに分類し、それらのパラダイム、命令セット、意味論、メータリングを論じる。
  • リエントラント、原子性、外部呼出しに対する言語設計と、セキュリティ特性のレビュー。
  • 検証アプローチの調査:モデルベース(自動)対証明ベース(半自動)を、自動化、カバレッジ、サポート言語の観点で議論。
  • 検証ツール(Securify, Mythril, Oyente, ZEUS, ECF, Maian, K frameworks, Lem, Coq, F*)を要約し、それらを低レベル、IR、または高レベルの入力に対応づけて整理する。
  • 形式的意味論の取り組みと、それらが検証済みコンパイラと安全な言語設計へ与える影響を論じる。

実験結果

リサーチクエスチョン

  • RQ1高レベル、IR、低レベルの表現にわたって、スマートコントラクトの安全性に影響を与える主要な言語設計の選択肢は何か?
  • RQ2スマートコントラクトのセキュリティを確保するためにどのような検証アプローチが用いられており、自動化、カバレッジ、言語サポートはツール間でどう異なるか?
  • RQ3形式的意味論と検証済みコンパイラの今後の方向性で、安全なスマートコントラクトの観点から最も有望なものは何か?

主な発見

  • 高レベル言語(例:Solidity、Vyper)は、命令セットを制限し、明示的な状態遷移を促進することで安全性を高めている。
  • Scilla、Simplicity などの仲介表現(IR)は形式的意味論と検証準備性を強調する一方、低レベル言語は決定論的実行とメータリング戦略(ガス、スクリプトサイズ)を優先する。
  • さまざまな検証ツールが異なる入力(低レベルバイトコード、IR、または高レベルコード)で動作し、自動化とカバレッジの度合いが異なる;モデルベースのツールは完全自動化を実現し得る一方、証明ベースのツールは部分的に自動化されている。
  • 形式的意味論の取り組み(K フレームワーク、Coq、Isabelle/HOL、F*)は厳密な検証を支援し、検証済みコンパイラと VM と台帳の意味論の分離へと推進している。

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

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

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

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