# 全链游戏黑暗森林：不完全信息博弈，谈谈 ZK 在游戏中的应用潜力

By [SnapFingers DAO](https://paragraph.com/@snapfingers-dao) · 2023-08-07

---

前言
--

黑山 EDCON 大会上，V 神表示未来 10 年 zk-SNARK 将与区块链一样重要。全链游戏黑暗森林就利用了 zkSNARKs 这项技术，并获得 V 神评价：“真的很有趣。”

Dark Forest（黑暗森林）是一款 MMO “密码学战争迷雾”链游。战争迷雾是游戏玩家司空见惯的一种机制，《星际争霸》、《魔兽争霸3》都采用了这种设计，其信息隐藏是通过“战争迷雾”来实现的——游戏地图上的区域会被遮蔽，直至玩家发现为止。这种环境、双方战术不可预测性的机制也被称为不完全信息游戏，几乎所有流行的 MMO 游戏都是不完全信息游戏，它允许玩家探索更丰富、更具戏剧性的策略空间。

在区块链上，数据是完全开放和透明的，无法实现不完全信息机制。Dark Forest 利用零知识证明 zkSNARKs 技术让玩家公开提交可验证的有效动作的同时保持隐私状态，从而实现了不完全信息。

下面将介绍全链游戏黑暗森林的项目概况、有趣的设计，并透过这款游戏看到Web3 世界如何实现全链不完全信息博弈游戏。文章也将一一解释“全链游戏”，“信息博弈”，“加密版战争迷雾”等概念，破除术语壁垒。希望这篇文章对那些想要了解黑暗森林的概要、探索全链游戏乐趣的人有一些帮助。

_\*本文仅供信息分享并不是投资建议，所以不建议购买特定的 Token 或 NFT，请DYOR。_

**01 游戏背景**
-----------

黑暗森林是一款基于以太坊和 Gnosis（以前称为 xDai）链构建的去中心化 RTS（实时策略）全链游戏。该游戏是一款 MMO 太空征服游戏，改编自刘慈欣的代表作三体系列第二部同名小说黑暗森林。游戏主要内容有击退其他玩家的入侵者、收集随机散布在星图上的资源，同时还要尽可能扩大你的星际帝国。

_\* MMO 是大型多人在线游戏的简称，是指可以有 100 到 1000 名玩家通过互联网同时参与的在线游戏。_

Dark Forest 想法最早的提出者及创始人是\*@Gubsheep\*，他正巧参加完一个关于零知识证明的会议，便被刘慈欣所描绘的黑暗森林理论所折服，于是便有了一个利用零知识证明，创造一个「加密世界中的黑暗森林」的想法。在最开始这只是一个非常实验性甚至带有些玩票性质的想法，毕竟游戏作为一个高频交互的应用，在当时乃至现在的区块链环境中都面临着巨大的挑战，更别说将刚刚萌芽的零知识证明应用到如此复杂的系统当中，谁也没曾想 Dark Forest 不仅实现了这个概念，甚至成为了区块链历史上的一个里程碑。

![早期黑暗森林团队的主要成员](https://storage.googleapis.com/papyrus_images/773f861dffbea296c8dcc5c3723a0f37b024f36150c6b831c22454ec0322da71.png)

早期黑暗森林团队的主要成员

早期黑暗森林团队的主要成员由 Gubsheep、Alan、Ivan 和 Moe 构成。团队在2020 年 8 月 7 日星期五在以太坊 Ropsten 测试网络上发布了该游戏的第一个测试版（Dark Forest v0.3）。比赛获胜者将获得总计 1024 DAI。

**02 简易教程**
-----------

**用户游玩需要准备什么？**

1、官方游戏网址：[https://zkga.me/](https://zkga.me/)

**2、网站初始设置**

点击锁图标，进入网站设置，将“弹出式窗口和重定向”“不安全的内容”两项设置由屏蔽改为允许；

*   弹出式窗口和重定向：初次登录游戏会以弹窗的方式请求签名交易；
    
*   不安全的内容：使用远程开图时需要启用此选项。
    

![](https://storage.googleapis.com/papyrus_images/8e997cf3aaab9a26350768deba63eb00a1053b91a577e0ed6c4e5372d4e914a6.png)

**  
3、准备xdai**

游戏运行在 xDai 链上，账户与以太坊账户完全兼容，游戏中每次操作需要消耗 xDai 作为 gas 费，也可以使用 xDAI 购买行星的 HAT 或玩家在市场中出售的神器。在官方以往举办的每轮游戏时，会向验证密钥的地址发送 0.05 xDai 用于游戏前期的启动，社区轮则有可能不会分发 xDai，无论如何，你都应该先为你的账户准备定量的 xDai。

xDai 的获取途径可分为两种：

*   中心化交易所购买：AscendEX
    
*   跨链桥兑换：例如：Li.Finance，Hop，xPollinate-V2，xDai Bridge...
    

**4、准备邀请码**

通常官方会在游戏前向上一轮合格的参与者通过邮件分发几个邀请码，你可以向朋友或是在社区的 Discord 中索要。但你应该在游戏前在官网订阅邮件列表，这样你也有机会收到密钥。而社区轮获取密钥的途径你应该提前关注指定的社区。

![](https://storage.googleapis.com/papyrus_images/8e7498a2898fa3783d1cf5f8f3fa993d5ac433ab345a4e1902b4beb31666cbc0.png)

**03 “迷雾森林”机制**
---------------

从最初的即时战略《沙丘2》开始，战争迷雾的概念开始被引入和正式提出。魔兽争霸的玩家对战斗迷雾的系统一定不陌生，在玩家的部队探索之前不会显示对手的部队和地形等信息，这些都是战斗场景中的不确定因素。

《命令与征服》之后，游戏中的战争迷雾逐渐被普遍分割定义为地图层和单位层两种，地图层所包括的地形，由于很难改变或者根本不可能变化，在单位移开后仍然能保证其情报有效性，而单位层主要指该区域的活动单位之情况，由于不可能确保对方仍然停留，在我方情报源消失（如侦查单位移动开）之后，即会再次被遮盖。对两种层次的迷雾约定俗成，使用不同程度的黑色来区分，地图层的黑色更深，而地图层打开之后，遗留下的单位层迷雾相对更淡。以上这种战争迷雾形式相对更经典和受到普遍采用。这一经典模式也被绝大多数后来的即时策略游戏继承，后来发展到 RTS 游戏、回合策略游戏也运用了战争迷雾，可以看出这种设计已经成为 4x 游戏概念中必不可少的元素。

![](https://storage.googleapis.com/papyrus_images/27578dc8e656580e95609f470f97fe0b88e08f9bf2288f83463a4770a61dd536.png)

黑暗森林的战争迷雾是地图上玩家看不见的部分。**创建新的账号时，只有一小部分起始区域的地图展示给玩家，而宇宙的其余部分会被战争迷雾覆盖**。星图将通过 CPU 计算来探索扩大，探索的速度取决于 CPU 的性能。星图探索后，这部分信息将会被持续观察到，不像传统web2游戏中的战争迷雾那样，在侦察单位离开后又会重新回到迷雾状态，所以星图探索的速度，直接决定了可以获取情报量的多寡。情报量越多，做出的决策也就越精确。

回到黑暗森林这款游戏。Web2 游戏的战争迷雾依靠视野、地形、探索、天气等等综合起来，作为一款 Web3的链上游戏，零知识证明恰好能巧妙的搭建一个去中心化的加密黑暗森林。这种运用数字计算来探索宇宙、广播敌人坐标的玩法是以往游戏不曾出现的。

全链游戏与普通链游最大区别在于**所有游戏数据都在链上**，结合区块链数据公开透明的特点，使得大多数所谓的全链游戏都是完全信息化的游戏。也因此普遍观点认为，采用战争迷雾要素很难创造出一款可玩性高的全链 MMO 游戏。

黑暗森林通过使用 zkSNARK 技术实现玩家的行为可以准确进行验证，但对其他玩家隐藏的状态。从玩家视角看，**宇宙的完整状态并没有完全展现出来，玩家可以在链上实现享受探索地图、发现未知世界的乐趣**。甚至可以利用战争迷雾原理，同时进行多线发展，在星图的不同区域进行星球的扩张。当其他玩家探索到你并且有能力发起攻击时，你不会因为资源过于集中导致一波团灭，还可以在其他地方重整旗鼓。

**04 用 ZK 技术实现不完全信息博弈**
-----------------------

  
Zkp（零知识证明）既能充分证明自己是某种权益的合法拥有者，又不向验证者展示具体信息，zkSNARK 是 Zkp 实现方法中的一种。黑暗森林使用 zkSNARK 实现了玩家的动作可以被精确细节验证，但对其他玩家隐藏。因此虽然它是全链游戏，但是它具有机密信息，所以黑暗森林可以被称为不完全信息博弈游戏。

完全信息博弈和不完全信息博弈听起来可能不太熟悉，但概念本身很简单。象棋或围棋这样的游戏可以说是一个完全信息博弈游戏，因为从任何人的角度来看，棋盘上的所有信息都是向所有人公开的。StepN 也是一款全信息游戏。因为每个玩家都知道谁拥有哪双鞋以及每双鞋的特征是什么。

黑暗森林被称为不完全信息博弈游戏的全链游戏。如果用我们熟悉的游戏来形容不完全信息游戏，那就是像麻将、扑克这样的带有隐藏信息的游戏。就麻将而言，对手的手牌和牌组是隐藏的，而在扑克中，对手的手牌和牌组的信息是隐藏的。而黑暗森林的创新之处就在于它把这种不完全信息博弈游戏实现了上链。在将可验证且有效的行为作为公开信息发送的同时，每个玩家都保持着私有状态。

![黑暗森林使用 zkSNARK 隐藏共享地图上的位置并制造战争迷雾](https://storage.googleapis.com/papyrus_images/d5df3acec6ae4180eb6f35ea91e00b2ef6ea4afb2dba04172b5b42e610eb7849.png)

黑暗森林使用 zkSNARK 隐藏共享地图上的位置并制造战争迷雾

玩家无需将征服的行星坐标发送到智能合约，只需要 claim 行星位置（通过对行星坐标进行哈希处理）以及哈希有效的**零知识证明**，从而保证行星位置的非公开性。

当玩家进行移动时，他们会发送他们离开的星球哈希值和目的地的哈希值，以及证明这是有效行为的零知识证明。

![](https://storage.googleapis.com/papyrus_images/35e971462bd789117795080e8dddabac4ba3efccd7ece9381b701281284c6fe4.png)

反推哈希值很困难，所以查阅黑暗森林合约并不能告诉你其他玩家的真实位置。你只能通过星图的探索找到其他玩家。在探索星图时由于无法提前预知目的地的信息，所以玩家的决策仅在当下情况下是最优解，每当探索出新的星球或者神器时，玩家就需要根基当下所有信息重新进行分析和决策，是否能够攻击对方星球或者获取这个神器的成本有多大？等这类的问题。无时无刻都在根据当时的情况选择最优解，这才是不完全信息博弈的精髓所在。

**05 开放的插件系统提高可玩性**
-------------------

黑暗森林的首要目的是让用户能够通过多种方式获得乐趣。游戏的竞技目标是获得尽可能多的分数，即使你自己不是竞技玩家，也有很多其他方法可以获得乐趣。插件是黑暗森林游戏中分厂重要的一部分，作为一个先锋派游戏，它同时也是各种功能的试验场。目前官方审核收录到插件库的开源插件已达 55 款。主要分为三大类：

1.  可视化：游戏的原生界面比较的简介，玩家可以根据自己需求进行各种功能的开发，里比如数据的可视化（热力图、小地图、能计算星球间传输时间的地图导出工具等）、特定目标的高亮或标记（抱团必备插件友善标识和高亮好友，高亮星球buff等等。
    
2.  交易市场：主要为玩家撮合不同资源的交换，给玩家增加了新的游戏动机，包括但不限于：神器交易市场，类似于其他游戏中的装备交易系统、坐标悬赏市场、星球悬赏市场等。
    
3.  自动化：这类插件使用的频率通常更高，主要通过脚本帮助玩家简化原本复杂繁琐的操作，提升执行效率：资源相关（神器的捕获和管理两件套 Hunt Artifacts、Artifactory、银矿的一键分配 Distribute Silver、一键汇集资源 Centralize Resources 等等）、战斗相关（一键捕获周边星球 Crawl Planets、自动重复攻击 Repeat Attack、一键协同攻击 Simultanous Attack、甚至能直接针对玩家发起战争的 Wage War 等等）
    

**结语**
------

在黑暗森林中弱化了 Fi 要素，更加注重了游戏性，由此而构建出了丰富的游戏体验和多样性的玩法；同时因为也做到了对新功能的实验。排除破坏游戏平衡的 bug 之外，欺诈，贿赂，合作，自动化都是被允许的，因为你在“黑暗森林”当中。

新颖的游戏体验，让黑暗森林成为链游中的黑马，开放的公会系统让它更好满足去中心化的需求。

* * *

_🎉 我们很高兴地宣布，Snapfingers DAO 成为 9 月 13 日至 14 日  @token2049 Singapore 的官方社区合作伙伴 👬_

_🎙️ TOKEN2049 是在新加坡和伦敦举办的年度顶级 Web3 活动。_

_✈️ 如果您计划参加 TOKEN2049，与行业领导者进行深入探讨和交流。_

_🎫 立即注册并使用我们的促销链接获得 10% 的折扣 ⬇️⬇️⬇️_

[_https://www.payment.token2049.com?promo=SNAPFINGERS_](https://www.payment.token2049.com?promo=SNAPFINGERS)

### **关于 SnapfingersDAO**

SnapFingers DAO 是一个专注于区块链前沿赛道研究的组织，致力于通过激励模型吸引来自不同领域的投研人士和社区贡献者，形成从研究到传播的影响力闭环，最终实现在区块链的世界里打个响指的目标愿景。

### **相关链接**

Twitter @SnapFingersDAO

Discord ：[https://discord.gg/snapfingersdao](https://discord.gg/snapfingersdao)

公众号：响指研究所

---

*Originally published on [SnapFingers DAO](https://paragraph.com/@snapfingers-dao/zk)*
