zkSNARKs を介した機械学習 (ML) モデル推論の証明は、この 10 年間のスマート コントラクトにおける最も重要な進歩の 1 つになることが約束されています。この開発により、非常に大きな設計空間が開かれ、アプリケーションとインフラストラクチャがより複雑でインテリジェントなシステムに進化できるようになります。
ML 機能を追加することで、スマート コントラクトはより自律的かつ動的になり、静的なルールではなくリアルタイムのオンチェーン データに基づいて意思決定できるようになります。スマート コントラクトは柔軟性があり、最初に契約が作成された時点では予期していなかったシナリオも含め、さまざまなシナリオに対応できます。つまり、ML 機能は、オンチェーンに配置するスマート コントラクトの自動化、精度、効率、柔軟性を強化します。
ML は Web3 以外のほとんどのアプリケーションで広く使用されており、スマート コントラクトでの応用はほぼゼロです。これは主に、これらのモデルをオンチェーンで実行する際の計算コストが高いためです。たとえば、FastBERT は、約 1800 MFLOPS (100 万回の浮動小数点演算) を使用する計算的に最適化された言語モデルですが、EVM 上で直接実行することはできません。
チェーン上の ML モデルの適用は、主に推論段階、つまりモデルを適用して現実世界のデータを予測する段階に焦点を当てています。 ML スケールのスマート コントラクトを実現するには、コントラクトがそのような予測を取り込める必要がありますが、前述したように、EVM 上でモデルを直接実行することは現実的ではありません。 zkSNARK は、私たちに解決策を提供します。誰でもオフチェーンでモデルを実行し、期待されたモデルが特定の結果を生成したという簡潔で検証可能な証拠を生成できます。この証明はオンチェーンで公開され、スマート コントラクトによって取り込まれてインテリジェンスを強化できます。
この記事では、次のことを行います。
機械学習 (ML) は、コンピューターがデータから学習して予測や意思決定を行えるようにするアルゴリズムと統計モデルの開発に焦点を当てた人工知能 (AI) のサブ分野です。 ML モデルには通常、次の 3 つの主要コンポーネントがあります。
モデルの生成と展開は、次の 2 つのフェーズに分かれています。
現在、zkML は、主に検証回路でのトレーニングの計算の複雑さのため、トレーニング フェーズではなく、機械学習モデルの推論フェーズに主に焦点を当てています。ただし、zkML が推論に重点を置いていることに制限はありません。非常に興味深い使用例やアプリケーションがいくつか期待されています。
推論を検証するには 4 つのシナリオが考えられます。
検証された ML 推論により、スマート コントラクトの新しい設計スペースが開かれます。暗号ネイティブ アプリケーションには次のようなものがあります。
検証可能なオフチェーン ML オラクル。生成 AI の継続的な導入により、業界はそのコンテンツに対する署名スキーム (たとえば、記事や画像に署名するニュース出版物) の実装を促進する可能性があります。署名されたデータはゼロ知識証明に対応しており、データを構成可能で信頼できるものにします。 ML モデルは、この署名されたデータをオフチェーンで処理して、予測と分類 (選挙結果や気象現象の分類など) を行うことができます。これらのオフチェーン ML オラクルは、推論を検証し、オンチェーンで証明を公開することで、現実世界の予測市場、保険プロトコル契約などをトラストレスに解決できます。
ML パラメータに基づく DeFi アプリケーション。 DeFi の多くの側面はさらに自動化できる可能性があります。たとえば、融資プロトコルは ML モデルを使用してパラメータをリアルタイムで更新できます。現在、融資プロトコルは主に組織が運営するオフチェーン モデルに依存して、担保要素、融資対価値比率、清算閾値などを決定していますが、より良い選択肢は、誰でも実行できるコミュニティでトレーニングされたオープンソース モデルである可能性があります。そして検証してください。
自動取引戦略。財務モデル戦略の収益特性を実証する一般的な方法は、国会議員が投資家にさまざまなバックテスト データを提供することです。ただし、取引を実行するときにストラテジストがモデルに従っていることを確認する方法はありません。投資家はストラテジストが実際にモデルに従っていることを信頼する必要があります。 zkML は、MP が特定の役職に配置されたときに財務モデル推論の証明を提供できるソリューションを提供します。これは、DeFi 管理の保管庫に特に役立つ可能性があります。
スマートコントラクトの不正監視。遅い人間のガバナンスや集中型のアクターに契約を一時停止する機能を制御させる代わりに、ML モデルを使用して、潜在的な悪意のある動作を検出し、契約を一時停止することができます。
Kaggle の分散型でトラストレスな実装。 MP にモデルの重みを開示することを要求せずに、MC またはその他の利害関係者がモデルの精度を検証できるプロトコルまたは市場を作成することができます。これは、モデルの販売、モデルの精度に関するコンテストの開催などに役立ちます。
生成型 AI の分散型プロンプト マーケットプレイス。生成 AI のプロンプト オーサリングは複雑な技術に成長しており、最適な出力を生成するプロンプトには複数の修飾子が含まれることがよくあります。外部関係者は、作成者からこれらの複雑なヒントを購入することをいとわない場合があります。ここで zkML は 2 つの方法で使用できます。1) ヒントの出力を検証し、ヒントが実際に目的の画像を作成することを潜在的な購入者に保証します。
2)チップの所有者が購入後にチップの所有権を維持できるようにする。ただし、購入者には不明瞭なままであるが、チップの検証済み画像は生成される。
秘密キーをプライバシーを保護する生体認証に置き換えます。秘密キーの管理は、依然として Web3 ユーザー エクスペリエンスにおける最大の障害の 1 つです。顔認識またはその他の固有の要素を通じて秘密キーを抽象化することは、zkML で考えられる解決策の 1 つです。
公平なエアドロップと貢献者報酬。 ML モデルを使用すると、ユーザーの詳細なペルソナを作成し、複数の要素に基づいてエアドロップの割り当てや貢献報酬を決定できます。これは、ID ソリューションと組み合わせる場合に特に役立ちます。この場合、可能性の 1 つは、アプリへの関与だけでなく、ガバナンス フォーラムへの投稿などのより高いレベルの関与を評価するオープンソース モデルをユーザーに実行させ、割り当てについて推論させることです。この証明は、対応するトークン割り当てのコントラクトに提供されます。
Web3ソーシャルメディアのフィルタリング。 Web3 ソーシャル アプリケーションの分散化された性質は、スパムや悪意のあるコンテンツの増加につながります。理想的には、ソーシャル メディア プラットフォームは、コミュニティの合意に基づいたオープンソース ML モデルを使用し、投稿をフィルターすることを選択するときにモデルの推論の証拠を公開できます。好例: Twitter アルゴリズムの zkML 分析。
広告/推奨。ソーシャル メディア ユーザーとして、私はパーソナライズされた広告を喜んで見るかもしれませんが、自分の好みや興味は広告主には秘密にしておきたいと考えています。自分の興味に関するモデルをローカルで実行し、それをメディア アプリケーションにフィードしてコンテンツを提供することを選択できます。この場合、広告主はこれを実現するためにエンドユーザーにお金を払うつもりかもしれませんが、これらのモデルは現在制作されているターゲットを絞った広告モデルよりもはるかに洗練されていない可能性があります。
ゲーム内経済のリバランス。トークンの発行、供給、書き込み、投票のしきい値などは、ML モデルを使用して動的に調整できます。考えられるモデルの 1 つは、特定のリバランスしきい値に達し、推論の証明が検証された場合にゲーム内経済のバランスをリバランスするインセンティブ契約です。
新しいタイプのオンチェーン ゲーム。トラストレス AI モデルが非プレイアブル キャラクターとして機能する、協力的な人間対 AI ゲームやその他の革新的なオンチェーン ゲームを作成できます。 NPC によって行われたすべてのアクションは、正しいモデルが実行されていることを誰でも検証できる証拠とともにオンチェーンに投稿されます。 Modulus Labs の Leela vs. the World では、検証者は、マグナス カールソンではなく、記載されている 1900 ELO AI が手を選択することを確認したいと考えています。もう 1 つの例は、大乱闘スマッシュブラザーズに似た AI 格闘ゲーム、AI Arena です。一か八かの競争環境では、プレイヤーはトレーニングするモデルが干渉したり不正行為をしていないかを確認したいと考えます。
zkML エコシステムは、次の 4 つの主要カテゴリに大別できます。
zkML エコシステムでは、Model-to-Proof コンパイラーの作成に最も注目が集まっています。通常、これらのコンパイラは、Pytorch、Tensorflow などを使用して、高度な ML モデルを zk 回路に変換します。
EZKL は、zk-SNARK の深層学習モデルを推論するためのライブラリおよびコマンドライン ツールです。 EZKL を使用すると、Pytorch または TensorFlow で計算グラフを定義し、JSON ファイル内の入力例を含む ONNX ファイルとしてエクスポートし、EZKL でこれらのファイルを指定して zkSNARK 回路を生成できます。最新のパフォーマンス向上ラウンドにより、EZKL は、MNIST サイズのモデルと 1.1 GB の RAM を最大 6 秒で証明できるようになりました。これまで、EZKL は早期に導入され、さまざまなハッカソン プロジェクトのインフラストラクチャとして使用されてきました。
Cathie So の circomlib-ml ライブラリには、Circom 用のさまざまな ML 回路テンプレートが含まれています。 Circuits には、最も一般的な ML 関数のいくつかが含まれています。 Cathie によって開発された Keras 2c ircom は、基盤となる circomlib-ml ライブラリを使用して Keras モデルを Circom 回路に変換する Python ツールです。
LinearA は、zkML 用の 2 つのフレームワーク、Tachikoma とuchikoma を開発しました。 Tachikoma は、ニューラル ネットワークを整数のみの形式に変換し、計算軌跡を生成するために使用されます。 UchikomaはTVMの中間表現を浮動小数点演算をサポートしていないプログラミング言語に変換するツールです。 LinearA は、ドメイン演算で Circom をサポートし、符号付きおよび符号なし整数演算で Solidity をサポートする予定です。
Daniel Kang の zkml は、論文「Zero-Knowledge Proofs による Trustless DNN Inference のスケールアップ」の成果に基づいて構築された ML モデルの実行を証明するためのフレームワークです。この記事の執筆時点では、約 5 GB のメモリと約 16 秒の実行時間で MNIST 回路を証明できました。
より一般化された Model-to-Proof コンパイラに関しては、Nil Foundation と Risc Zero があります。 Nil Foundation の zkLLVM は、C++、Rust、Java/Type などの一般的なプログラミング言語で記述された計算モデルを検証できる LLVM ベースの回路コンパイラーです。ここで説明した他のモデル証明コンパイラーと比較すると、これは汎用インフラストラクチャーですが、それでも zkML などの複雑な計算に適しています。これは、証明市場と組み合わせると特に強力になります。
Risc Zero は、オープンソース RISC-V 命令セットをターゲットとした汎用 zkVM を構築するため、C++ や Rust などの既存の成熟した言語や LLVM ツールチェーンをサポートします。これにより、Nvidia の CUDA C++ ツールチェーンと同様に、GPU の代わりに ZKP エンジンを使用して、ホストとゲストの zkVM コード間のシームレスな統合が可能になります。 Nil と同様に、Risc Zero を使用して ML モデルの計算軌跡を検証します。
証明システムの改善、特にカスタム ゲートとルックアップ テーブルの導入が、zkML を実現させる主な原動力でした。これは主に、ML が非線形性に依存しているためです。つまり、非線形性は、ニューラル ネットワークの線形変換の出力に適用される活性化関数 (ReLU、シグモイド、tanh など) を通じて導入されます。数学的演算ゲートの制約により、これらの非線形性を zk 回路に実装するのは困難です。ビットごとの因数分解とルックアップ テーブルは、非線形の可能な結果をルックアップ テーブルに事前計算することでこれに役立ちます。興味深いことに、zk では計算効率が高くなります。
このため、Plonkish 証明システムは、zkML の最も人気のあるバックエンドになる傾向があります。 Halo 2 と Plonky 2 およびそれらのテーブル算術スキームは、ルックアップ パラメーターを使用してニューラル ネットワークの非線形性を適切に処理します。さらに、前者は開発者ツールと柔軟性の活発なエコシステムを備えており、EZKL を含む多くのプロジェクトの事実上のバックエンドとなっています。
他の証明システムにも利点があります。 R 1 CS に基づく証明システムには、小さな証明サイズで知られる Groth 16 と、非常に大規模な回路と線形時間検証器の処理で知られる Gemini が含まれます。 Winterfell 証明者/検証者ライブラリなどの STARK ベースのシステムは、Giza のツールを介して Cairo プログラムの入力トレースを取得し、Winterfell を使用して STARK 証明を生成し、出力の正しさを検証する場合に特に役立ちます。
高度な機械学習モデルの複雑で回路に不向きな操作を処理できる効率的な証明システムの設計において、ある程度の進歩が見られました。 Modulus Labs のベンチマーク レポートに反映されているように、GKR の証明システムに基づく zkCNN や組み合わせ技術に基づく Zator などのシステムは、汎用証明システムよりも優れたパフォーマンスを発揮する傾向があります。
zkCNN は、ゼロ知識証明を使用して畳み込みニューラル ネットワークの正しさを証明する方法です。 sumcheck プロトコルを使用して、結果を漸近的に計算するよりも高速な線形証明時間で高速フーリエ変換と畳み込みを証明します。検証畳み込み層、ReLU 活性化関数、最大プーリングなど、改善と一般化の対話型証明がいくつか導入されました。 Modulus Labs のベンチマーク レポートによると、zkCNN は、証明生成速度と RAM 消費量の点で他の汎用証明システムよりも優れているという点で特に興味深いとされています。
Zator は、ディープ ニューラル ネットワークを検証するための再帰的 SNARK の使用を検討することを目的としたプロジェクトです。より深いモデルを検証する際の現在の制限は、計算軌跡全体を単一の回路に当てはめることです。 Zator は、再帰的 SNARK を使用して層ごとに検証することを提案しました。これにより、N ステップの繰り返し計算を段階的に検証できます。彼らは Nova を使用して、N 個のコンピューティング インスタンスを 1 つのステップで検証できる 1 つのインスタンスに削減しました。このアプローチを使用して、Zator は 512 層のネットワークを SNARK することができました。これは、現在のほとんどの実稼働 AI モデルと同じ深さです。 Zator の証明の生成と検証にかかる時間は、主流のユースケースにはまだ長すぎますが、それらを組み合わせた技術は依然として非常に興味深いものです。
zkML の初期の頃を考えると、主に前述のインフラストラクチャに重点が置かれてきました。ただし、現在、アプリケーション開発に特化したプロジェクトがいくつかあります。
Modulus Labs は、zkML 分野で最も多様なプロジェクトの 1 つであり、サンプル アプリケーションと関連研究の両方に取り組んでいます。応用面では、Modulus Labs は、オンチェーン取引ボットである RockyBot と、実証済みのオンチェーン Leela チェス エンジンと人間が対戦するボード ゲームである Leela vs. the World を使用した zkML のユースケースを実証しました。チームはまた調査を実施し、さまざまなモデルサイズでのさまざまな証明システムの速度と効率をベンチマークする「The Cost of Intelligence」を執筆しました。
Worldcoin は、zkML を適用して、プライバシーを保護する人間の身元証明プロトコルを作成しようとしています。 Worldcoin は、カスタム ハードウェアを使用して高解像度の虹彩スキャンを処理し、それをセマフォ実装に接続します。このシステムは、メンバーシップの証明や投票などの便利な操作を実行するために使用できます。彼らは現在、信頼できるランタイム環境と安全なエンクレーブを使用して、カメラ署名付き虹彩スキャンを検証していますが、最終的な目標は、ゼロ知識証明を使用してニューラル ネットワークの正しい推論を検証し、暗号レベルのセキュリティ保証を提供することです。
Giza は、AI モデルをオンチェーンに展開するための完全にトラストレスなアプローチを採用するプロトコルです。機械学習モデルを表現するために ONNX 形式を使用し、これらのモデルを Cairo プログラム形式に変換するために Giza Transpiler を使用し、検証可能かつ決定論的な方法でモデルを実行するために ONNX Cairo Runtime を使用し、オンチェーン展開に Giza Model スマート コントラクトを使用します。モデルを実行するためのテクノロジー スタック。 Giza はモデル証明コンパイラーとしても分類できますが、ML モデルの市場としてのその位置付けは、現時点で最も興味深いアプリケーションの 1 つです。
Gensyn は、ML モデルをトレーニングするためのハードウェア プロビジョナーの分散ネットワークです。具体的には、勾配降下法に基づく確率的監査システムを開発し、モデル チェックポイント機能を使用して、分散 GPU ネットワークがフルスケール モデルのトレーニングを提供できるようにしています。ここでの zkML のアプリケーションはユースケースに非常に特化していますが、ノードがモデルの一部をダウンロードしてトレーニングするときに、モデルの更新について誠実であることを保証したいと考えています。これは、zk と ML の強みを組み合わせる力を実証しています。
ZKaptcha は、Web3 のボット問題に焦点を当て、スマート コントラクト用の検証コード サービスを提供します。現在の実装では、エンドユーザーがキャプチャを完了することで人間の作業の証拠を生成し、オンチェーンのバリデーターによって検証され、数行のコードを含むスマート コントラクトによってアクセスされます。現在、彼らは主に zk のみに依存していますが、将来的には、既存の web2 キャプチャ サービスと同様に、マウスの動きなどの動作を分析してユーザーが人間であるかどうかを判断する zkML を実装する予定です。
zkML 市場の初期の頃を考えると、多くのアプリケーションがすでにハッカソン レベルで実験されています。プロジェクトには、機械学習の出力を検証するために ZK プルーフを使用するオンチェーン AI コンテストである AI Coliseum、Halo 2 回路を使用した画像分類モデルの出力を検証するために EZKL ライブラリを使用する写真スカベンジャー ハントである Hunter z Hunter、および zk Section 9 が含まれます。 , AI画像生成モデルをAIアートのキャストと検証のための回路に変換します。
機能強化と最適化が急速に進歩しているにもかかわらず、zkML の分野は依然としていくつかの主要な課題に直面しています。これらの課題には、次のような技術的および実践的な側面が含まれます。
量子化は、浮動小数点数を固定小数点数として表現するプロセスです。ほとんどの機械学習モデルは、浮動小数点数を使用してモデル パラメーターとアクティベーション関数を表現します。zk 回路の領域演算を扱う場合は、固定小数点数が必要です。機械学習モデルの精度に対する量子化の影響は、使用される精度のレベルによって異なります。一般に、より低い精度 (つまり、より少ないビット) を使用すると、丸め誤差や近似誤差が発生する可能性があるため、精度が低下する可能性があります。ただし、量子化後のモデルの微調整や、量子化対応トレーニングなどの手法の使用など、量子化による精度への影響を最小限に抑えるために使用できる手法がいくつかあります。さらに、zkSummit 9 のハッカソン プロジェクトである Zero Gravity では、無重力ニューラル ネットワークなど、エッジ デバイス向けに開発された代替ニューラル ネットワーク アーキテクチャを使用して、回路内の量子化問題を回避できることが示されました。
量子化のほかに、ハードウェアも重要な課題です。機械学習モデルが回路で正しく表現されると、zk の単純さにより、その推論を検証するための証明が安価かつ高速になります。ここでの課題は検証者ではなく証明者にあります。モデルのサイズが大きくなるにつれて RAM の消費量と証明の生成時間が急速に増加するためです。特定の証明システム (サムチェック プロトコルと階層算術回路を使用する GKR ベースのシステムなど) または組み合わせた技術 (Plonky 2 と Groth 16 の組み合わせなど)、Plonky 2 は証明時間の点では効率的ですが、大規模なモデルでは効率的です。 16 は、複雑なモデルの複雑さにおいて証明サイズの増大につながらない) は、これらの問題を処理するのに適していますが、トレードオフの管理は zkML プロジェクトの中核的な課題です。
攻撃と戦うという点では、やるべきことはまだあります。まず、トラストレス プロトコルまたは DAO がモデルの実装を選択した場合、トレーニング段階で敵対的攻撃のリスクが依然として存在します (例: 特定の入力を見たときに特定の動作を示すようにモデルをトレーニングし、その後の操作に使用される可能性があります)推論)。トレーニング段階でのフェデレーテッド ラーニング技術と zkML は、この攻撃対象領域を最小限に抑える方法である可能性があります。
もう 1 つの主要な課題は、モデルのプライバシーが保護されている場合のモデル盗難攻撃のリスクです。十分な入出力ペアがあれば、モデルの重みを難読化することは可能ですが、重みを逆から推論することは理論的には可能です。これは主に小規模モデルに対するリスクですが、それでもリスクはあります。
これらのモデルを zk の制約内で実行するように最適化する際にはいくつかの課題がありますが、指数関数的な速度で改善が行われており、さらなるハードウェア アクセラレーションにより、すぐに機械学習のより広範な分野で作業できるようになるだろうと期待する人もいます。同じレベル。これらの改善の速度を強調するために、zkML は、2021 年に検証可能な回路で小規模な MNIST 画像分類モデルを実行する方法を示す 0x PARC のデモンストレーションから、1 年も経たないうちに Daniel Kang が ImageNet スケールのモデルに対して同じことを行うまでになりました。書類。 2022 年 4 月には、この ImageNet スケール モデルの精度が 79% から 92% に向上し、GPT-2 のような大規模なモデルも近い将来に可能になると予想されていますが、現在の証明時間はさらに長くなります。
私たちは、zkML を、ブロックチェーンとスマート コントラクトの機能を拡張し、より柔軟で、適応性があり、インテリジェントにするように設計された、充実した成長中のエコシステムであると考えています。
zkML はまだ開発の初期段階にありますが、すでに有望な結果が示され始めています。テクノロジーが発展し成熟するにつれて、オンチェーン上でより革新的な zkML のユースケースが見られることが期待されます。