Solana エコシステムのスケーラビリティ革新: エフェメラルロールアップ ????????
Ephemeral Rollupsは、Magic Blockが開発したリアルタイム状態更新エンジンで、フルチェーンゲーム、ソーシャルネットワーキング、トレーディングといった高同時実行シナリオ向けに設計されています。現在は主にフルチェーンゲームエンジンで使用されています。
完全にオンチェーンのゲームでは、移動、攻撃、アイテムの消費など、すべてのアクションをチェーンに記録する必要があります。
問題は、コンセンサスメカニズムがスケーラビリティの制限をもたらすことです。
1,000人のプレイヤーが同時にオンラインになっていると仮定します。各プレイヤーの位置は100ミリ秒ごとに更新されるため、1秒あたり1万件のトランザクションが発生します。これを10万人にスケールアップすると、トランザクションレートは1秒あたり100万件に増加します。これは、現在のコンセンサスモデルの能力をはるかに超えるものです。
そのため、実際には、QQゲームホールをチェーンに載せることは非常に困難であり、不可能です。「World of Warcraft」や「Fantasy Westward Journey」のように、多数のプレイヤーがオンラインで、各プレイヤーが毎秒複数の複雑な操作を実行する必要があるゲームは言うまでもありません。
しかし、MagicBlockは、高並列ゲームをブロックチェーン上に配置することを目指しています。参加者は誰でも許可なくゲームコンテンツを統合または変更したり、「自律世界」を作成したりすることができます。
ゲームの状態とロジックはオンチェーンで保存され、改ざんできません。分散サーバーにより、単一障害点のないゲームの復元力が確保されます。
Ephemeral Rollups が解決策を提供します。
基本的な原理は、高頻度のゲームデータを一時的に専用の高速環境に「借用」すること、つまり「一時ロールアップ」です。
一時的な環境では、レイテンシはわずか50ミリ秒と、従来のゲームサーバーと同等の速度です。ガス料金は一切かからず、完全に無料でご利用いただけます。ゲーム内のプロットなど、パッシブにトリガーされるロジックを編集することも可能です。
最新の状態は定期的にメインチェーンに同期・更新され、メインチェーンはいつでもデータを閲覧できます。仮環境に問題が発生した場合、データは自動的にロールバックされ、メインチェーンに戻ります。
ユーザーはプロセス全体を意識する必要はありません。バックエンドのRPCルーターは、どの操作が高速チャネル(一時的なロールアップ)を経由し、どの操作がメインチェーンを経由する必要があるかを自動的に判断します。
具体的にどうやって実現するのでしょうか?
Solana アカウント構造、プログラムで派生されたアドレス (PDA)、アカウント変更委任メカニズム (アカウント変更委任) など、いくつかの概念を導入する必要があります。
1/ Solanaのアカウント構造
Solanaのコアコンセプトは「すべてがアカウントである」です。プログラムコード、ユーザーデータ、トークン残高、その他の情報はすべてアカウントに保存されます。
Solana アカウントは主に 2 つのカテゴリに分かれています (コードとデータの分離)。
1) 実行可能アカウント = プログラムアカウント (読み取り専用)
他のブロックチェーンのスマート コントラクトと同様に、プログラム コードを保存します。
2) 実行不可能アカウント = データアカウント(編集可能)
アカウントにはデータと状態が保存されますが、実行可能コードは含まれません。
この「アカウント」はユーザーのウォレット アドレスとは異なることに注意してください。
ブラウザを確認すると、通常のアドレスの所有者はシステムプログラムであり、アドレスは 1111111111111111111111111111111111 に固定されていることがわかります。
システム プログラムは Solana の公式組み込みプログラムです。
実際、Phantom などの Solana ウォレットを作成すると、取得するアドレスは次のようになります。
- アカウントの種類: 非実行アカウント (データ アカウント)
- 所有者: システムプログラム
つまり、ウォレットアドレス = システムプログラムが所有するデータアカウントです。
ウォレットアドレスは秘密鍵から生成されます。ユーザーは対応する秘密鍵を保有しており、トランザクションに署名することができます。
アカウントは、チェーン上に保存され、プログラム (所有者) によって制御されるデータ構造であり、ウォレット アドレスはこのアカウントを「ポイント」します。
2/ プログラム派生アドレス(PDA)
Solana のアカウント システムの高度な機能は、ゲームにとって非常に重要です。
PDAは特別なアカウントアドレスであり、本質的には通常のSolanaアカウントと同じですが、そのアドレスは特別な方法で生成されます。プログラムによって生成され、それを作成したプログラムのみが制御できます。秘密鍵は存在しません(ユーザーが制御することはできません)。
したがって、チェーン全体のゲームでは、ゲーム プログラムのみがこの PDA を変更でき、他のプログラムはそれを読み取ることしかできません。
したがって、PDA は次のことを実現できます。
1) 多数のゲームステータスアカウントを簡単に作成
2) 所有権は譲渡可能(委任メカニズム)
3) アドレスが予測可能(ルーティングが容易)
4) プログラム制御(プログラムを通じたユーザー認証)
一時的なロールアップの場合は、次の操作を実行できます。
1) 多数のゲームステータスアカウントを管理する
2) 頻繁な委任と委任のキャンセルをサポートする
3) アカウントを確実に見つける
4) プログラム制御を実装する(直接的なユーザー制御ではない)
次に、3/アカウント変更の委任も必要です
これがエフェメラル ロールアップの重要な革新です。
通常の状況: アカウントを変更できるのは、その所有者のプログラムのみです。
委任メカニズム: アカウントの変更権限を一時的に別の環境に「貸し出す」ことができます (一時ロールアップ)。
委任は資産の所有権の移転と同じではないことにご注意ください。委任されるのは「ゲームの状態を変更する権利」であり、「資産その物」ではありません。
さらに、4/Sealevel並列処理
Sealevel は競合しないトランザクションを識別し、それらを同時に処理します。
つまり、特定のゲームでは、
プレイヤーのアリスが3vjで始まるSolanaアドレスを使用して、チェーン全体でWorld of Warcraftをプレイしているとします。アリスは自分の位置情報、戦闘、消費アイテムなどを頻繁に更新する必要があり、同時に1万人以上のプレイヤーがオンラインになっています。
現時点では、
1/ ゲーム起動: ゲームプログラムはアリスPDAの派生アドレスを計算する
2/ ユーザー認証: アリスはゲームステータスアカウントを認証します
3/ ER開始: ノードは委任要求を検出し、Ephemeral Rollups(以下、ERと呼ぶ)を開始する。
4/ 状態同期: AliceのゲームデータをSolana L1からERに同期する
5/ゲームの進行: プレイヤーはゲーム内で操作し、ERはタスクを実行します
6/ クロスレイヤー読み取り: NFTやその他の情報を読み取る必要がある場合、ERはSolana L1から直接読み取ることができますが、変更する権利はありません。
7/ 定期的な同期: ERデータは定期的にL1にアップロードされます
8. 資産操作:ゲームアイテムまたはゲームコインを換金する場合は、ER認証を取り消す必要があります。これはSolana L1上で行われ、プレイヤーは事前に行う必要があります。トークンの転送はトークンプログラムによって保護されています。ゲームボールトはPDAであり、ゲームプログラムによってのみ制御されます。これら2つの所有者は異なります。
これによって、実際に「Fantasy Westward Journey」や「World of Warcraft」でゲーム通貨を使ってポイントカードを売買し、ゴールドファーミンググループを換金するという操作が完了します。
9/ ゲームオーバー: プレイヤーがログオフし、ER が閉じられます。
