[金融科技小虎]全链游戏新篇章:用ZKWASM开发可证明游戏

作者:Blade Research核心作者:wangyao、为什么开发0xbrawler内容目录可以证明游戏(Provable Game)?Blade Games技术架构1) 基于zkwasm开发简单的塔防游戏2) Zinity:第一个允许直接在Unity开发可证明游戏的处理方案街机游戏(arcade game)与ERC-6551应用我们即将在ETHdenver展示的游戏未来发展规划与研究主题感谢Sinka、Wangyao、Will Robinson、Mohamed Fouda、LoneSCV、0xAiko、Simon Chan、Maggie Wu、James Fang、Zee等人对本文的奉献太长,不看版本:ZK 协处理器方法提供了可验证游戏所需的信任假设,对于经验丰富的游戏开发者来说,开发令人兴奋的游戏体验所需的计算能力是非常必要的 Unity/Unreal 原来的解决方案,而不是把它放在原来的解决方案上 Solidity/Cairo关键游戏逻辑,以及 Unity 同步链上游戏的动画/渲染和可验证游戏未来开发者的感受将是高度模块化的,可插拔式(到底有多少上链算上链?我们认为它应该由开发人员和客户决定。)在未来,我们相信会有灵活的方法来信任假设、确认成本和开发成本,然后开发成本可控的可验证游戏为什么要开发可证明游戏?我们认为它应该由开发者和客户决定。)在未来,我们相信会有灵活的方法来信任假设、确认成本和开发成本,然后开发成本可控的可验证游戏为什么要开发可证明游戏?2023年是链上游戏(FOCG)/自主世界(AW)在快速发展的一年里,出现了大量的基础设施。这包括Mud.dev、Dojo、World Engine、Keystone、Paima等等。此外,Altlayer、Caldera、Rollup服务提供商,如Conduit,也吸引了许多全链游戏开发者进行设计。然而,通过开发和运营我们的第一个链上大逃亡游戏loot Royale,并在一个月内达到每日活跃用户600–在800人的过程中,我们发现了一个重要的问题:如果所有的游戏逻辑都放在链上,EVM本身的有限计算能力将成为游戏开发的最大瓶颈。计算能力的不足限制了游戏类型(低计算量、单线程、异步游戏)和客户体验(我们必须等待交易包装、RPC hydration等。举几个简单的例子。我们收到了很多反馈,比如“我希望我的交易能及时打包,这样攻击就会击中”和“RPC数据什么时候可以完成输入”。这必须改变。玩家等待RPC hydration真的很着急。在尝试在各种技术栈上开发后,我们相信如果能在链下确认计算,其可信度效果应该非常接近整个链上的交易/计算。采用“链下执行、链上验证”的原则,解决EVM的有限计算能力。这有几个优点:改善用户体验,减少等待时间,扩大游戏类别,包括需要大量计算的“硬核休闲”,比如塔防(mid-core)游戏支持隐藏信息(hidden information)我们将首先简要介绍我们如何使用zkWASM来开发可证明的游戏。然后我们将讨论我们的zkwasm-unity解决方案,这是业内第一个允许直接在unity开发可证明游戏的解决方案。Blade Games的技术架构基于zkwasm开发了简单的塔防游戏技术架构,这里分为两部分,第一部分是用Rust编写简单的Pvee、PVP塔防游戏,并通过zkwasm进行验证。第二部分是我们的路线图。我们计划开发一个将C#编译成wasm的编译器,并适当修改当前的zkwasm架构,以实现一个更模块化、更灵活的可证游戏开发方案。(zkwasm由Delphinus Labs开发是zkVM,它运行wasm代码并生成其执行轨迹。)让我们从PVE示例开始 — 我们使用Rust和Bevy Engine编写游戏。Rust可以轻松编译成wasm,并在zkwasm中 在VM处理之前生成wasm图像(image)。然后你可以选择将处理过的执行轨迹发布到数据可用性中(Data Availability Layer)并稍后证实。或者用户也可以选择立即确认,并将zkSNARK发送到链上(使用单个RTX4090 GPU可以在45秒左右处理100万字码的确认,这对于节奏较慢的塔防游戏来说已经足够了)。游戏随后被分解成几个步骤。玩家将确定地图设置,并将相关信息commit到链上的游戏逻辑在rust代码中运行一波作战;相关execution trace可以由zkwasm确认,玩家将zk提交给链上的新一波怪物。玩家可以选择维护之前的炮塔设置,也可以再次提交新的commit。玩家不能在每波战斗中更改塔的设置。如果他们更改地图设置,他们可以再次提交新的commit(玩家将确定地图设置并导出zkwasm并提交到链上)(游戏逻辑在rust代码中运行一波战斗。与execution相关的execution zkwasm可以确认trace,玩家将zk提交到链上)Zinity:对于很多游戏开发者来说,在链上开发游戏意味着他们需要学习solidity、rust或cairo。与execution相关的execution zkwasm可以确认trace,玩家将zk提交到链上)Zinity:对于很多游戏开发者来说,在链上开发游戏意味着他们需要学习solidity、rust或cairo。这意味着他们需要停止使用他们熟悉的C#。此外,尝试基于Mud/dojo的Unity引擎渲染和动画solidity统一/cairo游戏逻辑代码是一个非常耗时费力的过程。我们将发布第一个使用zk协处理器和Unity的原生解决方案,用于链上游戏“zkServer开发框架。我们称之为Zinity。游戏代码解耦为:1)核心逻辑代码(攻击、供给品箱、单位坐标等)2)其他代码。随后,这两部分代码由C#编译成wasm,核心游戏逻辑由zkwasm编译 runtime运行,其他代码在常规C# runtime运行。将有一个处理消息的通信协议来负责双方的通信。zkWASM将以二进制代码的形式见证,例如“玩家A在时间X在坐标中(x,y)放置炮塔的动作。随着新游戏的开始,我们开始获得最初的游戏状态。随着游戏的进行,zkwasm将见证并计算更多玩家的输入。当游戏结束时,将生成新的游戏状态和相关的执行轨迹,附加哈希值(execution trace)。您可以选择整个执行轨迹(execution trace)例如Eigelayer/Celestia/Avail数据可用性如/Greenfield等(DA layer)上。或者用户可以选择只将哈希值放在数据可用性层上,将轨迹放在数据可用性层上(trace)存储在云存储中。此外,我们还将设计一个具有fault的挑战期 Proof的方式,来检验游戏状态。此外,对于参与经济单位较大游戏结果的重要玩家,用户也可以选择生成zk确认整个游戏过程,并直接在DA层发布。最终,所有的过程都将被整合并成Unity SDK(非动画和渲染)或CLI工具引导整个工具链。我们还可以将这个解决方案扩展到其他游戏引擎,如Unity/Unreal/Godot。未来计划还包括与其他zkVM(如RiscZero)以及各种DA层(Eigenlayer/Celestia)集成。通过这种方法,我们可以大大拓展链上游戏/验证游戏开发者社区,吸引web2游戏开发者和各种网络游戏工作室。链上街机包含ERC-6551 此外,我们还在探索围绕可验证游戏的链上街机的概念。例如,玩家还可以在链上提交某些塔/炮塔/障碍物的设置,另一个玩家可以提交他们选择的怪物和士兵线,以便试图完成副本。在当地计算作战结果,只有zk-snark确认提交到链上,以验证游戏结果。这是为了保证通过关卡的方法,不会被广播到链上被大家看到。ERC-6551(代币绑定账户)将使这些PVP对局,变成自主街机(autonomous arcade)。设置房间的玩家可以将奖励存入智能合同,而挑战者需要支付固定的入场费,这将积累到奖金池中,以奖励完成关卡的玩家。前10名完成关卡的玩家,可以拿走一定比例的奖金池奖励。我们正在积极探索这款自主街机的想法,并欢迎在推特上(@BladeGamesHQ)任何类型的讨论。在我们即将到来的文章中,我们将讨论塔防游戏的PVP示例。我们将在ETHdenver上展示的游戏,我们将在ETHdenver上展示一个可验证的游戏演示。该游戏将由Rust和React开发,并在zkwasm上运行。在twitter上联系我们,我们会把您列入初试成员名单!结论和ZK我们下一步要发布的内容 协处理器方法提供了所需的信任假设,以及开发人员创造令人兴奋的游戏体验所需的计算能力。对于经验丰富的游戏开发人员来说,(非常)需要 Unity/Unreal 原生解决方案,而不是必须存在 Unity 中统一 Solidity/Cairo 核心游戏逻辑和 Unity 动画/渲染链上的游戏和可验证游戏未来开发者的感受将是高度模块化和可插拔的(链上有多少链?我们认为应该由开发者和客户决定。)在未来,我们相信将有灵活的方法来衡量信任假设、确认成本和开发成本来开发可验证游戏。我们的Zinity解决方案是web2和web3开发者,为开发可验证游戏提供了流畅的启动体验。我们相信,让开发者使用各种类型的游戏引擎,以及不同的DA层和zkVM设计的即插即用方法,也将提供更大的开发灵活性。我们相信,让开发者使用各种类型的游戏引擎,以及不同的DA层和zkVM设计的即插即用方法,也将为开发提供更大的灵活性。我们认为,未来的开发者是这样的:Zinity可以为可证明的游戏提供“灵活性”支持,并为crypto开发者、 Web2 游戏开发者提供可插拔的开发选项,以证明游戏。例如,开发者可以使用 Rust 编写核心游戏逻辑,使用核心游戏逻辑, C# 和 Unity 编写游戏的其他部分,并在链上commit 执行轨迹/轨迹的哈希推迟生成 ZKP,这样,开发成本和确认成本就会好很多。这种弹性模型还可以帮助开发人员在C#和unity引擎中快速测试最初的游戏创意,然后继续迭代他们想要的游戏“链水平”(链有多少?我们认为应该由开发人员和客户决定)。而且还提前压力测试游戏制作 vs. 区块链特征的tradeoff。当我们开发自己的游戏并测试各种技术栈时,我们意识到我们仍然需要经验丰富的web2游戏开发者来开发可验证的游戏,以获得更好的游戏流量和UIUX。因此,我们提出了自己的第一个解决方案,并希望为更广泛的链上游戏开发者社区做出贡献。我们已经写了很多关于zkwasm和一些可验证游戏开发的话题,并正在做剩下的工作。这里有一些话题:修改zkwasm以验证游戏的DA成本和确认成本估算(已完成)可以验证游戏的modding、可互操作性与链上无许可交互(进行中)相关的可验证游戏设计思路(进行中)如果您对开发可验证游戏、讨论zkVM在游戏中的应用感兴趣,或者有兴趣加入我们一起工作,请联系我们!

相关推荐