DarkForest是一款MMO游戏。我比较感兴趣的是这款游戏使用了零知识证明技术。零知识证明技术应用越来越丰富:隐私,跨链,zkRollup,游戏等等。本文介绍DarkForest的基本策略,如何结合零知识证明技术。在文章的最后,介绍最新版本v0.6Round3的游戏体验和截图。
目前DarkForest版本已经迭代到0.6。但是,github上的最新的代码并没有公开电路的部分。为了方便理解它如何采用零知识证明技术,可以查看github公布的0.3的完整代码:
https://github.com/darkforest-eth/darkforest-v0.3.git
游戏策略
看看智能合约的源代码,可以对DarkForest的游戏策略有一定的了解。智能合约的源代码在目录:
darkforest-v0.3/eth/contracts
整个游戏宇宙由“星球”组成:
Darwinia Network赢得Polkadot第21次插槽竞拍:7月12日消息,据Polkadot报道,Darwinia Network以锁定9900 DOT赢得Polkadot第21次插槽竞拍,获得Polkadot Slot #22租赁使用期,接入Polkadot中继链。[2022/7/12 2:07:04]
一个星球有两种“资源”:人口和矿。人口和矿慢慢增长,但是有上限。有矿可以升级。DarkForestInitialize.sol定义了几种星球类型。
链游Dark Forest v0.6版本将于2月18日开启最后一轮:2月14日,链游DarkForest宣布v0.6版本的第五轮也是该版本最后一轮游戏将于2月18日开启,至2月28日结束。新一轮游戏的主题是:JunkWars。
新一轮游戏将引入Spaceships道具,作为星球探索的辅助道具,Spaceships可在任何星球着陆,而不受星球所有权影响,同时改变其着陆星球的特定属性。此外,与此前相似的是前63名玩家将获得Valhalla的DarkForestNFT。DarkForest将向上一轮成功得分的玩家发送白名单密钥,还会向部分候补名单内的用户发送密钥。[2022/2/14 9:50:17]
从一个星球能将资源移动到另外一个星球。星球的移动存在速度。移动的同时可以指明携带的资源。当到达时,如果携带的人员超过该星球的人口,就可以攻占星球。攻占逻辑可以查看darkforest-v0.3/eth/contracts/DarkForestLazyUpdate.sol的applyArrival函数:
以太坊扩容方案Nahmii完成800万美元融资,DARMA Partners领投:9月28日消息,以太坊扩容方案Nahmii完成800万美元融资,DARMA Partners领投,Aligned Capital、CMT Digital、Delta Fund、Fourth Revolution Capital和Quantstamp等参投。此外,Nahmii宣布推出面向机构规模的第2层解决方案。(Business Wire)[2021/9/29 17:13:37]
如果是到达自己的星球,人口和银矿直接累加。如果是其他人的星球,如果作战人数不够,到达星球的人口相应减少。如果作战人数大于到达星球人口,攻占星球,并更新人口。
达尔文网络(Darwinia)已经连接到波卡中继链Rococo:推特信息显示,达尔文网络(Darwinia)已于今日连接到波卡中继链Rococo。据悉,Darwinia是波卡生态中建立于Substrate框架之上的一种跨链桥接协议,专注于去中心化跨链代币互换、交易和市场,涉及领域主要包括DeFi、游戏、NFT、DEX等。(哔哔News)[2020/8/26]
星球的移动和攻占是整个游戏的策略重点。既然是移动攻击,每个星球有一个坐标。为了增加游戏的策略体验,星球的具体坐标并不公开。有点像在浩瀚的宇宙中,只能观察周围有限空间寻找其他星球。为了在不公开星球坐标的情况,还能证明星球的移动正确,引入了零知识证明技术。
零知识证明应用
asDarkForest游戏V0.3利用零知识证明技术证明了两个和星球位置有关的操作:1/星球初始化(init)2/星球移动(move)。电路逻辑在darkforest-v0.3/circuits/中。电路采用circom开发。电路的证明采用Groth16协议。两个电路相对都比较简单:
声音 | 桥水基金创始人Dario:比特币的高波动性使其不适合积累财富:对冲基金桥水基金(Bridgewater Associates LP)创始人Ray Dario在评论比特币时指出,比特币没有履行其货币职能,尤其是比特币的高波动性使其不适合积累财富,投资者应该远离它。Dario表示,多元化是规避风险的正确手段,投资者应该将部分投资转化为黄金。(Coinpost)[2020/1/22]
init电路
init电路用来确保星球创建的时候,坐标在范围内。x和y坐标都不超过2^32次方。
在半径为r的圆形范围内:
mimc(x,y)的hash计算正确。x/y是privateinput,hash值是publicinput。
move电路
在星球移动时,检查移动的范围不能超过半径为distMax的圆:
确定原始坐标的hash值以及移动后的hash值,显然具体坐标是privateinput,hash值是publicinput。
随着DarkForest版本的迭代,更新了不少新的玩法。和位置有关的证明的电路也变多了,但是基本逻辑类似,感兴趣的小伙伴可以自行查看。
体验v0.6Round3
体验了一下最新的游戏版本:v0.6Round3。目前参加游戏需要邀请码。
进入游戏的主界面如上,由4部分组成:1/最左边是工具栏,玩家可以查看自己的星球和装备。游戏支持各种插件。2/最右边是交易记录3/中间是整个宇宙星球分布图。从某个玩家的视角看,整个宇宙由黑色背景和雾色组成。黑色背景是已经开拓的宇宙世界。雾色区域是没有开拓的宇宙世界。在开拓的宇宙世界中有各种等级的星球。4/底部是开拓扫描控制栏,可以控制扫描是否开始,从什么坐标扫描。注意在宇宙分布图中的靶向图标,这个图标就是指明正在扫描的宇宙空间。进入游戏的时候,向导程序会引导熟悉基本的功能按钮。默认情况下,扫描程序不停的扫描未知宇宙空间。
点击某个星球,可以查看该星球的具体参数。下图是攻占的一个星球的参数信息:
红色:当前人口数/人口上限。蓝色:当前的矿数/矿上限。粉红色:防御率/移动速度/攻击范围。咖啡色:装备。“send”按钮可以发送人口和矿到其他星球上。“send”功能就是对应电路中的move操作。在move的移动过程中,两个星球中间有白色连线。白色连线上会显示移动的进度。
各种星球的属性不同,有些可以产矿,有些有装备,有些能升级,有些不能升级等等。
每个星球从level1开始。Round3的目标是攻占并拥有level3以上的星球。离原点越近的星球,分数越高者排名越高。在原点还设置了level9的星球,攻占了这个星球的玩家为第一名。
总结:
DarkForest是一款实时策略游戏。星球的移动和攻占是整个游戏的策略重点。为了在不公开星球坐标的情况,还能证明星球的移动正确,引入了零知识证明技术。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。