Dark Forest :採用零知識證明技術的遊戲

2021-08-17 00:08:29

Dark Forest是一款MMO(大型多人在线遊戲類型)遊戲。我比較感興趣的是這款遊戲使用了零知識證明技術。零知識證明技術應用越來越豐富:隱私,跨鏈,zk Rollup,遊戲等等。本文介紹Dark Forest的基本策略,如何結合零知識證明技術。在文章的最後,介紹最新版本v0.6 Round 3的遊戲體驗和截圖。

目前Dark Forest版本已經迭代到0.6。但是,github上的最新的代碼並沒有公开電路的部分。為了方便理解它如何採用零知識證明技術,可以查看github公布的0.3的完整代碼:

https://github.com/darkforest-eth/darkforest-v0.3.git

遊戲策略

看看智能合約的源代碼,可以對Dark Forest的遊戲策略有一定的了解。智能合約的源代碼在目錄:

darkforest-v0.3/eth/contracts

整個遊戲宇宙由“星球”(Planet)組成:

Dark Forest :採用零知識證明技術的遊戲

一個星球有兩種“資源”:人口(population)和礦(目前支持silver-銀)。人口和礦慢慢增長,但是有上限。有礦可以升級。DarkForestInitialize.sol定義了幾種星球類型。

Dark Forest :採用零知識證明技術的遊戲

從一個星球能將資源移動到另外一個星球。星球的移動存在速度。移動的同時可以指明攜帶的資源。當到達時,如果攜帶的人員超過該星球的人口,就可以攻佔星球。攻佔邏輯可以查看darkforest-v0.3/eth/contracts/DarkForestLazyUpdate.sol的applyArrival函數(當移動完成後觸發):

Dark Forest :採用零知識證明技術的遊戲

如果是到達自己的星球,人口和銀礦直接累加。如果是其他人的星球,如果作战人數不夠(小於星球人口),到達星球的人口相應減少。如果作战人數大於到達星球人口,攻佔星球,並更新人口(作战犧牲)。

星球的移動和攻佔是整個遊戲的策略重點。既然是移動攻擊,每個星球有一個坐標。為了增加遊戲的策略體驗,星球的具體坐標並不公开。有點像在浩瀚的宇宙中,只能觀察(枚舉)周圍有限空間(hash碰撞)尋找其他星球。為了在不公开星球坐標的情況,還能證明星球的移動正確,引入了零知識證明技術。

零知識證明應用

asDark Forest遊戲V0.3利用零知識證明技術證明了兩個和星球位置有關的操作:1/ 星球初始化(init) 2/ 星球移動(move)。電路邏輯在darkforest-v0.3/circuits/中。電路採用circom开發。電路的證明採用Groth16協議。兩個電路相對都比較簡單:

init電路

init電路用來確保星球創建的時候,坐標在範圍內。x和y坐標都不超過2^32次方。

Dark Forest :採用零知識證明技術的遊戲

在半徑為r的圓形範圍內:

Dark Forest :採用零知識證明技術的遊戲

mimc(x,y) 的hash計算正確。x/y是private input,hash值是public input。

Dark Forest :採用零知識證明技術的遊戲

move電路

在星球移動時,檢查移動的範圍不能超過半徑為distMax的圓:

Dark Forest :採用零知識證明技術的遊戲

確定原始坐標的hash值以及移動後的hash值,顯然具體坐標是private input,hash值是public input。

Dark Forest :採用零知識證明技術的遊戲

隨着Dark Forest版本的迭代,更新了不少新的玩法。和位置有關的證明的電路也變多了,但是基本邏輯類似,感興趣的小夥伴可以自行查看。

體驗 v0.6 Round 3

體驗了一下最新的遊戲版本:v0.6 Round 3。目前參加遊戲需要邀請碼。

Dark Forest :採用零知識證明技術的遊戲

進入遊戲的主界面如上,由4部分組成:1/ 最左邊是工具欄,玩家可以查看自己的星球(Planets)和裝備(Artifacts)。遊戲支持各種插件(plugins)。2/ 最右邊是交易記錄 3/ 中間是整個宇宙星球分布圖。從某個玩家的視角看,整個宇宙由黑色背景和霧色組成。黑色背景是已經开拓的宇宙世界。霧色區域是沒有开拓的宇宙世界。在开拓的宇宙世界中有各種等級的星球。4/ 底部是开拓掃描控制欄,可以控制掃描是否开始,從什么坐標掃描。注意在宇宙分布圖中的靶向圖標,這個圖標就是指明正在掃描的宇宙空間。進入遊戲的時候,向導程序會引導熟悉基本的功能按鈕。默認情況下,掃描程序不停的掃描未知宇宙空間。

點擊某個星球,可以查看該星球的具體參數。下圖是攻佔的一個星球的參數信息:

Dark Forest :採用零知識證明技術的遊戲

紅色:當前人口數/人口上限。藍色:當前的礦數/礦上限。粉紅色:防御率(百分制)/ 移動速度 / 攻擊範圍。咖啡色:裝備。“send”按鈕可以發送人口和礦到其他星球上。“send”功能就是對應電路中的move操作。在move的移動過程中,兩個星球中間有白色連线。白色連线上會顯示移動的進度。

各種星球的屬性不同,有些可以產礦,有些有裝備,有些能升級,有些不能升級等等。

每個星球從level 1开始。Round 3的目標是攻佔並擁有level 3以上的星球。離原點越近的星球,分數越高者排名越高。在原點還設置了level 9的星球,攻佔了這個星球的玩家為第一名。

總結:

Dark Forest是一款實時策略遊戲。星球的移動和攻佔是整個遊戲的策略重點。為了在不公开星球坐標的情況,還能證明星球的移動正確,引入了零知識證明技術。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

Uniswap公告Unichain主網明年初上線!首測路線圖兩功能,UNI強彈17%

去 中心化交易所(DEX)龍頭 Uniswap 於 10 月宣佈推出專為 DeFi 設計的 Lay...

DaFi Weaver
7 17小時前

下周必關注|LayerZero決定是否开啓“費用开關”;Aligned空投注冊結束(12.23-12.29)

下周重點預告 12 月 23 日 Aligned 將向 891322 個地址空投 26% 的 AL...

星球日報
8 17小時前

一周代幣解鎖:下周無高比例或金額重大的代幣解鎖

下周,共有 8 個項目解鎖,其中沒有重大解鎖,MOCA 解鎖流通量的 2.9% 。 Metars...

星球日報
7 17小時前

空投周報 | OpenSea基金會官推上线;Azuki、Doodles疑似即將發幣(12.16-12.22)

@OdailyChina @web3_golem Odaily星球日報盤點了 12 月 16 日至...

星球日報
8 17小時前

區塊鏈的達摩克裏斯之劍:一文讀懂谷歌新量子芯片對區塊鏈的影響

前言:谷歌推出了量子芯片 Willow 可以在 5 分鐘之內便完成了當今最快的超級計算機都需要 1...

星球日報
7 17小時前

資金費率的演變:從2021年黃金時代,到2024-2025年套利復興

資金費率起源 資金費率起源於加密貨幣衍生品市場,特別是從永續期貨合約中發展而來。它作為一種機制,用...

Block Beats
8 1天前