TL;DR

スマート コントラクトのセキュリティ監査では、プロジェクトのスマート コントラクトの詳細な分析が提供されます。これは、投資された資金を保護するために重要です。ブロックチェーン上のすべてのトランザクションは最終的なものであるため、資金が盗まれた場合は取り戻すことはできません。通常、監査人はスマート コントラクト コードを検査し、レポートを作成し、それをフォローアップのためにプロジェクトに提供します。その後、残っているエラーと、パフォーマンスまたはセキュリティ関連の問題に対処するために行われた作業の詳細を記載した最終レポートがリリースされます。


イントロダクション

スマートコントラクトのセキュリティ監査は、分散型金融(DeFi)エコシステムでは非常に一般的です。ブロックチェーンプロジェクトに投資している場合、あなたの判断はスマートコントラクトのコードレビューの結果に部分的に基づいている可能性があります。

ほとんどの人が暗号通貨の監査の重要性を理解している一方で、コードの分野に深く関わっている人は少ないです。ユーザーがより適切な判断を下すことができるように、スマートコントラクトのセキュリティ監査で通常見つかる方法、ツール、結果を見てみましょう。


スマートコントラクトとは何ですか?

スマートコントラクトのセキュリティ監査は、プロジェクトのスマートコントラクトコードを検査し、コメントします。通常、これらのコントラクトはSolidityプログラミング言語で記述され、GitHubを介して提供されます。特に、数百万ドルのブロックチェーントランザクションを扱うことを意図しているDeFiプロジェクトにとって、セキュリティ監査は価値があります。監査は通常、次の4つのステップで進行します:

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

2. 監査チームは、プロジェクトに対して彼らの発見を提示します。

3. プロジェクトチームは、発見された問題に基づいて変更を行います。

4. 監査チームは、新しい変更や残っているエラーを考慮して最終レポートを公開します。

ほとんどの暗号ユーザーにとって、スマートコントラクトの監査は新しいDeFiプロジェクトに投資する際に重要です。これは、真剣に考えられているプロジェクトの標準となっています。特定の監査プロバイダーもこの業界のリーダーとして評価されており、彼らの監査は投資家の目により価値があります。


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

スマートコントラクトを通過またはロックされている取引の価値が非常に大きいため、これらの資金はハッカーからの悪意のある攻撃のターゲットになります。小さなコーディングエラーが、大量の資金が盗まれる原因となることがあります。例えば、EthereumブロックチェーンにおけるDAOのハッキングは、約6000万ドル相当のETHを盗み、Ethereumネットワークのハードフォークを引き起こしました。

ブロックチェーントランザクションは変更不可能であるため、プロジェクトのコードが安全であることを確保することが重要です。ブロックチェーン技術の非常に安全な特性は、資金を取り戻すことや問題を解決することを困難にし、脆弱性を防ぐことができる方法を提供します。


スマートコントラクトの監査はどのように機能しますか?

スマートコントラクトの監査プロセスは、監査プロバイダーの間でかなり標準化されています。各監査人のアプローチは多少異なるかもしれませんが、プロセスは一般的に次のようになります:

1. 監査の範囲を特定します。スマートコントラクトとプロジェクトの仕様は、プロジェクト(意図された目的)と全体的なアーキテクチャによって特定されます。仕様は、監査チームがコードを作成し使用する際にプロジェクトの目的を理解するのに役立ちます。

2. 実施された作業の量に基づいて初期見積もりを提供します。

3. テストを実施します。正確な特性は監査チーム、分析ツール、および方法論によって異なります。通常、手動テストと自動テストの両方が実施されます。

4. 発見されたエラーを含む初期レポートの草案を作成し、プロジェクトチームにフィードバックと改善に向けたフォローアップを提供します。

5. チームが問題を解決するために取った措置を考慮して、最終レポートを発行します。


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

ガス効率

スマートコントラクトの監査は、ブロックチェーンのセキュリティにだけ焦点を当てるものではありません。この監査では、効率性や最適化も観察されます。一部のコントラクトは、意図した機能を完了するために複雑なトランザクションの一連を実行します。Ethereumのようなネットワークではガス料金が比較的高いため、効率的なコントラクトはトランザクションコストを大幅に節約できます。

パフォーマンスの最適化も開発者のスキルの指標です。非効率的なステップは失敗を拡大し、避けるべきです。ガス料金が高い時には、スマートコントラクトが実行に失敗することがあります。特に、低いガスリミットが使用されている場合はなおさらです。

コントラクトの脆弱性

ほとんどの監査作業は、コントラクトのセキュリティ脆弱性を検査することを含みます。いくつかの問題は簡単に見えるかもしれませんが、その多くは資金を枯渇させるための高度な技術や戦略を含んでいます。例えば、市場操作は、弱いスマートコントラクトを使用してフラッシュローン攻撃を行うことができます。これらの問題を見つけるために、監査人は脆弱性テストプロセスを開始し、スマートコントラクトに対する悪意のある攻撃をシミュレーションします。一般的な脆弱性には以下が含まれます:

1. 再入可能性の問題:スマートコントラクトは、何らかの効果が完了する前に他の外部コントラクトへの外部呼び出しを行います。その後、外部コントラクトは元のスマートコントラクトを繰り返し呼び出し、元のコントラクトの残高がまだ更新されていないため、行うべきではない方法で相互作用します。

2. 整数のオーバーフローとアンダーフロー:スマートコントラクトは算術演算を実行しますが、結果がストレージの容量(通常は18桁の小数)を超えます。これにより、誤った数量の計算が発生する可能性があります。

3. フロントランニングの機会:構造が不十分なコードは、市場の購入または販売の警告を引き起こす可能性があります。その結果、他の人がその情報を利用して自己利益のために取引することを可能にします。

プラットフォームのセキュリティの弱点

ほとんどの監査は、コントラクトをホスティングするネットワークや、DAppと相互作用するために使用されるAPIに対する観察を含みます。プロジェクトはDDoS攻撃に対して脆弱であったり、ウェブサイトのUIに侵入されることがあります。つまり、ユーザーは実際に悪意のあるブロックチェーンアプリケーションに自分のウォレットを接続することになります。


監査レポートとは何ですか?

監査レポートは、監査プロセスの終わりに提供されます。透明性のために、プロジェクトはコミュニティと発見を共有することが期待されています。ほとんどのレポートは、重大性に基づいて問題を分類します。例えば、重大、中程度、軽微などです。レポートはまた、問題のステータスをリストアップします。プロジェクトには、最終レポートのリリース前にそれを解決するための時間が与えられます。

エグゼクティブサマリーに加えて、標準レポートには、提案、不必要なコードの例、コーディングエラーの発生場所に関する完全な説明が含まれます。プロジェクトは、最終版がリリースされる前にレポートの発見に対処するための時間が与えられます。


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

いくつかのスマートコントラクト監査サービスは、その業務のために有名になっています。そのうちの2つは非常に人気があり、これから監査を受けるには初期見積もりと情報の提出が必要です。

CertiK

CertiKは、スマートコントラクトの監査において業界のリーダーです。数百のプロジェクトが彼らとともにスマートコントラクトを監査しています。BSCに属する最大の自動マーケットメーカー(AMM)であるPancakeSwapがその一例です。以下は、PancakeSwapに対するCertiKの監査の一部です。


さらに、Binance Labsによってサポートされたほとんどのプロジェクトは、CertiKでそのコントラクトを監査しています。CertiKは、プロジェクトを比較し、それぞれのセキュリティスコアを表示する監査済みプロジェクトのランキングを公開しています。Ethereumの他に、CertiKはBSCおよびPolygonのプロジェクトも含んでいることに注意してください。


ConsenSys Diligence

Ethereumの共同創設者であるJoseph Lubinが運営するConsenSysは、ブロックチェーン開発における暗号通貨業界の最大の名前です。ConsenSys Diligenceを通じて、この会社はEthereumのスマートコントラクトの監査を提供しています。彼らはまた、一般的に見つかる問題に対してEthereum仮想マシン(EVM)コントラクトを検査する自動サービスも提供しています。


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

監査の正確な費用は、検査されるスマートコントラクトの数に依存します。通常、監査には数千ドルの費用がかかります。かなり大きなプロジェクトでは、$10,000を超える費用が必要な場合があります。監査を行う会社とその評判も、支払われる金額に影響を与えます。


結論

幸運なことに、投資家やユーザーにとって、スマートコントラクトの監査は最高の基準となっています。しかし、すべてのプロジェクトがそれを行っている場合、それはもはや価値の指標として簡単ではありません。これが、自分で監査を読むことが非常に重要である理由です。技術的な知識がない場合でも、コメントや潜在的な問題の重大性のレベルを見ることで役立つことがあります。

監査に出会ったとき、あなたは今やその内容をより簡単に理解できるようになるでしょう。投資の決定が全体像を見て、すべての情報を考慮していることを常に確認してください。