原題:Checks and balances: Machine learning and zero-knowledge proofs
原題:
原作者: Elena Burger、a16z
原文の編集: The Way of DeFi
過去数年間、ブロックチェーン上のゼロ知識証明は 2 つの主要な目的に使用されてきました: (1) オフチェーンでトランザクションを処理し、メインネット上で結果を検証することで、計算量に制約のあるネットワークを拡張する; (2) ユーザーのプライバシーを保護する復号化キーを持っている人だけが閲覧できるシールドされたトランザクションを実装します。これらの特性は、ブロックチェーンのコンテキストでは明らかに望ましいものです。イーサリアムなどの分散型ネットワークは、バリデーターの処理能力、帯域幅、レイテンシに許容できない要求を課すことなしにスループットやブロック サイズを増やすことはできません (したがって、バリデーション ロールが必要になります)。すべてのトランザクションは、すべてのトランザクションに表示されます。誰でも利用できます (したがって、オンチェーンのプライバシー ソリューションが必要です)。
しかし、ゼロ知識証明は、あらゆる種類の計算 (オフチェーンでインスタンス化された EVM での計算だけでなく) が正しく実行されたことを効率的に検証するという 3 番目のクラスの機能にも役立ちます。これはブロックチェーン以外の分野にも大きな影響を及ぼします。
現在、ゼロ知識証明を活用してコンピューティング能力を簡潔に検証するシステムの進歩により、ユーザーは、ブロックチェーンがあらゆるデジタル製品、特に機械学習モデルに対して保証するのと同じレベルのトラストレスで検証可能な検証可能性を要求できるようになりました。ブロックチェーン コンピューティングに対する高い需要により、ゼロ知識証明の研究が促進され、メモリ フットプリントが小さく、証明と検証時間が短縮される最新の証明システムが作成され、特定の小規模な機械学習アルゴリズムをオンチェーンで検証できるようになりました。
おそらく誰もが、非常に強力な機械学習製品を操作する可能性を経験したことがあるでしょう。数日前、私は GPT-4 を使用して、チェスで常に私に勝つ AI を作成しました。これは、過去数十年にわたる機械学習のすべての進歩の詩的な縮図のように感じられます。IBM 開発者は、1 秒あたりほぼ 2 億の動きを評価できる 32 ノードの IBM RS/6000 SP コンピューターである Deep Blue を 12 年かけて開発しました。 1997年にチェスのチャンピオン、ガルリ・カスパロフを破った。対照的に、私は最小限のコーディングで、私を上回るプログラムを作成するのに数時間かかりました。
確かに、私が作成した AI がチェスでガルリ・カスパロフに勝つことができるかどうかは疑問ですが、それは問題ではありません。重要なのは、GPT-4 を試したことのある人なら誰でも、超大国について同じような経験をしている可能性が高いということです。ほとんど努力せずに、自分の能力に近い、またはそれを超える何かを作成できるのです。私たちは皆 IBM 研究者であり、ガルリ・カスパロフです。
もちろん、それは刺激的であり、少し気が遠くなるようなものでもあります。暗号通貨業界で働く人なら誰でも、(機械学習で何ができるかに驚嘆した後)自然な反応は、集中化への潜在的な手段と、それらの手段を人々が透過的に監査してネットワークを所有できるシステムに分散化する方法を検討することです。今日のモデルは、公的に入手可能な膨大な量のテキストとデータをむさぼり食うことによって作成されていますが、現在これらのモデルを管理し所有しているのは少数の人々だけです。より具体的に言えば、問題は「人工知能に大きな価値があるかどうか」ではなく、「人工知能と対話する誰もが経済的利益を享受でき、希望に応じてデータが適切な方法で確実に使用されるように、これらのシステムをどのように構築するか」です。それはプライバシーの権利を尊重することです。」
最近、Chat-GPT のような主要な AI プロジェクトの開発を一時停止または減速するよう求める声が上がっています。進行を阻止することは解決策ではない可能性があります。より良いアプローチは、オープンソース モデルをプッシュし、モデルのプロバイダーが重みやデータのプライバシーを保持したい場合は、保存されているプライバシーを保護するゼロ知識証明で保護することです。オンチェーンで完全に監査できます。プライベート モデルの重みとデータに関する後者のユースケースは、現在オンチェーンではまだ実現できませんが、ゼロ知識証明システムの進歩により、将来的には可能になるでしょう。
検証可能で所有可能な機械学習
Chat-GPT を使用して構築したチェス AI は、これまでのところ比較的無害であるようです。比較的一貫したプログラムを出力し、貴重な知的財産やプライバシーを侵害するデータを使用しないプログラムです。しかし、API の背後で実行するように指示されたモデルが実際に実行されたモデルであることを確認したい場合はどうでしょうか?あるいは、認証されたデータをオンチェーンのモデルにフィードし、そのデータが本当に正当な当事者からのものであることを確認したい場合はどうすればよいでしょうか?データを送信する「人」が実際に人間であり、ネットワークにビザンチン攻撃を仕掛けようとするボットではないことを確認したい場合はどうすればよいでしょうか?ゼロ知識証明と、任意のプログラムを簡潔に表現し検証する能力が解決策となります。
現在、オンチェーン機械学習のコンテキストでは、ゼロ知識証明の主な用途は正しい計算を検証することであることに注意してください。言い換えれば、ゼロ知識証明、より具体的には SNARK (Succinct Non-Interactive Arguments of Knowledge) は、その単純さの特性により、機械学習のコンテキストで最も役立ちます。これは、ゼロ知識証明が証明者 (および証明者が処理するデータ) を覗き見から保護するためです。完全準同型暗号化 (FHE)、関数型暗号化、または信頼できる実行環境 (TEE) などのプライバシーを強化する技術は、信頼できない証明者にプライベートな入力データの計算を実行させるのに適しています (これらの技術について詳しく説明することは、この記事の範囲を超えています)。 。
一歩下がって、ゼロ知識で表現できる機械学習アプリケーションの種類について概要を見てみましょう (ゼロ知識の詳細については、ゼロ知識証明アルゴリズムの改善に関する記事を参照してください)およびハードウェアについて詳しく知り、SNARK パフォーマンスに関する Justin Thaler の研究を確認するか、ゼロ知識の教科書を確認してください)。ゼロ知識証明は通常、プログラムを算術回路として表します。これらの回路を使用して、証明者はパブリック入力とプライベート入力から証明を生成し、検証者は数学的計算を実行して、プライベート入力に関する情報を取得せずに、このステートメントの出力が正しいことを確認します。 。
オンチェーンのゼロ知識証明を使用した計算の検証はまだ初期段階にありますが、アルゴリズムの改善により、実現可能な範囲が拡大しています。ここでは、機械学習でゼロ知識証明を適用する 5 つの方法を紹介します。1. モデルの信頼性:
エンティティが実行したと主張する機械学習モデルが、実際に実行されたモデルであることを確認したいと考えています。たとえば、特定のモデルが API の背後にある場合、安価で精度の低いバージョンや、より高価でパフォーマンスの高いバージョンなど、特定のモデルを提供するエンティティの複数のバージョンが存在する可能性があります。証拠がなければ、実際に高価なバージョンを支払ったときにプロバイダーが安価なモデルを提供したかどうかを知る方法はありません (たとえば、プロバイダーはサーバーコストを節約して利益率を向上させたいと考えています)。
これを行うには、モデル インスタンスごとに個別の証明が必要です。実用的なアプローチは、Dan Boneh、Wilson Nguyen、Alex Ozdemir の Functional Commitment Framework を介したものです。これは SNARK ベースのゼロ知識コミットメント スキームで、モデル所有者がユーザーがデータを入力できるモデルにコミットし、コミットされたものの検証を受けることができます。実走したモデル。 Risc Zero (汎用 STARK ベースの仮想マシン) に基づく一部のアプリケーションもこれを実装します。 Daniel Kang 氏、Tetsuno Hayamoto 氏、Ion Stoica 氏、および Yi Sun 氏による追加の研究では、ImageNet データセット上で効率的な推論を 92% の精度で検証できることが示されました (最高パフォーマンスの非ゼロ知識検証 ImageNet モデルと同等)。
ただし、提出されたモデルが実行されたという証拠を受け取るだけでは必ずしも十分ではありません。モデルは特定のプログラムを正確に表していない可能性があるため、提出されたモデルを第三者にレビューしてもらう必要があります。機能的コミットメントにより、証明者はコミットされたモデルを使用していることを証明できますが、コミットされたモデルに関する情報は保証されません。証明トレーニングに十分なパフォーマンスを発揮するゼロ知識証明を取得できれば (以下の例 #4 を参照)、将来的にはこれらの保証も得られるようになるかもしれません。2. モデルの完全性:
同じ機械学習アルゴリズムが、異なるユーザーからのデータに対して同じように機能することを確認したいと考えています。これは、信用スコアリングの決定やローン申請など、恣意的なバイアスを適用したくない分野で役立ちます。これを実現するために関数 Promise を使用することもできます。これを行うには、モデルとそのパラメータにコミットし、ユーザーがデータを送信できるようにする必要があります。出力では、各ユーザーのデータに対してコミットされたパラメーターを使用してモデルが実行されることが検証されます。あるいは、モデルとそのパラメータを公開し、ユーザーが自分の (認証された) データに適切なモデルとパラメータを適用したことを証明することもできます。これは、患者に関する特定の情報を非公開にすることが法律で義務付けられている医療分野で特に役立ちます。将来的には、これにより、完全なプライバシーでリアルタイムのユーザー データから学習および改善できる医療診断システムが可能になる可能性があります。3. 認証:
外部の検証済み当事者 (デジタル署名を生成できるデジタル プラットフォームやハードウェア デバイスなど) からの証明書を、オンチェーンまたはその他のタイプのスマート コントラクトで実行されるモデルに組み込みたいと考えています。これを行うには、ゼロ知識証明を使用して署名を検証し、その証明をプログラムへの入力として提供します。アンナ・ローズとタルン・チトラは最近、ダニエル・カンとイー・スンをフィーチャーしたゼロ知識ポッドキャストを主催し、この分野の最新の発展について話し合いました。
具体的には、ダニエルとイーは最近、認証されたセンサーを備えたカメラで撮影された画像がトリミングなどの変換を受けているかどうかを検証する方法に関する研究を発表しました。ディープフェイクが作成されたものの、何らかの方法で合法的に編集されている場合に役立ちます。 Dan Boneh 氏と Trisha Datta 氏も同様の研究を行い、ゼロ知識証明を使用して画像の出所を検証しました。
しかし、より広範には、デジタル認証されたメッセージはすべて、この形式の検証の候補となります。EZKL ライブラリ (詳細は次のセクションで) を開発している Jason Morton 氏は、このアプローチを「ブロックチェーンにビジョンをもたらす」と呼んでいます。署名されたエンドポイント (Cloudflare の SXG サービス、サードパーティの公証人など) は検証可能なデジタル署名を生成します。これは、信頼できる当事者からの出所と信頼性を証明するのに役立ちます。4. 分散型推論またはトレーニング:
分散方式で機械学習の推論またはトレーニングを実行し、ユーザーが公開モデルにデータを送信できるようにしたいと考えています。これを行うには、既存のモデルをオンチェーンにデプロイするか、まったく新しいネットワークを設計し、ゼロ知識証明を使用してモデルを圧縮します。 Jason Morton の EZKL ライブラリは、ONXX ファイルと JSON ファイルを取り込んで ZK-SNARK 回路に変換するメソッドを作成しています。 ETH デンバーでの最近のデモでは、この技術を画像認識に基づいたオンチェーンの宝探しの作成に使用できることが示され、ゲーム作成者は写真をアップロードし、画像のプルーフを生成し、プレイヤーは画像をアップロードでき、バリデーターはユーザーがアップロードしたものをチェックします。画像は一致します。クリエイターが生成したプルーフは十分に一致します。 EZKL は、最大 1 億パラメータのモデルを検証できるようになりました。これは、ImageNet サイズのモデル (これらのモデルには 6,000 万のパラメータがあります) をオンチェーンで検証するために使用できることを意味します。
Modulus Labs などの他のチームは、オンチェーン推論用のさまざまな証明システムのベンチマークを行っています。 Modulus のベンチマークは、最大 1,800 万のパラメータをカバーします。トレーニングに関しては、Gensyn は、ユーザーが公開データを入力し、トレーニングの正しさを検証しながらノードの分散ネットワークを通じてモデル トレーニングを実行できる分散コンピューティング システムを構築しています。5. 個人証明:
プライバシーを侵害することなく、その人が固有の個人であることを確認したいと考えています。これを行うには、生体認証スキャンや政府 ID を暗号化して送信する方法などの検証方法を作成します。次に、ゼロ知識証明を使用して、その人の身元に関する情報 (その身元が完全に識別可能であるかどうか、または公開鍵などの仮名であるかどうか) を明らかにすることなく、その人が認証されていることを確認します。
Worldcoin は、ユーザーに固有の虹彩コードを生成することで攻撃耐性を確保する、本人確認プロトコルを通じてこれを実現します。重要なのは、WorldID 用に作成された秘密鍵 (および Worldcoin ユーザー用に作成された暗号化ウォレット用のその他の秘密鍵) は、プロジェクトのアイ スキャナーによってローカルに生成される虹彩コードとは完全に分離されていることです。この分離により、生体認証識別子が、誰かに帰属する可能性のあるあらゆる形式のユーザー キーから完全に分離されます。 Worldcoin では、ユーザーが WorldID でログインできるようにする SDK をアプリケーションに組み込むこともできます。また、ゼロ知識証明を活用して、個人が WorldID を持っているかどうかをアプリケーションが確認できるようにすることでプライバシーを保護しますが、個々のユーザーの追跡は許可しません (このブログを参照)詳細については記事をご覧ください)。
この例は、より弱い悪意のある AI に対してゼロ知識証明のプライバシー保護特性を使用する形式であるため、上記の他の例とは異なります (たとえば、自分がロボットではなく本物の人間であることを証明しながら、情報については何も明らかにしません)自分自身)情報)は大きく異なります。
モデルのアーキテクチャと課題
SNARK (Succinct Non-Interactive Arguments of Knowledge) を実装する証明システムのブレークスルーは、多くの機械学習モデルをオンチェーンに導入する重要な原動力となっています。いくつかのチームが既存のアーキテクチャ (Plonk、Plonky 2、Air など) でカスタム回路を作成しています。カスタム回路に関しては、Halo 2 は、Daniel Kang らと Jason Morton の EZKL プロジェクトの作業で広く使用されるバックエンドになりました。 Halo 2 の証明者時間はほぼ直線的で、証明サイズは通常わずか数キロバイトで、検証者時間は一定です。おそらくもっと重要なことは、Halo 2 には強力な開発者ツールが備わっており、SNARK バックエンド開発者が好んで使用していることです。 Risc Zero などの他のチームは、一般的な VM 戦略を追求しています。他のチームは、サムチェック プロトコルに基づいた Justin Thaler の超効率的な証明システムを使用してカスタム フレームワークを作成しています。
プルーフの生成と検証にかかる時間は、プルーフを生成およびチェックするハードウェアと、プルーフを生成する回路のサイズに完全に依存します。ただし、ここで注意すべき重要な点は、表現されるプログラムに関係なく、証明のサイズは常に比較的小さいため、証明を検証するための検証者の負担には限界があるということです。ただし、ここには微妙な点があります。FRI ベースのコミットメント スキームを使用する Plonky 2 のような証明システムの場合、証明サイズが増加する可能性があります。 (Plonk や Groth 16 のようなペアリングベースの SNARK ラッパーが最後に使用されない限り、これらの証明は、証明されるステートメントの複雑さによって増大することはありません。)
機械学習モデルの意味は、モデルを正確に表現する証明システムが設計されれば、出力を実際に検証するコストが非常に安くなるということです。開発者にとって最も重要な考慮事項は証明時間とメモリです。比較的迅速に証明できる方法でモデルを表現し、証明サイズは理想的には数キロバイト程度です。ゼロ知識条件下で機械学習モデルが正しく実行されることを実証するには、モデル アーキテクチャ (レイヤー、ノード、活性化関数)、パラメーター、制約、行列乗算演算を回路としてエンコードして表現する必要があります。これには、これらのプロパティを有限体で実行できる算術演算に分解することが含まれます。
この分野はまだ初期段階にあります。モデルを回路に変換する際に、精度と忠実度が損なわれる可能性があります。モデルが算術回路として表現される場合、前述のモデル パラメーター、制約、行列乗算演算には近似と簡略化が必要になる場合があります。算術演算を証明の有限体の要素としてエンコードする場合、一部の精度が失われる可能性があります (または、これらの最適化なしで証明を生成するコストは、現在のゼロ知識フレームワークでは膨大になります)。さらに、機械学習モデルのパラメーターやアクティベーションは、精度を高めるために 32 ビットでエンコードされることがよくありますが、今日のゼロ知識証明では、膨大なオーバーヘッドを発生させずに、必要な算術回路形式で 32 ビット浮動小数点演算を表現することはできません。したがって、開発者は、32 ビット整数が 8 ビット精度に変換された量子化機械学習モデルの使用を選択する場合があります。これらのタイプのモデルは、ゼロ知識証明として表現されることが有利ですが、検証されるモデルは、高品質の初期モデルの大まかな近似である可能性があります。
この段階では、まさに追いつくゲームです。ゼロ知識証明がより最適化されるにつれて、機械学習モデルはより複雑になります。最適化の有望な分野はすでにいくつかあります。証明の再帰により、証明を次の証明への入力として使用できるようになり、証明の圧縮が可能になり、全体的な証明のサイズを削減できます。 Apache Tensor Virtual Machine (TVM) の Linear A フォークなどの新しいフレームワークもあり、浮動小数点数をゼロ知識に適した整数表現に変換するコンバーターが導入されています。最後に、私たち a16z crypto は、SNARK での 32 ビット整数の表現をより合理的にする将来の取り組みについて楽観的です。
「スケール」の 2 つの定義 ゼロ知識証明は、圧縮を通じてスケールします。SNARK を使用すると、検証コストが実行コストよりも低くなるように、非常に複雑なシステム (仮想マシンや機械学習モデルなど) を数学的に表現できます。それ。一方、機械学習はスケーリングによって拡張されます。今日のモデルは、トレーニングと推論のプロセスに関与するデータ、パラメーター、および GPU/TPU が増えるほど改善されます。中央集権的な企業は、事実上無制限の規模でサーバーを実行できます。API 呼び出しに対して月額料金を請求し、運用コストを支払います。
ブロックチェーン ネットワークの経済的現実はほぼ逆です。開発者はコードを最適化して、オンチェーンでの実行を実現可能かつ安価にするよう奨励されています。この非対称性には大きな利点があります。証明システムの効率を向上させる必要がある環境が生み出されます。私たちは、ブロックチェーンが提供するのと同じ利点、つまり検証可能な所有権と真実の認識の共有を機械学習でも主張することに努めるべきです。
ブロックチェーンは zk-SNARK の最適化を奨励しますが、コンピューティングのあらゆる分野が恩恵を受けることになります。
