Paradigm:ゼロ知識証明は重要だが非効率的である。ハードウェアを通じてどのようにそれを加速できるか?

パラダイム
2022-04-14 10:57:49
コレクション
Paradigm:ゼロ知識証明は重要だが非効率的である。ハードウェアを通じてどのようにそれを加速できるか?

執筆:Georgios Konstantopoulos、Paradigm 研究パートナー

翻訳:Amber

概要

ゼロ知識暗号学は、コンピュータサイエンスの分野において、過去50年間で最も注目すべき革新の一つです。ゼロ知識証明(以下、ZKP)の一連の「先天的な利点」により、StarkNetのようなZKロールアップ、AztecのようなプライバシーZKロールアップ、Mina、Filecoin、Aleoのようなレイヤー1のパブリックチェーンなど、さまざまなブロックチェーンのスケーリングおよびプライバシーソリューションの重要な要素となっています。

膨大な数学的計算の需要に制約され、ZKPの生成速度は遅く高価ですが、FPGA(現場プログラム可能なゲートアレイ)やASIC(特定用途向け集積回路)などの特殊ハードウェアの普及により、ZKPの効率は大幅に向上し、向上幅は1000倍にも達する可能性があります。

個別化された高性能なプライバシー計算の需要が高まる中、ZKPを使用して証明する文の複雑さはさらに増加します。そのため、証明生成速度のさらなる低下を避けるためには、専用ハードウェアを使用する必要があります。これにより、より迅速に証明結果を生成できるようになります。

これは「産業チェーン」の変革を意味し、ビットコインネットワークにサービスを提供するマイナーのように、ZKPの効率的な運用を支える特殊ハードウェアのオペレーターは相応の報酬を得ることになります。完全なZKマイニングと証明の業界が出現するでしょう。アマチュアは自分のCPU上で証明を生成したり、GPUやFPGAを使用したりできます。当然、この完全なチェーンの成熟には相当な時間の進化が必要です。

ゼロ知識証明が重要な理由

ゼロ知識証明には2つの主要なユースケースがあります:

1. 検証可能な計算のアウトソーシング

計算のニーズがあるとしますが、使用しているプラットフォーム(ノートパソコン、Raspberry Pi、さらにはEthereumなど)の制約により、その計算を完了するための時間コストが非常に高く、計算能力が不足しているためにそもそも完了できない場合、第三者サービスに依存する必要があります。一般的に、これらのサービスは迅速かつ安価に計算の出力を返すことができます(例:AWSのLambda関数やChainlinkのようなオラクルサービスなど)。

しかし、通常、計算が正しく実行されたと仮定するしかなく、計算能力提供者が誤ったまたは無効な計算結果を出力した場合、これは壊滅的な結果を引き起こす可能性があります。

ZKPの価値は、第三者提供者が計算の完全性を証明することを許可する点にあります。これにより、受け取った出力が正しいことが保証されます。

2. プライバシー計算

もし、ローカルでの計算が高価ではないが、その一部を隠したい場合、どうすればよいでしょうか?例えば、私が第1000のフィボナッチ数を知っていることをあなたに知らせたいが、その数字を教えたくない、または私がある金額を支払ったことをあなたに信じさせたいが、その金額や私の身元を明かしたくない場合、どうすればよいでしょうか?

ZKPは、計算文に関連する部分または全ての入力内容を選択的に隠すことを可能にします。

上記の2つのユースケースは、暗号通貨業界のさまざまな側面に多くの形で反映されています。

  • レイヤー2のスケーリング:検証可能な計算とZKPは、レイヤー1のパブリックチェーンがトランザクション処理をオフチェーンの高性能システム(レイヤー2とも呼ばれる)にアウトソーシングすることを可能にします。これにより、ブロックチェーンはセキュリティを損なうことなくスケーリングできます。例えば、StarkWareは、ZKフレンドリーなコードを実行するための特殊用途の仮想マシンを使用したスケーラブルなスマートコントラクトプラットフォームStarkNetを構築しています。Aztecのレイヤー2アプリケーションはプライバシー運用をサポートし、ユーザーのトランザクションに関する情報を漏らしません。
  • プライバシーのパブリックチェーン:Aleo、Mina、Zcashのようなレイヤー1のパブリックチェーンは、送信者、受信者、金額などの情報を隠すためにZKPを使用することを許可します。これはデフォルト(Aleo)であったり、オプション(MinaとZcash)であったりします。
  • 分散ストレージ:Filecoinは、ネットワーク内のノードがデータを正しく保存していることを証明するためにZKPを使用します(GPU上で実行)。
  • ブロックチェーン圧縮:MinaとCeloは、ブロックチェーンデータを小さな証明に圧縮して、チェーンに同期するために必要な最新の状態を提供します。

これらの状況を考慮すると、暗号通貨の採用率が高まるにつれて、ZKPの市場需要も同様に増加し、ユーザーのパフォーマンスとプライバシーのニーズに応えることが期待されます。

ZKPは、スケーラブルなプライベートペイメントおよびスマートコントラクトプラットフォームの加速的な発展を根本的に可能にしますが、その高額な計算コストは、大規模な採用の進行をある程度制限しています。

ZKPはなぜ遅いのか、そしてどうすれば速くできるのか?

ZKPを使用して計算を証明するには、まずそれを古典的な記述からZKフレンドリーな形式に「翻訳」する必要があります。これは、Arkworksのような低レベルのライブラリを使用して手動でコードを書き直すか、CairoやCircomのような専用言語を使用して原始にコンパイルして証明を生成することで実現できます。

より高価で複雑な操作は、証明生成により長い時間を要することになります。また、ZKに対してフレンドリーでない操作(例えばSHAなど)は、通常のコンピュータ上での証明生成時間を非常に長くすることがあります。このような状況はしばしば発生します。

計算がZKフレンドリーな形式に変わると、いくつかの入力を選択して証明システムに送信することができます。例えば、論文の著者の名前にちなんで名付けられたGroth16、GM17、またはより創造的な名前のPLONK、Spartan、STARKなどです。これらの証明システムは、ZKフレンドリーな形式で表現された計算を受け入れます。異なる証明システムによって、証明生成プロセスは異なる場合がありますが、ボトルネックには共通の特徴があります:

  1. 大数ベクトルの乗算、特に基底変換と定基多項式乗算(以下、MSM);または
  2. 高速フーリエ変換(以下、FFT)と逆FFT(FFTを使用しない証明システムの技術もあります)。

FFTとMSMの両方が存在するシステムでは、証明生成の時間の約70%がMSMに費やされ、残りの時間がFFT計算に使用されます。MSMとFFTはどちらも遅いですが、最適化の可能性がないわけではありません。問題を見てみましょう:

  • MSMの場合、マルチスレッドで実行することで加速できます。しかし、数百のコア上であっても、各要素ベクトルが2の25乗(約3300万要素、zkEVMのようなアプリケーションにとっては保守的な複雑度の推定)に達すると、乗算には依然として多くの時間がかかります。これにより、デバイスが「メモリ不足」になる可能性があります。簡単に言えば、MSMは大量のメモリを必要とし、マルチスレッドの状況でも遅いです。
  • FFTは、アルゴリズムの実行時データの頻繁な再構成に大きく依存しています。これにより、計算を計算クラスター内で効率的に負荷分散して加速することが難しくなります。この種の計算は、ハードウェア上で実行する際に大量の帯域幅を必要とします。再構成は、例えば16GB以下のハードウェアチップ上で100GBを超えるデータセットを「ランダムに」ロードおよびアンロードする必要があることを意味します。ハードウェア上の操作は非常に速いですが、インターフェースを介してデータをロードおよびアンロードする時間が操作速度を大幅に低下させます。

簡単に言えば:

  • MSMのメモリアクセス要求は予測可能で、大量の並列化が可能ですが、元の計算量とメモリ要求が非常に大きいため、そのコストは依然として高いです。
  • FFTのメモリアクセスはランダムであり、ハードウェアに対してフレンドリーではなく、分散インフラストラクチャ上での実行が自然に難しいです。

大規模なMSMとFFTの遅さを解決する上で最も有望な作業はPipeZKです。彼らの論文では、Pippengerアルゴリズムを使用して重複計算をスキップし、MSMをより効率的にする方法が説明されています。また、「unroll」FFTの方法が説明されており、これにより大量のデータ再構成を行わずに計算が可能になり、メモリアクセスパターンが予測可能になり、ハードウェアの計算効率が向上します。

上記の方法が各アルゴリズムの基本的なボトルネック問題を解決したと仮定すると、次の問題が生じます。MSMとFFTアルゴリズムを同時に最適化し、ZKP生成効率を大幅に向上させるハードウェアはどのようなものでしょうか?

ハードウェアの選択

上記の加速技術は、GPU、FPGA、ASICなどのさまざまなハードウェア技術で実現可能ですが、どれが最良の選択でしょうか?

この質問に答える前に、ZKPはまだ発展の初期段階にあり、システムパラメータ(FFTの幅やパラメータのデータ量)や証明システムの選択において標準化が実現されていないことを明確にする必要があります。このため、FPGAの2つのコア特性は、現在の環境においてASICよりも魅力的です。

  • 「複数回の書き込み」と「一度きりの書き込み」の比較:ASIC上のビジネスロジックは一度きりの書き込みです。ZKPロジックに変更があった場合、最初からやり直す必要があります。一方、FPGAは秒単位での再フラッシュが可能であり、互換性のない証明システムを持つ複数のチェーンで同じハードウェアを再利用できます(例えば、彼らがクロスチェーンでMEVを抽出したい場合など)。ハードウェアはZK「メタ」の変化に柔軟に適応できます。
  • より成熟したサプライチェーン:ASICの設計、製造、展開には通常12〜18ヶ月以上の時間が必要です。それに対して、FPGAのサプライチェーンははるかに成熟しており、Xilinxのような主要なサプライヤーは、ウェブサイトから大量の小売注文を行い、16週間以内に到着させることを許可しています。これにより、FPGA中心のビジネスは製品に対してより密接なフィードバックループを持ち、FPGAを購入して展開することでビジネスを柔軟に拡大できます。

さらに、機械学習やコンピュータビジョンの技術の進展により、将来的にはFPGAの性能がGPUを超える可能性があり、GPUと比較してFPGAには2つの明らかな利点があります:

  • ハードウェアコスト:最先端のFPGA(先進的なプロセスノード、クロック周波数、エネルギー効率、メモリ帯域幅)は、最先端のGPUよりも約3倍安価です。世界的にGPUの供給が不足している状況は、この問題をさらに悪化させています。
  • エネルギー効率:FPGAのエネルギー効率はGPUの10倍以上であり、その大きな理由はGPUが動作するためにホストデバイスに接続する必要があるため、ホストデバイスが大量の電力を消費することです。

これらの状況を考慮すると、市場での勝者はASICやGPUではなくFPGAに焦点を当てた企業になると予想されます。しかし、もし1つまたは数つのZK L1またはL2が最終的に市場を「独占」し、ZK証明システムが単一の実装ソリューションに安定した場合、ASICがFPGAに勝つ可能性が高まります。しかし、現時点では、たとえそうなったとしても、かなりの年月が必要でしょう。

結論

2021年の終わりに、ビットコインマイナーの純収入は150億ドルを超え、Ethereumマイナーの収入は170億ドルを超えました。ゼロ知識証明は、ネットワーク上で計算の完全性とプライバシーを実現する重要な手段となるでしょう。この場合、「ZKマイナー」の市場規模はPoWマイニング市場に匹敵することが期待されます。

以上のことから、少なくとも現在の文脈において、FPGAハードウェアはZKPの証明生成の非効率性と高コストの問題をより良く解決できると考えられます。この新しい競争の中で、FPGAは一時的にGPUやASICよりも優位に立っています。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する