クリプトAIエージェントがメインネットでローンチする前に、省略できないセキュリティチェックリストがあります。これは「ベストプラクティスの推奨事項」ではなく、「これらをしていなければ、Agentは実際の資金に触れるべきではない」という最低限の要件です。この記事では、12の必須項目を4つのカテゴリに分けて、なぜ必要か・正しく実装されているかを検証する方法を説明します。
多くの開発者は「まずローンチして、問題が出たら修正する」という考え方をしますが、これは通常のWebアプリでは許容できても、クリプトAgentでは致命的です。理由はシンプルです:オンチェーントランザクションは不可逆です。一度資金が転送されたら「元に戻す」ボタンはありません。予防的なセキュリティ設計のコストはインシデント後の損失補填よりはるかに低いです。
項目1:いかなる平文の場所にも秘密鍵が存在しない。すべての環境変数・設定ファイル・コードリポジトリ履歴(Git履歴を含む)をチェックし、秘密鍵・ニーモニック・同等の署名証明書が平文で存在しないことを確認します。項目2:AgentウォレットとプライマリアセットウォレットがPC完全に隔離されている。項目3:ERC-20承認に正確な上限が設定されている——無制限承認(type(uint256).max)ではない。項目4:AgentのSystem Promptに認証情報が含まれていない。項目5:秘密鍵ストレージが安全なソリューションを使用している——AWS Secrets Manager・HashiCorp Vault・AWS Nitro Enclaves。
項目6:すべての読み取り/書き込みツールが厳格に分類されている。すべてのツールを整理し、どれが読み取り専用(データ照会)でどれが書き込み(オンチェーン操作の実行)かを明確にラベル付けします。外部データを読み取った後に書き込みツールが直接呼び出されないことを確認——外部データの読み取りと書き込みツールのトリガーの間に人工確認またはパラメータ検証のステップが必要です。
項目7:すべての書き込みツールにバックエンドパラメータ検証がある。書き込み操作を実行するかどうかをLLMの推論出力のみに頼ってはなりません。バックエンドコードで各書き込みツール呼び出しのパラメータを検証します:金額は設定上限内か、ターゲットアドレスはホワイトリストにあるか、操作タイプは許可されているか。この検証ロジックはLLMが回避できないバックエンド層で実行されます。
項目8:ツール返答データにスキーマ検証がある。すべてのツール(特にMCPサーバーや外部API)の返答データは、LLMコンテキストに入る前にバックエンドでフォーマットが期待するスキーマに一致するか、数値が合理的な範囲内かを検証する必要があります。フォーマットまたは数値が異常なツール返答はアラートをトリガーし、LLMに見せることなく切り捨てます。
項目9:高額操作に独立した確認チャネルがある。設定した閾値(例:$100)を超えるすべての書き込み操作は、バックエンド実行前にLLMの推論層から完全に独立した確認チャネル(例:Telegram通知、あなたの確認を待つ)を通過する必要があります。このレイヤーはプロンプトインジェクションで回避できません。
項目10:日次支出上限サーキットブレーカー。上限を超えると、あなたが手動でリセットするまで後続のすべての書き込み操作が自動的に一時停止されます。項目11:市場異常サーキットブレーカー。設定した市場条件閾値をトリガーすると、すべての書き込み操作が自動的に一時停止されます。項目12:完全な操作ログシステム。4つの層:LLM推論ログ・ツール呼び出しログ・決定認可ログ・オンチェーン実行ログ。暗号化ストレージで最低90日間の保持。
12の項目の設計と実装を完了した後、以下のペースで検証します。第1週:テストネット(SepoliaまたはBase Sepolia)で完全な機能テストを実施します。すべてのサーキットブレーカーを積極的にトリガーして正常に機能することを確認し(サーキットブレーカーをテストする)、異常なツール返答データでスキーマ検証をトリガーしようとします(検証レイヤーが遮断するかテスト)。
第2週:少額の実際の資金($20〜$100)でメインネットの動作検証を行い、テストネットとメインネットの動作が一致することを確認します。特に注意すること:メインネットのGas代変動がAgentの判断に影響するか、実際のDEX流動性条件でのスリッページ保護が機能するか。
第3週以降:認可金額を段階的に拡大します。各拡大後に少なくとも1週間の正常な動作を観察してから続けます。エッジケースでAgentがどう動作するか不確かな場合はいつでもテストネットに戻って検証します。メインネットの「不確実性のコスト」はテストネットの何倍もあります。
これらの12の項目はオプションのチェックリストではなく、「Agentが損失を許容できない資金を管理すべきでない」前の最低限の要件です。時間的なプレッシャーでいくつかの項目をスキップしたくなった場合、自分に問いかけてください:「攻撃者がローンチ初日にこの脆弱性を発見して悪用した場合、最悪の損失はいくらか?」その数字があなたが許容できる範囲を超えていれば、その項目はスキップできません。