本文来自 Dialectic ,原文作者 aaaaaaaaaa, 由 Odaily星球日报十文编译。
游戏行业正在慢慢意识到区块链技术能极大地改变游戏格局,并使玩家受益。
但是区块链技术正受制于可扩展性的瓶颈,需要在保证去中心化、不增加验证成本的情况下,增加计算带宽。
同时,区块链需要向用户收取与节点验证成比例的货币费用。因此,链游的计算成本相当高。开发人员被迫绕开这些限制编写代码,却又导致无法表达链上应用的真正潜力。
幸好,当 Optimistic Rollups 和 Zk-Rollups 出现时,链游的可扩展性范式发生了变化。
计算由高端机器(证明者)在链外运行,同时在结算链上发布欺诈证明(Op)或有效性证明(Zk),这可以保证计算的完整性。
这样一来,网络节点可以更快、更便宜地验证附加证明,从而以低成本实现复杂计算,例如游戏动效展现。
比如,由 Cairo 支持的 Starknet 虚拟机就释放了这种潜力,因为他们的本地编程语言不受 EVM 约束。
多亏了这些 Rollups,计算复杂度和吞吐量才有可能以指数方式增加,同时保持验证成本线性(甚至更低)。这是区块链扩容的范式转变。
说回到游戏场景,在单一区块链上运行游戏的每个单元在经济上是不可行的,未来亦是如此。这就是为什么在过去几年发布的大多数链游都是混合形式的:它们的堆栈只有少数组件在链上,而其游戏逻辑的核心部分则在链下专有服务器上运行。我们将这一系列区块链游戏称为弱链上游戏。
Axie Infinity、Crabada 和 The Sandbox 等都属于这一类。
另一边,通过链下扩展,开发者可以以低廉的成本提供更多计算资源。因此,游戏的逻辑最终是可以作为智能合约部署在链上的。我们将这一系列游戏称为强链上游戏。
Dope Wars、Briq、Loots、The Realms、The Nineth 和 Influence 等等,都属于这一类。
在本文中,我们将探讨这两个类别链游的优势和劣势。
弱链上游戏
优势
弱势
弱链上游戏更容易扩展,因为它们将大部分堆栈保留在链下。链上的游戏部分通常是以 NFT为代表的游戏内资产和游戏内代币,它们可以在开放和无许可的市场上自由交易和转移。因此游戏发生在链下,然后经济结算在链上完成。
弱链上游戏的缺点可以追溯到中心化的根本问题,游戏发行商扮演中央角色,随着时间的推移可能会发生寻租(为获得和维持垄断地位从而从事的一种非生产性寻利活动),游戏发行商可以单方面开始审查、更改规则或者突然消失。此外,弱链上游戏也无法保证互操作性和可组合性,因为游戏逻辑是脱链的。
从好的方面来说,用户体验与传统游戏非常相似,考虑到游戏的客户端- 服务器连接类型,延迟不是问题。任何更新都可以顺利推出。由于游戏访问是封闭的,因此游戏发行商可以禁止违反服务条款的玩家。
强链上游戏
优势
弱势
机器人
每个游戏组件都是可组合和可互操作的,并且可以无限复制。
这为无休止和强大的自下而上合作奠定了基础。MatchboxDAO 就是一个明显的例子。
强链上游戏解锁的另一个重要功能是客户端抽象。用户不会被迫使用特定的平台来玩他们的游戏。他们需要的只是访问一个节点。他们也不需要等待游戏发行商发布游戏。模组制作者也不会面临任何可移植性问题。
现在让我们来看看强链上游戏的一些弱点和未来挑战。
用户界面/用户体验
在强链上游戏中,游戏合约的每一次状态变化都需要在链上进行注册。因此,用户需要为他们在游戏中执行的每个动作签署交易。这种方案对于RTS这样的高速游戏是不可行的。
账户抽象(AA)是对以太坊账户模型的一个明显改进,Starknet 和 Optimism 等 Rollups 正在实施。使用 AA,每个外部拥有的账户都是一个智能合约,允许部署强大、安全和高度可定制的智能钱包。
这种智能钱包可以让用户不必为每个游戏中的动作签署交易,同时可以在主钱包上保持强大的安全性。
回溯和 gaMEV
当玩家将交易发送到公共内存池时,如果交易以可读的形式提交,他们就可能将自己暴露在反向运行中。内存池的任何观察者都将能够提前知道下一个动作流将是什么并采取相应的行动。
例如,考虑一个格斗游戏,其中 Player1 提交与内存池上的动作(比如高抬腿踢)相关的交易。同时,Player2 正在监控内存池中来自 Player1的所有交易。交易一提交,Player2就可以预见对手的下一步行动,并完美反击对手。
Player1 将 High-Kick 动作提交到公共内存池。Player2 正在监听内存池
Player2 用他们的 High-Parry 反击 Player1 的 High-Kick
这类问题的解决方案是:通过加密玩家的行为或通过私人内存池发送交易,来防止回溯或被预判。
除了系统性的逆向开发之外,每一个强链上游戏都可以呈现长尾 MEV 或 gaMEV 的形式,例如 Briq 的 Sylve所创造的那样。套利、抢先交易和其他复杂形式的 gaMEV 机会将很突出。由于它们严格依赖于游戏的架构、动态和元游戏,因此无法以一般化的形式定义它们。
在各种情况下,我们相信长尾 gaMEV 提取将在接下来的几年中成为一项非常突出的活动。
信息隐藏
大多数竞技游戏依赖于某种程度的隐藏信息。
但是,公共区块链却以清晰易读的方式存储所有信息,世界上任何有权访问节点的人都可以访问。这就导致任何观察者都可以通过读取存储在智能合约上的信息来利用其他玩家。
想象一下在一个实时战略游戏中,玩家通过组建不同属性的战争部队来相互对抗,每个用户因为视野受限只可看见部分游戏地图,由于部队的人口结构对战斗结果很重要,因此在战争迷雾中看到对手的作战策略是一种竞争优势。而区块链技术可以通过读取智能合约来窥探对方的作战方法,从而调整自己的策略。
当本应保密的信息在游戏合约上公开时,可以读取存储字段的人和不能读取存储字段的人之间就存在不对称性。由于区块链游戏通常带有金钱奖励,因此这种利用过程更加严重。
异步回合制游戏可能会实施提交-显示方案。玩家可以用非中心化的形式发布他们的行动,而无需透露他们的潜在意图。
另一种解决方案是利用零知识证明。如本文开头所述,ZKP是非常强大的加密原语。它可以让外部方(例如执行游戏规则的智能合约)验证状态转换的有效性,同时来保持计算的私密性。
Dark Forest是一款完全上链的 MMO,率先使用 zkSNARKs 来保护游戏内信息的私密性。在 DF中,玩家可以在宇宙中征服行星。但是,他们不需要提交他们所征服的行星的坐标。而是提交散列的坐标和本地生成的 zk-proof。同样的,每当他们想从 A星球移动到 B 星球时,他们需要提供两个星球坐标的哈希值加上对应的 zk- proof。只有玩家知道坐标和状态转换,因为它们存储在本地。每个外部用户只会看到哈希和 zk-proof。
来自黑暗森林博客的方案
ZKP 的最大缺点是生成它们的计算量非常大。例如,在现代设备上生成 zkSNARK 可能需要几到几十秒。
但对于实时游戏来说,我们希望 ZKP 的生成时间能缩短到亚秒级。
延迟
如果成千上万的用户通过调用公共 RPC端点每秒读取数十万次智能合约,有可能迅速造成网络过载。理想情况下,每个用户都应该能够在他们的浏览器/设备上运行他们的本地节点。
此外,链上游戏的安全可能比链上金融相关活动更弱,因为伪造攻击造成的经济损失要小几个数量级。因此,从安全的角度来看,运行本地轻节点可以被认为是足够好的。
以太坊的无状态客户端 + Verkle 树、Mina 的递归 zkSNARKs 和 Polkadot 的 Substrate Connect都是朝着这条道路迈出的。
然而,RPC 拥堵问题只是延迟问题之一。由于网络的点对点性质,玩家可能会因为网络拓扑而遭受高延迟。
延迟问题的一种解决方案是 Xaya 团队的游戏频道。作为状态通道,玩家可以直接打开一个链下通信通道,他们可以在其中玩自己的动作,同时不断的更新链上状态。
它将允许实时交互能够降低到相关方之间地理距离最小的延迟限制。
玩家在他们的直接沟通渠道中进行链下交互,仅在需要时进行链上结算。但是,在两方之间打开链下通道可能会带来两个主要缺点:
在没有中央机构在场的情况下建立事件的顺序;
防止拒绝服务。
考虑一个 FPS 游戏的两个玩家之间的游戏通道,两个对手之间有一些延迟。有时,它们会出现在彼此的前面并同时扣动扳机。从玩家 A的角度来看,他们先出手。但是玩家 B看到了相反的情况。我们如何确定谁先开枪?以上可以追溯到分布式系统中的根本时序问题。除此之外,当打开一个直接通道时,玩家会互相暴露他们的 IP,使他们可能更容易受到拒绝服务攻击。
目前尚不清楚如何以可扩展和信任最小化的方式解决这些缺点。
在比特币的闪电网络上,第三方可以运行 Watchtowers 来检测并防止不诚实的交易对手在用户离线或在违规时无法响应时窃取用户的资金。
以类似的方式,让受信任的第三方作为游戏频道内的计时机构可能是解决争议的令人满意的解决方案。
尽管上述方案会在游戏中引入中心化组件,但这些第三方可能造成的最大伤害是通过提供不正确的信息来影响游戏回合的结果,但绝不会窃取用户的资金。而且,如果被发现行为不诚实,他们可能会失去声誉、客户甚至股份。
结论
以上只是强链上游戏面临的挑战中的一部分。我们还没有涉及到还原交易、数据存储等等。 建设者将不得不围绕区块链架构的技术挑战和负外部性来开发他们的游戏。
尽管如此,链上可组合性和互操作性仍然是非常强大的手段。人类协作、元游戏和 MEV 机会的全新水平将在未来几年内出现。
现在区块链扩展正在慢慢成为现实,有了高扩展性方案的支持,我们期待看到更强大的链游出现。
Leave a Reply