Skip to main content
QUICK REVIEW

[論文レビュー] Formal Specification and Verification of Smart Contracts for Azure Blockchain

Shuvendu K. Lahiri, Shuo Chen|arXiv (Cornell University)|Dec 20, 2018
Blockchain Technology Applications and Security参考文献 17被引用数 55
ひとこと要約

本論文では、アクセス制御ポリシーを備えた状態機械モデルに対する意味的整合性を保証する、Solidityスマートコントラクトの形式的検証ツールであるVeriSolを提示する。このツールは、Azure Blockchain Workbenchに含まれるすべてのスマートコントラクトの検証を自動化し、以前に発見されていなかったバグを特定・修正可能にし、その後すべてのコントラクトで完全な検証に成功した。

ABSTRACT

Ensuring correctness of smart contracts is paramount to ensuring trust in blockchain-based systems. This paper studies the safety and security of smart contracts in the \emph{Azure Blockchain Workbench}, an enterprise Blockchain-as-a-Service offering from Microsoft. As part of this study, we formalize \emph{semantic conformance} of smart contracts against a state machine model with access-control policy and develop a highly-automated formal verifier for Solidity that can produce proofs as well as counterexamples. We have applied our verifier {\sc VeriSol} to analyze {\it all} contracts shipped with the Azure Blockchain Workbench, which includes application samples as well as a governance contract for Proof of Authority (PoA). We have found previously unknown bugs in these published smart contracts. After fixing these bugs, {\sc VeriSol} was able to successfully perform full verification for all of these contracts.

研究の動機と目的

  • Azure Blockchain Workbenchにおけるスマートコントラクトの形式的検証を通じて、企業向けブロックチェーンシステムの正しさと信頼性を確保すること。
  • アクセス制御ポリシーを備えた状態機械モデルに対するスマートコントラクトの意味的整合性を定義および強制すること。
  • Solidityコントラクトの証明および反例を生成できる、自動化された形式的検証ツールであるVeriSolの開発。
  • Azure Blockchain Workbenchに同梱されたガバナンスおよびアプリケーションのサンプルを含む、すべてのスマートコントラクトの、以前に発見されていなかった脆弱性の分析。

提案手法

  • アクセス制御ポリシーを拡張した状態機械モデルを用いて、スマートコントラクトの振る舞いを形式化し、セキュリティの意味を捉える。
  • 記号実行と定理証明を統合した、高度に自動化されたSolidity向け形式的検証ツールであるVeriSolの設計。
  • Azure Blockchain Workbenchのリリースに含まれるすべてのスマートコントラクトに検証ツールを適用。
  • 検証に失敗した場合、正しさの形式的証明または反例を生成し、バグの正確な特定を可能にする。
  • ツールチェーンを用いて、アプリケーションレベルのコントラクトおよびProof of Authorityガバナンスコントラクトの両方を検証。
  • 発見されたバグを段階的に修正し、再検証することで解決の確認および完全な正しさの確認を実施。

実験結果

リサーチクエスチョン

  • RQ1形式的検証アプローチは、Azure Blockchain Workbenchにデプロイされた企業向けスマートコントラクトにおいて、意味的およびセキュリティ上のバグを効果的に検出できるか?
  • RQ2自動化された検証は、実世界のスマートコントラクトにおいて、アクセス制御制約を伴う状態機械モデルへの整合性を確保するためにどの程度効果的か?
  • RQ3大手クラウドプロバイダーのブロックチェーンサービスから提供されるプロダクション準備済みスマートコントラクトに、以前に発見されていなかった種類のバグはどのようなものがあるか?
  • RQ4自動化された形式的検証は、人的介入なしに生産用ブロックチェーンプラットフォームに含まれるすべてのコントラクトをカバーできるか?
  • RQ5形式的検証は、発見された脆弱性を修正した後、どの程度完全な検証を達成するために使用できるか?

主な発見

  • VeriSolは、Azure Blockchain Workbenchに同梱されたすべてのスマートコントラクト、アプリケーションサンプルおよびPoAガバナンスコントラクトを含め、以前に発見されていなかったバグを正常に特定した。
  • 報告されたバグを修正した後、VeriSolは配布内に含まれるすべてのコントラクトに対して完全な形式的検証を実施できた。
  • 形式的検証プロセスにより、以前のテストやコードレビューでは検出されなかった意味的不整合およびアクセス制御違反が明らかになった。
  • 結果から、企業向けプラットフォームから提供されるプロダクション準備済みスマートコントラクトであっても、深刻な利用可能な欠陥を含む可能性があることが示された。
  • バグ修正後の完全な検証に成功したことで、VeriSolの自動化された検証パイプラインの有効性が裏付けられた。

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

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

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

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