Zypher Research: zkPrompt - 信頼のないAIの安全なインタラクションプロトコル
在 zkPrompt プロトコルでは、システムの相互作用には4つの参加者が関与します:ユーザー(User)、証明者(Prover)、プロキシノード(Proxy)、および大規模言語モデル(LLM)サービス提供者です。
プロトコルの背景と比較
zkPrompt のコア理念は zkTLS [1] に似ており、後者はゼロ知識証明を TLS 通信プロセスに統合してデータの完全性と真実性を確保します。zkPrompt システムでは、ユーザーが Prover を通じて LLM にリクエストを送信し、Prover が第三者の Proxy を介してリクエストを LLM サービス提供者に転送します。
LLM はリクエストを処理し、Proxy を介して応答を Prover に返し、Prover はそれをユーザーに伝えます。TLS 通信は Prover、Proxy、および LLM サービス提供者間でのみ発生します。ユーザーがこの通信に直接関与しないため、Prover が応答内容を改ざんする可能性を懸念するかもしれません。この信頼の問題を解決するために、zkPrompt は Prover にゼロ知識証明を生成することを要求し、返された応答が実際に LLM によって生成され、改ざんされていないことを証明します。これにより、高度な改ざん防止のセキュリティが実現されます。
このプロトコルの実施は、AI エージェントの信頼性と安全性を大幅に向上させ、高価値のアプリケーションシナリオを解放します。例えば、オンチェーン資産管理、ヘッジ戦略、金融 AI アシスタント、決済システムなど、これらはすべて非常に高い信頼性を持つ AI システムに依存しています。
設計の利点
既存の ZKML フレームワーク(例えば Ezkl [2])と比較して、zkPrompt はシステムのオーバーヘッドを大幅に削減します。例えば、単純な GPT-2 モデルの Zk 証明を生成するには、Ezkl では数時間かかる可能性があり、OpenAI や DeepSeek などの大規模モデルサービスに対しては実際に展開することがほぼ不可能です。
私たちは、より実用的な信頼モデルを提案します:システムはユーザーに LLM の内部実行プロセスを検証することを要求せず、大規模 LLM サービス提供者が信頼できると仮定し、Prover が出力を改ざんしないことを重点的に確保します。この設計は現実のニーズを反映しています。主流の LLM サービス提供者は、その評判と広範なユーザーベースにより自然な信頼性を持ち、Prover ノードは通常ユーザーには見えず、攻撃のポイントになる可能性が高いため、重点的に制約する必要があります。
信頼と安全モデル
私たちは Proxy と Prover の間に共謀行為が存在しないと仮定します。この仮定をさらに強化するために、実際の展開では Proxy を分散化することを推奨します。これにより、単一の信頼点や障害を回避できます。
初期実装を簡素化するために、ユーザーのプロンプトと最終応答が明文形式でオンチェーンにアップロードされると仮定します(プライバシー保護方法については後の部分で説明します)。
技術的課題と核心的解決策
主な技術的課題は、Prover が暗号文を偽造できることです。ユーザーが特定の暗号文を見ても、それが実際に TLS セッションを通じて LLM から取得されたものであるか、単に Prover がローカルで偽造して暗号化したものであるかを判断することはできません。
この問題を解決するために、Proxy サイン機構を導入します。Proxy が LLM から暗号化された応答を受け取ると、暗号文に署名し、暗号文と署名を一緒にチェーンにアップロードします。その後、Prover はゼロ知識証明を提供し、以下の声明が成立することを証明します:
暗号文を復号化して得られる明文は、LLM が返した応答である。
この証明の核心は、対称復号化プロセスの正確性を検証することであり、Dubhe [3] などの既存の成果を利用して効率的に実現できます。
検証プロセス
LLM の応答には通常ユーザーのプロンプトが含まれるため、検証者(例えばマイナー)は以下のチェックを完了するだけです:
- Proxy の暗号文に対する署名が有効であることを確認する;
- 復号化された明文がユーザーの元のプロンプトを含んでいるかを確認する;
- Prover が提供したゼロ知識証明を検証する。
上記のステップを完了した後、マイナーは Prover が LLM からの真の応答を誠実に返したことを確認できます。
プライバシー保護設計
ユーザーがプロンプトと応答内容を隠したい場合、以下の方法を採用できます:
プロンプトを送信し応答を受け取った後、ユーザーはそのハッシュ値を明文ではなくチェーンにアップロードします。設定:
- H1 = Hash(Prompt)
- H2 = Hash(Response)
応答のサブストリング [I:J] がちょうどプロンプトに対応していると仮定します。
この場合、Proxy が応答の暗号文をチェーンにアップロードし、Prover は応答の明文 Www をウィットネスとして使用し、以下の Zk 証明を生成します:
- Hash(W) = H2
- Hash(W[I:J]) = H1
- Decrypt(Ciphertext) = W
検証者は Proxy の署名された暗号文が有効であることを確認し、Prover が提供した Zk 証明を検証するだけで、応答が実際に LLM からのものであり、改ざんされていないことを確信できます------明文内容を開示する必要はありません。
著者紹介:
Felix Zypher Network チーフリサーチサイエンティスト
Felix は Zypher Network の人工知能コアチームの研究員で、次世代のマルチモーダル大モデルと信頼できる AI システムに焦点を当てています。彼は現在、ゼロ知識証明(ZK)に基づくモデル圧縮方法に主に取り組んでおり、分散環境における AI エージェントの一般化能力と安全性を向上させています。
Zypher に参加する前、Felix はマイクロソフトアジア研究所とカリフォルニア大学バークレー校で複数の最前線の AI プロジェクトに参加し、豊富な研究経験を積みました。彼の研究成果は NeurIPS、S\&P、CCS、Usenix Security、NDSS などの人工知能とネットワークセキュリティのトップ会議で発表されています。
Felix は現在シンガポール国立大学の博士候補生であり、研究分野は効率的なモデル推論最適化、分散型 AI アーキテクチャ、モデルのロバスト性、暗号学を含みます。AI とブロックチェーンの交差分野における確固たるバックグラウンドを活かし、Zypher で AI と ZK 技術の革新的な融合を推進し、信頼できる統合型で安全な分散型 AI エコシステムの構築に貢献しています。
参考文献:
[1] zkTLS 詳細紹介:
++Https://Www.Blocmates.Com/Articles/What-Is-Zktls-A-Complete-Guide++
[2] Ezkl プロジェクトホームページ:
++Https://Github.Com/Zkonduit/Ezkl++
[3] Dubhe: 標準 AES に対する簡潔なゼロ知識証明とその関連アプリケーション:
++Https://Homes.Luddy.Indiana.Edu/yh33/Mypub/Dubhe.Pdf++