ZKP+Fully On-Chain Game:公平競技的基石

SocialFi的仿盤一再而出,全鏈遊戲在ChinaJoy之間的風頭都被蓋過了。這段時間我一直在思考未來Web3 Game的潛在路徑,最有前景的先放在前面:ZKP(零知識證明)+Fully On-Chain Games(全鏈遊戲)。

我從八月初就體驗了@Zypher_Games里基於ZKP(零知識證明)的全鏈遊戲zBingo,目前2048和德撲還在研製中,這對於公平競技是個非常重要的轉折點。

先說結論:ZKP未來一定會在①帶有隨機屬性的策略遊戲和②不完全資訊公開的全鏈遊戲中成為重要的基礎設施。

對於ZKP+Fully On-Chain的遊戲討論我們分兩種:

①帶有不完全資訊公開的全鏈上游戲;

②帶有隨機屬性的競技性遊戲。

全鏈遊戲例如Dark Forest這個以《三體》中黑暗森林為名的策略遊戲也是以隨機性為玩點,主打Fully On-Chain Games (全鏈上游戲)+MMORTS(大型多人在線即時戰略遊戲)+戰爭迷霧(fog of war)。

ZKP+Fully On-Chain Game:公平競技的基石

戰爭迷霧代表著未知全貌,作為一款隱藏資訊遊戲,需要進行驗證秘密資訊的計算,基於ZK設計的點很多。

對於全鏈遊戲來說,其最大的特點是所有的資料和操作都儲存在鏈上,資料完全存在於透明的資料層上,這樣的話隱私保護就是個大問題——總不能我去攻打你的城池,對手不需要派斥候監視,只需要監控鏈上數據就能知道我的所有資訊吧?

而德普、日麻,還是Bingo、撲克這種帶有隨機數屬性的策略性棋牌遊戲就更需要了,首先應該做的就是全鏈化,加上ZKP的賦能。不然我怎麼能信莊家的良心呢?

或許大家在玩某些競技遊戲的過程中,玩到一定程度後會突然發現,為什麼隨機掉落的裝備和血瓶變少了?為什麼翻出來的牌越來越差了?這恐怕不只是簡單的運氣問題。未來的專案方(莊家)恐怕需要自證沒有進行黑箱操作。

對於一種具有隨機性的競技性的遊戲來說,線下直接經由人手或者機器進行隨機性的分配,有一句話叫“十賭九輸”,這既是遊戲機制的勝率設置,也存在著一定的內幕操作。

而線上的置信度就更差了,作為一個沒有開源的競技類app——我們幾乎可以肯定項目方會隨著對局和段位的不同,進行機制和概率的調整。

所以未來的線上具有隨機性分配的競技遊戲,項目方如果不加以對ZKP(零知識證明)技術作為自己重要的基礎設施搭建,用以自證。恐怕很難令人信服。

ZKP+Fully On-Chain Game:公平競技的基石

zkSNARK-實現資訊隱藏的關鍵

零知識證明技術具有完備性,正確性和零知識性三個特點,即證明了結論又不需要透露任何細節。其技術來源更是可以體現簡約性,在同態加密的背景下,驗證難度要遠低於生成證明難度。

在零知識證明的架構中,涉及兩個角色:「證明者」和「驗證者」。證明者根據系統輸入的知識創建證明,而驗證者有能力確認證明者在不知道輸入或重新計算自己的情況下真實地評估了計算。

ZKP+Fully On-Chain Game:公平競技的基石

ZKP絕對不是一個陌生的概念。例如Zk-Rollup,作為一種有效證明機制為以太坊的擴容提出了新的方案。之前大家忙著擼空投做交互的zkSync,其核心即使用ZK將多個操作包到一個證明裡,在鏈下完成大多數計算工作。

再或zkSNARK中的SNARK代表「Succinct Non-Interactive Arguments of Knowledge」,即簡潔非互動式知識論證。其中:簡潔是因為zkSNARK中的證明只有幾百個字節,這使得驗證者可以輕鬆快速地檢查證明是否正確;而非互動式證明使驗證者無需質疑證明者提交的陳述。

我們剛剛提到過,對於一個全鏈上游戲來說,所有的資料和操作都儲存在鏈上,而資料完全存在於透明的資料層上就很難保障隱私。例如:隨機的生成座標、玩家的出生點、手中剩餘的手牌、你打出的每一張牌——都可以透過鏈上資料來查詢。

而在zkSNARK的技術支援下,玩家可以保持自己的隱私狀態,同時公開提交可驗證的有效動作。這樣,參與者就不需要再向鏈上直接提交自身鏈上行為的具體操作信息,而只需要提交對該操作行為的承諾以及哈希有效的零知識證明即可,也就不必擔心別人知道自己的底牌.

對於全鏈遊戲-不完全資訊的隱私有哪些需求呢?像是西洋棋、中國象棋這類完全不需要隱私,只需要進行策略賽局的遊戲當然不需要進行ZKP的技術加成。

ZKP+Fully On-Chain Game:公平競技的基石

但是對於麻將棋牌、不完全資訊的策略遊戲——尤其是GameFi和競技來說就要小心了。

所以對於以下三種遊戲來說還是有必要的:

①具有部分資訊隱藏要求的全鏈遊戲

②需要洗牌和抽籤的紙牌全鏈遊戲

③全鏈非同步遊戲(Full chain of asynchronous games)

補充一下,非同步遊戲是指實現非即時的玩家遊戲互動機制。

實例:Zypher Games的全鏈ZK+遊戲的機制

對於這三種類型的遊戲,我們就拿Zypher Games 中,現有基於自主研發的zk-Game SDK設計的三款遊戲機制來說明,如何實現全鏈上游戲開發所需的鏈上資訊不對稱。

ZKP+Fully On-Chain Game:公平競技的基石

其中全鏈非同步遊戲可以直接參考Dark Forest。 Zypher Games也推出了通用的零知識遊戲引擎(UZKGE),幫助全鏈遊卡牌遊戲的開發,例如計算的可證明性,可擴展性和併發性,以及鏈上數據/資訊不對稱。

zBingo:具有部分資訊隱藏要求的全鏈遊戲

賓果遊戲好像在西方比較流行,所以這個遊戲怎麼玩的我還研究了好久。

遊戲的規則就是首先你會獲得一張「隨機生成」的填有1~36間隨機數的卡片,當然這個生成也是基於ZK實現的。玩法比較簡潔:

①開局你會得到一張由1到36之間的隨機數填充的5×5網格卡,這個網格卡的具體佈局是隨機生成的,而且只有你知道。

②配對完成後,玩家輪流在自己的網格卡上選擇數字。選定的號碼被公佈,並標記為網格卡上有該號碼的任何玩家。

③第一個完成兩條線(水平、垂直或對角線)的玩家贏得回合。

ZKP+Fully On-Chain Game:公平競技的基石

其實玩法還蠻簡單的,主要聊聊機制,來看你的Gas都花在哪裡了。

①產生一張隨機數字組成的網格卡,所以第一筆簽名用在這裡了;

②網格卡的加密需要使用一次性加密金鑰。在加密的簽名操作之前,你可以隨意的生成一張網格卡,但是在這筆加密完成後就無法更改;

③提交加密的網格卡並進入配對過程,這是第一筆Gas費用的支出;

④Matchmaking,為你配對你的對手,這是第二筆Gas費用的支出;

⑤接下來就是每一步都要出gas了,每掀開一張卡片,就要支付本次的費用;

⑥結束,上傳證明,進行If操作判斷。勝者可獲得zBingo盲盒,後續能開出Zynizens NFT。

我測算了一下,經過兩局zBingo遊戲結束,總共花了0.0031個BNB,平均一把下來要繳的gas費大概兩塊四毛錢。

其實玩這種休閒小遊戲的gas還是不低的,主要是因為全鏈上遊戲每一步都要gas,所以後續更期待坎昆升級後,更低的費用和更快速的操作了。

ZKP+Fully On-Chain Game:公平競技的基石

zACE:需要洗牌和抽籤的紙牌形狀全鏈遊戲

最後我們再來聊聊棋牌類的全鏈遊戲在機制上的設計差異。 zACE就展示了一個基於Zypher Games的zk-Game SDK用於開發的、需要洗牌和發牌的紙牌遊戲,類德州撲克遊戲。

ZKP+Fully On-Chain Game:公平競技的基石

實際上,SDK透過優化的wasm和預編譯的合約,實現了高性能、低成本的去中心化洗牌過程。它的鏈上隨機性不再需要傳統的VRF,實現去中心化,進行公平洗牌和博弈。

VRF,指驗證隨機函數。可驗證隨機函數(VRF)是一種隨機數產生器(RNG),可以透過加密手段來驗證隨機性。包括Algorand、Cardano、Internet Computer和Polkadot在內的許多L1區塊鏈都在共識機制中使用了VRF來隨機選擇出塊節點。

ZKP+Fully On-Chain Game:公平競技的基石

然而,由於區塊鏈網路具有高度確定性,在鏈上通常無法獲得安全的RNG隨機數產生器。

使用鏈上區塊哈希生成隨機數存在被礦工或驗證者操控的風險,這些負責驗證的個體可以選擇放棄對他們自身不利的區塊,重新進行隨機數的生成,直到對其有利。這也是為什麼ZKP+全鏈化的重要性。

Z2048:全鏈2048

Zypher Games平台的開發者準備推出一款名為《Z2048》的遊戲,這是一款基於流行的休閒滑動數位遊戲2048改編的全鏈遊遊戲。

玩法:在4 * 4 方塊格子裡面,初始盤面上有隨機的兩個數字2,玩家使用方向鍵移動盤面上的數字,使得同一個方向上相同的數字相加並移動到方向的另一側,每移動一次就會在盤面上隨機的位置新增一個2或4;

玩家最後獲得的數字達到2048可以選擇上傳ZKP結束遊戲,或是繼續挑戰更高分數。如果盤面完全卡死無法移動則遊戲結束。

平台NFT可以增加遊戲時間和復活權益。在這個遊戲中ZKP運用於實現可擴展性方面。

ZKP-Proved,在這裡,智能合約不要求每一步都提交到鏈上——這需要玩家為每一步都簽署一筆交易——而是將這些步驟捆綁在一起,並生成零知識證明。

這個證明然後被儲存在區塊鏈上,提供加密驗證,確保遊戲的結果既不可改變又公平,同時保持特定遊戲玩法細節的機密性。透過將傳統遊戲玩法與最先進的零知識證明(ZKP)技術和競爭元素相結合。

ZKP+Fully On-Chain Game:公平競技的基石

UZKGE:零知識遊戲引擎,擁有一個高度優化的Plonk庫,它是一個快速擴展的零知識(ZK)電路庫的補充,精心製作以滿足遊戲開發者的不同需求。

ZKP+Fully On-Chain Game:公平競技的基石

這些電路促進了複雜的計算,確保了遊戲機制的完整性,同時保護了玩家的隱私,這些加密技術使遊戲開發者能夠在不洩露潛在細節的情況下驗證關鍵的遊戲資料。

Total
0
Shares
Related Posts