撰写:Mohamed Fouda 编译:深潮 TechFlow
运用程序 Rollup 正在成为扩展一组特定以太坊运用程序的明显赢家。这些运用程序获益于无需答应和强壮的一切权确保,但不需求一切运用程序用户之间一起交互。彻底链上的游戏是最好的比如。链上游戏获益于游戏财物强有力的一切权,答应匿名参加游戏和答应匿名修正游戏。尽管如此,大多数游戏不需求一切玩家一起互动。其他能够获益于运用程序 Rollup 扩展战略的运用包含 NFT 商场,永续交流和链上 AI 推理。
运用程序 Rollup 已经是许多这些运用情况的首选完成。可是,规范的 Rollup 完成,即 EVMRollup,依然有重要的可扩展性约束。它们或许到达每秒大约 100 笔买卖的吞吐量。关于某些链上游戏来说,这种吞吐量或许足够,这取决于游戏类型。可是,大多数游戏需求更高的吞吐量来支撑很多的并发玩家(超越 1000)。本文要点介绍运用程序 Rollup 扩展以覆盖数十万并发参加者的办法。关于每种办法,我都会讨论适宜的运用程序/游戏类型及其面对的应战。
水平扩展
水平可扩展性是扩展运用程序 Rollup 的最简略办法。可是,这种简略性以献身组合性为价值,这使它们只适合于一小部分运用,例如单人游戏。
水平可扩展性的意思便是简略地布置多个运用程序 Rollup(Optimistic 或 ZK),并在一切 Rollup 上布置相同的智能合约。运用程序的前端会依据容量、方位或特定的运用程序选项,无缝地将用户引导到其间一个 Rollup。Alt Layer 最近经过发动一个可扩展的 2048 FOCG 游戏来演示了这个概念。在游戏的前端,用户能够依据他们的地理方位挑选加入哪个 Rollup。由于其简略性和 Caldera 等 Rollup 即服务提供商的可用性,这些提供商处理与旋转和办理这些 Rollup 相关的一切根底设施工作,这种办法能够被游戏开发者轻松选用。
尽管如此,多 Rollup 扩展办法存在一些问题。第一个问题是 Rollup 网络切换。当时钱包,例如 Metamask,需求手动同意连接到一个新的网络,即 Rollup 实例。这会给玩家带来困难和混乱的用户体验,由于玩家需求手动连接到多个“网络”来玩同一个游戏。走运的是,能够用帐户笼统(AA)解决方案来抹去这种复杂性。例如 EIP 4337 和嵌入式钱包,如 Privy 和 0xPass。
另一个应战是在 Rollup 之间过渡期间办理玩家的状况。在某些情况下,例如容量下降,运用程序或许需求将多个 Rollup 实例合并到单个实例中,以节约资源。在这种情况下,一切活动玩家的状况都需求迁移到新的实例。当时的桥接解决方案,特别是 zk 桥,能够在解决此问题方面发挥要害作用。运用这些解决方案,能够将玩家的游戏状况桥接到一个新的 Rollup 实例,一起坚持对该状况有效性的证明。可是,现有桥接解决方案的延迟对游戏用例来说或许不是最佳的。
ZK 状况通道
另一种更适合多人游戏(例如扑克)的运用程序 Rollup 扩展办法是 ZK 状况通道。在这些游戏中,玩家交互发生在少数玩家之间,例如 2-10 人。这些玩家之间的游戏玩法只在游戏进行时很重要。但是,游戏的终究成果更重要,由于它会影响每个玩家的财物余额。因而,将成果存储在同享的持久层中很重要。
在这种情况下,运用程序 Rollup 表明同享信息层,游戏成果存储在这儿,游戏财物也存在这儿。关于 Rollup 上的每个游戏,能够发动一个 ZK 状况通道来服务这个游戏。在游戏玩法期间,每个玩家生成买卖并创立 ZKP,证明他们遵循了游戏规则。其他玩家交互的证明运用递归证明聚合上一个证明。当游戏结束时,终究 ZKP 被提交到运用程序 Rollup,以证明游戏玩法和终究成果的有效性。游戏发生的状况改变改变了运用程序 Rollup 上的玩家状况。
ZK 状况通道将游戏交互转移到链下。因而,游戏中的活动和买卖不计入运用程序 Rollup 的吞吐量。运用这种办法,运用程序 Rollup 能够大规模扩展,支撑成千上万的并发玩家。运用程序 Rollup 的买卖将仅仅验证生成的 ZKP 和状况更新买卖,扩展因子为 100-1000 倍。包含 Ontropy 在内的多个团队一直在开发这项技能。
这种办法的一个缺点是,它要求玩家在自己的设备上运转游戏逻辑并生成 ZKP。一般这些证明很轻量,并凭借 Halo2 等前沿证明体系,证明能够在短短几秒内完成。但是,这仍或许导致资源有限的设备的玩家体验下降。
缓解此问题的办法修正之一是将 zk 状况通道参加者之一指定为暂时排序器。该排序器将接收每个玩家的买卖并生成相应的 ZKP,并与一切通道参加者同享 ZKP。这个修正能够被以为是向运用程序 Rollup 进行结算的时间短 ZK L3。Cartridge 团队经过规划名为 Katana 的专用排序器来完成这种架构。
zk 状况通道办法具有巨大的潜力。但是,与 zk 状况通道内的履行环境以及怎么优化递归证明有关的几个敞开性问题。当时的 zkEVM 环境效率不高,并且大多数目前不支撑证明递归。替代方案包含轻量级的 zkVM,或许如果玩家的或许动作数量有限,甚至运用专门的 zk 电路来处理玩家交互。
改变履行环境
扩展运用程序 Rollup 的第三种办法是改变 Rollup 的履行环境。尽管 EVM 开发工具的成熟和丰富,但它们不适合高性能运用,如游戏。此外,EVM 的单线程履行和存储模型会导致吞吐量下降,这能够经过改进来进步。
这种办法的首要优势在于,进步 Rollup 吞吐量不需求献身组合性或约束用例数量。只要履行环境能够到达运用程序所需的吞吐量,这种办法就能够用于任何 Web 3 运用程序。这使它们成为需求访问同享状况的运用程序的唯一可行解决方案,例如 AMM、借贷协议和其他 DeFi 运用程序。
经过预编译扩展 EVM 功能
首要,Rollup 坚持 EVM 兼容,并经过预编译地址吞吐量的一些约束。这儿的主意很简略。预编译便是将计算密集型的 EVM 操作下移到节点级别。一个需求数百或数千个 EVM 操作码并消耗 10 万+Gas 的操作能够简化为一个操作,Gas 本钱下降 100 倍。扩展 Rollup 环境的预编译一般称为 EVM+。这种办法的示例包含支撑链上隐私和支撑更高效的签名方案,例如 BLS 签名。例如,zkHoldem 扑克游戏运用专用的 FHE 和 zk 操作完成私人扑克牌发牌和展示。这些专用预编译的开发一般是运用程序 Rollup 开发者和办理运用程序 Rollup 根底设施布置和维护的 Raas 提供商之间的共同努力。
运用非 EVM 履行环境
改进 Rollup 履行环境的另一种办法是摆脱 EVM。这种办法在以太坊生态体系中的新开发者以及以为 Solidity 不是开发复杂运用程序的最佳言语的开发者中越来越受欢迎。
今天,我们有在 WASM、SVM、Cairo 甚至 Linux 运转时上运转的 Rollup 运用程序。这些办法中的大多数答应开发者运用高级言语(如 Rust 或 C)编写智能合约。缺点是经常会丢失与现有 Solidity 合约的互操作性。可是,依然能够创立与 EVM 的兼容性。例如,Aributrum 的 stylus 选用协处理器使 Stylus 合约兼容 EVM。这种规划使 Stylus 更接近于 EVM+体系结构而不是非 EVM。
混合履行环境
第三种办法,特别遭到 FOG 欢迎,是结合前两种办法的最佳特性。这种办法将 EVM 兼容性与专用非 EVM 履行环境相结合。非 EVM 环境专心于核心游戏原语的高性能履行。游戏财物办理,例如游戏内 NFT 买卖能够由规范 Solidity 合约处理。
这种办法的优势在于 EVM 兼容性确保与更大的开发者生态体系和现有产品坚持一致。它还答应无需答应的可组合性。开发者能够经过添加 EVM/Solidity 智能合约来修正和扩展游戏逻辑。与此一起,专用非 EVM 游戏引擎完成了 EVM 无法满足的高吞吐量。
这种办法的比如是 Argus 的 World Engine 和 Curio 的 Keystone。World Engine 将游戏逻辑的履行分离到一个单独的层,称为 Game Shard,它在 EVM 兼容层之上运转。Game Shard 还规划为答应水平扩展,以依据需求调整总 Rollup 吞吐量。类似地,Curio 的 Keystone 架构将高吞吐量游戏引擎与 EVM 捆绑在一起作为 Rollup 履行环境。这儿的应战是完成 EVM 引擎和游戏引擎之间的无缝互操作性。
数据可用性考虑要素
在前面的讨论中,要点是添加 Rollup 买卖吞吐量,这是扩展运用程序 Rollup 的首要方面。与这种添加的吞吐量相关的其他论题包含数据可用性(DA)、排序器去中心化和结算速度。关于高吞吐量的运用程序 Rollup,数据可用性是这些问题中最紧迫的。
单个运用程序 Rollup 的吞吐量或许超越每秒 1 万笔买卖。运用以太坊作为这些买卖的数据可用层是不或许的。首要,在 L1 上发布简略 L2 ETH 转账数据的均匀本钱能够超越 0.1 美元。这些本钱对大多数运用程序 Rollup 来说太高了。更重要的是,以太坊的 L1 当时不能支撑超越大约每秒 8 千笔买卖用于利用 L1 进行数据可用性的 Rollup。
运用程序 Rollup 将首要依赖于外部 DA 解决方案。Celestia 和 EigenDA 目前被定位为运用程序 Rollup 的最可行挑选。例如,Eclipse 计划运用 Celestia 作为其高吞吐量 SVM 根底 Rollup 的数据可用层。Argus 和高吞吐量游戏引擎也计划最初运用 Celestia。类似地,EigenDA 许诺的数据吞吐量高达每秒 10MB,也能够为多个运用程序 Rollup 提供可行的解决方案。
但是,集成 Celestia 或 EigneDA 的首要缺点是经济价值泄漏。运用程序 Rollup 有必要为 DA 层付出费用,以及以太坊 L1 上的结算费用。结算费对运用程序 Rollup 很要害,由于它将 Rollup 的安全性与以太坊的安全性联络在一起。DA 确保在 FOG 布景下买卖价值远小于这些网络的情况下不太重要。此外,Celestia 和 EigenDA 许诺低费用,由于这些网络刚刚发动,最初利用率会很低。当这些 DA 网络完成高利用率时,DA 费用也或许变得过高。在我看来,运用程序 Rollup 应该运用一个简略的数据可用性委员会(DAC)来证明 Rollup 数据的可用性。
总归,我以为运用程序 Rollup 是扩展高吞吐量运用程序(尤其是彻底链上游戏)的最佳现有解决方案。扩展这些运用程序 Rollup 是完成超越原生加密用户的干流选用的要害。
此时快讯
【某巨鲸将15175ETH转入Kraken,仍持有2万ETH】金色财经报道,据链上分析师余烬监测,某鲸鱼在2018/10/2-2022/11/14期间以415美元均价从Kraken累计提出了35175ETH(1460万美元)。在今天市场反弹后,他在过去的3个小时里已将15175ETH(2440万美元)转入Kraken,地址内目前还有2万ETH(3215万美元)。目前ETH价格相较他的提出均价,上涨了2.87x(+4195万美元)。