全チェーンゲーム/自治世界はWeb3における最も重要な物語の1つです。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インスタンスとそれぞれのウィットネスインスタンスを1つに統合する非常に革新的な折りたたみ方式を提案します。Snarkに基づくIVCと比較して、Novaは各再帰で以前のSnark証明を検証する必要がないため、次の特徴を持ちます:

  • 信頼できる設定は不要

  • FFT計算は不要で、ペアリングフレンドリーな楕円曲線も必要ありません

  • 一定の検証時間

  • R1CSインスタンス専用で、2つのR1CSインスタンスを1つのR1CSインスタンスに統合します

なぜNovaなのか

Web3ゲームには広大な可能性がありますが、多くの課題にも直面しています。まず、リアルタイムの高速ゲームでは、操作命令の応答時間は通常ミリ秒単位ですが、ほとんどのブロックチェーンは高性能ゲームの実行に必要な能力をまだ備えていません。次に、取引量が増加するにつれて、ブロックチェーンが混雑し、遅延が発生し、体験に影響を与える可能性があります。

これらの問題を解決するために、私たちはGame Rollupと呼ばれる方法を探求しました。Game RollupはGroth16証明システムを通じて、ゲーム操作命令を同じ回路に集約し、その後、証明を生成してチェーン上にアップロードして検証を行います。この方法を利用することで、プレイヤーはブロックチェーンとインタラクションする前により多くの操作を実行でき、より長いゲーム体験を楽しむことができ、各操作ごとにチェーン上の確認を待つ必要がなくなります。

具体的には、私たちの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の最も素朴な実装方法に過ぎません。

  • 証明者はΩ(i * |F|)のメモリを必要とします

  • 証明は増分的に更新できません

私たちが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

[2] https://solplay.de/solana-2048/

[3] https://nexus.xyz/