原著者: Solaire、YBB Capital

これまで、ブロックチェーンのチェーン リスト構造の制限により、チェーン上に実用的な DApp を構築することは簡単ではありませんでした。有名な定数プロダクトプールの公式「x * y = k」の誕生により、わずか数百行のコードである Uniswap が DeFi をリードし、暗号通貨の物語を完全に変えました。 。単純な DApps は、開発者の創意工夫次第でこのような高みに達することができます。では、複雑な DApp アプリケーションはどうなるでしょうか?たとえば、ゲームやソーシャル プラットフォームを完全にチェーン上に構築しますか?これは以前は突飛なアイデアだったかもしれませんが、現在ではロールアップによってスケーラビリティが開かれており、その可能性は微妙になり始めています。
最初のレベルのタイトル
フルチェーンゲームの起源と発展
フルチェーン ゲームの歴史は 10 年前に遡ります。ミハイル シンデエフ氏が Namecoin をフォークし、世界初のブロックチェーン ゲーム「Huntercoin」を構築しました。 Huntercoin は 2013 年に実験的なプロトタイプとしてスタートし、すぐに多くの著名な bitcointalk.org メンバーの支援を受けてオンラインでカルト的な人気を博しました。テクノロジー愛好家のビデオ ゲームへの愛を利用して、最も人気のあるハンターコインの投稿は 380,000 回を超えるビューを獲得しました。残念ながら、ミハイル・シンデエフ氏が2014年2月に脳卒中で亡くなり、「ハンターコイン」の開発も難航し、2015年にはトークンのHUCはほぼゼロとなった。フルチェーンゲームの最初の試みは成功しなかったものの、幸いにもそのストーリーチェーンゲーム全体はまだ続いています。
2020 年、Gubsheep (Brian Gu)、Alan Luo、SCOTT SUNARTO は、小説「Three-Body 問題: Dark Forest」にインスピレーションを得て、同名の MMORTS 宇宙征服ゲーム「Dark Forest」を開発しました。ゲームはイーサリアム上に構築されており、すべてのルールとロジックはスマート コントラクトに書き込まれます。つまり、あらゆる動きはオンチェーン トランザクションを伴うフルチェーン ゲームです。ゲームコンテンツの核心部分は、ZK-Snarks (ゼロ知識証明) テクノロジーを使用して戦争の霧を作成し、三体小説の暗い森の法則の定義を再現します (一度宇宙文明が発見されると、必然的に他の宇宙文明からの挑戦を受けることになります。ヒット)。

たとえば、プレイヤーが暗い森の法則の影響を受けてアクションを起こしたい場合、プレイヤーは自分の座標を明らかにすることはできませんが、毎日 A から B に移動したい場合、それを証明するために A と B の座標を送信する必要があります。これは有効ですが、エーテル Fangfang のブロック情報は完全に透明であり、「Dark Forest」では以下の方法で情報隠蔽を実現しています。プレイヤーは出発するオデイリーと目的地オデイリーを選択しますが、これら 2 つのオデイリーの位置はプレイヤーの個人情報です。出発する Odaily のハッシュと、これから向かう Odaily の場所を計算し、両方のハッシュをブロックチェーンに送信します。この段階で、プレイヤーはコミットメントを送信します (コミット段階) ハッシュ関数の一方向性により、これらの送信のハッシュ値を使用してプレイヤーの実際の惑星位置を決定することはできません。そして次の段階は検証 (公開段階) で、プレイヤーは自分の行動が有効であることを示すゼロ知識証明を生成して提出します。この証明は誰でも検証できますが、プレーヤーの Odaily の位置に関する情報は明らかにされません。
このようにして、情報が透明なイーサリアム上で情報を隠蔽する初のフルチェーンゲームが誕生しました。このクレイジーかつ思慮深い実験はすぐに仮想通貨界全体にセンセーションを巻き起こし、イーサリアムの創始者であるヴタリク氏もこのゲームをリツイートして称賛しました。 Twitterで直接。
しかし、「Dark Forest」の最初のリリース後、10,000 人を超えるプレイヤーが流入するにつれ、イーサリアムのパフォーマンスではこの複雑なアプリケーションの動作をサポートするには十分ではないというジレンマが生じ始めました。ゲームが開始された日、ブロックチェーン全体が直接ブロックされ、数兆の Gas が費やされました。また、ゲームは DeFi アプリケーションのライブラリとアーキテクチャに基づいて設計されているため、後の段階でさらに最適化しても痛みが軽減されるだけで、問題は解決されません。
ZK-Snarks でのこの実験の可能性に触発され、チェーン ゲーム全体の窮状について考えたゲーム創設者 Brian Gu は、ゼロ知識証明の開発を促進する ZK-Snarks 研究機関として 0 x PARC を設立しました。 x PARC Lattice の別の部門は、フルチェーン ゲーム エンジン MUD の設計と保守を担当しています。もう 1 人の創設者である SCOTT SUNARTO は、フルチェーン ゲームの実行専用のシャーディング ロールアップ フレームワーク、つまり World Engine の開発を開始しました。
最初のレベルのタイトル
Autonomous Worlds
0 x PARC 暗号化ゲーム ペーパー コレクション「Autonomous Worlds」の観点に基づいて、フルチェーン ゲームは少なくとも 5 つの標準に従う必要があります。
l データはブロックチェーンから取得されます。ブロックチェーンは単なるデータの二次ストレージではなく、独自のサーバーに保存された単なるデータのコレクションでもありません"鏡像"。資産所有権などのデータだけでなく、すべての意味のあるデータにブロックチェーン上でアクセスできます。このようにして、ゲームはプログラマブル ブロックチェーンの利点、つまり透過的なデータ ストレージと許可のない相互運用性を最大限に活用できます。
l ロジックとルールはスマート コントラクトを通じて実装されます。たとえば、所有権だけでなくゲーム内の戦闘もオンチェーンで行われます。
l ゲームの開発はオープンエコロジーの原則に従っています。ゲーム コントラクトとアクセス可能なゲーム クライアントは両方ともオープン ソースです。サードパーティ開発者は、プラグイン、サードパーティ クライアント、相互運用可能なスマート コントラクトを通じて、独自のゲーム エクスペリエンスを完全に再デプロイ、カスタマイズ、さらにはフォークすることができます。これにより、ゲーム開発者は (インセンティブに合わせた) コミュニティ全体のクリエイティブな成果を活用できるようになります。
l ゲームはチェーン上に永続的に保存されます。この点は、上記の 3 つの点と密接に関連しています。なぜなら、ゲームが暗号化されたネイティブ ゲームであるかどうかをテストするための試金石は、「コア開発者が提供したクライアントが明日消えても、ゲームは引き続きプレイできるか?」ということだからです。答えは多くの場合「はい」です。ゲーム データ ストレージがパーミッションレスである場合 (およびその場合に限り)、ゲーム ロジックがパーミッションなしで実行できる場合、コミュニティがコア チームが提供するインターフェイスに依存せずにコア スマート コントラクトと対話できる場合。
l ゲームは、私たちが価値があると考えるものと相互運用できます。ブロックチェーンは、価値の概念そのものに対するネイティブ API を提供し、デジタル資産はデフォルトで、私たちが関心を持っている他の資産と相互運用可能です。これは、ゲームの奥深さと意味を反映および強化し、ゲームの世界とゲームを結び付けます。"現実"世界はつながっていきます。
この規格に基づいて構築されたフルチェーンゲームは、ブロックチェーンを下位層とした世界、すなわちAutonomous World(自律世界)とみなすこともできる。
では、世界とは何でしょうか?世界とは現実世界だけを指すのではなく、世界を媒介するものは小説、映画、ゲーム、詩、さらには法制度さえも含みます。しかし、これらの世界では、センター (作成者、開発者、またはグループ) がフレームワークとルールを策定し、それを私たちに伝えます。これらの世界の自律性の度合いも異なります。たとえば、オープンワールド ゲームで非常に有名な「Minecraft」(「My World」) では、プレイヤーは非常に高い自律性を持っています。ルールに従って、プレイヤーは自分の世界のみを作成できます。自律性の低い世界とは、「ハリー・ポッター」のような斬新な世界かもしれませんが、私たちが見ている魔法の世界は、J・K・ローリングが作ったルールや枠組みに基づいています。
ブロックチェーンが世界のベースとして使用される場合、ブロックチェーンはすべてのノード エンティティのコレクションをその状態に明確に保存します。さらに、コンピュータ コードでインポート ルールを正式に定義します。ブロックチェーンが基盤となっている世界では、住民が合意に参加できるようになる可能性があります。彼らは、新しいエンティティが導入されるたびに同意するコンピュータ ネットワークを運営しています。
世界的な観点から見ると、定義する必要のあるブロックチェーンの概念が 2 つあります。
l ブロックチェーンの状態ルート: 状態ルートは、世界中のすべてのエンティティを圧縮したものです。
ステート ルートを使用すると、エンティティが仮想かどうかを判断でき、世界のステート ルートを信じることは、世界そのものを信じることと同じです。 0x411842e02a67ab1ab6d3722949263f06bca-20c62e03a99812bcd15dce6daf26e は、2022 年 7 月 21 日午後 7 時 30 分 10 秒 (協定世界時) におけるイーサリアム (ブロックチェーンを基盤とした世界) のステート ルートです。この状態ルートを計算するとき、イーサリアム世界のすべてのエンティティが考慮されます。それは、その特定の時点におけるその世界の内容全体を表します。
l ブロックチェーンの状態遷移関数: 各ブロックチェーンは状態遷移関数を定義します。
これは、明示的なインポート ルールとして見ることができます。それは定義します"世界"システムの以前の状態 (仮想エンティティの集合) が、人間とマシンの入力を通じてどのように新しい仮想エンティティを導入するか。ビットコインの場合、状態遷移関数は、残高がどのように消費され、アドレス間で転送されるかを定義します。
最初のレベルのタイトル
ジレンマを生み出した
フルチェーン ゲームの新しいデザインを模索する初期のプロセスで、開発者は DeFi アプリケーションを構築するための従来の DApp アーキテクチャとライブラリの制限によって繰り返し影響を受けました。 「Dark Forest」やその他の初期のフルチェーン ゲーム構築は、当時の DeFi アプリケーションの構築に使用されていたアーキテクチャとライブラリに従う必要があり、これらのアーキテクチャは当時のフルチェーン ゲームを構築するためのデフォルトの選択肢となりました。
フルチェーン ゲーム作成の初期モデルは 4 つのポイントに要約できます。
l 異なる契約が同じ状態にある場合:複数のスマート コントラクトが同じデータまたは状態を変更する可能性があり、データの不整合やその他の問題が発生する可能性があります。場合によっては、ダイヤモンド パターンを使用して解決します (ダイヤモンド パターンは、Solidity スマート コントラクトの複数の継承問題を解決する方法です)。
l さまざまなデータ構造を記述します。エンティティの各タイプ (ゲーム内の兵士、惑星など) には、独自のデータ構造とタイプがあります。
l Getters 関数を作成します。これは、チェーンから初期状態またはデータを取得するために使用される、データ構造の要素のバッチを返す関数です。たとえば、getPlanets() 関数はすべての惑星のリストを返す場合があります。
l イベント:各データ構造にはイベントが含まれています。イベントは、新しいブロックがチェーンに追加されたときにアプリケーションがその状態を同期または更新できるようにするスマート コントラクトの特定の機能です。たとえば、新しい惑星が作成されるとイベントが発生する可能性があり、アプリはこのイベントをリッスンして、表示する惑星のリストを更新します。
副題
世界の創造者 - MUD エンジン

MUD エンジンの誕生は、開発者が過去および既存の問題について考えることから生まれ、イーサリアム アプリケーションの複雑なアプリケーションを構築するためのフレームワークです。 MUD は、開発者がアプリケーションの機能に集中できるように、データとロジックを整理し、低レベルの複雑さを抽象化するためのいくつかの規則を提供します。データがオンチェーンで保存される方法を標準化します。この標準データ モデルを使用すると、MUD はコントラクトとクライアントの状態を同期するためのすべてのネットワーク コードを提供できます。
MUD の最新バージョンには現在、次の 5 つのコンポーネントが装備されています。
l ストア: オンチェーンデータベース。
l World: 標準化されたアクセス制御、アップグレード、モジュールを提供するエントリ ポイント フレームワーク。
l ツール: Foundry に基づく超高速開発ツール。
l クライアントデータストレージ: チェーン上のステータスを魔法のように反映できます。
副題
EVM完全互換、極めて高い自由度
MUD の多用途性はイーサリアム メインネットに限定されず、言語がサポートしている限り、MUD は Polygon、Arbitrum、Optimism、Gnosis チェーンなど、EVM 互換チェーン上でシームレスに動作できます。
副題
本旨
MUD は、チェーン上の複雑なアプリケーション向けに設計された高度に協調的なライブラリとツールのセットとして、次の 3 つの核となるアイデアを持っています。
l すべてのオンチェーン状態はデータベースに保存されます。 MUD チェーン上のストア: ストアは、SQLite データベースに似た組み込み EVM データベースであり、テーブル、列、行の概念があります。 Store を使用すると、より構造化されたデータを管理できるため、Solidity コンパイラーが提供するストレージ方法に依存する必要がなくなります。また、実行時のテーブル作成もサポートしており、フックを登録してインデックス付きビューを自動的に作成できるため、柔軟性が高まります。
l ロジックはステートレスであり、カスタム権限を持つさまざまなコントラクト間でパーティション化されています。"World"エントリーポイントとして機能し、スマートコントラクトのさまざまなペアを調整します"Store"アクセス。 「ワールド」がデプロイされると、「ストア」が作成され、「ストア」内の各テーブルは特定の名前空間の下に登録されます。 「World」に機能(アドレス間で送金するためのロジックなど)が追加されると、それも名前空間に登録され、「System」と呼ばれます。これらの「システム」は実際にはスマート コントラクトですが、従来のスマート コントラクトとは異なり、ステートレスであり、データを直接保持しません。代わりに、「World Store」を使用してデータを読み書きします。この設計により、これらの「システム」は、同じチェーン上にデプロイされている限り、異なる「世界」間で再利用できます。
l インデクサーやサブグラフは必要なく、フロントエンドも同期を保つことができます。ストア (および拡張ワールド) を使用すると、チェーン上のデータが自動的にイントロスペクトされ (イントロスペクション、自己チェック)、変更はすべて反映されます。標準イベントを通じてブロードキャストします。合格"MODE"副題
束縛を打ち破る
3 つの核となるアイデアを通じて、過去のジレンマを例として、MUD が複雑なアプリケーションの束縛をどのように打ち破るかを見てみましょう。
l 異なるコントラクトが同じ状態にある場合:"World"そして"Store"チェーン上の状態を一元管理する構造。すべてのスマート コントラクト (MUD では「システム」と呼ばれます) は、"World"アクセスして変更するには"Store"のデータ。これにより、すべての状態変更が集中化されたエントリ ポイントを通過するようになり、データの不整合や競合のリスクが軽減されます。 MUD は、名前空間とパスを通じて、データへのきめ細かいアクセス制御を提供します。異なる「システム」は異なる権限を持つことができるため、許可された「システム」のみが特定のデータまたは状態を変更できるようになります。
l データ構造: 従来の Solidity ストレージ方法とは異なり、MUD の"Store"SQLite に似たテーブル、列、行の概念を提供し、より構造化されたデータの保存と管理を可能にします。各タイプのエンティティ (ゲーム内の兵士、惑星など) は独自のテーブルを持つことができ、各テーブルにはエンティティのさまざまな属性を格納する複数の列を持つことができます。
l ゲッター機能: MUD による"Store"構造化されたデータ ストレージを提供し、データの取得をより簡単かつ直感的にします。開発者は、SQL に似たクエリ言語を使用して、特別なゲッター関数を作成せずにデータを取得できます。たとえば、すべての惑星を取得するには、開発者は getPlanets() 関数を記述せずに、単に惑星テーブルをクエリするだけで済みます。
l イベント: MUD は自動イントロスペクションを提供します。つまり、データ変更はシステムによって自動的に認識され、対応するイベントがトリガーされます。アプリケーションは、データ構造ごとにイベントを手動で定義しなくても、これらのイベントをリッスンして状態を同期または更新できます。
最初のレベルのタイトル
世界を走らせる、ワールドエンジン
イーサリアムにとってフルチェーンゲームの運用は常に大きな課題でしたが、ロールアップの急速な発展とカンクンアップグレードの接近により、将来的にはコストが大幅に削減され、速度も大幅に向上するでしょう。フルチェーン ゲームの準備は整っていますが、現在主流のロールアップは基本的にトランザクション用に設計されており、実際にフルチェーン ゲームに合わせて調整されたロールアップはありません。
副題
フルチェーンゲームにはどのようなロールアップが必要ですか?
l 高スループットと高 TPS: トランザクション処理の高速化、待ち時間の短縮、スケーラビリティの向上。
l 拡張読み取りと書き込み: ほとんどのレイヤー 2 は、高度な同時処理を行うために大量の書き込みを実行するように設計されていますが、ゲームはプレーヤーの位置を取得するために読み取りを行う必要があるため、読み取りと書き込みは同様に重要です。
l 水平スケーラブル チェーン: 水平スケーラビリティとは、増大する需要に対応するためにノードとリソースを追加してシステムの処理能力を向上させることを指します。これにより、ノイジー ネイバー問題 (1 つのアプリケーションまたはエンティティによるアクティビティが他のアプリケーションまたはエンティティに悪影響を及ぼし、リソース競合やパフォーマンスの問題を引き起こす可能性がある) が回避されます。
l 柔軟性とカスタマイズ: 柔軟性とカスタマイズ性により、ステート マシンを変更してゲーム デザインに適したものにするのに便利です。これには、ゲーム ループの作成、自動実行の作成などが含まれます。
副題
断片化アーキテクチャ
上記の目標を達成するために、チームは 2000 年代初頭から 1990 年代後半を振り返り、MMO などのオンライン ゲームが登場したばかりの頃からインスピレーションを得ました。初期のオンライン ゲームでは、比較的限られたサーバーおよびネットワーク テクノロジを使用して、多数のプレイヤーの対話をサポートする方法を見つける必要がありました。"断片化"これはソリューションの 1 つであり、その中心的なアイデアは、プレーヤーをさまざまなサーバーまたは「シャード」に分散し、それぞれがプレーヤー、ゲーム マップ、およびデータの一部を独立してホストできるようにすることです。
たとえば、Ultima Online はサーバー上にシャーディングの概念を実装した初期の MMORPG でした。ゲーム内のさまざまなシャードはさまざまな仮想世界を表し、各シャードは一定数のプレイヤーを収容できます。これを行うことの利点は次のとおりです。
l スケーラビリティ: プレーヤーをさまざまなシャードに分散することで、より多くのプレーヤーを収容できるようにゲームをより簡単に拡張できます。
l 負荷の軽減: 断片化により、単一サーバー上のプレーヤーの数とデータ量が削減されるため、サーバーの負荷が軽減され、パフォーマンスが向上します。
l 混雑を避ける: シャーディングにより、同じエリア内のプレイヤーの混雑が軽減され、よりスムーズなゲーム体験が提供されます。
l 地理的位置の最適化: プレイヤーを最も近いシャードに割り当てることで、ネットワーク遅延が軽減され、ゲームの応答速度が向上します。
では、このコンセプトを World Engine にどのように組み込むのでしょうか?過去の多くのシャードソーターとは異なり、"World Engine"デザインは特定のニーズにより適しています。その最適化の方向には、スループットと実行時間が含まれます。効率を確保するために"Tick rate"(つまり、1 秒あたりの更新頻度) とブロック時間。デフォルトで同期されます。設計の目標は、効率的なゲーム エクスペリエンスやシステム パフォーマンスを維持するために、トランザクションが迅速に処理されるようにすることです。仕分け方法は、取引全体を一括仕分けするのではなく、部分仕分け方式を採用しています。これは、すべてのトランザクションが他のトランザクションの後に必ず発生する必要はないことを意味します。これによりソートの負担が軽減され、高スループットと高速ブロック時間のニーズをより適切に満たすことができます。
ここには、EVM ベース シャード (EVM シャード) とゲーム シャード (ゲーム シャード) という 2 つの主要なコンポーネントがあります。EVM シャードは純粋な EVM チェーンです。そして、本当の秘密のソースはゲーム シャーディングです。これは本質的には高性能ゲーム サーバーとして設計されたミニ ブロックチェーンです。 World Engine には独自の実装インターフェイスがあり、このスライスを好みに合わせてカスタマイズできます。構築されたシャードはベース シャードに挿入されます。私たちがよく知っている Cosmos と同じように、Cosmos には IBC インターフェイスがあり、一連の標準インターフェイスを実装するだけで済みます。基本的にこれを同様の仕様に統合し、独自のシャーディングを World Engine スタックに組み込むことができます。
Cardinal は、World Engine の最初のゲーム シャーディング実装です。データ指向アーキテクチャである Entity-Component-System (ECS) ゲーム アーキテクチャを使用します。これにより、ゲームを並列化し、ゲーム計算のスループットを向上させることができます。 1 秒あたり最大 20 ティックまでの「ティック レート」を構成できます。ここのブロックチェーンの場合、1 秒あたり 20 ブロックになります。さらに、自己インデックス作成なので、外部インデクサーは必要ありません。
最初のレベルのタイトル
結論:チェーンゲーム全体の感想
フルチェーン ゲームは、アジアの暗号化サークルでは常に比較的不人気な方向性でしたが、Starknet のゲーム エンジン Dojo の立ち上げと、OP Stack ベースの概念実証ティックチェーンの開発デモンストレーションにより、フルチェーン ゲームに関する議論が活発化しました。徐々に暑くなってきました。この記事の範囲は、ゲームチェーン全体の中で最も強力な生態でもある「Dark Forest」から派生した生態です。
歴史や技術を紐解いてみると、RollupやDAppも非常に高い上限を持っていることがわかりますが、より広い視点でインフラの整備に伴い、ゲームだけではなく、さまざまな複雑なアイデアの構築や開発が可能になっています。実装は MUD を通じて実行され、インタラクションはより複雑なロールアップ スキームに統合され、ブロックチェーンの新しいパラダイムはフル チェーン ゲームから始まる可能性があります。
参考文献
参考文献
1. 原文:Modular Summit Day 1 (Galois Stage)翻訳:World Engine: フルチェーン ゲーム用に設計されたシャード ロールアップ フレームワーク
3.関連書籍
関連書籍
3.OPStack を使用してフルチェーン ゲームのクロック サイクルを構築する方法
4.The future of on-chain gaming: 'The promise of MUD ECS engine'


