スマートコントラクトの監査
スマートコントラクト監査とは何ですか?
スマート コントラクトの監査は、暗号通貨またはブロックチェーンとの対話に使用されるスマート コントラクトのコードの広範な系統的な検査と分析です。このプロセスは、コード内のエラー、問題、セキュリティの脆弱性を発見し、それらを改善および修正する方法を提案するために実行されます。一般に、ほとんどの契約は金融資産や貴重品を扱うため、スマート コントラクトの監査が必要です。
スマートコントラクトは相互に作用することが多く、サードパーティシステムとの統合によりシステムが脆弱になる可能性があるため、このようなチェックは複雑です。このため、チェックは多くの場合、対話に関与する他のスマート コントラクト、さらには対話するスマート コントラクトが対話するスマート コントラクトにまで拡張されます。このようなチェックには通常、テストの実行と手動によるコード分析の両方が含まれます。
スマートコントラクトは大量の資金を管理することが多く、単一のバグや脆弱性が大きな損失につながる可能性があります。より正確には、問題の分散アプリケーションのユーザーと関係者は、エコシステムの一部であるすべての資産を失う可能性があります。
監査人による勧告は事前にプロジェクト チームに伝えられ、それに対するチームの行動が最終報告書に記載されます。これは、プロジェクトの信頼性と完全性の印とみなされます。そのため、チームはユーザーの信頼を勝ち取り、プロジェクトの信頼性を高めるために監査を受けることに熱心です。これらの監査は通常、いくつかの手順で実行されます。
最初のステップは、チームと監査グループが監査の範囲と仕様について合意することです。これは、スマートコントラクトの設計、目的、アーキテクチャ、その他の詳細が監査人に与えられることを意味します。次はテスト段階で、監査人は個々の機能 (単体テスト) をテストし、次により大きな部分 (統合テスト) をテストします。
自動化されたバグ検出および分析ツールは、契約内の一般に知られている脆弱性を探すためにも使用されます。最後に、監査人はコードを手動で検査して開発者の意図を理解し、そのコンテキストで結果を解釈します。最後に、チームによる調査結果と適用された修正を含むレポートが発行されます。
スマート コード監査の重要性は、2016 年のイーサリアム チェーンの分割が攻撃者によって悪用されたコードの脆弱性が原因であり、数百万ドルの資金が危険にさらされたという事実によって評価できます。 「再帰呼び出しバグ」により、攻撃者は民主化ヘッジファンド「DAO」から数百万ドル相当のETHを流出させることができた。資金を強制的に返還するかどうかをめぐるコミュニティによるその後の行動は、意見の相違とハードフォークを引き起こしました。
急成長するDeFi業界ではスマートコード監査の重要性がますます高まっており、投資家の需要に応えるためにバグだらけのスマートコントラクトが急遽発行されることがよくあります。これにより、2020 年には、Harvest、Yam Finance、bZx、Balancer、Eminence など、総額数百万件に上る多くの高額なハッキングが発生しました。