游戏行业正在慢慢地被区块链技术唤醒。它将极大地改变游戏格局,使游戏玩家获得收益。所以资本即使在熊市也依然坚持投资游戏。
区块链的每个节点都必须验证用户在区块链上发送给网络的每个计算的有效性。区块链的主要瓶颈之一是如何在不增加验证成本的情况下增加计算带宽,这最终是区块链的去中心化保证。验证成本越高,网络上运行一个节点所需的资源就越多。
区块链向用户收取的GAS Fee与节点必须验证的计算负担成正比。因此,在这个单一的堆栈上,计算成本是相当高的。开发人员不得不在保证低GAS的情况下进行开发,无法展现链上程序的真正潜力。
自从优化Optimistic Rollups 和 Zk-Rollups技术的出现,这种模式已经发生了改变。
计算由高端机器(证明者)在链外运行,同时在结算链上发布欺诈证明(在ORU上)或有效性证明(在ZRU上),这可以证明计算的完整性,或者换句话说,计算已经按照区块链规则执行。
网络节点可以验证所附的证明,其速度和成本比验证计算本身要快几个数量级,因此可以用相当便宜的成本实现复杂的计算,如游戏动态计算。
例如,Starknet、zksync的虚拟机,由Cairo驱动,释放了这种真正的潜力,因为他们的原生编程语言不受EVM的约束。
由于这些证明,有可能成倍地提高计算复杂性和吞吐量,同时保持验证成本的线性甚至更低。
这是区块链扩展的一个基本转变。
在纯区块链上运行一个游戏在经济成本上是不可行的,在可预见的未来也是如此。这就是为什么过去几年发布的大多数区块链游戏都是混合形式的(半中心化),只在链上有其堆栈的几个组件,而在链外专有服务器上运行其游戏逻辑的核心部分。我们将把这个系列的区块链游戏称为弱链上链游(即很少一部分在链上完成)。
像Ax、Crabada和Sandbox这样的游戏就属于弱链上链游类别。
通过链外扩展,用户将能以低廉的成本获得无限的计算。因此,游戏的逻辑可以最终作为智能合约部署在链上。我们将把这个系列的游戏称为强链上链游。
Dope Wars, crpty maze等等,都属于这个类别。
在这篇文章中,我们想探讨一下每个宏观类别的优势和劣势。
弱相关链游
优点
更加直接的规模化 更容易被公众受众所接受 良好的用户体验 低延时 快速修复错误的过程 容易禁止作弊者
弱点
自上而下的开发 封闭的源代码 对相关游戏发行商的信任 可组合性和互操作性的保证较弱 私有化 非持久性
弱链上链游更容易扩展,因为它们在链外保留了大部分的计算。链上的游戏部分通常是游戏中的资产,由NFT代表,以及游戏中的代币,可以在开放和无许可的市场上自由交易和转让。因此,活动发生在链外,然后经济结算在链上完成。
弱相关链游的弊端可以追溯到中心化的根本问题,游戏发行商扮演着中央机关的角色。一个游戏发行商可以单方面开始审查,改变规则,或者消失。
从好的方面看,用户体验与传统游戏相当相似,鉴于游戏的客户端-服务器连接类型,延迟不是问题。任何更新都可以顺利地推出。由于游戏访问是有门槛的,游戏发行商可以禁止那些违反服务条款的玩家。
强链上链游
优点
开源 自下而上的开发 潜在的可组合性和可互操作性 客户端抽象化 信任最小化 无许可的 持久性
一般缺点
用户体验 默认情况下信息不隐藏 玩家可能会被暴露在反向运行和其他形式的MEV中 延迟性 漏洞修复可能需要社会协调 盗版
通过强大的链上游戏,开发者可以利用任何公共的链上组件。
一个物理引擎
一个获取随机性的链上VRF原件
代表技能树的NTF,可以移植到游戏的任何模型上
一个任务发表合约,任何人都可以在游戏中部署和导入他们的任务。
这些只是强相关链游所能促进的例子。
每一个游戏组件都是潜在的可组合和可互操作的,并且可以无限地复制。
这就为无尽的、强大的自下而上的合作奠定了基础。MatchboxDAO就是一个活生生的例子。
强相关链游所解锁的另一个跨世纪功能是客户端抽象。用户不会被迫使用一个特定的平台来玩他们的游戏。他们所需要的一切是对一个节点的访问。他们也不需要等待游戏发行商在他们的平台上发布他们喜欢的游戏。修改者将不会面临任何可移植性问题。
现在让我们来看看强相关链游的一些弱点和未来的挑战。
交互界面/用户体验
在强链上链游中,游戏合约的每个状态变化都需要在链上注册。因此,用户需要为他们愿意在游戏中执行的每个行动签署一个交易。这种方案对于像RTS这样的高速游戏是不可行的。
但随着零知识证明的出现,这一切发生改变
相对于以太坊的账户模型,账户抽象(AA)是一个相当引人注目的改进,像zksync和Optimism这样的新技术正在实施。有了AA,每个外部拥有的账户都是一个智能合约,允许部署强大、安全和高度可定制的智能钱包。这将有可能在高层次上创建与我们与Medici部署的类似的东西,
请注意,模块逻辑甚至可以在热钱包中实现。
玩家将为任何新游戏生成一个带有本地密钥对的新账户。这个被削弱的热钱包将被限制在: (1)将任何游戏中的资产或代币送回主钱包; (2)从代理合同中调用一些有限的允许的功能,这将映射出目标游戏合同的功能。每当用户点击一个指定的游戏动作时,热钱包将调用模块上的相应功能,然后代表用户修改目标游戏合约的底层状态。
这种通过安全飞地的模块化架构将使用户不必为每一个游戏中的动作签署交易,同时保留主钱包的强大安全性。临时密钥对将被限制在调用一组有限的无害功能。
逆向运行和MEV
当玩家向公共mempool发送交易时,如果交易是以可读的形式提交的,他们可能会暴露自己被反追踪。mempool的任何观察者都能够事先知道下一个行动流是什么,并采取相应的行动。
例如,在一个格斗游戏中,玩家1在mempool上提交了一个与High-Kick动作相关的事务。同时,玩家2正在监控mempool,以寻找来自玩家1的任何交易。一旦交易被提交,玩家2可以预见对手的下一步行动,并能够通过提交完美的反击动作来反击它。
玩家1向公共mempool提交High-Kick动作。玩家2正在监控mempool的状态
玩家2用他们的High-Parry反跑了玩家1的High-Kick。
通过加密玩家的行动或通过私人内存池发送交易,可以防止反跑。
除了系统性的反跑剥削,每一个强相关链游都可能出现长尾MEV的形式,或gaMEV,由Briq的Sylve所创造。仲裁、前线运行和其他复杂形式的gaMEV机会将是突出的。我们不可能以一种概括的形式来定义它们,因为它们严格地取决于游戏的架构、动态和元游戏。
在每一种情况下,我们都相信在接下来的几年里,长尾的gaMEV提取将是一个相当突出的活动。
隐藏信息
大多数竞技游戏都依赖于某些不公开的信息。
不幸的是,从本质上讲,公共区块链以清晰可读的方式存储所有信息,世界上任何能接触到节点的人都能访问。这将允许任何观察者只需读取存储在智能合约上的信息,就可以反制其他玩家。
比如一个实时战略游戏,玩家通过生产每个单位类型具有不同属性的战争部队来对抗对方。每个用户对地图的视野都不完整,受限于他们的视线。由于部队的人口统计对战斗的结果至关重要,在战争的迷雾中看到对手正在生产的东西是一种竞争优势。一个能读懂智能合约存储的成熟用户可以根据对手的行为相应地调整他们的策略。
当本应保密的信息在游戏合约上公开时,能够阅读存储字段的人和不能阅读的人之间存在着不对称。由于区块链游戏往往带有金钱奖励,这种非正常手段就会加剧。
异步的回合制游戏可能会实施承诺-披露计划。玩家可以以散列形式发布他们的行动,而不透露他们的基本行动。一旦每个参与者发布了他们的哈希值,他们就可以揭示他们的行动。智能合约将验证每个披露的行动是否与所附的哈希值对应。
自从Zk-Rollups出现以来,这一切已经发生了变化,它完美解决了低gas、快速和可互操作、信任最小化、高安全性,最重要的是:零知识证明是相当强大的加密计算。可以让外部各方(例如执行游戏规则的智能合约)验证状态转换的有效性,同时通过隐藏所采取的步骤及其基础输入来保持计算的私密性。在Maze中,玩家在各个迷宫土地中遇见怪物或者打死boss,但是,他们不需要提交他们的坐标。否则,它们将被利用。相反,玩家提交坐标的哈希值和附加本地生成的零知识证明,让每当他们想从A移动到B时,都需要提供坐标的两个哈希值以及相应的zk证明。只有玩家知道坐标和状态转换,因为它们存储在本地。每个外部用户只能看到哈希和 zk 证明。所以,他们有效防止外挂的产生。
ZKPs有一个缺点是,它们的生成是相当密集的计算。例如,现在生成一个z块,在一个现代设备上可能需要几秒到几十秒。虽然,它甚至可以委托一个代表你生成ZKP。
在每一种情况下,对于实时游戏来说,在接下来的几年里,生成ZKP将需要缩小到几秒钟以内。希望我们能达到这个目标。
延迟问题
考虑到成千上万的用户通过调用公共RPC端点,每秒产生数十万个智能合约的读取。这可能会迅速升级为网络过载的事件,从而游戏会出现高延迟。理想情况下,每个用户都应该能够在他们的浏览器/设备上运行他们的本地节点。
此外,链上游戏的安全假设可能比链上金融相关的活动要弱,因为伪造攻击的经济损失要小几个数量级。因此,从安全的角度来看,运行一个本地的轻型节点可以说是足够好了。
以太坊的无状态客户端 Verkle树,Mina的递归zkSNARKs,以及Polkadot的Substrate Connect都是走这条路。
然而,RPC拥堵问题只是延迟问题中的一个。由于网络的点对点性质,玩家可能因为网络拓扑结构而遭受高延迟。
我们读到的一个解决延迟问题的方法是Xaya团队开放游戏通道。作为状态通道,玩家可以打开一个直接的链外通信通道,在那里他们将发挥他们的动作,同时不时地更新链上的状态,如果合同状态需要根据游戏规则被推翻。
这将允许实时互动,直到参与各方之间延迟最小。
玩家在链外的直接通信渠道中进行互动,只有在需要时才在链上结算。
然而,在两方之间开设链外通道可能会引入两个主要的缺点。
(1)在没有中央机构的情况下建立事件的顺序
(2)防止拒绝服务攻击
比如一个FPS游戏的两个玩家之间的游戏通道,两个对手之间有一些延迟。在某个时刻,他们来到对方面前,同时扣动扳机。从玩家A的角度来看,他们先开枪。但玩家B却看到了相反的情况。我们如何确定谁先开枪?上述情况又回到了分布式系统中的根本,即时间问题。除此之外,当打开一个直接通道时,玩家将他们的IP暴露给对方,使他们有可能受到拒绝服务攻击。
目前还不清楚这些缺点将如何以可扩展和信任最小化的方式得到解决。
在比特币的闪电网络上,第三方可以运行Watchtowers,以检测和防止不诚实的交易方在出现漏洞时脱机或无法回应时,窃取用户的资金。
以类比的方式,让受信任的第三方作为游戏渠道内的计时机构,可以成为解决时间纠纷的满意方案。实施一个带有链上削价机制的n-of-m方案甚至是可能的。在每一种情况下,都可能出现一个提供这种服务的有信誉服务商。
即使上述方案会在游戏中引入一个中心化的组件,这些第三方可能造成的最大伤害是通过提供不正确的信息来影响游戏回合的结果,但绝不会窃取用户的资金。而且,如果被发现有不诚实的行为,他们可能会失去他们的声誉,他们的客户,甚至是他们的股价。
结论
上述内容只是链游所面临的全部挑战中的一个子集。我们还没有触及还原交易、数据存储和其他一些问题。构建者将不得不把他们的游戏与区块链架构的技术挑战和去中心化特性结合起来。
尽管如此,链上的可组合性和互操作性是令人难以置信的强大手段。一个全新的人类协调、元宇宙游戏和MEV机会将在未来出现。
现在,区块链的扩展正在慢慢成为现实,期待强相关链游似乎是一个自然的转变,特别是在高度可扩展的环境。