ZK技術破局“Play to Earn”
在"玩賺錢"的理念下,玩家希望在享受遊戲的同時獲得收益。但 GameFi 受限於較高的 GAS 成本和並不完善的區塊鏈遊戲开發生態,其安全性和透明度均難以得到玩家認可。這使 GameFi 走向另一個極端——不斷優化經濟模型和收益,收益周期不斷縮短,最終造成踩踏。在新的周期,L2、全鏈遊戲引擎和 ZK 技術的普及將為用戶帶來鏈上隱私和更復雜的鏈上遊戲機制。這同時解決了性能、隱私和可信的問題,將焦點從龐氏遊戲轉移到更可信和復雜的鏈上遊戲中。利用應用層 ZK 技術遊戲开發者可以輕易建立對交互式隱私場景有明確需求的鏈上战略遊戲,也為更復雜的可信(鏈上)遊戲場景帶來新的希望。Salus 將通過本文探討新的應用層 ZK 技術如何幫助遊戲完成場景創新。
技術背景:遞歸 zkSNARK 的出現
zk-SNARK 是一種加密證明系統,在這種結構中,證明者可以證明擁有某些信息,而不泄露該信息,並且證明者和驗證者之間沒有任何交互。
遞歸 zkSNARK 意味着开發者可以在 zkSNARK 證明內部驗證另一個 zkSNARK 證明,並生成 zkSNARK 證明的陳述。 遞歸允許 zkSNARK 證明者將更多知識壓縮到他們的證明中的同時保持簡潔,且遞歸驗證過程不會明顯減慢。
與一般 zkSNARK 相比, 遞歸 zkSNARK 通過允許將多個證明壓縮為單個證明來提供增強的可擴展性和效率。 這種遞歸組合減少了復雜或多步驟過程的計算負載和證明大小,使它們特別有利於發生大量交互和交易的區塊鏈遊戲等應用程序。這將為用戶和开發人員帶來更高的性能並降低成本。
圖片來源 - https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386
遞歸 SNARK 解鎖新應用級屬性
-
壓縮
遞歸 zkSNARK 允許證明者將“更多知識”放入證明中,同時確保這些證明仍然可以由驗證者在恆定或多對數時間內進行驗證。使用遞歸 zkSNARK 作為信息的“rollup”,可以獨立地“卷起”比最大的(非遞歸)電路更多的計算。
-
可組合性
使用遞歸 zkSNARK,可以創建一個證明鏈,在每一步中,證明都會傳遞給一個新的參與者,每個參與者在其中添加自己的知識聲明,但無需了解鏈中其他部分的詳細信息。
遞歸 SNARK 的實現
通常,有兩種方法可以實現完全遞歸 zkSNARK:一種方法是使用配對友好橢圓曲线的循環,其中通過找到兩條配對友好的曲线來實現有效的遞歸,使得一條曲线的階數等於另一條曲线的場大小;第二種方法是強行通過,並在證明系統本身中簡單地實現 單對友好曲线的橢圓曲线運算 。
第一種方法 , 配對友好橢圓曲线的循環 ,盡管衆多研究者還在探索,但目前想要實現同時滿足配對友好和循環這兩個特性的曲线還很困難。以下內容定義了什么是配對友好橢圓曲线循環。
定義 1: 橢圓曲线的循環是在有限域上定義的橢圓曲线的列表,其中一條曲线上的點的數目循環地等於下一條曲线的定義域的大小。
橢圓曲线的 m-cycle 是由 m 條不同的橢圓曲线 ,其中 是素數,使得這些曲线上的點個數滿足公式:
高效的 zkSNARK 方案一般由配對友好型橢圓曲线去構建,而等式中的循環條件使得它們之間可以遞歸組合,並且避免產生在跨不同特徵的有限域時所產生的昂貴的模運算。
定義 2: 橢圓曲线的配對友好型 m-循環是一個滿足循環中每條橢圓曲线都是基礎且具有較小嵌入度的 m-循環。
第二種方法 是強行通過,並在證明系統本身中簡單地實現單對友好曲线的橢圓曲线運算)。你可以將配對電路移植到 BN 254 曲线上,然後在 Circom 中組裝一個生長驗證器。
以 groth 16 證明系統為例,groth 16 具有兩個階段的可信設置,第二階段的設置是電路特定的。這意味着,當你在 SNARK 內部驗證證明時,它將需要獨立於外層 SNARK 的受信任設置。
因此最適合遞歸 groth 16 SNARK 的是那些遞歸到自身的應用,即在電路中驗證的證明是同一電路本身的證明。這意味着我們只需要一個可信設置。如圖展示了自遞歸 SNARK 的思路:
自遞歸 SNARK - 圖片 來源 https://0x parc.org/blog/groth 16-recursion
在每一步,你都有一個電路來證明計算
的有效性 ( 可能 i 是對 SNARK 的公开輸入),並且在第 i 個這樣的證明中,您驗證另一個計算有效性的證明 的有效性。還有步驟 的有效性,在每次遞歸時,您的 SNARK 電路將保持不變。以 Isokratia 為例,每個 都是 ECDSA 籤名驗證。
總的來說, 遞歸 zkSNARK 提供了更強的擴展性:減少多步驟遊戲或動作所需的數據和計算,使它們在鏈上更加可行,確保復雜的遊戲邏輯和狀態轉換快速、安全地驗證。
案例研究:ZK-Hunt 及其影響
ZK Hunt 是一款類 RTS 的鏈上 PvP 遊戲,探索了使用 ZK 技術實現復雜鏈上遊戲機制和信息不對稱。ZK Hunt 允許玩家在完全隱私的情況下執行動作,可以在不泄露任何基礎數據的情況下驗證每個動作。
在 ZK Hunt 平原上的移動是公开的,玩家 B 可以看到玩家 A 在移動時的位置更新。進入叢林也是公开的,但在叢林中移動是不可見的,因此玩家 A 無法確定玩家 B 在叢林中的位置,而只能模擬一組不斷增長的潛在位置,這些位置用問號顯示。離开叢林回到平原用戶位置會再次公开,所以這個潛在的位置集合就消失了。
這種信息隱藏行為是 ZK Hunt 的基礎;單位有一個狀態(它們的位置),可以從公共狀態變為私有狀態,然後根據遊戲中的動作再次變回來。這增強了遊戲的策略性。
圖片來源: https://gam3s.gg/ zk-hunt/
如圖所示:ZK Hunt 的狀態驗證過程主要為以下步驟:
-
本地更新私有狀態:從 si-1 到 si(從公开轉為私有或從私有轉為公开)
-
生成有效轉換狀態的證明 :消耗 si-1 和 si(和之前的承諾 Ci-1,生成新的承諾 Ci)
-
提交到鏈上驗證證明(合約為承諾 Ci-1 提供了值,以確保正確生成證明)
-
更新鏈上的承諾(保存 Ci 以便在下個轉換時 可以將其用作 Ci-1)
承諾 是一種工具,ZK 證明可以使用它來驗證引用用戶之前“承諾”的一些私有狀態,而無需向驗證者透露該狀態。用戶將承諾 C 作為公共輸入提供給證明,將私有狀態 s 作為私有輸入,證明在內部計算 s 將產生的承諾,並檢查它是否與 C 匹配:
盡管 ZK 證明驗證的成本被認為是恆定的(至少對於某些證明系統,如 groth 16 等),實際上這個驗證成本會根據公共輸入的數量而增加,這在進行鏈上驗證時可能很重要。同時,ZK Hunt 使用了 poseidon hash 作為承諾方案,因為它在電路內計算比其他常見哈希函數效率高得多,每個消息位的約束更少。如果私有狀態是從足夠大的範圍(例如私鑰或隨機種子)中隨機選擇的值,那么只需獲取該值的哈希值就足以作為承諾。
類似的 ZK 技術可以實現的遊戲創新場景還有很多,例如資產隱藏、決策隱私和進度保密。
-
資產隱藏:在集換式卡牌遊戲中,玩家可以使用零知識證明隱藏自己的手牌,只在打牌時顯示必要的信息。
-
決策隱私:在策略遊戲中,玩家可以祕密選擇下一步行動或分配資源,這些選擇僅在特定點或由遊戲邏輯觸發時才會公开。
-
進度保密:在冒險或角色扮演遊戲中,玩家可能會完成任務或獲得成就,而其他人並不確切知道他們已經完成了哪些任務,從而保持驚喜或競爭保密的元素。
通過採用零知識證明技術,ZK Hunt 允許玩家在保持隱私的同時進行遊戲操作。 這不僅是技術上的創新,更是鏈上遊戲的一次規則變革。通過這種方式,遊戲行動在不透露敏感數據的情況下得到驗證,增強了策略的隱蔽性,並豐富了遊戲的策略深度和驚喜元素。
如果您對在鏈上遊戲中集成 ZK 技術以增強隱私和擴展性、實現遊戲創新感興趣, Salus 提供相關服務和解決方案。通過與 Salus 合作,您可以探索 ZK 技術在遊戲領域的廣泛應用,為玩家提供更豐富、更安全、更具策略性的遊戲體驗。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。