Skip to main content
QUICK REVIEW

[論文レビュー] Securify: Practical Security Analysis of Smart Contracts

Petar Tsankov, Andrei Dan|arXiv (Cornell University)|Jun 4, 2018
Blockchain Technology Applications and Security参考文献 27被引用数 131
ひとこと要約

Securify は、階層化 Datalog にエンコードされた意味論的事実を用いたドメイン特有のコンプライアンスと違反パターンを用いて、Ethereum スマートコントラクトの挙動を違反、警告、または適合として分類する、拡張性の高い自動セキュリティ検証ツールです。

ABSTRACT

Permissionless blockchains allow the execution of arbitrary programs (called smart contracts), enabling mutually untrusted entities to interact without relying on trusted third parties. Despite their potential, repeated security concerns have shaken the trust in handling billions of USD by smart contracts. To address this problem, we present Securify, a security analyzer for Ethereum smart contracts that is scalable, fully automated, and able to prove contract behaviors as safe/unsafe with respect to a given property. Securify's analysis consists of two steps. First, it symbolically analyzes the contract's dependency graph to extract precise semantic information from the code. Then, it checks compliance and violation patterns that capture sufficient conditions for proving if a property holds or not. To enable extensibility, all patterns are specified in a designated domain-specific language. Securify is publicly released, it has analyzed >18K contracts submitted by its users, and is regularly used to conduct security audits by experts. We present an extensive evaluation of Securify over real-world Ethereum smart contracts and demonstrate that it can effectively prove the correctness of smart contracts and discover critical violations.

研究の動機と目的

  • 注目度の高い悪用事案と金銭的損失を踏まえ、セキュアなスマートコントラクトの必要性を動機づける。
  • パターンベースの推論を通じて実務的なセキュリティ特性を対象とする、ドメイン特化の検証ツール(Securify)を導入する。
  • コントラクトの分析を自動化する、スケーラブルなエンドツーエンドの実装を示す。
  • Securify が実世界の Ethereum コントラクトに対して正しさを証明し、違反を明らかにできることを示す。

提案手法

  • EVM バイトコードを SSA 形にデコンパイルして、スタックレスなコントラクト表現を取得する。
  • 宣言型の階層化Datalogルールを用いて制御フローとデータフローに関する意味論的事実を推論する。
  • DSL で表現されたコンプライアンスおよび違反パターンのセットを検査して、特性を証明または反証する。
  • 特性を、安全性(コンプライアンス)または否定(違反)を意味するパターンとして表現する。
  • パターンの一致に基づいて、コントラクト挙動を違反、警告、または適合の結果に分類する。
  • セキュリティ専門家が DSL で新しいパターンを追加できるように拡張性をサポートする。

実験結果

リサーチクエスチョン

  • RQ1コンプライアンスと違反のパターンは、スマートコントラクトの実用的なセキュリティ特性を捉えられるか?
  • RQ2Securify は実世界のコントラクト上でこれらの特性を自動的に証明または反証できるか?
  • RQ3DSL ベースのパターン手法は、進化するセキュリティ要件に対してスケールし、拡張性を保てるか?
  • RQ4カバレッジや偽陽性/偽陰性の観点で、Securify は既存のシンボリック解析ツールと比較してどのように性能を発揮するか?

主な発見

  • Securify はユーザーが提出した 18,000 件を超えるコントラクトを分析する。
  • 分析ツールはコントラクト上で通常数秒程度で実行可能。
  • パターンベースの検査は警告に対する手動検査の労力を大幅に削減する(例:いくつかの性質で 65.9% から 99.4%)。
  • Securify はすべての危険な挙動を報告し、重大な違反を見逃す可能性を減らす。
  • 本システムは 38 件の詳細な商業監査で使用され、監査人によって現在も積極的に活用されている。
  • このアプローチは実世界の Ethereum コントラクトにおける正しさの証明と違反の発見の効果を示している。

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

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

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

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