五分間で CocosCreator を使って TON ゲームを迅速に展開する(第3部):ZKP に基づく Telegram ゲームの開発
Web3 ゲームは、従来のゲーム分野の特別な垂直セクターであり、ブロックチェーン上に構築されているため、Web3 ゲームは通常、分散化、ゲーム資産の確権、P2E などの一連の特性を備えており、非常に人気があります。Web3 ゲームは先進的なイデオロギーを代表していますが、基盤施設の不足により、ゲーム体験やゲームコンテンツの面では Web2 ゲームと比較することができません。
現段階では、ほとんどのブロックチェーンの基盤は性能面で厳しい状況にあり、以前に大ヒットした銘文トラックは多くの Layer1、Layer2 の性能を引き下ろしました。そのため、基盤施設がまだ完璧でない現在、ゲームロジックを完全にチェーン上にデプロイすることは通常不可能であり、これによりゲームの動作が遅延し、プレイヤーがゲームに参加するコストが非常に高くなります。そのため、ほとんどの Web3 ゲームチームは、ゲームロジックをチェーン外のサーバーに記述し、ゲーム内の資産のみをチェーン上に置き、チェーン上の取引を通じてサーバー内のデータを更新するという方法を取っています。これにより、両者はデータハブを介してデータを同期し続け、いわゆる Web2.5 となります。したがって、ゲームロジックが集中化されたサーバー上で動作し、ゲームデータがサーバーに保存され、チェーン上とチェーン外でデータを継続的に同期する必要がある場合、ゲーム自体は信頼性、効率、安全性の面でいくつかの課題に直面します。また、Web2.5 のアプローチ自体も Web3 が掲げる理念に反しています。
同時に、主流のブロックチェーンは公開透明性を重視しているため、プライバシーをサポートしていません。そのため、プレイヤーの多くのゲームに関するプライベート情報は通常公開されており、同様に SLG、MMORPG ゲームの中で、例えばポーカーゲーム、大富翁、トレーディングカードゲームなどにおいて、予測不可能なランダム性やプライバシー性が必要です。ほとんどのブロックチェーンはこれに対して有効なサポートを提供できません。一方で、ネイティブプライバシー特性を持つ一部のブロックチェーンは、資産の流動性やユーザーのアクティビティなどの面で相対的に遅れており、ゲーム開発者にとっても使いづらいものとなっています。
ZKP が問題解決の鍵となる可能性
ゼロ知識証明(Zero-Knowledge Proof, ZKP)は、ある一方(証明者)が他方(検証者)に対して特定の情報を持っていることや特定の条件を満たしていることを、具体的な情報を漏らすことなく証明できる先進的な暗号技術です。この技術の核心は、ユーザーのプライバシーを保護しつつ、データの真実性、安全性、信頼性を確保することにあります。現在、ZKP ソリューションはゲーム分野に導入されており、ゲームの信頼性のある運営を実現し、ゲームの効率、安全性を向上させ、プライバシー特性を付与しています。
Zypher Network はこのトレンドの推進者であり、ZKP ソリューションに基づくゲームエンジンを導入することで、開発者がより低いハードルでチェーン上のゲームを開発したり、ゲームをチェーン上に移行したりできるようにしています。また、Services SDK ツールキットを提供することで、開発者が低いハードルでゲームを ZKP 回路に記述し、回路を直接 wasm にコンパイルし、ブラウザやアプリケーションで実行できるようにしています。
ゲームが実行される際、Zypher Network エンジン内のノードは、プレイヤーの連続的なゲーム行動から生成されたアクションログを ZK 証明に集約します。一定の周期内にこれらのゲームアクション(それぞれが一つの取引です)が一つの ZKP 証明に集約され、複数の証明が一つの取引としてチェーン上に提出されます。この方法は、ガス代を大幅に削減するだけでなく、プレイヤーに遅延のないゲーム体験を保証します。
同時に、Zypher Network が提供する秘密エンジンは、異なるゲームに選択可能なプライバシーソリューションを提供します。このエンジンは、最適化された WASM と事前コンパイルされた契約を通じて Shuffling SDK を実現し、高性能で低コストの分散型シャッフルプロセスを実現します。シャッフル回路とプロトコルは、チェーン上で検証可能な暗号計算を安全に実行することを保証し、戦略的要素がチェーン上で秘密に保たれることを確保します。ポーカー、大富翁、トレーディングカードゲームに加えて、SDK は他の信頼性とランダム性が必要な SLG 用例にも適用できます。このエンジンは、ゲーム内の情報やプレイヤーの身元情報を ZK ソリューションに基づいてチェーン上で秘密に保ち、ゲームの公平性を保証し、プレイヤー情報を隠すためにも使用されます。
さらに、Zypher Network のチェーン外計算ネットワークは、ZKP に必要な計算リソースを継続的に提供します。
全体として、Zypher Network の ZKP に基づくゲームエンジンソリューションは、チェーン上のゲームを集中化されたサーバーから解放し、サーバーの抽象化、真に Web3 を目指す新時代へと進んでいます。
Zypher Network エンジンのゲームユースケース:Ten Sum Rings
Ten Sum Rings ゲームを例にとると、このゲームのプレイ方法は、ユーザーが画面上で特定の領域を囲むことです。その領域内のすべての数字の合計が 10 であれば、その操作は成功となります。ユーザーがゲームを行う際、実際にはゼロ知識証明の原理を利用しています。具体的には、ユーザーは検証者に対して、自分が囲んだ領域の合計が確かに 10 であることを証明できますが、その領域内の具体的な数字を漏らす必要はありません。このような設計により、ユーザーは自分のプライベート情報を保護しつつ、ゲームの公平性を確保できます。
ゲームの実装において、ユーザーの囲んだ領域は zk 回路を通じて検証され、検証者は回路が生成した証明に基づいて合計が条件を満たしているかを確認します。これにより、検証者がユーザーの具体的な囲んだ数字にアクセスできなくても、ユーザーの操作結果を信頼することができます。ゼロ知識証明を通じて、Ten Sum Rings ゲームはプライバシー保護を強化するだけでなく、参加者の安全感を高め、ブロックチェーン技術のゲームやアプリケーションにおける革新的な利用を促進しています。
現在、Zypher Network ゲームエンジンは CocosCreator を統合しており、開発者が CocosCreator を通じて直接チェーン上のゲームを開発できるようにしています。現段階で Zypher エコシステムのゲーム開発者は、TON Network 上で ZKP ソリューションを採用した数十の高品質な Telegram ミニゲームをリリースしています。
次に、CocosCreator を使用して ZKP に基づく Telegram ゲームを開発する方法を段階的に紹介します。このチュートリアルがあなたにとって役立つことを願っています。
CocosCreator を使用して TON ゲームを迅速にデプロイする(第 3 部):CocosCreator を通じて ZKP に基づく Telegram ゲームを開発する方法
CocosCreator や Telegram にあまり詳しくない場合は、まず以下の内容(チュートリアルの第 1 部)を参考にしてください:
https://www.chaincatcher.com/article/2140947
チュートリアルの第 2 部:Web2 ゲームが Ton 支払いをどのように使用するか
https://www.chaincatcher.com/article/2146780
および Zypher Network の開発者文書:
ゼロ知識回路(zk 回路)は、ゼロ知識証明システムの核心コンポーネントであり、特定の論理や数学的計算を記述するために使用されます。zk 回路を通じて、証明者はプライベート情報を漏らすことなく、検証者に特定の計算の正確性を証明できます。この技術は、プライバシー保護、ブロックチェーン、アイデンティティ認証などの分野で広く利用されており、データのプライバシーと安全性を提供します。
zk 回路は、複数のゲート(gates)とワイヤ(wires)で構成される論理回路モデルです。各ゲートは加算、乗算、比較などの基本的な演算を表し、ワイヤは数値の入力、出力、または中間結果を表します。zk 回路の設計により、複雑な計算を単純な基本演算の組み合わせを通じて実現し、任意の計算ロジックを表現できます。
zk 回路には、3 つの重要な構成要素があります:
- 入力値:公開入力(public input)とプライベート入力(private input)が含まれます。公開入力は検証者がアクセスできるデータであり、プライベート入力は証明者の機密データであり、直接検証者に漏らすことはできません。
- 回路ロジック:一連の演算から構成され、これらの演算が計算の論理フローを定義します。回路の設計は、複雑な計算プロセスを効果的に表現し、演算効率を最適化できるようにする必要があります。
- 出力値:zk 回路が最終的に生成する出力データであり、検証者が使用します。出力値は通常、計算の正確性を検証するために使用され、入力の具体的な内容を漏らすことはありません。
このようにして、zk 回路はプライバシーを保護しつつ、計算の透明性と信頼性を保証し、プライバシー計算の応用と発展を促進します。
以下は回路を含む契約です:
TON 契約をデプロイする前に、以下の準備作業を完了する必要があります:
- 契約コードの作成:FunC 言語または他の TON 仮想マシン(TVM)をサポートする契約言語を使用して契約ロジックを記述し、契約の機能要件と安全性を確保します。
- TON CLI ツールのインストール:TON 公式が提供するコマンドラインツールを使用します。これらのツールは、契約のコンパイル、デプロイ、ブロックチェーンとのインタラクションを支援します。
- TON ウォレットの準備:契約に初期デプロイ費用を提供するために、TON ウォレットを作成し、準備します。このウォレットには十分な TON トークンが必要です。
デプロイとインタラクションの全体的なプロセス:
- 契約コードの作成:FunC または他の契約言語を使用して契約ロジックを記述します。
- 契約コードのコンパイル:func ツールを使用して契約コードをコンパイルし、.fif ファイルを生成します。
- 契約の .boc バイトコードの生成:fift ツールを使用して .fif ファイルを契約のバイトコード(.boc ファイル)に変換します。これは契約が TON 上で実行されるための鍵です。
- 契約アドレスの生成:契約のバイトコードと初期パラメータに基づいて契約アドレスを生成します。
- 初期資金の提供:生成された契約アドレスに資金を充填し、デプロイ費用を満たします。
- TON ネットワークへの契約のデプロイ:TON CLI の deploy コマンドを使用して契約をネットワークにデプロイします。
- 契約状態の確認:契約アドレスを照会して契約が成功裏にデプロイされたかを確認します。
- 契約とのインタラクション:TON SDK または CLI を使用して契約のメソッドを呼び出し、データの照会や状態の更新を行います。
ten sum rings 契約デプロイコード:
Cocos Creator で TON 契約を呼び出すプロセスは次のとおりです:TON 契約が成功裏にデプロイされ、契約アドレスを取得した後、フロントエンドは TON SDK(TonWeb または TonConnect など)を統合することで契約とのインタラクションを実現できます。Cocos Creator プロジェクト内で、JavaScript を使用して SDK が提供するインターフェースを呼び出し、契約アドレスとメソッド名に基づいてリクエストを送信し、必要なパラメータと署名情報を渡します。その後、契約から返されたデータを処理し、フロントエンドとチェーン上の契約とのインタラクションを実現します。
以上が Cocos Creator で zk 回路と TON 契約に基づくチェーン上の検証プロセスを実現する方法であり、主に以下のステップが含まれます:プライバシー計算ロジックを設計するために zk 回路を記述し、ゼロ知識証明(ZKP)を生成し、契約を FunC コードとして記述し、TVM バイトコードにコンパイルし、TON ネットワークにデプロイします。TON 契約を通じて検証とデータのインタラクションを行い、高効率かつプライバシー安全なチェーン上の検証を実現し、データの完全性とユーザーのプライバシー保護を確保します。