Zypher Research:Nova- ZKゲームの未来を再構築する(一)
全連鎖ゲーム/自治世界はWeb3で最も重要な物語の一つです。10月末時点で、web3ゲームのデイリーアクティブユーザー(DAU)は530万人に達し、巨大な市場潜在能力を示しています。Web2.5アプリケーションとは異なり、全連鎖ゲーム/自治世界はゲームロジックをすべてブロックチェーン上にデプロイし、直接ブロックチェーンをゲームサーバーとして利用することで、ユーザーのすべての操作がチェーン上で実際に発生することを保証します。これにより、分散化、信頼性、強い組み合わせ性などの顕著な利点がもたらされますが、従来のゲームはweb3を受け入れる際に、依然として性能のボトルネック、スケーラビリティ、プライバシーなどの重大な課題に直面しています。Novaは、ゲームの現状を再構築し、web3ゲームを新しい時代に導くことが期待される折りたたみソリューションです。
Novaとは何か
Nova [1]は、R1CSに特化した折りたたみソリューションに基づく再帰証明システムであり、効率的に増分検証可能計算(IVC)を実現します。IVCは、各ステップの結果の正確性を証明することによって、各ステップが以前のすべての結果を正しく実行したことを保証する暗号原語であり、特定の計算機プログラムの実行過程の完全性を示すことができるようにします。
まず、IC(Incremental Computation)とは何でしょうか?ICは、同じ関数Fを再帰的に適用して計算を行うことを指し、初期状態を入力として、イテレーションを経て状態を得ることを意味します(図1.a参照)。もし関数Fが検証回路を含む場合、IVC(Incrementally verifiable computation)が得られます。IVCは、ProverがVerifierに証明を行い、各ステップで生成される簡潔な証明を提供し、開始からステップまでの計算過程が正確であることを保証します(図1.b参照)。この方法により、大規模な計算/文を小さなブロックに分割し、同じコードブロックをより効率的に繰り返し実行することが可能になります。
Novaは、2つのR1CSインスタンスとそれぞれのwitness-instanceを1つに統合する非常に革新的な折りたたみソリューションを提案します。SnarkベースのIVCと比較して、Novaは各再帰で以前のSnark証明を検証する必要がないため、以下の特徴を持っています:
- 信頼できる設定は不要
- FFT演算は不要で、ペアリングフレンドリーな楕円曲線も不要
- 一定の検証時間
- R1CSインスタンスにのみ適用され、2つのR1CSインスタンスを1つのR1CSインスタンスに統合します
なぜNovaなのか
web3ゲームは広大な展望を持っていますが、多くの課題にも直面しています。まず、リアルタイムの高速ゲームにおいて、操作指令の応答時間は通常ミリ秒単位ですが、ほとんどのブロックチェーンは高性能ゲームを実行するために必要な能力をまだ備えていません。次に、取引量が増加するにつれて、ブロックチェーンが混雑し、遅延が発生し、体験に影響を与える可能性があります。
これらの問題を解決するために、Game Rollupと呼ばれる方法を探求しました。Game RollupはGroth16証明システムを通じて、ゲーム操作指令を同じ回路に集約し、その後proofを生成してチェーン上にアップロードして検証します。この方法により、プレイヤーはブロックチェーンと相互作用する前により多くの操作を実行し、より長いゲーム体験を楽しむことができ、各操作ごとにチェーン上の確認を待つ必要がなくなります。
具体的には、私たちのRollup回路もIVC形式で表現できます:
ここでFはゲームのターン関数です。
私たちの2048ゲームを例にとると、これはクラシックなパズルスライドゲームのチェーン上の改編版です。2048の設計における最大の課題はF関数の設計です。2048ゲームでは、各ターンに上下左右の4つの可能な指令入力があるため、これら4つの入力に対応するためにF関数(回路)の設計は非常に巧妙である必要があります。これは、スマートコントラクトを通じてチェーン上で2048のロジックを実現するものとは本質的に異なり、後者は通常、単純なif文(例えばif up {}、else if down {}…)を使用して指令を処理します。しかし、回路内ではif-else構造を直接使用することはできません。これについては次回詳しくお話しします。
Solanaは高性能なパブリックチェーンであり、比較的速い取引確認速度を提供しますが、それでもその上にデプロイされた2048ゲーム[2]の体験は理想的なスムーズさには達していません。それに対して、私たちのGame Rollupに基づく方法は、よりスムーズなゲーム体験を提供し、Game Rollupがゲーム性能を向上させる上での利点を証明しましたが、この方法にはいくつかの限界もあります。なぜなら、これはIVCの最も素朴な実装方法に過ぎないからです:
- ProverはΩ ( i *∣ F ∣ )のメモリを必要とします
- 証明は増分的に更新できません
私たちがNovaに出会い、深く研究するまで、まるで「出会うのが遅かった」と感じるような感覚がありました。なぜなら、NovaはGame Rollupの限界を突破し、Web3ゲームにおける性能ボトルネックとスケーラビリティの問題を解決する可能性があるからです。以下は、2048ゲームを例に、Game RollupとNovaの2つの実装方法の性能ベンチマークテストです:
まとめ
Novaは性能が優れているだけでなく、メモリ効率も高く、大規模な回路にとって非常に重要です。なぜなら、groth16は大きなSRSを必要とし、メモリを消費するため、Novaは低メモリ環境でも効率的に動作できるからです。現在、一部のZKVMもNovaに基づいて構築を始めています(例:Nexus[3])。私たちは、NovaがWeb3ゲームに前例のない性能とスケーラビリティをもたらし、Web3ゲームの発展を推進する重要な技術となると信じています。ZypherはNexusと緊密な戦略的パートナーシップを結び、NexusのNovaシステムに基づくZKVMを使用して次世代のチェーン上の分散型アプリケーション基盤を構築するために積極的に協力しています。
参考:
[1]https://eprint.iacr.org/2021/370