コンテンツに移動
セキュリティ & アイデンティティ

Web3 における MCP の使用: ブロックチェーン トランザクションを行うエージェントを保護する方法

2025年12月23日
Adrien Delaroche

Web3 Principal Architect

Try Gemini 3

Our most intelligent model is now available on Vertex AI and Gemini Enterprise

Try now

※この投稿は米国時間 2025 年 12 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud は、AI と Web3 という 2 つの変革的なテクノロジーが交差するユニークな位置にあります。ブロックチェーンとやり取りできる AI エージェントの登場により、金融戦略の自動化、迅速な支払い、複雑な DeFi オペレーションの実行や複数のブロックチェーン間でのアセットのブリッジなど、より複雑なシナリオの実現が見込まれます。

しかし、この新しいパラダイムが実際に実現できるどうかは、エージェントを誰がホストし、オペレーションの秘密鍵を誰が保持するかにかかっています。

根本的な問題はシンプルです。ほとんどの暗号通貨ユーザーは、エージェント キーを管理するために独自の安全なサーバーを運用することはありません。したがって、プロバイダは 2 つの主要なアーキテクチャのいずれかに頼る可能性が高いです。1 つは、ユーザーが秘密鍵を制御するサードパーティのエージェントに資金を委任するカストディ モデル。もう 1 つは、エージェントはユーザーが秘密鍵で署名するトランザクションのみを作成するノンカストディ モデルです。

現在は、エージェントが秘密鍵を直接保持している事例がほとんどであり、暗号通貨 Model Context Protocol(MCP)サーバーは、秘密鍵で構成した場合にのみ使用できるものがほとんどです。しかし、それだけが選択肢ではありません。

エージェント制御モデル

このモデルは、ユーザーがサードパーティによってホストされるエージェントとやり取りする場合を想定して設計されています。現実的に想定して、今後主流となりそうな選択肢です。このシナリオでは、エージェントに秘密鍵を渡すことはありません。代わりに、エージェントは独自のキーを持ち、ユーザーはエージェントに支払いを代行する許可を与えます。

仕組み

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_Agent-controlled_model_sequence_diagra.max-1800x1800.jpg

エージェント制御モデルのシーケンス図。

  1. エージェントがウォレットを取得する: エージェントは 1 つ以上の秘密鍵を所有します。これらのウォレットの秘密鍵は、ユーザーではなくエージェントのホストによって安全に管理されます。

  2. ユーザーが資金を委任する: 個人のウォレット(MetaMask やハードウェア ウォレットなど)から、指定した金額をエージェントの公開アドレスに送信します。

  3. エージェントが自律性を獲得する: エージェントは、ウォレット内の管理対象の資金を完全に自律的に管理できるようになります。エージェントは、プリペイド残高がなくなるまで、キーを使用してトランザクションに署名して実行できます。トランザクションには、トークンのスワップ、NFT の購入、データに対する別エージェントへの支払いなどが含まれます。

固有のリスク

このモデルでは自動化を実現できますが、ユーザーではなくエージェントとそのホストに関する重大なリスクが伴います。

  • パフォーマンス リスク: エージェントがタスクを適切に処理できない可能性があります。たとえば、取引エージェントが欠陥のある戦略を実行し、委任された資金を失う可能性があります。

  • 悪意のリスク: 設計が不十分なエージェントや意図的な悪意のあるエージェントが資金を不正使用する可能性があります。たとえば、エージェントが残高を不正なアドレスに送信する可能性があります。このような事態を防ぐために、ホスティング プラットフォームには、エージェントの動作を制限するための堅牢な安全保護対策、監査、ルールが必要です。もう 1 つの選択肢は、エージェントの資金の使用方法を事前に設定するスマート コントラクトで、資金の安全性を確保することです。

  • セキュリティ リスク: サードパーティのホストが、委任された資金の管理者になります。サードパーティのプラットフォームがハッキングされ、エージェントの秘密鍵が漏洩した場合、プリペイド残高が主な標的となります。

自己ホスト型バリアント

一部の高度な技術的知識を持つユーザーは、このモデルを個人用サーバーで実行したいと考えるでしょう。AI エージェントの開発はまだ初期段階にあるため、この少数のデベロッパーとアーリー アドプターが現在の主なユーザーベースとなっています。

そのため、この自己ホスト型モデルは、現在最もよく見られるものであり、ほとんどの暗号 MCP サーバーは、このモデルに対応するように構築されています。このモデルでは、キーがユーザー自身の管理環境から漏洩することはないため、エージェントに秘密鍵を付与することは技術的に可能です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_Self-hosted_agent_model_sequence_diagr.max-1300x1300.jpg

自己ホスト型エージェント モデルのシーケンス図。

しかし、リスクレベルも非常に高くなります。マシンが侵害されると秘密鍵がハッキングされる可能性があります。また、エージェントの不安定で不正な動作は大きな損失につながる可能性があります。

たとえば、「500 米ドルを UNI に交換したい」と指示した場合、エージェントは UNI を売却するか、UNI を購入するか、スリッページ率を間違えるか、間違った UNI トークンを購入する可能性があります。この方法はテストでのみ使用することをおすすめします。

トランザクション作成モデル

これはノンカストディ モデルで、ほとんどのユーザー インタラクションにおいて根本的に安全な代替手段です。この場合、エージェントがお客様の資金を保持することはありません。その目的はエージェント制御モデルとまったく同じですが、キーに署名して送信する代わりに、トランザクションが返され、ユーザーがキーに署名してブロックチェーン ネットワークに送信します。

仕組み

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_-_Transaction_crafter_model_sequence_dia.max-1300x1300.jpg

トランザクション作成モデルのシーケンス図。

  1. ユーザーがエージェントに指示する: 「ETH を USDC に交換して」など、タスクの実行をエージェントに依頼します。

  2. エージェントがトランザクションを作成する: エージェントがクエリを分析し、スワップ トランザクションなどの未加工のトランザクションを作成します。

  3. ユーザーがトランザクションに署名する: エージェントがこのデータをユーザーに返します。ウォレットに、これから行う操作を示すポップアップが表示されます。承認して秘密鍵で署名できるのはユーザーのみです。

Google Cloud ツールでエージェントを構築する方法

このモデルの実例を示すために、Google Cloud の一連のツールを使用してサンプル エージェントを構築しました。エージェントの推論は Gemini 2.0 Flash モデルによって行われ、Google Agent Development Kit(ADK)を使用してオーケストレーションされます。テストでは、デベロッパーにとって重要なリソースである公開 Google Cloud Ethereum Faucet から資金を取得しました。

ADK を使用したエージェントの開発は非常に簡単で、シンプルなテスト環境と開発環境のためのウェブ UI、本番環境にエージェントを簡単にデプロイするための Agent EngineGoogle Cloud Run への高度なインテグレーション、カスタム フロントエンドに簡単に接続するための API サーバーとしてエージェントを実行するシンプルな方法、MCP サーバー、エージェント間(A2A)プロトコル、Google 検索などのツールに簡単に接続するためのツールボックスなどの便利な機能が付属しています。

Google Cloud スタックを使用してエージェントを構築する方法について詳しくは、こちらの記事をご覧ください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_cejGPDZ.max-1800x1800.jpg

このアプリの主な部分は、トランザクションを作成するエージェントと、エージェントから作成されたトランザクションを取得し、署名して送信できるように MetaMask に送信するフロントエンドです。

Google ADK を使用したエージェントの開発は非常に簡単ですが、craft_eth_transaction 関数は、サポートするオペレーションの種類によっては非常に複雑になる可能性があります。オペレーションには、チェーン、アセット、スワップが含まれます。

読み込んでいます...

クライアントサイドでは、ロジックはクリーンで、Web3 インタラクションに重点が置かれています。フロントエンドは、大規模言語モデル(LLM)やエージェントのオーケストレーションについて認識する必要はありません。エージェントの API エンドポイント(Google Cloud Run でホスト)を呼び出し、標準の JSON トランザクション オブジェクトを取得して、MetaMask に渡します。

ADK では、エージェントを API サーバーとして簡単に実行できるため、関心の分離が明確になります。フロントエンドの主な役割は、エージェントの回答からトランザクションを抽出することと、トランザクションを MetaMask に送信することです。これらの関数の例を以下に示します。

読み込んでいます...

エージェントが意図を確認する方法

エージェントの操作は、意思決定に至るまでのエージェントとの対話ですが、MetaMask のポップアップは、その会話の結論です。

これは、ファイナンシャル アドバイザーが戦略を説明し、最後に署名する最終文書を渡すようなものです。署名は、ユーザーがそのアクションを理解し、同意したことを確認するために必要なものです。エージェントの提案は、ユーザーの明示的な承認を得て実現されるため、安心感が得られます。特に、エージェントの解釈は、基盤となる LLM、会話のコンテキスト、アクセスできるデータによって大きく異なる可能性があるため、ウォレット トランザクションは承認前に必ず再確認することをおすすめします。

MCP サーバーは両方のモデルに対応する必要がある

エージェントが自律的に他のエージェントにサービスの対価を支払う未来のビジョンには、エージェント制御モデルが必要です。この経済圏のエージェントは、独自に運用できる資本を必要とします。

しかし、トランザクション作成モデルは、そのような未来への安全な橋渡しとなります。エージェントに安全に資金を提供したり、簡単なオペレーションのために 1 回限りのトランザクションを実行したりするために使用できます。この柔軟性が重要です。

デベロッパーの観点からすると、この機能を追加するのはそれほど難しいことではありません。MCP サーバーが保持するキーでトランザクションを作成して署名できるのであれば、最後の署名ステップなしで同じロジックを実行し、代わりに署名されていないトランザクションを返すことができるはずです。この小さな変更により、ユーザーにとってより安全で柔軟なパラダイムが実現し、専用の「署名エージェント」を使用するマルチエージェント システムのような、より複雑な設計も可能になります。

そのため、幅広い導入を想定して設計された堅牢な MCP サーバーは、デベロッパーが次のようなアプリケーションを柔軟に構築できるようにする必要があります。

  • 安全でユーザー中心の財務上の意思決定を支援し、作成する。

  • 専門的で自動化された、明確に定義されたタスクを、委任された資金で実行する。

ユーザーを保護しながら真のイノベーションを促進するために、この両方のモデルをサポートすることをおすすめします。

Google Cloud を使用した Web3 エージェントの構築について詳しくは、こちらをご覧ください。

-Web3 プリンシパル アーキテクト、Adrien Delaroche

投稿先