hao86下載站:值得大家信賴的游戲下載站!

首頁 > 區(qū)塊鏈 > 全鏈游戲新篇章:用 zkWASM 開發(fā)可證明游戲

全鏈游戲新篇章:用 zkWASM 開發(fā)可證明游戲

時(shí)間:2024-01-30 08:25:43
來源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #全鏈游戲新篇章:用 zkWASM 開發(fā)可證明游戲#】

鏈上游戲和可驗(yàn)證游戲的未來開發(fā)者體驗(yàn),將會(huì)是高度模塊化,可插拔式的。


撰文:wangyao、0xbrawler


太長不看版:


  • ZK 協(xié)處理器方法提供了可驗(yàn)證游戲所需的信任假設(shè),以及開發(fā)引人入勝的游戲體驗(yàn)所需的計(jì)算能力
  • 對(duì)于經(jīng)驗(yàn)豐富的游戲開發(fā)人員來說,【非?!啃枰?Unity/Unreal 原生解決方案,而不是把在 Solidity/Cairo 的核心游戲邏輯,和 Unity 中的動(dòng)畫 / 渲染二者進(jìn)行同步
  • 鏈上游戲和可驗(yàn)證游戲的未來開發(fā)者體驗(yàn),將會(huì)是高度模塊化,可插拔式的(到底有多上鏈算上鏈?我們認(rèn)為應(yīng)該由開發(fā)者和用戶決定)
  • 未來,我們相信將會(huì)有彈性的方法,來 tradeoff 信任假設(shè)、證明成本、開發(fā)成本,從而開發(fā)成本可控的可驗(yàn)證游戲


為什么要開發(fā)可證明游戲?


2023 年是鏈上游戲(FOCG)/ 自主世界(AW)蓬勃發(fā)展的一年,出現(xiàn)了大量的基礎(chǔ)設(shè)施。這包括 Mud.dev、Dojo、World Engine、Keystone、Paima 等等。此外,Altlayer、Caldera、Conduit 等 Rollup 服務(wù)供應(yīng)商也吸引了眾多全鏈游戲開發(fā)者進(jìn)行開發(fā)。


然而,通過開發(fā)和運(yùn)營我們的第一個(gè)鏈上大逃殺游戲 Loot Royale,并在一個(gè)月內(nèi)達(dá)到了每日活躍用戶 600–800 人的過程中,我們發(fā)現(xiàn)了一個(gè)重要問題:


如果把游戲邏輯全部放在鏈上,那么 EVM 本身的有限計(jì)算能力將會(huì)成為游戲開發(fā)最大的瓶頸。


計(jì)算能力的不足限制了游戲類型(低計(jì)算量、單線程、異步游戲?yàn)橹鳎?,以及用戶體驗(yàn)(大家要等交易打包、RPC hydration 等)。


簡單舉幾個(gè)例子。我們收到了很多反饋,比如「我希望我的交易能及時(shí)被打包,這樣那次攻擊就能命中了」,以及「RPC 數(shù)據(jù)什么時(shí)候才能完成加載」。這必須改變。


玩家們等 RPC hydration 真是急得不行


在嘗試在各種技術(shù)棧上開發(fā)之后,我們相信如果能夠在鏈下證明計(jì)算,那么其可信性效果應(yīng)當(dāng)極度接近于全鏈上的交易 / 計(jì)算。我們通過采用「鏈下執(zhí)行,鏈上驗(yàn)證」的原則來解決 EVM 的有限計(jì)算能力。這有幾個(gè)優(yōu)勢(shì):


  • 改善用戶體驗(yàn),減少等待時(shí)間
  • 擴(kuò)展游戲類別,包括像塔防這樣需要更多計(jì)算的「硬核休閑」(mid-core)游戲
  • 支持隱藏信息(hidden information)在游戲中的應(yīng)用


我們將首先簡要介紹我們?nèi)绾问褂?zkWASM 開發(fā)可證明的游戲。然后我們將討論我們的 zkwasm-unity 解決方案,這是行業(yè)內(nèi)首個(gè)允許直接從 Unity 開發(fā)可證明游戲的方案。


Blade Games 的技術(shù)架構(gòu)


基于 zkwasm 開發(fā)簡單的塔防游戲


技術(shù)架構(gòu)這里分成兩部分,第一部分是用 Rust 編寫簡單的 PvE、PvP 塔防游戲,并通過 zkwasm 進(jìn)行驗(yàn)證。


第二部分是我們的路線圖,我們計(jì)劃開發(fā)一個(gè)將 C#編譯成 wasm 的編譯器,并對(duì)現(xiàn)有 zkwasm 架構(gòu)進(jìn)行適當(dāng)修改,從而實(shí)現(xiàn)一個(gè)更加模塊化、彈性化的可證明游戲開發(fā)方案。(zkwasm 由 Delphinus Labs 開發(fā),是一個(gè)運(yùn)行 wasm 代碼并生成其執(zhí)行軌跡的 zkSNARK 證明的 zkVM。)


讓我們從 PvE 示例開始?—?我們用 Rust 和 Bevy Engine 編寫游戲。


Rust 可以輕松編譯成 wasm,并在 zkwasm VM 中處理之前生成一個(gè) wasm 映像(image)。然后我們可以選擇將處理后的執(zhí)行軌跡發(fā)布到數(shù)據(jù)可用性層(Data Availability Layer)并稍后證明它。或者用戶也可以選擇立刻證明,并將 zkSNARK 證明發(fā)送到鏈上(使用單張 RTX4090 GPU 大約 45 秒就可以處理 100 萬字碼規(guī)模的證明,這對(duì)于較慢節(jié)奏的塔防游戲來說已經(jīng)足夠了)。


游戲然后被分解為幾個(gè)步驟。


  • 玩家將確認(rèn)地圖設(shè)置并將相關(guān)信息 commit 到鏈上
  • 游戲邏輯在 rust 代碼中運(yùn)行一波戰(zhàn)斗;相關(guān)的 execution trace 可以由 zkwasm 證明,玩家提交 zk 證明到鏈上
  • 新一波怪物來臨,玩家可以選擇保持之前的炮塔設(shè)置,或者再次提交新的 commit
  • 玩家在每波戰(zhàn)斗中間不能更改塔的設(shè)置,如果他們更改地圖設(shè)置,他們可以再次提交新 commit



(玩家將確認(rèn)地圖設(shè)置并將 zkwasm 輸出提交到鏈上)



(游戲邏輯在 rust 代碼中運(yùn)行一波戰(zhàn)斗。相關(guān)的 execution trace 可以由 zkwasm 證明,玩家提交 zk 證明到鏈上)


Zinity:第一個(gè)允許直接從 Unity 開發(fā)可驗(yàn)證游戲的解決方案


對(duì)于許多游戲開發(fā)者來說,在鏈上開發(fā)游戲意味著他們需要學(xué)習(xí) solidity、rust 或 cairo。這意味著他們需要停止使用他們熟悉的 C#。此外,嘗試將 Unity 引擎的渲染和動(dòng)畫與基于 Mud/dojo 的 solidity/cairo 游戲邏輯代碼統(tǒng)一起來,是一個(gè)非常耗時(shí)費(fèi)力的過程。


我們將發(fā)布第一個(gè)使用 zk 協(xié)處理器、Unity 原生的解決方案,用于鏈上游戲的「zkServer」開發(fā)框架。我們稱之為 Zinity。


游戲代碼被解耦為:


1)核心邏輯代碼(攻擊,戰(zhàn)利品箱,單位坐標(biāo)等)

2)其余代碼。然后,這兩部分代碼都從 C#編譯成 wasm,核心游戲邏輯由 zkwasm runtime 運(yùn)行,其余代碼在普通的 C# runtime 運(yùn)行。將有一個(gè)處理消息的通信協(xié)議來負(fù)責(zé)兩邊的通信。


zkWASM 將以二進(jìn)制代碼形式,見證諸如「玩家 A 在時(shí)間 X 在坐標(biāo)(x,y)放置了一個(gè)炮塔」的動(dòng)作。隨著新的一局游戲開始,我們開始獲取初始游戲狀態(tài)。隨著游戲的進(jìn)行,zkwasm 將見證并計(jì)算更多玩家輸入。當(dāng)本局游戲結(jié)束時(shí),將會(huì)生成附帶哈希值的新游戲狀態(tài)和相關(guān)的執(zhí)行軌跡(execution trace)。


我們可以選擇將整個(gè)執(zhí)行軌跡(execution trace)發(fā)布到諸如 Eigenlayer/Celestia/Avail/Greenfield 之類的數(shù)據(jù)可用性層(DA layer)上?;蛘哂脩艨梢赃x擇只將哈希值放在數(shù)據(jù)可用性層上,將軌跡(trace)存儲(chǔ)在云存儲(chǔ)中。此外,我們還會(huì)設(shè)計(jì)一個(gè)挑戰(zhàn)期,以 fault proof 的方式,來驗(yàn)證游戲狀態(tài)。


此外,對(duì)于重要的、玩家參與經(jīng)濟(jì)單位較大的游戲結(jié)果,用戶還可以選擇為全部游戲過程生成 zk 證明,并直接發(fā)布在 DA 層上。



最后,所有流程將被整合并作為 Unity SDK(非動(dòng)畫和渲染)或 CLI 工具來指導(dǎo)整個(gè)工具鏈。


我們還可以將此解決方案擴(kuò)展到其他游戲引擎,如 Unity/Unreal/Godot。未來計(jì)劃還包括與其他 zkVM(如 RiscZero)以及各種 DA 層(Eigenlayer/Celestia)集成。


通過這種方法,我們可以大大擴(kuò)展鏈上游戲 / 可驗(yàn)證游戲開發(fā)者社區(qū),吸引 web2 游戲開發(fā)者和各種游戲工作室。


帶有 ERC-6551 的鏈上街機(jī) + 塔防游戲玩法


此外,我們還在探索圍繞可驗(yàn)證游戲的鏈上街機(jī)概念。例如,玩家也可以在鏈上提交某種塔 / 炮塔 / 障礙物的設(shè)置,另一個(gè)玩家可以提交他們選擇的怪物和小兵,以嘗試完成關(guān)卡。戰(zhàn)斗結(jié)果在本地計(jì)算,只有 zk-snark 證明提交到鏈上,以驗(yàn)證游戲結(jié)果。這是為了確保通過關(guān)卡的方法,不會(huì)被廣播到鏈上被大眾可見。


ERC-6551(代幣綁定賬戶)將使這些 PvP 對(duì)局,變成自主街機(jī)(autonomous arcade)。開設(shè)房間的玩家可以向智能合約存入獎(jiǎng)勵(lì),而挑戰(zhàn)者需要支付固定入場費(fèi),該費(fèi)用累積到獎(jiǎng)金池中,以獎(jiǎng)勵(lì)完成關(guān)卡的玩家。前 10 名完成關(guān)卡的玩家,可以拿走一定比例的獎(jiǎng)金池獎(jiǎng)勵(lì)。


我們正在積極探索這個(gè)自主街機(jī)的想法,并歡迎在 twitter 上(@BladeGamesHQ)進(jìn)行任何類型的討論。在我們即將發(fā)布的文章中,我們會(huì)討論塔防游戲的 PvP 示例。



我們即將在 ETHdenver 上展示的游戲


我們將在 ETHdenver 展示一個(gè)可驗(yàn)證的游戲演示。這款游戲?qū)⑹褂?Rust 和 React 開發(fā),在 zkwasm 上運(yùn)行。在twitter上聯(lián)系我們,我們會(huì)把你加入早期試玩人員名單!


結(jié)論,和我們接下來要發(fā)布的內(nèi)容


  • ZK 協(xié)處理器方法提供了所需的信任假設(shè),以及開發(fā)人員打造引人入勝的游戲體驗(yàn)所需的計(jì)算能力
  • 對(duì)于經(jīng)驗(yàn)豐富的游戲開發(fā)人員來說,(非常)需要 Unity/Unreal 原生解決方案,而不是必須在 Unity 中統(tǒng)一 Solidity/Cairo 中的核心游戲邏輯和 Unity?中的動(dòng)畫 / 渲染
  • 鏈上游戲和可驗(yàn)證游戲的未來開發(fā)者體驗(yàn),將會(huì)是高度模塊化,可插拔式的(到底有多上鏈算上鏈?我們認(rèn)為應(yīng)該由開發(fā)者和用戶決定)
  • 未來,我們相信將會(huì)有彈性的方法來權(quán)衡信任假設(shè)、證明成本、開發(fā)成本來開發(fā)可驗(yàn)證游戲


我們的 Zinity 解決方案為 web2 和 web3 開發(fā)者,提供了開發(fā)可驗(yàn)證游戲的順暢上手體驗(yàn)。我們相信,讓開發(fā)者使用各種類型的游戲引擎,以及不同的 DA 層和 zkVM 進(jìn)行開發(fā)的即插即用方法,也將提供更大的開發(fā)體驗(yàn)靈活性。


我們?cè)O(shè)想未來的開發(fā)者體驗(yàn)是這樣的:Zinity 可以為可證明游戲提供「彈性」支持,并為 crypto 開發(fā)者、 Web2 游戲開發(fā)者提供可證明游戲的可插拔開發(fā)選項(xiàng)。


比如開發(fā)者可以用 Rust 編寫核心游戲邏輯,用 C# 和 Unity 編寫游戲的其余部分,并在鏈上 commit 執(zhí)行軌跡 / 軌跡的哈希,延后生成 ZKP,這樣開發(fā)成本、證明成本都會(huì)好很多。


這種彈性模型還可以幫助開發(fā)人員,在 C#和 unity 引擎內(nèi)部快速測(cè)試早期游戲創(chuàng)意,然后繼續(xù)迭代他們所希望的游戲「上鏈程度」(到底有多上鏈算上鏈?我們認(rèn)為應(yīng)該由開發(fā)者和用戶決定)。同時(shí)也提前壓力測(cè)試游戲設(shè)計(jì) vs. 區(qū)塊鏈性能的 tradeoff。


當(dāng)我們開發(fā)自己的游戲,并測(cè)試各種技術(shù)棧時(shí),我們意識(shí)到我們?nèi)匀恍枰?jīng)驗(yàn)豐富的 web2 游戲開發(fā)者嘗試開發(fā)可驗(yàn)證游戲,以獲得更好的游戲心流和 UIUX。因此,我們提出了自己的首創(chuàng)解決方案,并希望為更廣泛的鏈上游戲開發(fā)者社區(qū)做出貢獻(xiàn)。



我們已經(jīng)就使用 zkwasm 和可驗(yàn)證游戲開發(fā)的一些話題寫了很多內(nèi)容,并正在進(jìn)行剩余的工作。這里是一些話題:


  • 修改 zkwasm 以實(shí)現(xiàn)可驗(yàn)證游戲(進(jìn)行中)
  • 這種方法的 DA 成本和證明成本估算(已完成)
  • 可驗(yàn)證游戲的 modding、可互操作性和鏈上無許可的交互(進(jìn)行中)
  • 相關(guān)的可驗(yàn)證游戲設(shè)計(jì)思路(進(jìn)行中)


感謝 Sinka、Wangyao、Will Robinson、Mohamed Fouda、LoneSCV、0xAiko、Simon Chan、Maggie Wu、James Fang、Zee 等人對(duì)本文的貢獻(xiàn)

小編推薦下載

相關(guān)文章

更多>>

同類軟件下載