スマートコントラクト監査レポートの評価方法
スマートコントラクトの監査レポートは安全の保証ではありません。範囲、指摘事項、修正、監査会社の信頼性の確認方法と、偽の監査を見抜くための危険信号を解説します。
スマートコントラクトの監査レポートを評価するには、本物であり監査会社自身が公開したものかを確認し、範囲が実際にデプロイされたコントラクトを対象にしているかを調べ、クリティカルおよび高深刻度の指摘事項とそれぞれが修正されたかを読み、監査が明示的に対象外としたものを書き留めます。監査は特定のコードのスナップショットであり、プロジェクトが安全または誠実であることの保証ではありません。
プロジェクトはしばしば「監査済み」を信頼の証として宣伝します。徹底的で意味のある監査もあれば、範囲が狭いもの、古いもの、偽物もあります。レポートの読み方を知っていれば、15分ほどでその違いを見分けられます。
スマートコントラクト監査とは
スマートコントラクト監査とは、専門家がプロジェクトのコードを読み、テストし、リエントランシー、アクセス制御のミス、計算エラー、ロジックの欠陥などの脆弱性を探すセキュリティレビューです。その後、発見した内容、各問題の深刻度、チームの対応をまとめたレポートを公開します。関連記事:スマートコントラクトのエクスプロイト。
スマートコントラクトは一度デプロイすると変更が難しく、多額の資金を預かることも多いため、監査には価値があります。しかし監査会社は限られた時間で作業し、渡されたものしかレビューせず、微妙な問題を見逃すこともあります。攻撃を受けたプロトコルの多くは監査済みでした。
一般的な監査レポートの構成
| セクション | 確認すべき点 |
|---|---|
| 概要 | 監査会社名、プロジェクト、日付、全体的な結論 |
| 範囲 | レビュー対象の正確なファイル、コントラクト、コミットハッシュまたはデプロイ済みアドレス |
| 手法 | 手動レビュー、自動ツール、テスト、形式検証 |
| 指摘事項 | 各問題の深刻度、説明、推奨事項 |
| ステータス | 各指摘が修正済み、承知済み、異議ありのどれか |
| 免責事項 | レビューの限界 |
ステップごとに解説:レポートの評価方法
1. レポートが本物か確認する
偽の監査はよく知られた詐欺の手口です。自分でアクセスした監査会社の公式ウェブサイトやGitHubでレポートを探しましょう。監査会社がそのプロジェクトを知らない場合や、レポートがプロジェクトのサイト上のPDFとしてしか存在しない場合は、未検証として扱います。よくある手口は偽の監査のガイドにまとめています。
2. 範囲をデプロイ済みのものと照合する
レポートにはコードのコミットまたはコントラクトアドレスが記載されているはずです。ブロックエクスプローラーで、デプロイ済みのコントラクトが一致するか確認しましょう。よくある抜け漏れ:
- 監査は以前のバージョンを対象としており、その後コードが変更された。
- 監査されたのはトークンコントラクトだけで、ユーザー資金を保持するステーキング、ボールト、ブリッジのコントラクトは対象外だった。
- コントラクトがアップグレード可能で、後からコードを差し替えられる。
3. 深刻な指摘事項から読む
クリティカルと高深刻度の問題に直行しましょう。それぞれについて次の点を確認します。
- 解決済みとされているか、そして監査会社が修正を検証したか。
- 修正ではなく「承知済み」とされている場合、チームはどんな理由を示しているか。
- トークンのミント、送金の一時停止、資金の引き出しといった管理者権限に関わるものか。
承知済みとされた中央集権性の問題は、投資家にとってコードのバグより重要なことがよくあります。無制限にトークンをミントできるオーナーは、コードが完璧に動作していてもリスクです。
4. 日付を確認する
監査が実施された時期を確認し、デプロイ日やその後のアップグレードと比べましょう。頻繁にアップグレードされるプロトコルの古い監査は、現在のコードについてほとんど何も教えてくれません。
5. 監査会社を評価する
公開された実績、詳細な公開レポート、名前が明示されたセキュリティ研究者を持つ監査会社を選びましょう。月に何百ものトークンを監査する会社による、詳細のない1ページのレポートは重みが劣ります。
6. 免責事項と制限を読む
免責事項には通常、経済設計、オフチェーンのコンポーネント、オラクル、フロントエンドのコード、将来の変更は監査の対象外だと書かれています。まさにこうした領域で、現実の損失の多くが発生しています。
深刻度レベルを理解する
定義は会社によって異なりますが、ほとんどの監査会社は似たような尺度を使います。
| 深刻度 | 一般的な意味 | どれくらい警戒すべきか |
|---|---|---|
| クリティカル | 資金の直接的な損失や盗難が起こり得る | ローンチ前に必ず修正が必要。未解決なら近づかない |
| 高 | 特定の条件下での深刻な資金損失や中核機能の不具合 | 修正されているべき。監査会社が確認したかチェック |
| 中 | 特定の状況下での問題、または大きな中央集権性 | 注意深く読む。特に管理者権限に関する指摘 |
| 低 | 影響が限定的な軽微な問題 | 承知済みであれば通常は問題ない |
| 情報 | コード品質、ガス効率、ベストプラクティス | ユーザーにとって懸念になることはまれ |
指摘事項の多いレポートが必ずしも悪い知らせとは限りません。監査会社が徹底的で、チームがローンチ前に問題を修正したことを意味する場合もあります。重要なのは、未解決のまま残っているものの深刻度と、チームの対応です。すべての指摘に異議を唱えたり、深刻な指摘を黙って無視したりするチームは、そのセキュリティ文化について何かを物語っています。
監査レポートの危険信号
- 範囲の詳細、コミットハッシュ、コントラクトアドレスがない。
- クリティカルな問題が修正なしで「承知済み」とされている。
- オーナー権限に関する指摘をプロジェクトが軽視している。
- レポートがプロジェクト側にしか掲載されていない。
- 「100%安全」「監査で完全に保護」といった宣伝文句。
- 大きなコード変更よりかなり前の日付の監査。
監査からはわからないこと
優れた監査であっても、次の問いには答えません。
- チームが実在し信頼できるか。暗号資産チームが本物か確認する方法を参照してください。
- 流動性がロックされているか、引き抜かれる可能性があるか。
- トークンの供給量とアンロックが公正か。
- プロトコルの経済設計がストレス下で破綻しないか。
監査は、公開のバグバウンティプログラム、複数の独立した監査、インシデントのない本番稼働期間、透明な管理者権限といった他のチェックと組み合わせましょう。
まとめ
監査レポートが有用な証拠になるのは、それが本物で、最新で、実際に使うコントラクトを対象にしている場合だけです。出典を検証し、範囲を照合し、深刻な指摘事項とその解決方法を読み、何が対象外とされたかに注意を払いましょう。監査はリサーチの材料の一つとして使い、プロジェクトが安全である証拠とは決して考えないでください。
よくある質問
監査済みなら暗号資産プロジェクトは安全ですか?
いいえ。監査とは、特定のチームが特定の時点で特定のコードをレビューしたものです。バグを見逃すことがあり、チームの誠実さやトークノミクスについては何も示さず、レビュー後に変更されたコードも対象外です。攻撃を受けたプロトコルの多くは監査済みでした。監査は保証ではなく、判断材料の一つとして扱いましょう。
監査レポートが本物かどうかはどう見分けますか?
プロジェクトのサイトだけでなく、監査会社自身のウェブサイトや公式GitHubでレポートを探してください。レポートに記載されたコントラクトアドレスやコードのコミットが、実際にデプロイされたものと一致しているか確認します。レポートを直接検証できる監査会社もあります。プロジェクトのチャネルにしか存在しないPDFだけでは不十分です。
監査の深刻度レベルは何を意味しますか?
監査会社は通常、指摘事項をクリティカル、高、中、低、情報の各レベルに分類します。クリティカルと高の問題は、資金の損失やプロトコルの機能不全につながるおそれがあります。最も重要なのは、こうした深刻な指摘が修正されたか、そして監査会社がフォローアップのレビューでその修正を確認したかどうかです。
監査は1回で十分ですか?
ユーザーの多額の資金を預かる大規模プロトコルでは、1回の監査は最低限とみなされることが多いです。複数の独立した監査、公開のバグバウンティプログラム、主要コンポーネントの形式検証、長期間インシデントのない実績がそろうことで、単独のレポートよりはるかに強い裏付けになります。
