スマートコントラクト・セキュリティ監査とは?
ホーム
記事
スマートコントラクト・セキュリティ監査とは?

スマートコントラクト・セキュリティ監査とは?

中級者
公開済 Mar 1, 2022更新済 Apr 27, 2023
8m

概要

スマートコントラクトセキュリティ監査は、プロジェクトのスマートコントラクトを詳細に分析するものです。これらは、投資した資金を保護するために重要です。ブロックチェーン上のすべての取引は最終的なものであるため、万一、資金が盗難に遭っても取り戻すことはできません。通常、監査人はスマートコントラクトのコードを調査し、報告書を作成し、プロジェクトに提供して作業してもらうことになります。その後、未解決のエラーや、パフォーマンスやセキュリティの問題に対処するために既に行われた作業を詳細に説明した最終報告書が発表されます。


はじめに

スマートコントラクトのセキュリティ監査は、分散型金融 (DeFi) のエコシステムでは非常に一般的です。ブロックチェーンプロジェクトに投資したことがある人は、スマートコントラクトのコードレビューの結果も判断材料にしたのではないでしょうか。

サイバーセキュリティのための監査の重要性は多くの人が理解していますが、コードまで踏み込んで確認する人は多くありません。スマートコントラクトのセキュリティ監査でよく見られる方法、ツール、結果を見て、より多くの情報に基づいた意思決定ができるようにしましょう。


スマートコントラクト監査とは?

スマートコントラクトセキュリティ監査は、プロジェクトのスマートコントラクトコードを調査し、コメントするものです。通常、これらのコントラクトはSolidityプログラミング言語で記述され、GitHubを介して提供されます。セキュリティ監査は、数百万ドル規模のブロックチェーン取引や膨大なプレイヤーの取り扱いを想定しているDeFiプロジェクトにとって、特に価値のあるものです。監査は通常、4つのステップで行われます。

1. スマートコントラクトは、初期分析のために監査チームに提供されます。

2. 監査チームは、監査結果をプロジェクトに提示し、プロジェクトはその結果に基づいて行動します。

3. プロジェクトチームは発見された問題点をもとに変更を加えます。

4. 監査チームは、新たな変更や未解決の誤りを考慮した最終報告書を発表します。

多くの仮想通貨利用者にとって、スマートコントラクトの監査は、新しいDeFiプロジェクトに投資する際に必要不可欠です。真剣に取り組んでいるプロジェクトのスタンダードになっています。また、特定の監査法人は業界のリーダーとみなされ、投資家の目にはその監査法人の監査がより高く映ります。


なぜスマートコントラクト監査が必要なのでしょうか?

スマートコントラクトは、膨大な価値が取引されるため、ハッカーから悪意のある攻撃を受ける可能性があります。ちょっとしたコーディングミスが、莫大な金額を盗まれることにつながるのです。例えば、 Ethereumのブロックチェーン上のDAOのハッキングは、およそ6,000万ドル相当のETHを奪い、Ethereumネットワークのハードフォークにつながりました。

ブロックチェーンの取引は不可逆的であるため、プロジェクトのコードの安全性を確認することは不可欠です。ブロックチェーン技術は安全性が高いため、資金の回収や問題の事後解決が難しく、何としても脆弱性を防いでおきたいところです。


スマートコントラクト監査はどのように行われるのでしょうか?

スマートコントラクト監査の流れは、監査プロバイダーの間ではかなり標準的なものです。各監査人のアプローチは若干異なりますが、典型的なプロセスは以下の通りです。

1. 監査範囲を決定します。スマートコントラクトとプロジェクトの仕様は、プロジェクト (その意図する目的) と全体の構造によって定義されます。仕様書は、コードを書いたり使用したりする際に、監査チームがプロジェクトの目標を理解するのに役立ちます。

2. 必要な作業量に応じた最初の見積もりを提供します。

3. テストを実行します。その具体的な内容は、監査チームや分析ツール、方法によって変わってきます。通常、手動テストと自動テストの両方が実施されます。

4. エラーを発見した場合は報告書の初稿を作成し、プロジェクトチームに提供し、フィードバックとフォローアップの修正を依頼します。

5. 指摘事項に対するチームの対応を考慮し、最終報告書を発行します。


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

ガス効率 

スマートコントラクト監査は、ブロックチェーンのセキュリティだけに焦点を当てたものではありません。また、効率や最適化も視野に入れています。コントラクトによっては、意図した機能を果たすために、複雑な一連の取引を行うものもあります。Ethereumのようなネットワーク上のガス手数料は比較的高価であるため、効率的なコントラクトによって取引コストを大幅に削減することができます。

また、その性能を最適化することは、開発者の腕の見せ所でもあります。非効率的なステップは、失敗の原因を増やすことになるので、避けるべきです。ガス代が高い場合、スマートコントラクトの実行に失敗することがあり、ガス代の上限が低い場合は更に失敗する可能性が高くなります。

コントラクトの脆弱性

監査の仕事のほとんどは、コントラクトにセキュリティ上の脆弱性がないかどうかをチェックすることです。問題点には目に見えやすいものもありますが、多くの悪用は資金を流出させるための高度なテクニックや戦略を含んでいます。例えば、弱いスマートコントラクトで市場操作を行い、フラッシュローン攻撃を行うことが可能です。これらの問題を発見するために、監査人はブレークテストのプロセスを開始し、スマートコントラクトに対する悪意ある攻撃をシミュレートします。一般的な脆弱性には、以下のようなものがあります。

1. リエントラント問題: スマートコントラクトが、何らかのコードを実行する前に、別の外部コントラクトの呼び出しを行います。外部コントラクトは、元のスマートコントラクトを再帰的に呼び出し、元のコントラクトの残高がまだ更新されていないにも関わらず、本来できないような方法で対話することができます。
2. 整数のオーバーフローとアンダーフロー: スマートコントラクトが算術演算を行った者の、アウトプットの記憶容量 (通常小数点以下18桁)を超えた場合に発生します。そのため、誤った数量が算出されることがあります。
3. フロントランニングの機会: 構造の悪いコードは、市場の購入や売却の予兆が公開される可能性があります。その結果、他の人がその情報を利用し、自分の利益のために取引することが可能になります。

プラットフォームのセキュリティ上の欠陥

ほとんどの監査は、コントラクトをホストするネットワークや、DAppとの対話に使用されるAPIまで調べることを含んでいます。プロジェクトはDDoS攻撃に弱く、ウェブサイトのUIが危険にさらされる可能性があります。つまり、ユーザーは実際に自分のウォレットを悪意のあるブロックチェーンアプリケーションに接続することになります。


監査報告書とは?

監査報告書は、監査プロセスの終了時に提供されます。透明性を確保するため、プロジェクトはその結果をコミュニティと共有することが期待されています。ほとんどの報告書は、問題を重要、大、小などの重大度によって分類しています。また、最終報告書の発表までにプロジェクトが解決する時間が与えられるため、報告書には課題の状況が記載されます。

標準的な報告書には、エグゼクティブサマリーとともに、推奨事項、冗長なコードの例、コーディングエラーの完全な内訳が含まれています。最終版が発表される前に、プロジェクトが報告書の結果を受けて行動する時間が与えられています。


スマートコントラクト監査はどこで受けられますか?

スマートコントラクトの監査サービスは、いくつも有名になってきています。特に人気があるのは2つで、彼らから監査を受けるには、最初の見積もりと情報の受け渡しが必要です。

CertiK

CertiKは、スマートコントラクトの監査に関して業界をリードしています。何百ものプロジェクトが、彼らと共にスマートコントラクトを監査しています。PancakeSwap 、BSC最大の Automated Market Maker (AMM) がその一例です。以下は、PancakeSwapに関するCertikの監査の一部です。


また、バイナンスラボがサポートするプロジェクトの大半は、CertiKとのコントラクト内容を監査しています。CertiKは、監査されたプロジェクトのリーダーボードを公開しており、安全性のスコアとともに、それぞれのプロジェクトを比較することができます。なお、CertiKはEthereum以外にも、BSCやPolygonのプロジェクトも対象としています。


ConsenSys Diligence

Ethereumの共同創業者であるJoseph Lubinが経営するConsenSysは、ブロックチェーン開発における仮想通貨業界の大御所の一人です。ConsenSys Diligenceの下、Ethereumのスマートコントラクトの監査を提供しています。また、Ethereum Virtual Machine (EVM) のコントラクトによく見られるミスをチェックする自動サービスも提供しています。


スマートコントラクト監査にはどれくらいの費用がかかりますか?

監査にかかる正確なコストは、チェック対象となるスマートコントラクトの数によって異なります。通常、監査は数千ドル単位で行われます。特に大きなプロジェクトでは、簡単に$10,000以上かかることもあります。また、監査を行う監査法人やその評判も、支払額に影響します。


まとめ

投資家やユーザーにとって幸いなことに、スマートコントラクトの監査は黄金律になっています。しかし、すべてのプロジェクトが持っているとなると、価値を示す簡単な指標ではなくなります。そのため、自分で監査を読むことが非常に重要なのです。専門的な知識がなくても、潜在的な問題のコメントや深刻度を見ておくと役に立ちます。

監査に出くわしたとき、少なくともその内容を理解することは容易になったはずです。常に、投資判断は全体像を見渡し、すべての情報を考慮するようにしてください。

ここから先はBinance Japanの管理下ではない外部サイトへ移動します。利用規約については、移動先サイトの方針に従うものとします。当社は、移動先サイトに掲載されている情報・サービス等について一切の責任を負いません。なお、移動先サイトは、情報提供を目的として作成されており、投資勧誘を目的とするものではありません。