Zypher Network 技術ホワイトペーパーシリーズ解読(三):AW Engine—ゲームのリアルタイム性と一貫性のブロックチェーン拡張ソリューション
# 3.2 AW Engine
AW Engineは、ゲームのリアルタイム性と一貫性を考慮して設計されたブロックチェーンの縦のスケーリングソリューションです。
## 3.2.1 AWの運用方法
近年、ゲーム業界は急速に変化しており、ブロックチェーンに基づくWeb3ゲームは新しいビジネスモデルをもたらすことが期待されていますが、従来のゲームが完全にWeb3を受け入れるには多くの課題があります:
スループット:多くのゲームは迅速な操作を必要とし、かつ一貫性が求められますが、これはブロックチェーンと強く対立します。一部の高速シューティングゲームでは、アクションがミリ秒単位で行われますが、現在最も速いブロックチェーンでも2秒ごとにブロックが生成されるため、ゲーム内の各ステップで少なくとも2秒待たなければなりません。したがって、チェーン上で高速なゲームを構築することは不可能です。
スケーラビリティ:ゲームは、ブロックチェーンが混雑しGas価格が急騰しないように、どれだけのプレイヤーをサポートできるでしょうか。プレイヤーのすべてのアクションがチェーンに上がる必要がある場合、ブロックチェーンは非常に混雑します。
この問題を解決するために、私たちはAW Engineを開発しました。これは、ゼロ知識証明を使用してゲーム内の操作をパッケージ化し、一度にチェーンにアップロードして検証します。これにより、プレイヤーはブロックチェーンと相互作用する前により多くのアクションを行い、より長い時間遊ぶことができ、メインブロックチェーン上の取引コストと混雑を減少させることができます。例えば、ターン制ゲームでは、プレイヤーは複数のアクションを行うことができ、複数のアクションが証明を生成することを許可します。正式には、私たちは次のように説明します:
このような反復計算を検証する最も直接的な方法は、n個のアクションを個別の回路に入れ、SNARKを使用して証明を完了することです。これにより、単一のトランザクションに配置できるアクションの数が大幅に増加します。これにより、完全にチェーン上でのゲーム開発の可能性が広がります。ここでは、シングルプレイヤーゲームとマルチプレイヤーゲームの例を挙げます。
シングルプレイヤーゲーム:2048やトーナメントなどのゲームを例にとると、プレイヤーの詳細なアクションと淘汰ロジックをすべてチェーンにアップロードすると、大量のGasとチェーンのリソースを消費します。ZKPを使用してこれらのプロセスを圧縮することで、必要な情報と証明のみをチェーンに送信します。この方法により、Gasコストと取引数を100倍以上削減できます。
私たちは、このようなターン圧縮の回路と必要なスマートコントラクトを提供し、開発者が回路を記述することなく、必要なゲーム経済ロジックとフロントエンドのラッピングを完成させるだけでゲームを構築できるようにします。
マルチプレイヤーゲーム:以下は、Trading Card Game (TCG)ゲームで使用されるすべての例です。
TCG(集換式カードゲーム)に参加するには、プレイヤーはマッチメイキングを使用して対戦相手を見つける必要があります。ゲームが始まると、両者のカードはZK Shuffleを使用してシャッフルされます。その後、各ラウンドでZK Shuffleの翻牌機能を利用します。さらに、Data Rollupを使用して各ラウンドの詳細を1つのトランザクションに圧縮します。この方法により、完全にチェーン上でのTCGが実現され、相互作用と取引コストが非常に低くなります。
## 3.2.2 スローペースのZKゲーム
上で議論した2048ゲームのようなスローペースのゲームに対して、私たちはゼロ知識証明に基づく2つのソリューションを提供します。
SNARK:ZKPの設計制約システムは熟練した開発者によってのみ実行可能であり、制約システムにエラーがないことを保証するのは難しいため、これはゼロ知識証明の開発と使用を制限する要因の1つです。しかし、私たちは基本的な算術回路、ハッシュ、ecc、zkshuffle、zkmatchmakingなど、ゲーム回路開発で使用されるさまざまなツールを提供し、完全にチェーン上でのゲーム開発の参入障壁を大幅に下げます。
ZKVM:私たちは、RISC Zeroのような汎用のzkvmを提供し、ゲームロジックを記述します。RISC Zeroは、RISC-Vアーキテクチャ専用に設計された汎用ゼロ知識証明システムで、開発者がRustやC++などの成熟した言語を使用してZKアプリケーションを構築できるようにします。これにより、RISC Zeroは既存のWeb2プログラミング言語で書かれたアプリケーションをサポートでき、plonk関連の回路を構築する必要もなく、DSL言語を使用して記述する必要もありません。
現在、Bonsaiはユーザーが自分のハードウェアを使用せずにzkVMアプリケーションのためにリモートで証明を生成することを許可しています。しかし、Bonsaiを使用してもユーザーのプライバシーは保護されません。同様に、zkSNARKについても、クライアントの証明計算を信頼できないサーバーのグループに委託して、より迅速に証明を生成し、ユーザーのプライバシーを保護するためにリモート証明者が必要です。既存のソリューションは、MPCプロトコルを組み合わせて、複数のサーバーが協力してzkSNARK証明を構築します。文献【28】によれば、楕円曲線とドメイン上の点は直接暗号化して共有でき、MPC技術はこれらの共有に適用できます。現在使用されている主要な方法は、暗号化された共有をパッケージ化することです。
したがって、パッケージ化された暗号化共有とその属性を使用することで、対応するzkSNARK証明者に対して効率的なMPCプロトコルを実装することが容易になります。
## 3.2.3 Z4エンジン
AWエンジンは、シングルプレイヤーのオフチェーンゲームを解決するためにも、迅速なマルチプレイヤーオンラインリアルタイムゲームをサポートするためにも使用できます。マルチプレイヤーオンライン環境の複雑さを管理するために、私たちはZ4エンジンを設計しました。簡単に言えば、ゲームは第三者のノードで行われ、ゲーム終了後、第三者ノードがゲームプロセスのzk証明を提供し、ゲームの結果を検証します。第三者ノードはステーキングが必要で、公開のルームマーケットでゲームを受け入れることができます。これは、賞金稼ぎに似ています。
Z4エンジンは、チェーンインタラクションモジュール、チェーン上のイベントリスニングモジュール、HTTPおよびP2Pネットワーク起動モジュール、ゼロ知識証明モジュールを持つ証明者、ゲームロジックインターフェースなど、いくつかのモジュールを備えています。モジュールの統合に基づいて、開発者はゲームロジックを定義するだけで、完全に専用のZ4ノードを実行できます。
Z4エンジンアーキテクチャ図
Z4エンジンのワークフローでは、プレイヤーがチェーン上でゲームルームを作成し、他のプレイヤーがそのルームを見ると、参加を選択できます。ルームが満員になるか、ホストが開始をクリックすると、ルームは準備完了状態になり、ルームは賞金稼ぎの受け入れ可能なリストに表示され、彼らがそのルームを奪い合うことを促します。最初に奪い成功したZ4ノードが、このゲームのプロバイダーになります。ルーム内のプレイヤーは、チェーン上の動的情報をリスニングしてプロバイダーを観察し、契約内のプロバイダーのアドレスに基づいてローカルネットワーク接続を行います。この接続には、HTTPとP2Pの二重接続が含まれ、ネットワークの安定性と互換性を確保します。ネットワークにZ4ノードが存在しない場合、任意のプレイヤーがプロバイダーとして機能でき、外部にアクセス可能なHTTPアドレスを提供する必要はなく、P2Pを通じて迅速に起動し、ピアツーピア接続を実現できます。ゲーム終了後、プロバイダーはゲームプロセスをzk証明し、ゲーム結果とzkpを一緒にチェーンに提出し、検証が通過するとルームの状態が「終了」に更新されます。
ゲームのzk証明回路もPLONKを使用してカスタマイズすることができ、またはZKVMやDSLを使用して記述し、特定のゲームに特化したZ4ノードを形成できます。zkの学習曲線と回路の記述の難しさを考慮して、私たちはZ4とRisc Zeroを深く統合した汎用ゲーム実行プラットフォームを提供します。この汎用Z4-RISC0ノードはRISC-VMサンドボックス環境で実行され、ゲーム開発者はゲームロジックを定義し、それをZ4-RISC0ノードとしてチェーンに提出するだけで済みます。この汎用ノードは、RISC-VMフレームワークに基づいて開発された任意のゲームを実行でき、ゲーム終了後に自動的にゲームのzk証明を行います。また、Bonsai証明市場を統合することで、迅速な証明の目標を達成し、チェーン上のゲーム検証の効率と信頼性を向上させます。
大規模な操作を伴うゲームは、証明時間が長くなる可能性があります。ゲームの証明効率をさらに向上させるために、私たちはThreshold ECDSAに基づく証明ソリューションも提供します。ゲーム終了後、プレイヤーはゲーム結果に署名し、n-m署名の閾値に達すると、ゲーム結果の有効性を判断できます。このソリューションは、zkpの生成と検証にかかる時間が長すぎる問題を効果的に緩和し、また、zk証明ができない部分に対しても実行可能な証明方法を提供します。例えば、シューティングゲームでは、誰の操作が最初にZ4ノードによって処理されるかが、誰のキルの可能性が高いかを決定しますが、時間はZK回路に書き込むことができないため、このような社会的合意を利用して、ゲームの検証可能な手段とします。以下は、ZK証明とThreshold ECDSA署名の比較です:
上の表は、zk証明がよりシンプルで決定論的なゲームイベントに対して高いレベルのセキュリティと否認不可能性を提供する一方で、Threshold ECDSAが複雑でリアルタイムのシナリオに対してより迅速でスケーラブルなソリューションを提供し、コミュニティの合意に依存してzk証明が効果的に処理できない側面を解決することを示しています。
参考文献:
【28】Ozdemir A, Boneh D. Experimenting with collaborative zk-SNARKs: Zero Knowledge proofs for distributed secrets[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 4291-4308.