前回の「続・SAOのコンバート機能とビザンチン将軍問題」の続き。
前回提示したような、複数のゲームが1つのブロックチェーンの情報を共有するようなシステムにおいて、現実的に発生しそうな問題についてさらに考える。
今回の記事では、チェーンに乗せる情報の中で「アイテム」として語ってきたものは「チェーンエレメント」と呼ぶ。
あるゲーム世界で「アイテム」だったものが、別の世界ではスキルなのかペットなのかボットなのか「図形」のようなものなのか、というのは分からないわけだ。
ここまでくると、もうSAOでの描写からはだいぶ離れることになる。
また、チェーンエレメントやユーザーの情報が乗るチェーンは「グレートスピリット」と呼ぶことにする。
そういう性質を持ったチェーンをグレートスピリット (GS) と呼び、基本的には1つのゲームは1つのGSを参照することを前提にしている。
それぞれのゲームにおいてGMは神に近い存在だが、チェーンエレメントの発生がマイニングの計算結果に依存するならGMはチェーンエレメントの発生をコントロールできないわけで、「神の子」を超えた存在としてグレートスピリットがあるわけだ。
でも、グレートスピリットは固有名詞ではない。
後述するが、GSを複数持つゲームというのも作れるからだ。
そして今回、結論、というのとはちょっと違うが、実証実験として何をやるべきかというのを提示してひとまず区切りをつけたい。
初期ビットコインのようなシンプルなブロックチェーンでは、現実的にはチェーンに情報が反映 (承認) されるまで時間がかかる。
つまり、アイテムの受け渡しが高速かつ頻繁に行われなければ成立しないゲームは作れないことになる。
ここで、GSに情報を乗せない、そのゲームの中だけのアイテムを導入すべきかどうか、という話になる。
導入すべきかどうか、というか、ここで考えているシステムというのは複数のゲームがチェーンの情報を共有しているだけで別のゲーム世界の物理法則には基本的に介入できないので、ある特定のゲーム世界の中だけのアイテムがあるという状況をやめさせることはできない。
結局、チェーンエレメントの受け渡しは、役所に何か書類を提出してから申請許可が出されるのを待ったり、何らかの儀式を行ってから大いなる存在からの応答を待ったり、というようなイメージに近いものになる。
もちろん、GSに乗る情報 (チェーンエレメント) だけが存在し、そのゲームの中だけで通用するアイテムというのが一切存在しないゲームを作ることは可能だ。
ビットコインのようなシンプルなブロックチェーンでは、秘密鍵が流出したらもうそのアドレスは実質的に使えない。
そして、カスタマーサポートに電話して第三者によって勝手に変更された今のパスワードを無効にしてもらう、というようなこともできない。
GMによるチェーンエレメントの強制移転を可能にするなら、GMアドレスのキーが流出したら大問題だ。
流出した場合は、同じゲームを別のGMアドレスで立ち上げ直すしかない。
ユーザーに「新しいGMアドレスはこちらです」とアナウンスして、そのゲーム世界に入国してもらえれば、ゲームを再開すること自体は可能だ。
でもGMアドレスのキーが流出した直後に不正に移転されたチェーンエレメントを取り戻せるわけではない。
強制移転ができないGSだったり、強制移転を許可していない状態でないとゲームができない (つまりユーザー全員が強制移転ができない状態であると期待できる) という場合は、GMアドレスのキーだけが流出しても大した問題にはならない場合があることになる。
実際のところ、複数のGSにアクセスするゲームというのも作れることになる。
それぞれのGSが異なるチェーンであり異なるシステムという場合、ユーザーは2つ (またはそれ以上) の種族に分けられ、異なる種族間ではアイテムの受け渡しができない、というようなゲームを考えることができる。
また、異なるチェーン (履歴) だが同じシステムという場合、あるGSにおけるアドレスとキーのペアが他のGSでもそのまま使えるというような状況がありうることになる。この場合、1つのキャラクターが複数のGSの情報を参照して成り立っているというようなことも可能だ。
実証実験としてやるべきことを列挙して終わりにする。
・すべてのGSは放棄されるかもしれないことをあらかじめ宣言し、実際にGSを稼働
・ゲームを前提にしているものの、GSはシンプルなPoWのチェーンとして書く
・GS本体はC++以外で書くことを模索
・技術的詳細を知らなくても気軽に開始できるゲームを実際に立ち上げてみる
・チェーンの仕様やコードを公開し、チェーンの立ち上げメンバーが想像だにしなかったゲームが誕生するのを目撃
・複数のGSにアクセスするゲームを立ち上げてみる
・GMアドレスのキーをわざと流出させ、ユーザーに「引っ越し」を促す実験