a16z:ゼロ知識証明を通じてオンチェーンの機械学習アルゴリズムをどのように検証するか?
原文标题:Checks and balances: Machine learning and zero-knowledge proofs
原文作者:Elena Burger ,a16z
编译:DeFi之道
過去数年間、ブロックチェーン上のゼロ知識証明は主に二つの重要な目的で使用されてきました:(1) オフチェーンで取引を処理し、メインネットで結果を検証することによって、計算制約のあるネットワークのスケールを拡張すること;(2) シールドトランザクションを実現することによってユーザーのプライバシーを保護し、復号鍵を持つ者だけが見ることができるようにすること。ブロックチェーンの文脈において、これらの特性は明らかに望ましいものです:分散型ネットワーク(例えばイーサリアム)は、検証者の処理能力、帯域幅、遅延に対して耐えられない要求を課すことなくスループットやブロックサイズを増加させることはできません(したがって、有効性のロールアップが必要です)、すべての取引は誰にでも見えるため(したがって、オンチェーンプライバシーソリューションが必要です)。
しかし、ゼロ知識証明は第三の機能にも有用です:任意のタイプの計算(オフチェーンでインスタンス化されたEVM内の計算だけでなく)が正しく実行されたことを効率的に検証すること。これはブロックチェーンの外の分野にも大きな影響を与えます。
現在、ゼロ知識証明を利用して計算能力を簡潔に検証するシステムの進展により、ユーザーはすべてのデジタル製品からブロックチェーンが保証するのと同じレベルの非信任性と検証可能性を要求できるようになっています。特に、機械学習モデルからです。ブロックチェーン計算の高い需要はゼロ知識証明の研究を促進し、メモリ使用量が少なく、証明と検証の時間が短い現代的な証明システムを生み出しました------これにより、現在では特定の小型機械学習アルゴリズムをオンチェーンで検証できるようになりました。
これまでのところ、私たちは非常に強力な機械学習製品と対話する可能性を体験してきたかもしれません。数日前、私はGPT-4を使って、私に連続して勝つことができるAIを作成しました。これは、過去数十年にわたる機械学習の進歩の詩的な縮図のように感じました:IBMの開発者たちは、1997年にチェスチャンピオンのガリー・カスパロフを打ち負かしたDeep Blueを作成するのに12年を費やしました。このモデルは、32ノードのIBM RS/6000 SPコンピュータ上で動作し、毎秒近くの2億の棋手を評価することができました。それに対して、私は数時間で------私の側では最小限のコーディングしか行わずに------私を打ち負かすプログラムを作成しました。
確かに、私が作成したAIがガリー・カスパロフをチェスで打ち負かすことができるかどうかは疑問ですが、それが重要な点ではありません。重要なのは、GPT-4を使っている誰もが超能力を得るという似たような経験をする可能性があるということです:わずかな努力で、自分の能力に近いかそれを超えるものを創造できるのです。私たちは皆、IBMの研究者です;私たちは皆、ガリー・カスパロフです。
明らかに、これは興奮をもたらし、少しの恐れをも引き起こします。暗号通貨業界で働く人々にとって、自然な反応(機械学習が何をできるかに驚いた後)は、潜在的な集中化の道を考え、それらの道をどのように分散化するか、透明に監査し、所有できるネットワークを形成するかを考えることです。現在のモデルは、大量の公開可能なテキストとデータを取り込むことによって作成されていますが、現在は少数の人々がこれらのモデルを制御し、所有しています。より具体的には、「人工知能は巨大な価値を持つのか?」という問題ではなく、「私たちはどのようにしてこれらのシステムを構築し、相互作用する誰もがその経済的利益を得られるようにし、希望する場合には彼らのデータがプライバシーを尊重する方法で使用されることを保証するのか?」という問題です。
最近、Chat-GPTのような重大な人工知能プロジェクトの開発を一時停止または減速させるよう呼びかける声が上がっています。進歩を阻止することは解決策ではないかもしれません:より良い方法は、オープンソースモデルを推進し、モデル提供者がその重みやデータのプライバシーを保護したい場合に、プライバシーを保護するゼロ知識証明を使用してそれらを保護することです。これらの証明はオンチェーンであり、完全に監査可能です。現在、プライベートモデルの重みやデータに関する後者のユースケースはオンチェーンで実現できていませんが、ゼロ知識証明システムの進展は将来的にこの目標を実現するでしょう。
検証可能で所有可能な機械学習
私がChat-GPTを使用して構築したチェスAIは、現在のところ比較的無害に見えます:出力は比較的一貫したプログラムであり、貴重な知的財産を侵害したり、プライバシーを侵害するデータを使用したりしていません。しかし、私たちがAPIの背後で実行されているモデルが実際に実行されたモデルであることを確認したい場合はどうでしょうか?あるいは、認証されたデータをオンチェーンのモデルに入力し、そのデータが実際に合法的な側から来ていることを確認したい場合は?データを提出する「人」が実際に人間であり、私のネットワークに対してビザンチン攻撃を試みるロボットではないことを確認したい場合は?ゼロ知識証明とその任意のプログラムを簡潔に表現し検証する能力は、解決策の一つです。
注意すべきは、現在のオンチェーン機械学習の文脈において、ゼロ知識証明の主な用途は正しい計算を検証することです。言い換えれば、機械学習の文脈において、ゼロ知識証明とより具体的なSNARK(簡潔な非対話型知識証明)の最も有用な点は、その簡潔性の特性です。これは、ゼロ知識証明が証明者(およびその処理データ)を覗き見から保護するためです。完全同型暗号(FHE)、機能暗号、または信頼できる実行環境(TEE)などのプライバシーを強化する技術は、信頼できない証明者がプライベートな入力データ上で計算を実行するのにより適しています(これらの技術を深く探ることはこの記事の範囲を超えています)。
一歩引いて、ゼロ知識で表現できる機械学習アプリケーションのタイプを高いレベルで理解しましょう(ゼロ知識について詳しくは、ゼロ知識証明アルゴリズムとハードウェアの改善に関する私たちの記事を参照し、Justin ThalerのSNARK性能に関する研究を確認するか、私たちのゼロ知識教材を参照してください)。ゼロ知識証明は通常、プログラムを算術回路として表現します:これらの回路を使用して、証明者は公共およびプライベートな入力から証明を生成し、検証者は数学的計算を通じてこの文の出力が正しいことを確認します------プライベートな入力に関する情報を取得することなく。
私たちはまだオンチェーンのゼロ知識証明を使用して計算を検証する非常に初期の段階にいますが、アルゴリズムの改善は実行可能な範囲を広げています。以下は、機械学習におけるゼロ知識証明の適用方法の五つです。
1.モデルの真実性:ある実体が主張する機械学習モデルが実際に実行されたものであることを確認したいとします。例えば、あるモデルがAPIの背後にある場合、特定のモデルを提供する実体は、より安価で精度の低いバージョンと、より高価で性能の高いバージョンなど、複数のバージョンを持つ可能性があります。証明がなければ、あなたが実際により高価なバージョンを支払ったときに、提供者がより安価なモデルを提供したかどうかを知ることはできません(例えば、提供者はサーバーコストを節約し、利益率を向上させたいと考えています)。
そのためには、各モデルインスタンスに対して個別の証明を提供する必要があります。実際的な方法は、Dan Boneh、Wilson Nguyen、Alex Ozdemirによる機能コミットメントフレームワークを通じて、これはSNARKに基づくゼロ知識コミットメントスキームであり、モデル所有者がモデルをコミットし、ユーザーがそのモデルにデータを入力し、実行されたコミットモデルの検証を受け取ることを可能にします。Risc Zero(STARKに基づく汎用仮想マシン)に基づくいくつかのアプリケーションもこれを実現しています。Daniel Kang、Tatsunori Hashimoto、Ion Stoica、Yi Sunによる他の研究は、ImageNetデータセット上で92%の精度で有効な推論を検証できることを示しています(最高性能の非ゼロ知識検証ImageNetモデルに相当します)。
しかし、単に提出されたモデルが実行された証明を受け取るだけでは十分ではないかもしれません。あるモデルが与えられたプログラムを正確に表現できない可能性があるため、第三者による提出されたモデルの監査を希望するでしょう。機能コミットメントは、証明者がコミットされたモデルを使用したことを証明することを可能にしますが、コミットされたモデルに関する情報を保証することはできません。もし私たちがゼロ知識証明がトレーニングの証明において十分に良い性能を発揮できるなら(以下の例#4を参照)、将来的にはこれらの保証を得ることができるかもしれません。
2.モデルの完全性:同じ機械学習アルゴリズムが異なるユーザーのデータ上で同じ方法で実行されることを確認したいとします。これは、信用スコアの決定やローン申請など、任意の偏見を適用したくない分野で非常に有用です。これを実現するために、機能コミットメントを使用することもできます。そのためには、モデルとそのパラメータをコミットし、人々がデータを提出できるようにする必要があります。出力は、そのモデルが各ユーザーのデータに対してコミットされたパラメータで実行されたことを検証します。あるいは、モデルとそのパラメータを公開し、ユーザー自身が自分の(認証された)データに適切なモデルとパラメータを適用したことを証明できるようにします。これは医療分野で特に有用である可能性があります。なぜなら、法律により患者に関する特定の情報は機密である必要があるからです。将来的には、完全にプライベートなリアルタイムユーザーデータから学習し、改善できる医学診断システムを実現できるかもしれません。
3.認証:外部の検証された側(例えば、デジタル署名を生成できる任意のデジタルプラットフォームやハードウェアデバイス)からの認証を、オンチェーンで実行されるモデルや他のタイプのスマートコントラクトに統合したいとします。これを実現するために、ゼロ知識証明を使用して署名を検証し、証明をプログラムの入力として使用します。Anna RoseとTarun Chitraは最近、Daniel KangとYi Sunをゲストに迎え、ゼロ知識のポッドキャストエピソードを開催し、この分野の最新の進展を探求しました。
具体的には、DanielとYiは最近、認証されたセンサーを持つカメラによって撮影された画像が、トリミング、スケーリング、または限られた遮蔽などの変換を受けたかどうかを検証する方法を探る研究を発表しました。これは、画像が深層偽造されていないことを証明したいが、何らかの合法的な編集が行われたことを証明したい場合に非常に有用です。Dan BonehとTrisha Dattaも、ゼロ知識証明を使用して画像の出所を検証する類似の研究を行っています。
しかし、より広く言えば、デジタル認証された情報はこの種の検証形式の候補です:Jason MortonはEZKLライブラリを開発しており(次のセクションで詳しく説明します)、彼はこのアプローチを「ブロックチェーンに視覚を与える」と呼んでいます。署名された任意のエンドポイント(例えば、CloudflareのSXGサービス、第三者の公証人)は、検証可能なデジタル署名を生成し、これは信頼できる側からの出所と真実性を証明するのに非常に有用です。
4.分散推論またはトレーニング:機械学習の推論またはトレーニングを分散的に実行し、人々が公共モデルにデータを提出できるようにしたいとします。そのためには、既存のモデルをオンチェーンにデプロイするか、全く新しいネットワークを設計し、ゼロ知識証明を使用してモデルを圧縮することができます。Jason MortonのEZKLライブラリは、ONXXおよびJSONファイルを取り込み、それらをZK-SNARK回路に変換する方法を作成しています。最近、ETH Denverでのデモでは、この技術が画像認識に基づくオンチェーンの宝探しゲームを作成するために使用できることが示されました。ゲームクリエイターは写真をアップロードし、画像の証明を生成し、プレイヤーは画像をアップロードします;検証者は、ユーザーがアップロードした画像がクリエイターが生成した証明と十分に一致するかどうかを確認します。EZKLは現在、最大1億のパラメータを検証できるため、ImageNetサイズのモデル(6000万のパラメータを持つモデル)をオンチェーンで検証するのに使用できます。
他のチーム、例えばModulus Labsは、異なる証明システムのためにオンチェーン推論のベンチマークテストを行っています。Modulusのベンチマークテストは、最大1800万のパラメータをカバーしています。トレーニングに関しては、Gensynは公共データを入力し、分散ノードネットワークを介してモデルをトレーニングし、そのトレーニングの正確性を検証できる分散計算システムを構築しています。
5.人間の証明:ある人が独自の個体であることを確認したいが、そのプライバシーを損なわないようにしたいとします。そのためには、生体認証スキャンや政府IDを暗号化して提出する方法などの検証方法を作成します。次に、ゼロ知識証明を使用して、ある人が検証されたかどうかを確認しますが、その人の身元に関する情報は漏れません。身元が完全に識別可能であっても、公開鍵のような仮名であってもです。
Worldcoinは、ユーザーにユニークな虹彩コードを生成することで攻撃に対抗することを保証する人間の証明プロトコルを通じてこれを実現しています。重要なのは、WorldIDを作成するための秘密鍵(およびWorldcoinユーザーのために作成された暗号財布の他の秘密鍵)が、プロジェクトの眼球スキャナーによってローカルに生成された虹彩コードと完全に分離されていることです。この分離は、生体認証識別子を、特定の個人に帰属する可能性のある任意の形式のユーザーキーから完全に分離します。Worldcoinはまた、アプリケーションがSDKを埋め込むことを許可し、ユーザーがWorldIDでログインできるようにし、アプリケーションが人がWorldIDを持っているかどうかを確認することを許可することで、プライバシーを保護するためにゼロ知識証明を利用しますが、個々のユーザーを追跡することは許可しません(詳細についてはこのブログ記事を参照してください)。
この例は、ゼロ知識証明のプライバシー保護機能を使用して、より弱く悪意のある人工知能に対抗する形であり、したがって、他の上記の例(例えば、自分がロボットではなく本物の人間であることを証明するが、自分に関する情報は一切漏らさない)とは大きく異なります。
モデルアーキテクチャと課題
SNARKs(簡潔非対話型知識証明)の証明システムにおけるブレークスルーは、多くの機械学習モデルをオンチェーンにするための重要な推進力となっています。一部のチームは、既存のアーキテクチャ(Plonk、Plonky2、Airなど)でカスタム回路を作成しています。カスタム回路の分野では、Halo 2がDaniel Kangらの作業やJason MortonのEZKLプロジェクトで広く使用されているバックエンドとなっています。Halo 2の証明者時間はほぼ線形で、証明サイズは通常数千バイトに過ぎず、検証者時間は一定です。おそらくより重要なのは、Halo 2が強力な開発者ツールを持っているため、開発者が好んで使用するSNARKバックエンドとなっていることです。他のチーム、例えばRisc Zeroは、汎用VM戦略を追求しています。また、いくつかのチームは、Justin Thalerの超効率的な証明システムを使用して、和チェックプロトコルに基づくカスタムフレームワークを作成しています。
証明生成と検証者時間は、証明を生成およびチェックするハードウェアと生成する証明の回路サイズに絶対的に依存します。しかし、ここで注意すべき重要な点は、代表されるプログラムが何であれ、証明のサイズは常に比較的小さいため、証明を検証する検証者の負担は制限されるということです。しかし、ここにはいくつかの微妙な点があります:Plonky2のようにFRIに基づくコミットメントスキームを使用する証明システムでは、証明サイズが増加する可能性があります。(最終的にPlonkやGroth16のようなペアリングに基づくSNARKラッパーを使用しない限り、これらの証明は証明された陳述の複雑さに応じて増加しません。)
機械学習モデルにとっての示唆は、一度モデルを正確に表現する証明システムが設計されれば、実際の出力を検証するコストは非常に安価になるということです。開発者が最も考慮すべきことは、証明者の時間とメモリです:比較的迅速に証明できる方法でモデルを表現し、証明サイズが理想的には数千バイト程度であることです。ゼロ知識の下で機械学習モデルの正しい実行を証明するには、モデルアーキテクチャ(層、ノード、活性化関数)、パラメータ、制約、行列乗算を回路としてエンコードし、表現する必要があります。これは、これらの属性を有限体上で実行できる算術演算に分解することを含みます。
この分野はまだ始まったばかりです。モデルを回路に変換する過程で、正確性と忠実度が影響を受ける可能性があります。モデルが算術回路として表現されると、前述のモデルパラメータ、制約、および行列乗算は近似および簡略化される必要があるかもしれません。算術演算を証明の有限体内の要素としてエンコードする際に、いくつかの精度が失われる可能性があります(または、これらの最適化を行わない場合、現在のゼロ知識フレームワークの下で証明を生成するコストが過負荷になるでしょう)。さらに、機械学習モデルのパラメータと活性化は通常32ビットでエンコードされて精度が向上しますが、今日のゼロ知識証明は必要な算術回路形式で32ビット浮動小数点演算を表現できず、巨大なオーバーヘッドを生じます。したがって、開発者は量子化された機械学習モデルを使用することを選択するかもしれません。この場合、32ビット整数はすでに8ビット精度に変換されています。これらのタイプのモデルはゼロ知識証明として表現するのに適していますが、検証されるモデルは高品質な初期モデルの粗い近似である可能性があります。
この段階では、これは確かに追いつくゲームです。ゼロ知識証明がより最適化されるにつれて、機械学習モデルはますます複雑になります。すでにいくつかの最適化された有望な分野があります:証明の再帰は、証明を次の証明の入力として使用できることを許可することによって全体の証明サイズを縮小し、証明の圧縮を実現します。また、Linear AのApache Tensor仮想マシン(TVM)ブランチのような新興のフレームワークが登場しており、浮動小数点数をゼロ知識に優しい整数表現に変換するコンバータを導入しています。最後に、私たちはa16z cryptoの将来の作業に楽観的であり、これによりSNARKs内で32ビット整数を表現することがより合理的になるでしょう。
「スケール」の二つの定義 ゼロ知識証明は圧縮を通じてスケールを実現します:SNARKsは、極めて複雑なシステム(仮想マシンや機械学習モデルなど)を数学的に表現することを可能にし、その検証コストがそれを実行するコストを下回るようにします。一方、機械学習は拡張を通じてスケールを実現します:今日のモデルは、より多くのデータ、パラメータ、トレーニングおよび推論プロセスに参加するGPU/TPUによってより良くなります。中央集権的な企業は、ほぼ無制限の規模でサーバーを運営できます:API呼び出しの月額料金を請求し、運営コストを支払います。
ブロックチェーンネットワークの経済的現実はほぼ正反対です:開発者は、彼らのコードを最適化して、オンチェーンで実行することが実行可能で安価であるように奨励されています。この非対称性は巨大な利点を生み出します:それは、証明システムの効率を向上させる必要がある環境を創出します。私たちは、機械学習においてブロックチェーンが提供するのと同じ利益、すなわち検証可能な所有権と共有された真実の概念を求めるべきです。
ブロックチェーンがzk-SNARKsの最適化を促進しているにもかかわらず、計算に関連するすべての分野が恩恵を受けるでしょう。
謝辞:Justin Thaler, Dan Boneh, Guy Wuollet, Sam Ragsdale, Ali Yahya, Chris Dixon, Eddy Lazzarin, Tim Roughgarden, Robert Hackett, Tim Sullivan, Jason Morton, Peiyuan Liao, Tarun Chitra, Brian Retford, Daniel Kang, Yi Sun, Anna Rose, Modulus Labs, DC Builder。