Argus がフルチェーン ゲーム インフラストラクチャを構築するためにシャーディングを使用するのはなぜですか?

原标题: 心配と愛のシャーディングをやめる方法を学んだ方法

ビデオリンク:

講演者: Scott Sunarto (@smsunarto)、リサーチ デイ

記事の編集と仕上げ: Justin Zhao (@hiCaptainZ)

こんにちは、August Labs (@ArgusLabs_) の創設者である Scott (@smsunarto) です。今日は、しばらく触れていなかったトピックについて話します。ロールアップが時代の主流になりつつあるため、データ シャーディングほど実行シャーディングについては議論されません。そこで、このやや無視されているトピックである実行シャーディングをもう一度見てみましょう。

これは簡単な会話になります。一日中複雑な概念について聞いていると思いますので、この議論をできるだけ実践的なものにするよう努めます。このプレゼンテーションに適したスライドのデザインを用意しました。

私のことを知らない人にとって面白いのは、私は Twitter ではアニメの女の子として知られているということです。私はここにいるためだけに大学の卒業も逃し、両親をとても残念がらせました。現在、私は Argus Labs の創設者です。私たちは自分たちをインフラストラクチャーや暗号通貨の会社ではなく、ゲーム会社だと考えています。私の最大の不満の 1 つは、仮想通貨ゲームの関係者は誰もがツールを作りたがっているのに、誰もコンテンツやアプリを作りたがらないことです。ユーザーが実際に使用できるアプリがもっと必要です。

以前、私は賢い友人の Brian Gu (@gubsheep) および Alan Luo (@alanluo_0) と Dark Forest (@darkforest_eth) を共同作成しました。ブライアンは現在 0xPARC (@0xPARC) を実行しており、私よりもはるかに賢いです。

今日の説明はシャーディングの実行に焦点を当てますが、ほとんどの人はシャーディングの実行について議論することに慣れていません。通常、実行シャーディングについては、イーサリアム シャーディングやニア シャーディングなど、レイヤー 1 のコンテキストで説明します。しかし、今日は少し文脈を変えたいと思います。ロールアップ環境でのシャーディングがどのようになるかを考えてみましょう。

ここでの基本的な疑問は、なぜゲーム会社が独自のロールアップを作成するのか、そしてロールアップを設計するために World of Warcraft から何を学べるのかということです。さらに、ロールアップの設計空間が現在の現実をはるかに超えてどのように拡張されるのかを探っていきます。

これらの質問に答えるために、Dark Forest のアイデアが最初に思いついた 2020 年に戻ってみましょう。私たちは、すべてのゲームアクションがオンチェーントランザクションであるゲームを作成したらどうなるだろうかと自問しました。この前提は当時もばかげていましたし、今でも多くの人にとってはばかばかしいものです。しかし、それは興味深い仮説だったので、私たちはそれを構築し、Dark Forest が誕生しました。

Dark Forest は、ZK-Snarks を利用した、完全にイーサリアムに基づいたフルチェーン宇宙探索 MMORTS ゲームです。 2020 年当時、ZK はドキュメントがほとんどなかったため、現在ほど人気がありませんでした。 Circom で利用できる唯一のドキュメントは、Jordi Baylina (@jbaylina) の Google ドキュメントです。課題にもかかわらず、私たちはその過程で多くのことを学びました。Dark Forest はそれらの学びを具体化したものです。

Dark Forest は私たちが思っていたよりも大きな実験です。プレイヤーは 10,000 人を超え、何兆ドルものガソリンが費やされ、ゲームは混乱し、鎖で背中を刺される人もいます。 Dark Forest とオンチェーン ゲームの最も魅力的な点は、プラットフォームの性質です。フルチェーン ゲームを用意することで、新しい動作のための空間を設計するための扉が開かれ、ゲームと対話するスマート コントラクトだけでなく、Dark Forest Arena や GPU マイナーなどの代替クライアントやゲーム モードを構築できるようになります。

しかし、大きな力には大きな責任が伴います。私たちが xDai で Dark Forest (現在は Gnosis Chain として知られている) を立ち上げたとき、最終的にチェーンのブロック スペース全体を埋めることになりました。これにより、チェーンは基本的に、DeFi、NFT、その他の xDAI など、他のものには使用できなくなります。

ならどうしよう?行き止まりに達したのでしょうか?フルチェーンゲームは決して実現しないのでしょうか?それとも、小さな JPEG 写真だけがオンチェーンにあるゲームの作成に戻り、お金は木に育つと人々に信じ込ませるつもりでしょうか?答えは、ソフトウェアに物事をやらせることです。私たちの多くは、ブロックチェーンとロールアップに対して、改善の余地があまりないかのように、非常に厳格な見方をしています。しかし、私は同意しません。私たちは実験して新しい可能性を見つけることができます。

私たちは自問しました。ゲーム専用のブロックチェーンをゼロから設計するとしたら、どのようなものになるでしょうか?高スループットが必要なため、読み取りと書き込みをスケールする必要があります。ほとんどのブロックチェーンは書き込み負荷が高くなるように設計されています。 1 秒あたりのトランザクション数 (TPS) は人々が自慢する指標ですが、実際には読み取りも同様に重要です。ブロックチェーンノードから読み取れない場合、どうやってプレイヤーがどこにいるのかを知ることができるでしょうか?実はこれが、ブロックチェーン構築において私たちが発見した最初のボトルネックです。

Dark Forest には、オンチェーン状態からデータを読み取る必要があるため、フルノードが頻繁に使用され、I/O が爆発的に増加するという問題があります。その結果、サーバー費用が数千ドルかかりましたが、xDAI チームが寛大に負担してくれました。ただし、これは長期的には理想的ではありません。 1 秒あたりに書き込まれるトランザクションだけでなく、ブロックチェーン自体からのデータのフェッチなどの読み取りにも、高いスループットが必要です。

また、ノイジーネイバー問題を回避するために、水平方向にスケーラブルなブロックチェーンも必要です。人気のゲームがブロックチェーン上で突然クラッシュし始めて、すべての作業が停止することは望ましくありません。また、ゲーム用に設計されたステート マシンを変更できるように、柔軟性とカスタマイズ性も必要です。これには、ゲーム ループの作成、自動実行の作成などが含まれます。

最後になりましたが、オンライン ゲームのアーキテクチャに詳しくない人にとっては、これは少し曖昧かもしれません。高いティック レートが必要です。ティックは、ゲーム世界における時間の原子単位です。ブロックチェーンのコンテキストでは、時間の原子単位としてのブロックがあります。ゲームにはダニがいます。これは、ブロックチェーンのティックまたはブロック生成レートがゲーム自体のティックと等しいフルチェーン ゲームを構築する場合とほぼ同様です。

したがって、必要なのは、高スループット、水平スケーラビリティ、柔軟性とカスタマイズ性、そして高いティックレートを備えたブロックチェーンです。このような設計は、ゲーム用にゼロから設計したブロックチェーンのニーズを満たすことができます。

ティック レートが高い場合、または 1 秒あたりのブロック数が多い場合、ゲームの反応がより速く感じられます。逆に、ティックレートが低い場合、ゲームは遅く感じられます。覚えておくべき重要な点の 1 つは、チャンクが遅延すると、ゲームで顕著な遅延が発生するということです。これは悪い経験です。ゲームに負けてコンピューターに向かって怒鳴り散らすプレイヤーに対処したことがあるなら、それはまったくひどい状況です。

現在、ロールアップには 1 秒あたり 1 ブロックがあり、これは 1 ティックに相当します。よりクールなゲームを実現したい場合は、より高いティックレートが必要です。たとえば、単純なピクセル アート ゲームである Minecraft は 1 秒あたり 26 ティックです。 Minecraft のような応答性の高いゲームを構築するには、まだ長い道のりです。

考えられる解決策は、独自のロールアップを展開することです。問題を解決するように見えますが、実際には問題の根本原因は解決されません。たとえば、書き込みスループットは向上しますが、ゲームに必要なレベルには達していません。もちろん、ゲームに 100 人のプレイヤーがいる場合は、これで十分です。ただし、より高いスループットを必要とするゲームをビルドする場合は、現在のビルドでの I/O の実行方法に起因する非常に厳しい制約があります。

読み取り側では、実際にはパフォーマンスが向上しません。やはりインデクサーに頼る必要があります。水平方向のスケーラビリティがまったくありません。ゲームを水平方向にスケールするために新しいロールアップを開始しようとすると、既存のスマート コントラクト エコシステムが破壊されます。プレイヤーが展開するマーケットプレイスは、ゲームを水平方向に拡張するために立ち上げた他のチェーンとは連携できません。これには多くの疑問が生じます。

最後に、高いティック レートと 1 秒あたりのブロック数はまだ少し課題です。できる限り努力することはできますが、1 秒あたり 2 ブロック、おそらく 3 ブロックを取得できる可能性がありますが、これがこれらのブロックチェーンが実現できることです。なぜなら、再マーシャリングなど、コンピューティング サイクルに大きく依存する処理がたくさんあるからです。

この疑問に答えるために、MMO のようなオンライン ゲームが登場したばかりの 2000 年代初頭から 1990 年代後半を振り返ります。彼らにはシャーディングと呼ばれる概念があります。これは新しい概念ではなく、過去から存在していました。私たちがデータベース アーキテクチャで使用する「シャーディング」という言葉は、実際には Ultima Online への言及から来ています。彼らは、さまざまなサーバーを説明するために「シャード」という言葉を初めて使用しました。

では、ゲームにおけるシャーディングはどのように機能するのでしょうか?それは万能の解決策ではありません。これはツールボックスの中のツールであり、それをゲームにどのように適応させるかはケースバイケースです。たとえば、最初のシャーディング構造は、私が位置ベースのシャーディングと呼びたいものです。良いメンタル モデルは、デカルト座標系が 4 つの象限に分割され、それぞれに独自のゲーム スライスがあると想像することです。シャードを移動するたびに、別のシャードに「ねえ、そこに移動したいのですが」という通信を送信すると、自分のシャードにテレポートされ、プレイヤーが体の前に残されます。これにより、1 つのサーバーにゲーム世界全体のすべての計算を強制するのではなく、サーバーのワークロードが複数の物理インスタンスに分散されます。現在では 2 番目の構成の方が一般的です。これはマルチバース シャーディングと呼ばれるもので、複数のゲーム インスタンスが相互にミラーリングされます。行きたいシャードを選択でき、各サーバーが過密にならないようにデフォルトで負荷分散されます。

さて、重要な質問は、このコンセプトをロールアップにどのように持ち込むかということです。それが私たちが World Engine を作成した理由です。 World Engine は当社の主力インフラストラクチャであり、基本的にはスタートアップ向けに設計された独自のシャード ソーターです。私たちのものは、過去数回の議論で見た多くのシャードソーター設計とは異なり、私たちのニーズにより適しています。最適化の方向は次のとおりです。A、スループット、B。ティック レートとブロック時間が可能な限り効率的になるように、実行時間をブロックするロックがないようにしたいため、デフォルトで同期します。私たちはソーターを完全な順序付けを強制するのではなく、部分的にソートするように設計しています (各トランザクションは他のトランザクションの後に発生する必要があります)。

ここで重要な要素は、主に 2 つのものがあるということです。純粋な EVM チェーンのような EVM ベースのシャーディングがあり、プレーヤーはスマート コントラクトを展開したり、ゲームと組み合わせたり、税金を使って市場を作成したりできます。普通のチェーンと同じですよね? 1 秒あたり 1 ブロック程度で、一般的なデバイスとマーケットをすべて実行するには十分です。

ここでの秘密の材料は、ゲーム シャードも使用していることです。ゲーム シャードは、本質的には高性能ゲーム サーバーとして設計されたミニ ブロックチェーンです。このシャードを好みに合わせてカスタマイズできるように、独自の実装インターフェイスを用意しています。独自のシャードを作成し、それをベース シャードに挿入できます。実装する必要があるのは、標準インターフェイスのセットだけです。よく知られている Cosmos と同じように、Cosmos には ABC インターフェイスがあります。基本的に、これを同様の仕様にまとめて、独自のシャードを World Engine スタックに組み込むことができます。

ここで重要なのは、現在のシャーディング構造では現時点では達成できない高いティックレートを持っているということです。ここでカーディナルを紹介したいと思います。 Cardinal は、World Engine の最初のゲーム シャーディング実装です。データ指向アーキテクチャの Entity-Component-System (ECS) を使用します。これにより、ゲームを並列化し、ゲーム計算のスループットを向上させることができます。 1 秒あたり最大 20 ティックまで構成可能なティック レートを備えています。ここのブロックチェーン関係者にとって、それは 1 秒あたり 20 ブロックに相当します。

レイテンシを短縮するために地理位置情報を特定することもできます。たとえば、米国にソーターがある場合、アジア人はトランザクションがソーターに到達するまで 300 ミリ秒待たなければならないとします。 300 ミリ秒は長いため、これはゲームでは大きな問題になります。 200 ミリ秒のラグがある FPS ゲームをプレイしようとすると、基本的には死んでしまいます。

私たちにとってもう 1 つの重要な点は、自動インデックス化であるということです。外部インデクサーはもう必要ありません。ゲームの状態をキャッシュするためにこれらのフレームワークは必要ありません。これにより、インデクサーがソーター ブロックに追いつき続けようとするため、遅延の問題を発生させることなく、よりリアルタイムなゲームを構築することもできます。

ZK 検証などを並列化できるプラグイン システムもあります。少なくとも私にとって最も良い点は、Go でコードを記述できることです。ゲームを動作させるために Solidity を使用する必要はなくなりました。 Solidity を使用してブロックチェーン ゲームを構築しようとしたことがあるなら、それは悪夢だったでしょう。

ただし、シャード構築の重要な点は、あらゆるものをシャードとして構築できるということです。それらは基本的に無限のデザイン空間のようなもので、シャードのようなものです。

Go でゲーム コードを書きたくない場合は、他の方法を選択できます。ただし、私たちは、Cardinal の利点の多くを保持しながら、コーディングの可能性を提供する方法でゲームを Solidity に実装できるようにする Solidity ゲーム シャードに取り組んでいます。また、独自のメモリプールと順序付け構造を備えた NFT ミント シャードを作成し、基本的なミントと同様にノイジー ネイバー問題を解決することもできます。ゲーム ID シャードを作成し、NFT を使用してゲーム ID を表すこともできるため、秘密キーを共有する代わりに NFT を通じてゲーム ID トランザクションを簡単に実行できます。

これは高レベルのアーキテクチャですが、時間の制約があるため、今日はあまり詳しく説明しません。重要なのは、カスタム ピック アンド パスを使用して、EVM スマート コントラクトをゲーム シャードと組み合わせることができるようにすることです。私たちは Geth 間の通信を可能にするラッパーを作成しました。これにより、双方向に多くの設計スペースが広がります。デフォルトでは同期しており、ロックなしでシャード間でシームレスかつ構成可能に相互運用できます。

私たちの共有ソーターは、グローバル ソートを優先するアトミック バンドルの共有シーケンス構造を使用しない点が異なります。これにはロック メカニズムが必要で、メイン スレッドのブロックなどの問題が発生し、ティック レートやブロック時間が不安定になります。その結果は次のようになります。ゲームで遅れます。また、シャードごとのブロック時間に制限が課され、サービス妨害を防ぐためにさまざまな暗号経済学と構造が必要になります。また、多くの VCR ソーター構造で言及されていない大きな問題もあります。相互に依存し、デッドロックを引き起こす異なるシャードがある場合、どうやって解決すればよいでしょうか。非同期設計では、誰もがやりたいことをしてから放っておくので、これは問題になりません。

実際、原子ビームやシャード間のロールアップは通常は必要ありません。私たちのユースケースでは、原子ビームを必要とするものは何も必要ありません。また、ユースケースの純度に基づいてロールアップを設計する必要があるとも考えません。これにより、他にも多くの興味深い機能がもたらされます。たとえば、各ゲーム シャードにベース チェーン用の個別の DA レイヤーを含めることができます。たとえば、ベース シャードを使用してデータをイーサリアムにプッシュし、ゲーム シャードを使用してデータを Celestia にプッシュできます (データ可用性委員会と同様)。また、ゲーム シャード ノードを実行せずにベース シャード Geth フル ノードを個別に実行できるため、フル ノードを実行するためのハードウェア要件を軽減することもできます。これにより、Alchemy などとの統合が容易になります。

要約すると、ここで正直に言いたいのですが、多くの人は自分の構築物がすべての問題を解決してくれると期待していますが、私たちはそうではありません。私たちの構造は私たちにとっては機能すると思いますが、あなたのユースケースでは機能しない可能性があります。私たちの構造がすべての人に機能すると仮定するのは非現実的です。私たちにとって、それはニーズを満たし、高いスループット、水平方向のスケーラビリティ、柔軟性、および高いティックレートを提供しますが、癌の治療法ではありません。同期コンポーザビリティを必要とする DeFi プロトコルが必要な場合、この構成は適さない可能性があります。

一般に、私は人間中心のブロックチェーン アーキテクチャの概念を心から信じています。特定のユーザーの役割とユースケースに基づいて設計することで、全員の問題を解決しようとするのではなく、より適切にトレードオフを行うことができます。ルネッサンス時代が到来し、誰もが一般的なソリューションに依存するのではなく、自分自身の特定のニーズを満たす独自のロールアップを設計できるようになりました。私たちはカンブリア紀の爆発を受け入れるべきだと思います。同じ問題を解決するように設計されていないため、フリーサイズのレイヤー 1 のようなロールアップを構築しないでください。私は個人的に、より多くの人々がユースケースのロールアップ設計空間をさらに探索するのを見るのを楽しみにしています。たとえば、資産交換用に特別に設計されたロールアップはどのようなものになるでしょうか?それは意図に基づいたものになりますか?オンチェーン CLOB (中央指値注文ブック) 用に特別に設計されたロールアップはどのようなものになりますか?ここでMJにマイクを渡します。ご招待頂き、有難う御座います。

英語版:

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)