プリミティブなオンチェーンゲームが実現するweb3時代における不完全情報ゲームについて「Dark Forest」の事例を元に考察

どうも、イーサリアムnavi運営のでりおてんちょーです。

今回は、Dark Forestという『zkSNARKを用いたオンチェーンゲーム』について紹介・解説していきたいと思います。

クリプトネイティブなプロジェクトがお好きな方であれば、「できる限りオンチェーンで構築されたゲームをプレイしたい」と思われたことが一度はあるのではないでしょうか?

実際、Ethereumチェーン上でもNFT/DeFi要素を絡めたゲームなどは多数展開されており、AnonymiceやWolf Game、The Cryptなどさまざまな試みが続けられている印象です。

しかし、一般的にEthereum(L1)のオンチェーンゲームの場合、「不完全情報ゲーム」の構築が難しいのではないか?という問いが生まれます。

全ての情報がパブリックブロックチェーン上に記録されており検証可能なので、例えば『隠し要素』をもたせるようなゲームの構築には不向きであり、それゆえに複雑なゲームが成り立たないといった課題があると筆者は理解しています。

しかし、今回ご紹介する「Dark Forest」では、zkSNARKを用いることでそういった課題を解決しながら、MMOゲームをオンチェーンで実現しようと奮闘しており、非常に注目が集まっています。

zkSNARKに関する詳しい技術的な解説は、Vitalik氏によるSome ways to use ZK-SNARKs for privacyなどをご参考ください。

ということで本記事では、「Dark Forest」というzkSNARKを用いたオンチェーンゲームについてご紹介することで、本プロジェクトの概要ならびに注目ポイント、プリミティブなオンチェーンゲームが実現するweb3時代における不完全情報ゲームなどを理解していただくことを目的とします。

でははじめに、この記事の構成について説明します。

STEP
Dark Forestとは

まずは、本記事の題材となっているオンチェーンゲーム「Dark Forest」についての概要、ならびに完全情報ゲーム ・不完全情報ゲーム・暗号版「戦場の霧」などのワードについての理解を深めていただきます。

STEP
実際にプレイしてみることで雰囲気を掴む

続いて、筆者が実際に「Dark Forest」をプレイしてみることで、話題となっているオンチェーンゲームの実態をご覧いただき、雰囲気を掴んでいただくことを目的とします。

STEP
「オンチェーンゲーム」の可能性について考察

最後に、オンチェーンゲームの発展可能性やCentralizedなゲームとの違い点などについて、筆者の私見を交えながら解説してまいります。

本記事が、「Dark Forest」の概要や注目ポイント、分散型オンチェーンゲームの可能性などについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。

※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。

Alpha Navigatorは、超アーリーなクリプトプロジェクトに特化して探知し、webサイト, discord, twitterで情報発信を行っています。

目次

Dark Forestとは

出典:zkga.me

概要

出典:Twitter

Dark Forestは、EthereumチェーンとGnosis(旧: xDai)チェーン上で構築される、分散型のRTS(リアルタイム戦略)オンチェーンゲームです。

本ゲームは「MMO宇宙征服ゲーム」であることを謳っており、劉慈欣(りゅう じきん)氏の代表作である『三体』シリーズの2冊目「The Dark Forest」という同名の小説に基づいたゲーム作品となっています。

MMO(Massively Multiplayer Online)ゲーム:
インターネットを介して、100~1,000人規模単位のプレイヤーが同時参加可能なオンラインゲームのこと

本ゲームの執筆時点までの開発状況ですが、現時点からおよそ2年前となる2020年8月7日にEthereumのRopstenテストネットワークで最初のベータ版 (v0.3) がリリースされ、現在(2022年9月半ば)ではv0.6.5まで開発が進んでいます。

出典:Dark Forest DAO: Games as mediums of technological experimentation and exploration

大まかなゲーム内容としては、プレイヤーは他のプレイヤーからの侵略を撃退し、スターマップ全体にランダムに散らばっている資源を戦略的に収集しながら、惑星間帝国をできるだけ遠くまで拡大していくというものです。

実際にどのようなゲームなのか雰囲気を掴んでいただくために後ほど筆者がアリーナ版をプレイしてまいりますが、本章ではDark Forestの革新性ならびに注目ポイントについて、ゲームの概要とともにお伝えしてまいります。

詳細は後述しますが、一般的な「オンチェーンゲーム」では全ての情報が全プレーヤーに対して公開されることになるため、隠し要素を持ち合わせたゲームが設計しづらく、ゲームのジャンルによっては課題ともなり得ます。

しかし、本ゲームではzkSNARKを使用するおかげで、『プレイヤーの動きは正確な詳細で検証可能でありつつも、他のプレイヤーからは隠されている状態』を実現することが可能になっています。

つまり、プレイヤー目線では宇宙の完全な状態が明かされていないため、プレイヤーはマップを探索しながら未知の世界に何があるかを突き止めていくという楽しみが提供されており、なおかつこれをオンチェーンで実現しているのです。

まずはこの点について、ピックアップして解説してまいりたいと思います。

完全情報ゲーム / 不完全情報ゲーム

先述の通り、本ゲームではzkSNARKが用いられており、それゆえにオンチェーンゲームで『プレイヤーの動きは正確な詳細で検証可能でありつつも、他のプレイヤーからは隠されている状態』を実現しています。

zkp(ゼロ知識証明)とは、Aさん(証明者)がBさん(検証者)に対して、与えられた情報が「真実である」ということ以外の情報を相手に与えずに、その情報が実際に「真実」であることを証明する手法のこと。

つまり、オンチェーンゲームでありながらも「秘匿情報」を持ち合わせているという意味で、『不完全情報ゲーム』と言い表されます。

『完全情報ゲーム』『不完全情報ゲーム』は聞き馴染みのないワードかもしれませんが、概念自体はシンプルです。

「完全情報ゲームとは何か?」を親しみのあるゲームで説明すると、例えばチェスや囲碁などといったゲームです。

これは、盤上の情報などが誰の視点からも全て公開されている(明かされている)ことから、『完全情報ゲーム』であると言えます。

同様に、CryptoKittiesも完全情報ゲームです。なぜなら、すべてのプレーヤーは誰がどのkittyを保有しているか、各kittyのtraits(特性)が何であるかを知っているからです。

要は、相手の状況が完全に見える状態のテーブルゲームや、Ethereumチェーン上で完結する従来のオンチェーンゲームといった類のゲーム全般を表すワードです。

一方で、Dark Forestは『不完全情報ゲーム』と呼ばれる類のオンチェーンゲームです。

『不完全情報ゲーム』を親しみのあるゲームで説明すると、麻雀やポーカーのように「隠し情報」があるようなゲームとなります。

麻雀の場合は相手の手牌・場の山牌が隠されていますし、ポーカーも相手の手札・場の山札に関する情報は隠されています。

そしてDark Forestの新奇性は、この『不完全情報ゲーム』を”オンチェーンで”実現しているところにあります。

検証可能で有効なアクションを公開情報として送信しながらも、各プレイヤーは非公開の状態を維持するため、次節で述べる「戦場の霧」のように『オンチェーンゲームの幅を広げられる』という利点があると考えられます。

暗号版「戦場の霧」(Cryptographic Fog of War)

一般的に、戦争もののゲームなどでは「戦場の霧」と呼ばれるシステムが存在し、『プレイヤー側の部隊から見える様になるまで、相手側の部隊・地形等の情報を表示しない方式』『作戦や戦闘シーンにおける不確定要素』を指す言葉として用いられています。

出典:dfwiki.net/wiki/Fog_of_war

Dark Forestの「戦場の霧」は、プレイヤーには見えないマップの部分です。 新しいDark Forestアカウントを作成すると、マップのごく一部 (開始エリア) のみがプレイヤーに公開され、宇宙の残りの部分は「戦場の霧」に覆われます。時間が経つにつれて、マップはCPUマイニングによって明らかになっていき、その速度はCPUのパワーに依存します。

出典:dfwiki.net/wiki/Fog_of_war

今までのいわゆるフルオンチェーンゲームであれば完全情報ゲームになるケースがほとんどで、「戦場の霧」などを搭載した実用的なMMOゲームの制作は難しいと考えられていました。

しかし、先述の通りDark ForestではzkSNARKを使用することで、共有マップ上の位置を非表示にして「戦争の霧」の作成を実現しています。

出典:blog.zkga.me/announcing-darkforest

プレイヤーは、自身が征服した惑星の座標をコアスマートコントラクトに対して送信せず、その代わりにハッシュが有効であるというゼロ知識証明と共に、(惑星座標をハッシュすることによって) 惑星の位置へのコミットメントを送信し、これにより惑星の場所がシークレットデータとして扱われます。

また同様に、プレーヤーが移動をおこなった場合、移動元の惑星のハッシュと移動先のハッシュを、それが「有効な」移動であると証明するゼロ知識証明と共に送信します。

ハッシュを反転させるのは難しいため、Dark Forestコントラクトを調べても、他のプレイヤーが実際にどこにいるかはわかりません。他のプレイヤーを見つける唯一の方法は、力ずくで探索するしかないのです。

その他|プラグインシステムの存在などの要素

出典:Twitter

Dark Foresの最も重要な目的は、『ユーザーがさまざまな方法で達成できる楽しみをもつこと』であると謳われています。

そのため、本ゲームプロジェクトにおけるゲームの競争目的は「できるだけ多くのポイントを取得すること」ですが、たとえ自身が競争力のあるプレイヤーではなくても、楽しむ方法がたくさん用意されています。

例えば、ゲームプレイには関心が薄いものの開発に興味があるという方は、プラグインを作成して提供するという楽しみ方が設けられていたり、コレクターの方はアーティファクトの収集をオンチェーンベースでおこなうことができます。

少しだけ深掘りすると、前者の「プラグインシステム」により、各ユーザーはコードの記述による『アクションの自動化』を実現できるため『botネットワークが構築可能となる』のです。

例えば、botを作成して自身で展開したり、マーケットに出して他の人が自分のbotを購入して使用するなどが可能です。

また、アクションの自動化によりDeFiスペースで起きているような『高いレベルのゲームシステム』が構築可能となるでしょう。

そして、このゲームシステムが公式から提供されるものではなく、ユーザーが創出するものであることもポイントです。

以上、本ゲームに関する全ての情報を本記事に記載することは難しいため一部に絞ってお伝えいたしましたが、その他にも以下のような特徴・ポイントなどがあるので、興味のある方は深掘りして調べてみてください。

  • 完全にオンチェーンにあることの利点
    • 非常にプログラムしやすく、クライアントには依存しない
    • プレイヤー集団やギルドのためのスクリプトを書いたり、サードパーティのクライアントやbotを作成したり、スマートコントラクトも設計可能
  • DAOの存在
    • プレイヤー集団やギルドが共同で1つのアカウントやスマートコントラクトアカウントを運営し、基本的には協力的な仕組みでリーダーボードでの最高得点を達成しようとする集団
  • スマートコントラクトのプレイヤーの存在
    • Dark Forestのコアコントラクトでは、EOAプレーヤー・スマートコントラクトプレーヤーにかかわらず同じ扱い
    • 新しい機能、新しいグローバルな機能を、EthereumベースのアーキテクチャとスマートコントラクトによってDark Forestに追加可能
  • その他技術的な要素の補足
    • ブラウザ・クライアントを介してシステムとやり取りするエンドユーザーの手に、ゼロ知識証明を届けることができる最初のアプリケーションの1つ
    • シークレットデータのためのマーケットプレイスを構築するプロジェクトも進行中

実際にプレイしてみることで雰囲気を掴む

本章では、Dark Forestが実際にどのようなゲームなのか雰囲気を掴んでいただくために、筆者がアリーナ版をプレイする様子をお届けいたします。(Dark Forest Arenaは、dfdaoが作成したDark Forestのフォーク版ゲームです)

ゲームの内容そのものに対して関心がないという方は、次章【「オンチェーンゲーム」の可能性について考察】まで読み飛ばしていただいて結構です。

出典:arena.dfdao.xyz/portal/map/0x568297442f966cc66f2be7ced683e35ea2ca1e68b4f26dd5424158244da40bcc

執筆時点におけるDark Forest Arenaは、上写真のようなコマンドライン調のUI/UXとなっています。

まずはアカウントを作成していくので、nを打ち込んでEnterキーを押します。

しばらく待機してウォレットの作成が完了したら、続いてはチュートリアルをやっていきたいので、yを打ち込んでEnterキーを押します。

すると上写真のような、惑星とその周りを周回する宇宙船が表示されました。

左上のガイド文を確認すると『真ん中の惑星をクリックしてください』と書かれているので、クリックします。

よくやった!これがあなたの最初の惑星です。ゲーム中、あなたは宇宙のあちこちで惑星を捕獲することになります。惑星枠内には、惑星の簡単な情報が表示されます。惑星枠内にカーソルを置くと、その惑星の統計情報が表示されます。(レベルやランクの下に表示されます。)

続いて、簡単な操作方法についての確認です。

簡潔ではありますが、以下に基本的な操作方法についてまとめておきます。

アクション操作方法
画面の拡大・縮小マウスのホイールでスクロール
宇宙を移動マウスをドラッグ(何もないところをクリックしながら)
選択画面から戻るtキー

また、概要でも触れた通り、本ゲームでは他の惑星を占領していくことで自分の帝国を拡大することができます。

自分が所有する惑星は白いリングで囲まれており、捕獲していない惑星は赤いリングで囲まれています。

近くに小惑星帯がある場合には、自分の惑星のエネルギーを使って、その小惑星帯を移動して占領することができます。

自分の惑星をクリックしてqを押したのち自分の陣地内の別の小惑星帯をクリックすることで、エネルギーや宇宙船をそこに飛ばすことができます。

これで自分の小惑星帯から惑星に対してシルバーを送ることができたので、続いては惑星をアップグレードしてみます。

惑星を選択して、Upgradeボタンをクリックします。

すると、シルバーの量が625から500に減少し、黄色の環(わ)が出現して惑星のUpgradeが反映されました。

このように、最初のうちは自分の陣地内にある資源を獲得しながら惑星をアップグレードしていく作業に徹すると良いでしょう。

出典:Twitter

今回は導入部分のみ一部に絞って解説しましたが、このようにプレイヤーはスターマップ全体にランダムに散らばっている資源を戦略的に収集しながら、惑星帝国をできるだけ遠くまで拡大していき、時には他のプレイヤーからの侵略を撃退していくというのが、大まかかつ基本的な本ゲームの概要となります。

実際にプレイしてみないと感覚がつかめない部分も多々あるため、興味を持たれた方はぜひ試してみてください。

「オンチェーンゲーム」の可能性について考察

出典:Dark Forest v0.6 Round 4 Wrapup

さて冒頭の概要で述べた通り、Dark Forestは完全にブロックチェーン上にある「オンチェーンゲーム」として最初にローンチされたゲームの1つです。

執筆時点において「オンチェーンゲーム」の数は、いわゆる一般的なPlay-to-Earnゲームなどと比較すると明らかに少ない印象ですが、Starknetエコシステム周りで活発にオンチェーンゲーム開発がおこなわれていたり、グローバルベースで着実に事例が増えつつあるという所感です。

出典:Twitter

では、オンチェーンゲームにするとどのようなメリットがあるのかについて、私見を交えて触れていきたいと思います。

例えばCentralizedなゲーム間では、各ゲームにおけるデータ記録サーバーなどがサイロ構造となっているため、相互運用・相互作用の実現が非常に難しいと考えられます。

企業間でパートナーシップを結びアセットを共有し合うことは可能かもしれませんが、それは管理者の一存で全ての運命が決められていくものであり、敢えてありふれた言い回しをするならば非常に「web2的な」アプローチにしかなり得ません。

「web3ならでは」を追求したいのであれば、やはりデータの公開/共有から生まれるパーミッションレス・ネットワークエフェクト・コンポーザビリティなどの要素を取り入れた方が望ましいでしょう。

しかし冒頭からお伝えしている通り、この「web3ならでは」を追求したゲームは今までにも様々な試みがなされてきましたが、データを公開/共有することの弊害として、『オンチェーンで隠し要素を取り入れたゲームをつくることが非常に難しかった』という点があります。

例えば「じゃんけん」のような単純な遊びをオンチェーンゲームとして実現する場合、先にコントラクトの関数を呼び出してトランザクション生成をおこなった方が先出しとなって情報公開されるため、真剣勝負のじゃんけんゲームが成り立たなくなってしまいます。

このような課題に対してDark Forestでは、zkSNARKを用いることにより解決を図っているため、オンチェーンゲームでありながらも「秘匿情報」を持ち合わせた『不完全情報ゲーム』を実現しており、これが革新的な一つ目のポイントであると理解しています。

出典:Twitter
derio

また余談ですが、実は筆者は以前Unityというゲームエンジンを用いて、ピンボールを作成していたことがあります。

Unityを触ったことがある方はお分かりかと思いますが、Unityではゲーム内の物理法則などを自由自在に、ゲーム開発者が操作ならびに定義することが可能です。

例えば上のピンボールの場合では、「球の落ちてくる速度(重力)」「球が触れる地面の摩擦係数」「球が当たる壁や各オブジェクトの反発係数」などを操作することで、『開発者の独断で』ゲーム全体に対して変更を加えることができるのです。

これを踏まえてDark Forestのような分散型オンチェーンゲームを考えてみると、例えば宇宙の状態や惑星の軌道など、ありとあらゆる係数に対して『ユーザーの意思で』全員が主体となって変更を加えることが可能になります。

つまり、自分の惑星に加えたはずの変更が、宇宙全体に対して変更を加え相互作用が生まれるわけですが、ここに一つオンチェーンゲームの醍醐味・おもしろさのようなものがあるのではないか考えています。

それって既存のCentralizedなゲームでも実現できるのでは?

と思われる方もいらっしゃるかもしれませんが、それは確かにその通りです。

しかし、全てをオンチェーンに詰め込んでいるからこそ実現できる面白体験がそこには隠されており、ロマンがあるポイントであると思います。

例えば、先のピンボールで実装例を考えてみると、以下などが考えられます。

  • 「ピンボールで10,000点以上を獲得したユーザーにNFTを付与する」というクエストがRabbitholeで実装される
  • ピンボールで50,000点以上を獲得したユーザーはPhiでピンボールオブジェクトを獲得できる

また逆方向のパターンとしては、『DeFiでのアクションがオンチェーンゲームに何らかの影響を与える』といった相互作用事例も考えられるでしょう。

つまり、「ゲームの枠を飛び越えて、どれだけ多くのプロダクトと結びついていくか」が、今後オンチェーンゲームの肝になってくるのではないでしょうか。

これはDeFiでよく見られるマネーレゴのような現象をゲームで体現した際の例ですが、このように『オンチェーンにある”ゲーム以外のプロダクト”との繋ぎ合わせ』も実現可能となることで、既存のゲームとは一味違った新しい体験価値が生まれるのではないかと考えています。

このほかにも、コアゲームシステムが完全にオンチェーンにあり、デフォルトで完全にオープンかつ不変、さらに検証可能となっていることもオンチェーンゲームならではの重要ポイントですが、本章が長くなってしまっためまた別の機会があれば考察してまいります。


Centralizedなゲームサービスでは実現できないことを、Dark Forestを始めとするオンチェーンゲームでは実現しようとしており、そこで得られた知見をオンチェーンゲーム以外のプロダクトにも応用していく。

こういった観点からも、Dark Forestをはじめとする今後のオンチェーンゲームの動向には、引き続き注目していきたいと思います。

参考:
Introducing Dark Forest Lobbies
Announcing Dark Forest
Dark Forest DAO: Games as mediums of technological experimentation and exploration
Six Moonshot ZK Applications
Welcome to the Dark Forest Wiki!
Fog of war

まとめ

イーサリアムnaviの「今まで」と「これから」

今回は、Dark Forestという『zkSNARKを用いたオンチェーンゲーム』について紹介・解説しました。

本記事が、「Dark Forest」の概要や注目ポイント、分散型オンチェーンゲームの可能性などについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。

また励みになりますので、参考になったという方はぜひTwitterでのシェア・コメントなどしていただけると嬉しいです。

イーサリアムnaviを運営するSTILL合同会社では、以下などに関するお問い合わせを受け付けております。

  • 広告掲載
  • リサーチ代行業務
  • アドバイザー業務
  • その他(ご依頼・ご提案・ご相談など)

まずはお気軽に、こちらからご連絡ください。

励みになるので、よかったらSNSなどでシェアしてください!
  • URLをコピーしました!
  • URLをコピーしました!
目次