CaptainZ

CaptainZ

Prompt Engineer. Focusing on AI, ZKP and Onchain Game. 每周一篇严肃/深度长文。专注于AI,零知识证明,全链游戏,还有心理学。
twitter

Zypherを使用して検証可能なオンチェーンゲームを開発する方法は?

自 Starknet エコシステムの Dojo が検証可能なオンチェーンゲーム(provable onchain game)の概念を提唱して以来、多くのチームがこの分野での探求を始めました。たとえば、NFT の状態圧縮を利用した paima や、マークルツリーと状態の刻印を利用した redux などです。Zypher Network(@Zypher_Network)もまた、ゼロ知識証明技術に基づいて、検証可能なオンチェーンゲームの制作を支援する一連の開発者キットを発表しました。

検証可能なオンチェーンゲームとは#

私たちは現在、ゲーム業界とブロックチェーン技術の結合が、資産をオンチェーン化する GameFi モデルか、状態をオンチェーン化するオンチェーンゲームモデルのいずれかに進むことを知っています。オンチェーンゲームの一般的な定義は次のとおりです:すべてのゲームロジック、状態(資産およびその他)はチェーン上にあり、スマートコントラクトを通じて実現されます。

スマートコントラクトプラットフォームである Ethereum は、自然に分散型の状態機械であり、やや簡単なオンチェーン計算と状態検証を行うことができます。そこで、皆はゲームロジックをスマートコントラクトに書き込もうとしました。こうしてゲームはサーバーバックエンドを必要としない分散型ゲームとなり、ゲームルールの組み合わせ性が高まりました。しかし、問題も生じました:Ethereum メインネットの計算能力は非常に弱く、使用コストも非常に高いため、高性能の Layer2 チェーンや他のパブリックチェーンを使用することを考慮しても、オンチェーンゲームのニーズを満たすことはできません。

Layer2 ロールアップからインスパイアを受けて、より大規模な送金操作がオフチェーン計算とオンチェーン検証を行えるのであれば、なぜゲームロジックの実行も同様に処理しないのでしょうか?こうして検証可能なオンチェーンゲームの技術路線が誕生しました。ゲームロジックはオフチェーン計算によって処理されますが、各操作はオンチェーンで検証でき、ゲームの分散化と信頼性を保証します。これが「検証可能」という言葉の由来であり、Layer2 ロールアップの TX が通常の送金取引であるのに対し、検証可能なオンチェーンゲームの TX はゲームのオンチェーン取引であると簡単に類推できます。

オンチェーン検証方式の違いにより、ロールアップは OP-rollup と ZK-rollup に分かれます。同様に、ゼロ知識証明技術を使用した検証可能なオンチェーンゲームは、状態検証の最終性や性能の面で優れた利点を持っており、これが Dojo と Zypher Network が ZKP を選択して検証可能なオンチェーンゲームを開発する理由です。

Zypher Network 開発者キット#

Zypher Network の開発者キットは、AW Engine、Secret Engine、Zytron kit の 3 つの部分から構成されています。

  1. AW Engine:ZKP の情報圧縮能力を利用してスケーラビリティを提供します。ゲームが垂直にスーパー拡張できるモジュール式フレームワークです。回路または zkVM を通じてプログラミングできます。その z4 SDK は、リアルタイムのゲーム内マルチプレイヤーイベント(プレイヤー対戦)をサポートします。
  2. Secret Engine:ZKP の情報隠蔽能力を利用して非対称情報ゲームを提供します。戦略メカニズムを必要とするゲームに情報の非対称性を提供するゼロ知識証明即サービス(zk-as-a-service)のソフトウェア開発キットです。ゼロ知識証明(ZKP)は、オンチェーンで完全にプライバシー計算とランダム性を実現し、その公平性を証明できます。
  3. Zytron kit:Layer3 スタック。主権ロールアップ L3 チェーンスタックで、ピアツーピア層の最適化、サーバーシャーディングなど、便利なゲームインフラのデプロイを提供します。大規模マルチプレイヤーゲームと AW 構築のために特別に設計されています。

Snip20240406_25

ゼロ知識証明のモジュール式フレームワーク AW Engine#

AW Engine は ZKP 回路の構築、証明の生成と検証を担当しており、キットの中で中心的な役割を果たしています。以下のいくつかの部分が含まれています:

  1. Gadgets(小道具):ゲーム回路開発で使用されるさまざまな小道具をサポートします。基本的なハッシュ、ecc、マスク、シャッフルなどが含まれます。
  2. 特定アプリケーションの回路:特定アプリケーションの plonk を zk 証明の基本的なスキームとして使用し、SDK が提供するさまざまな小道具を使用して特定のゲーム回路を記述します。回路を wasm に直接コンパイルでき、ブラウザやアプリケーションで実行できます。また、異なる仮想マシン(EVM/WASM/...)上で実行される検証コントラクトも提供され、これらのコントラクトは異なるブロックチェーンシステムで実行され、オフチェーンで証明を生成し、オンチェーンで検証します。
  3. オンチェーン検証者:証明者と検証者のために最適化された wasm、すべての EVM チェーンの一般的な solidity 検証者のサポート、Move ベースのチェーンの Move-lang 検証者のサポート。
  4. Z4 マルチプレイヤー PVP エンジン:Z4 はリアルタイムマルチプレイヤーゲームのためのシステムです。プレイヤー対戦イベント(PvP)を専門の zk-rollup ノードにアウトソースすることで、マルチプレイヤーイベント処理能力を拡張します。

image (36)

上の図は AW Engine の動作原理とアーキテクチャを示しています。このゲームエンジンは主にいくつかの部分に分かれており、各部分の機能を段階的に説明します:

  1. Zypher Plonk / Bulletproofs / Groth16 / STARKs:これらは異なるゼロ知識証明スキームです。これはゲームエンジンがさまざまなタイプの ZKP スキームをサポートしていることを示し、ゲーム開発者はニーズに応じて適切な証明システムを選択できます。

  2. General VM/DSL:これはゲームロジックを記述および実行するための汎用仮想マシンまたは特定領域言語(Domain-Specific Language, DSL)を指します。Zypher Network は Risc Zero との戦略的提携を発表し、同社の汎用 zkVM を統合する予定です。

  3. Zypher gadgets & circuits:これらの小道具と回路は ZKP の基礎モジュールを構成します。ゼロ知識証明において、小道具は事前に定義された関数またはロジックの断片であり、回路はこれらの小道具を接続したより大きな計算プロセスです。

  4. Game Proof Circuit:ゲーム証明回路は、ゲームロジック全体のゼロ知識証明バージョンです。ここでは、ゲームルールを検証するための回路が作成され、プレイヤーの具体的な行動や戦略を漏らすことなく検証されます。

  5. Prover API:証明者 API は、開発者が証明を生成するためのインターフェースです。ゲームの文脈では、これはプレイヤーの行動がゲームルールに従って行われたことを証明することを意味します。

  6. Onchain Verifier API:オンチェーン検証者 API は、前述の提供された証明を検証するための別のインターフェースです。これはブロックチェーン上で行われ、ゲームの各ステップが公正で透明であることを保証します。

  7. ZK Proof Market:モバイルデバイス上のプレイヤー向けに、分散型の証明計算市場があり、プレイヤーは証明計算をアウトソースできます。これにより、オンチェーンゲームがハードウェアに依存しなくなります。

  8. Game:オフチェーン計算のゲーム部分には、実際のゲームロジックとユーザーインターフェースが含まれ、プレイヤーがゲームを行うことを可能にします。

  9. Onchain Game:証明がブロックチェーンに提出されると、ゲームは分散型で信頼のないオンチェーンゲームに変わります。これは Layer2 の DA Proof を用いたオンチェーン操作に類似しています。

全体として、AW Engine はゼロ知識証明を利用してゲームの安全性と公平性を保証します。ゲームロジックが検証される一方で、重要な情報は漏れず、ブロックチェーン上でのゲーム開発と運営の新しい方法を提供します。

最後に、開発者の視点からエンジン全体の作業フローを見てみましょう:

1. 開発段階:

   - まず、開発者は適切なゼロ知識証明スキーム(Plonk、Bulletproofs、Groth16 または STARKs など)を選択します。

   - 次に、彼らはこれらのスキームの 1 つを使用して「Zypher gadgets & circuits」を作成します。これらはゲームロジックの構成要素です。

   - これらの構成要素は、ゲーム状態の有効性を証明するゼロ知識回路である完全な「Game Proof Circuit」に組み合わされます。

2. 証明生成(Prover API):

   - ゲームの各アクションまたは状態変更は、「Prover API」を介してバックエンドで証明に変換されます。この証明は偽造できず、重要なゲームデータを漏らしません。

   - この証明は、プレイヤーのゲームアクションまたはゲーム状態がゲームルールに従っていることを示します。

3. オンチェーン検証(Onchain Verifier API):

   - 生成された証明は、その後「Onchain Verifier API」を介してブロックチェーンに提出されます。

   - このオンチェーン検証者は、証明の有効性を検証し、ゲームアクションまたは状態の合法性を確認し、ゲームの公平性と正確性を保証します。

上記のプロセスには Z4 マルチプレイヤー対戦システムは含まれていませんが、実際には ZKP はゲームロジックを「検証可能」にするだけでなく、「マルチプレイヤー対戦システム」を「検証可能」にする操作も可能です。

image (37)

上の図は Z4 エンジンの作業フロー図であり、Z4 エンジンはリアルタイムマルチプレイヤーゲームをサポートする方法を示しています。これは、プレイヤーのマッチングとゲームを行うために無状態の部屋を作成することによって行われ、これらの部屋は zk-rollup ノードによって支えられ、ノードはデータを保存しません。ゲームロジックがノード上で実行されると、すべての操作が順序付けられ、要約され、ゼロ知識証明によって確認されます。ゲームが終了すると、操作と結論の証明がブロックチェーンにアップロードされ、検証されます。Z4 ノードは仮想マシンを使用せずに直接ゲームロジックを実行でき、取引やガス料金を回避します。必要に応じて、ノード上で仮想マシン(WASM/EVM など)を使用してゲームロジックを実行することもできます。全体のプロセスは、ネットワーク全体で毎秒数百万、さらには数十億の取引量をサポートし、ゲームのリアルタイム性と高い同時実行性能を確保することを目的としています。

非対称情報モジュール Secret Engine#

「戦争の霧」は、ゲームで一般的に見られるメカニズムであり、典型的な例には『スタークラフト』や『ウォークラフト 3』があります。このデザインは、ゲームマップの特定の領域を覆い隠すことによって情報を隠し、プレイヤーがこれらの領域を探索するまで表示されないようにします。このメカニズムは、ゲーム環境の予測不可能性を高め、いわゆる非対称情報ゲームの典型的な特徴です。ほとんどの人気 MMO ゲームは非対称情報のゲームメカニズムを採用しており、プレイヤーに探索や戦略を立てるためのより多くのスペースを提供しています。

しかし、ブロックチェーン技術では、データは通常完全に公開されており透明であるため、非対称情報メカニズムを実現することが困難です。しかし、Dark Forest ゲームはゼロ知識証明技術 zkSNARKs を採用することで、プレイヤーが検証可能な有効なアクションを公開する必要がある一方で、そのプライバシー状態を保持することに成功しました。これにより、Dark Forest はブロックチェーン上に不完全な情報のゲーム環境を創造しました。しかし、この複雑な情報隠蔽方法はカスタマイズされた ZK 回路プログラミングを必要とするため、広範な情報隠蔽はオンチェーンゲームでは実現できません。

Secret Engine は、最適化された WASM と事前コンパイルされたコントラクト部分を通じてこの問題を解決し、Shuffle SDK を介して高性能で低コストの分散型シャッフルプロセスを実現しました。シャッフル回路とプロトコルは、検証可能な暗号計算の安全な実行を保証し、戦略要素がオンチェーンで機密のまま保持されることを確保します。ポーカー、大富豪、トレーディングカードゲームの他にも、この SDK は無信頼性とランダム性を必要とする他の SLG ユースケースにも適用できます。たとえば:

  • Social Deception:社交的な欺瞞ゲームでは、プレイヤーの秘密のアイデンティティや戦略を保護できます。
  • Secret Placing:ゲーム内の秘密の配置アクション、たとえばユニットや資源の位置を隠すことが安全に実現できます。
  • Fog of War:戦争の霧は、特定の条件が満たされるまで特定のプレイヤーに対してマップの一部を秘密にするために使用できます。

よく使用される SDK は 2 つあります:

  • zk-Shuffle-as-a-service:プレイヤーが交互に暗号化とシャッフルを行い、「密封された」ランダムに並べ替えられたカードデッキを生成します。これは、従来の乱数生成器(検証可能なランダム関数、VRF)では提供できないソリューションを提供します。
  • zk-Matchmaking-as-a-service:プレイヤーが「証明の種」を提出してランダム数を生成し、オンチェーンでマッチングを行います。このプロセス全体は zkp によって証明されます。

Snip20240406_29

この画像は Shuffle SDK の作業フローを示しています:

1. Zypher PlonK:

   - Basic PlonK:これは一般的なゼロ知識証明スキームであり、他の情報を明らかにすることなく、複雑な計算の正確性を検証するための証明を生成することを可能にします。

   - Shuffle selectors:これはシャッフルプロセスに特有のロジックまたは構成であり、PlonK 証明システムがカードのシャッフル操作を正しく実行することを許可します。

2. Shuffle Circuit:

   - Chaum Pedersen:このサブコンポーネントは、シャッフルプロセスのプライバシーを確保するために使用されます。これは通常、デジタル署名や暗号化に関連しており、ここでは各カードの暗号化が安全であることを保証します。

   - Reveal:このステップでは、必要に応じてカードのアイデンティティを安全に明らかにし、他のカードの情報を漏らさないようにします。

   - Permutation:これはシャッフルの実際のプロセス、すなわちカードの再配置を指します。

   - Card Model:これはカードのデータモデルを定義し、カードの暗号化バージョンを作成し、その後のシャッフルプロセスを検証する上で重要です。

3. Shuffle SDK:

   - Prover SDK (Rust/WASM):このソフトウェア開発キットは、ゲーム開発者がシャッフルプロセスが正しいことを証明するためのゼロ知識証明を生成することを可能にしますが、カードの実際の順序を明らかにする必要はありません。

   - Onchain Verifier SDK (Solidity/WASM/Move):この SDK は、シャッフル証明の正確性を検証するためのオンチェーン検証者を作成するために使用されます。

上記の説明はまだ抽象的すぎるかもしれませんので、オンチェーンポーカーの例を挙げて Shuffle SDK の原理を説明します。

107b17d7-a4c8-4537-adb6-ec712b573dec_888x616 (1)

ゲーム内では、「シャッフルされたカードデッキ」の結果をチェーン上に保存する必要があります。これは、現在のシャッフルの結果としてだけでなく、後続の「シャッフル」の公共入力としても機能します。最初に、カードデッキの設定は初期化されたカードデッキをデフォルトで保存します。しかし、チェーン上のストレージコストが高いことは周知の事実であり、特に大規模なデータ量に対しては重要な考慮事項です。52 枚のカードは合計 208 個の uint256 型データで構成され、ストレージコストが重要な考慮事項となります。

Zypher の解決策は、シャッフル後にチェーン上に部分的なデータのみを保存することです。具体的には、プレイヤーの数 n に応じて 2n+5 枚のカードを保存する必要があります。現在、最大 6 人のプレイヤーをサポートしているため、最大 17 枚のカードを使用します。これにより、最終的にはこれらの 17 枚のカードのみをチェーン上に保存する必要があります。しかし、前述のように、チェーン上のストレージのもう 1 つの目的は、これらのカードが後続のシャッフルの公共入力としても使用されることです。したがって、17 枚のカードのみを保存すると、シャッフルの正確性を検証できなくなります。

この問題を解決するために、Zypher の zk-shuffle 回路は、公共入力として完全なカードデッキのハッシュ値を追加出力し、これもチェーン上に保存します。zk-shuffle を検証する際、ユーザーはシャッフル前のカードデッキを公共入力としてアップロードし、回路はユーザーがアップロードしたカードのハッシュ値を計算し、チェーン上に保存されたハッシュ値と比較します。最終的に、部分的なデータのみがチェーン上に保存されるため、ユーザーは完全な 52 枚のカードを取得する必要があるかもしれません。この場合、コントラクトイベントを使用できます。イベントは非常に低コストの通信手段であり、ユーザーがイベントをリッスンすることで完全なゲームデータを取得できるようにします。

要するに、全体のプロセスの核心は、ゼロ知識証明を使用してシャッフルのプライバシーと正確性を保証することです。この方法により、ブロックチェーン上ですべての操作を公開記録しても、プレイヤーの意思決定や戦略はプライバシーを保持できます。

主権 L3 スタック Zytron kit#

Zytron Kit は、高度にカスタマイズ可能な Layer 3 主権ロールアップスタックで、Zypher のゲームエンジンを事前コンパイルされたコントラクトとしてサポートします。

既存の Dapp インフラは主に EVM であり、オンチェーンゲームのような高応答性のユースケースに最適化されておらず、必要なコスト効率やスケーラビリティを提供できていません。MMO や他の高性能ゲームは、効率的で予測可能な計算リソースを備えた専用のカスタマイズされたインフラを必要とします。Zytron の最初のアルファネットワークは、0 ガス、0.2 秒のブロック時間、ゲーム専用に設計された事前コンパイルされたコントラクトを特徴としており、近日中に 10 のゲームが先駆者テスターとして計画されています。

このキットは、4 つのプラグアンドプレイのコアコンポーネントを提供します:

  • 主権ロールアップ:ゲームで最も重要なのはプレイアビリティであり、これは分散システム内で最高の可用性(CAP)を持つ必要があり、システム全体が迅速にアップグレードされ、自動デプロイされることが求められます。
  • サーバーシャーディング:ゲームのワールドマップを異なるノードに分散させ、単一ノードの負荷能力を向上させます。同時に、グローバルマップ上の異なるノード間で迅速に移動し、異なるノードサービスを切り替え、情報を同期するための効率的な検索アルゴリズムを提供します。
  • データ互換性:ストレージ抽象化にとって重要なコンポーネントであり、このプロトコルは、ゲームデータ処理を加速するために、よりユーザーフレンドリーなリレーショナルおよびキャッシュデータベースを統合しています。この機能は、スムーズなゲーム体験を維持するために重要な効率的なデータ管理と迅速なアクセスのニーズを解決します。
  • カスタムネットワーク:ゲームの高いネットワーク要求を考慮し、このフレームワークはゲームシナリオをサポートするために、基盤となるピアツーピア(P2P)ネットワーク層を最適化しています。これには、グループ内のメッセージ伝送の最適化が含まれ、NAT 越えや打ち抜き技術を使用して迅速かつ効率的な接続を実現します。さらに、ネットワークはゲームのために特別な UDP プロトコルを設計しており、遅延を 10 ミリ秒未満に保つことを目指しています。これにより、リアルタイムゲーム体験にとって重要な迅速かつ信頼性の高いデータ伝送が保証されます。

主権ロールアップは比較的新しい概念であり、通常のロールアップの基盤の上に、より高いレベルの自律性と柔軟性を追加し、独立した完全な自治機能を持つブロックチェーンネットワークを構築することを可能にします。これは、各主権ロールアップが独自のコンセンサスメカニズム、状態機械、ガバナンスモデルを持ちながら、メインチェーンとの互換性を維持できることを意味します。

Screenshot 2024-01-22 at 7.24.41 PM (1)

上記のフレームワーク図を通じて、Zytron キットの各コンポーネントの機能を理解できます:

1. コアコンポーネントはゲームチェーンのインフラを提供し、高度なカスタマイズと最適化を可能にします。

   - 主権ロールアップはゲームのプレイアビリティと高可用性を保証し、システムの迅速なアップグレードと自動デプロイをサポートします。

   - サーバーシャーディングはゲームワールドを複数のノードに分散させ、単一ノードの負荷能力を向上させます。

   - データ互換性は、ユーザーフレンドリーなデータベースシステムを統合することにより、ゲームデータの迅速な処理を確保します。

   - カスタムネットワークは、ゲームの高いネットワーク要求を満たすために基盤となる P2P ネットワーク層を最適化し、グループ間のメッセージ伝送を最適化し、遅延を減少させます。

2. オンチェーンコンポーネントは、ゲームロジックの正確性と資産の安全性を保証するためにチェーン上で実行される基本部分を含みます。

   - オンチェーン検証者は、すべての取引とゲーム操作が有効かつ合法であることを保証します。

   - スマートコントラクトはゲームルールとロジックのコーディング媒体として機能し、プレイヤー間の相互作用とゲーム状態の変更を処理します。

3. モジュールコンポーネントは特定のゲーム機能とサービスの実装を提供します。

   - ZK システムはプライバシー保護を提供し、プライバシー計算と検証を行います。

   - アカウントシステムとリアルタイム通信システムはユーザー管理とリアルタイム通信機能を提供します。

   - 監視システムはネットワーク状況とゲーム運営状況を監視します。

   - ルームシステム、金融システム、AI システムはゲーム内のルーム管理、財務取引、人工知能サポートを提供します。

   - ログシステムはすべての操作とイベントを記録し、分析とデバッグのために使用されます。

Untitled (12) (1)

上の図は Zytron kit スタックの作業フローを示しています:

  • 取引は最初に Layer 3 で生成され、Sequencer によって順序付けされます。
  • Runner ノードは Layer 1/2 のイベントと Sequencer の出力を監視し、取引を実行し、サービスシャーディング機能を実現するために通信を行います。
  • データは定期的に Celestia に提出され、データの可用性と安全性を確保します。
  • クライアントは軽量同期を通じて Layer 3 と対話し、Layer 3 が提供するサービスを呼び出すことができます。

さらに興味深いことに、前述の 2 つのエンジンキット、AW Engine と Secret Engine は、事前コンパイルされた形式で Zytron kit と統合され、よりシンプルな形でオンチェーンゲームに高効率、迅速な応答、機能豊富なインフラを提供します。開発者は自分のニーズに応じて適切なコンポーネントを選択し、ゲームデザインに合ったチェーン環境を作成できます。Zypher は ETH エコシステムをサポートするだけでなく、BTC エコシステムにおけるオンチェーンゲームや L3 の可能性を積極的に探求しています。Zypher と BTC の Layer2 B² Network は、B² Network およびその DA Layer B² Hub に基づいて、オンチェーンゲーム専用の Layer 3 を展開することを発表しました。これは BTC エコシステムにおける初のオンチェーンゲームをサポートする Layer 3 となります。Zypher は BTC エコシステムのオンチェーンゲーム開発エンジンをサポートする最初の企業の 1 つとなりました。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。