[論文レビュー] Scilla: a Smart Contract Intermediate-Level LAnguage
Scilla は検証済みスマートコントラクトの中間レベル言語で、計算とブロックチェーンとの対話を分離し、オートマタベースのモデルと Coq 埋め込みによる形式検証を可能にする。
This paper outlines key design principles of Scilla---an intermediate-level language for verified smart contracts. Scilla provides a clean separation between the communication aspect of smart contracts on a blockchain, allowing for the rich interaction patterns, and a programming component, which enjoys principled semantics and is amenable to formal verification. Scilla is not meant to be a high-level programming language, and we are going to use it as a translation target for high-level languages, such as Solidity, for performing program analysis and verification, before further compilation to an executable bytecode. We describe the automata-based model of Scilla, present its programming component and show how contract definitions in terms of automata streamline the process of mechanised verification of their safety and temporal properties.
研究の動機と目的
- セキュリティ事象や複雑なブロックチェーンの相互作用の中で、信頼性の高いスマートコントラクトの必要性を動機づける。
- Scilla を、コントラクトの挙動について厳密な形式的推論を可能にする中間言語として提案する。
- ブロックチェーン全体の相互作用とコントラクト内の計算を明確に分離する、オートマタベースの計算モデルを提供する。
- Coq 埋め込みを通じて安全性と生存性(ライブネス)性質の機械化検証を Scilla がどのようにサポートするかを示す。
提案手法
- Scilla を、高レベル言語(例: Solidity)からの翻訳対象として設計された中間言語として提示し、バイトコードへのコンパイル前のプログラム解析と検証を容易にする。
- コントラクトが原子遷移を持つ通信オートマタとして構成される、オートマタベースのモデルを説明する。
- 純粋な計算と効果的な状態変化の分離、および呼び出しと継続を CPS 風の継続を通じて分離することを説明する。
- 戻りフローをモデル化し、制御された外部呼び出しを支援する明示的な継続を導入し、再入禁止のようなより安全な対話パターンを可能にする。
- 契約状態、メッセージ、遷移をエンコードし、安全性と生存性推論のための実行トレースを定義する、Coq ベースの形式方法を概説する。
実験結果
リサーチクエスチョン
- RQ1スマートコントラクトは、どのように設計すれば安全性と生存性の厳密な形式検証を可能にできるか?
- RQ2計算と通信を分離し、オートマタベースのコントラクトを用いる言語設計は、コントラクトの組み合わせと正確性についての推論を改善できるか?
- RQ3継続を組み込んで戻りフローと外部呼び出しをモデル化しつつ、検証可能性を維持するにはどうすればよいか?
- RQ4Solidity に類似したプログラムを Scilla に翻訳して、バイトコード生成前に検証を可能にする道筋は何か?
主な発見
- Scilla は、通信オートマタモデルを介して計算とブロックチェーン通信の原則的な分離を提供する。
- コントラクトは原子遷移から構成される。メッセージが遷移を引き起こし、状態変化が閉じ込められ、分析可能であることを保証する。
- 純粋さ/効果の分離と継続の明示的な使用は、検証を扱いやすくし、戻り経路の CPS 風制御フローをサポートする。
- The work integrates Scilla with Coq to mechanise semantics and proofs of safety and liveness for contract executions.
- クラウドファンディングの例は、ワークフローとオートマタベースの検証手法を示す(概念モデルで、数値結果ではない)。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。