メインコンテンツへスキップ
セキュリティ2026.04.07約10分で読める

スマートコントラクト監査

必要性・手法・監査会社の選び方

スマートコントラクトのバグは、デプロイ後に修正できません。

本記事では、監査が必要な理由・3つの手法・監査会社の選び方・費用と期間の目安を整理します。

ー 01

なぜ監査が必要か

スマートコントラクトは、一度ブロックチェーンにデプロイすると原則として変更できません。バグや脆弱性が発見された場合、コントラクトを停止するか、新バージョンへの移行(マイグレーション)が必要になり、多大なコストと信頼損失が発生します。

過去のハッキング事例を見ると、2022年のRonin Networkへの攻撃で約620億円、2016年のThe DAOハッキングで約60億円(当時レート)が流出しています。DeFi全体のハッキング被害は2020年から2024年の累計で30億ドルを超えています。

スマートコントラクト特有のリスク要因

不変性:デプロイ後の修正が原則不可。バグの修正コストが極めて高い。

公開性:コードがオープンソースで公開されるため、攻撃者がコードを分析して脆弱性を探せる。

価値集中:大量の資産がコントラクトに集中するため、攻撃インセンティブが高い。

外部依存:オラクル・他プロトコルとの連携がある場合、外部の脆弱性から攻撃を受けるリスクがある。

監査が特に重要なユースケース

  • 資産の預かり・移転を行うDeFiプロトコル(レンディング・DEX・ブリッジ)
  • 法的証券としてのセキュリティトークン(STO)
  • ガバナンスの根拠となるDAOコントラクト
  • クロスチェーンブリッジ(過去最多の被害額を記録している分野)

ー 02

監査の3つの手法

実務では3つの手法を組み合わせて使います。各手法には検出できる脆弱性の種類に特性があり、単一手法では発見できない問題が他の手法で検出されるケースがあります。

01

静的解析(Static Analysis)

コードを実行せずにソースコードを解析する手法です。Slither・MythX・Solhintなどのツールを使い、既知の脆弱性パターン(リエントランシー・オーバーフロー・アクセス制御ミス等)を自動検出します。人手によるコードレビューと組み合わせることで、ツールが見逃すロジックバグも検出できます。

02

動的テスト(Dynamic Testing)

コントラクトを実際に実行し、様々な入力パターンで挙動を検証する手法です。ファジング(大量のランダム入力テスト)やシンボリック実行により、静的解析では発見困難な実行時の問題を検出します。Foundry・Hardhatを使ったテストスイートの整備と組み合わせた実施が推奨されます。

03

形式検証(Formal Verification)

数学的手法を用いてコントラクトの正確性を証明する手法です。「この関数は常にこの事前条件と事後条件を満たす」という仕様を記述し、証明ツール(Certora Prover・K Framework等)で検証します。実装コストは高いですが、DeFiプロトコルや金融系コントラクトで採用実績が増えています。

手法の組み合わせ推奨パターン

標準的な監査では「静的解析+動的テスト+人手コードレビュー」の組み合わせが基本です。高セキュリティが求められるDeFiプロトコル・金融系STOには、形式検証の追加も検討します。テストカバレッジ80%以上のテストスイートを事前に整備しておくことで、監査費用と期間を削減できます。

ー 03

監査会社の選び方3つの基準

監査会社の品質は大きく差があります。以下の3基準で評価することで、実効性の低い「形式的な監査」を避けることができます。

実績と開示状況

過去の監査レポートが公開されているかを確認します。Certik・OpenZeppelin・Trail of Bits・Quantstampなど大手監査会社はレポートを公開しており、過去の検出事例から技術力を評価できます。実績非公開の会社は選定から外すことが原則です。

技術スタックの適合性

対象コントラクトの言語(Solidity・Vyper・Rust等)・使用チェーン(Ethereum・Solana・Cosmos等)・フレームワーク(OpenZeppelin・Hardhat等)に対応した経験があるかを確認します。DeFi特有の脆弱性(フラッシュローン攻撃・プライス操作等)への対応実績も重要な判断基準です。

修正対応のサポート体制

監査終了後に脆弱性の修正対応をサポートするかを確認します。初回監査後に「修正済み再監査(Re-audit)」を実施してくれる会社を選ぶことで、修正漏れや新たな脆弱性の混入リスクを低減できます。コミュニケーション体制と対応言語も事前に確認が必要です。

日本国内での監査選択肢

国内では英語対応の海外監査会社(Certik・OpenZeppelin等)を使うケースが主流ですが、日本語対応・国内法規制への精通が求められる場合は国内ベンダーの活用も有効です。監査範囲・契約形式・守秘義務条項を事前に明確化することが必要です。

ブロックチェーン開発・監査サポートを見る

ー 04

費用と期間の目安

監査費用はコード量・複雑度・使用するチェーン・監査会社によって大きく変動します。以下は外部監査会社に依頼した場合の相場感の目安です。

Small

50万円〜200万円

期間の目安: 1〜2週間

単一コントラクト・1,000行以下のコード量。ERC-20/ERC-721等の標準実装を含む場合。

適用例

シンプルなNFTコントラクト、DAO投票コントラクト

Standard

200万円〜800万円

期間の目安: 3〜6週間

複数コントラクトの相互依存関係を含む中規模プロジェクト。DeFiプロトコルの基本機能。

適用例

DEXのペアコントラクト、ステーキングプロトコル

Enterprise

800万円〜

期間の目安: 2〜3ヶ月

大規模DeFiプロトコル・クロスチェーン対応・形式検証を含む高セキュリティ要件のプロジェクト。

適用例

レンディングプロトコル、ブリッジコントラクト、STO基盤

費用を左右する主な要因

コード量・複雑度 — コントラクトの行数・ロジックの複雑さが工数に直結します

テスト整備状況 — テストスイートが充実しているほど動的テストコストが下がります

チェーン・言語 — Solidity以外の言語(Rust・Move等)は対応できる監査会社が限られます

スケジュール緊急度 — 短納期対応には割増費用が発生するケースがあります

開発フェーズからの監査準備

監査コストを下げるには、開発フェーズからテストカバレッジを意識した実装が有効です。コントラクト設計時点でのセキュリティレビューを組み込むことで、監査で検出される問題数を事前に減らせます。

ブロックチェーン開発の費用相場を見る

まとめ

スマートコントラクトはデプロイ後に変更できないため、本番稼働前の監査が必須です。過去の大規模ハッキング事例は、監査不足が原因のケースが多くあります。

監査手法は「静的解析・動的テスト・形式検証」の3種類で、用途と要求セキュリティレベルに応じて組み合わせます。監査会社は実績公開・技術適合性・修正サポートの3基準で選定します。

費用はSmallで50万円〜、Standardで200万円〜、Enterpriseで800万円〜が目安です。開発フェーズからテスト整備を進めることで監査費用を抑えることができます。

システム開発

セキュアなスマートコントラクト開発

設計段階からセキュリティを組み込んだコントラクト開発と、監査会社との連携サポートを提供します。テストスイートの整備から本番デプロイまで一気通貫で対応します。