Paima 引擎创始人详解 Redstone 扩容方案:核心优势与潜在障碍
2023-12-15 01:00
MetaCat
2023-12-15 01:00
MetaCat
2023-12-15 01:00
订阅此专栏
收藏此文章
原文标题:Should you use Redstone for your next onchain game?

原文链接:https://blog.paimastudios.com/use-redstone/

Lattice 团队最近推出了Redstone,一个新的 Layer 2,他以 OP Stack(https://stack.optimism.io/)为基础进行开发并做出了重要改进(OP Stack 是为 Optimism L2 提供支持的技术栈)。

因此,很多人都想知道,“这个 L2 适不适合构建全链上游戏?他与其他方案有哪些区别?”作为全链游戏的顶尖开发者之一,我们的 Paima Studios 已经在多条链上部署并运行了自己的游戏,很多人都向我们咨询我们的看法,所以我们将在本文中尽量详细地解释一下其中的细节。

“提示:这篇文章写于 Redstone 刚刚发布的时候。但 Web3 是个变化非常快速的领域,由于官方后续可能会发布更多关于 Redstone 的信息,所以建议你用开放的心态来阅读本篇文章。”

要理解 Redstone 以及他的核心优势,首先要了解他与市场中其他主流方案有什么区别。在这篇文章中,我们通过让你理解 Redstone 的设计理念,为你提供一个正确的思维框架。无论接下来还会发布哪些新信息,都可以更好地理解他们的意义。

01.使用公链时的成本构成

假设你想开发一款全链游戏。既然 Redstone 是一个以太坊的 L2,我们就假定你已经决定使用以太坊。

那么,为什么不直接把游戏部署到以太坊上呢?你可能知道这是因为成本太高(写这篇文章的时候,每个游戏交互的成本都要超过 1 美元),但你知道为什么成本这么高吗?

其中的成本主要包括两部分:执行成本(cost of execution)与数据存储成本(cost of data storage),这两者对于游戏来说都非常昂贵。但就像 CPU 比硬盘更贵一样,实际上执行成本远远高过存储成本。那么,如果我们能找到一种方法把执行成本转换成存储成本,会怎么样呢?好消息是:rollup 方案就是这么解决问题的。

02.Rollups 扩展方案

Rollups 有很多种形式,每一种都用自己的方式把执行成本转化为存储成本:

(1)Optimistic rollups:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)和你在链下计算的结果存储到链上。只有当有人认为你发布的结果不正确的时候,才会在链上进行执行(“欺诈证明”)。

使用该方案的产品:Arbitrum,Optimism

(2)ZK rollups:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)和计算结果的本地 ZK 证明存储在链上。

使用该方案的产品::ZK Sync,Starknet,Polygon zkEVM

(3)Sovereign rollup:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)存储在链上。

使用该方案的产品Rollkit,Paima Engine

利用这些方案,你可以把游戏的交易成本降低到大约 0.05 美元左右(请参考 l2fees:https://l2fees.info/ 获取最新的数据),这绝对是朝正确的方向迈出了一大步。

03.如何继续降低 L2 的成本

显然,继续降低 L2 的成本对于全链游戏的发展至关重要。虽然 rollup 的价格在逐渐降低(计算机变得更快,ZK 技术变得更成熟等等),但目前最大的成本不是在链下进行计算,而是把数据存储到 L1 的成本。

为了解决这个问题,以太坊将引入一种更便宜的数据存储方式(也就是 EIP4844),其中将数据改为临时存储(存储大概可以维持两周时间,这样就可以发布任何欺诈证明,并且让数据在全球的节点之间广泛复制)。

但 EIP4844 依然存在一些缺点:

  • 数据只是临时存储(你需要找到另一种存储方案来托管数据);
  • 数据大小依然存在限制,每个区块的存储上限大约是 2 MiB(在以太坊上的所有 rollup 之间共享);

所以,虽然大家正在努力降低成本,但由于对区块链空间的需求持续增长(消耗的速度超过了技术创新的速度),这些努力还不足以让全链游戏在 L2 上变得经济可行。

备选方案 1:将数据存储到中心化服务器上(或一组服务器上)

为了降低成本,一种选择是简单地把数据存储在你信任的中心化服务器上,然后只在链上发布数据的哈希。这个想法的一个变体是使用一组独立运行的服务器存储数据并进行多重签名。这样的方案叫做“数据可用性委员会”(DAC),这就是 Arbitrum Nova,Arbitrum Orbit 和 Polygon CDK 所采用的方案。

这些方案要便宜得多(如果忽略费用市场,那么 Arbitrum Nova 的每笔交易大约是 0.001 美元),但这种方案牺牲了网络的去中心化。主要的风险是如果 DAC 停止托管数据(比如,他们发布了哈希,但是没有共享哈希对应的数据),那么网络就会停止运行。

关于 Arbitrum 的特别说明

你可能好奇为什么 Arbitrum 在列表中出现了两次。目前,Arbitrum 提供了三个主要的解决方案:

  • Arbitrum One:主要的 Arbitrum 网络,是一个完整的以太坊 L2,数据存储在以太坊上;
  • Arbitrum Nova:使用 DAC 的 L2;
  • Arbitrum Orbit:在 Arbitrum One 上创建的 L3 技术栈;

正如你所看到的,Nova 的问题在于没有很好的方法让你的游戏整合现有的 DeFi 应用(用户必须花费大量 gas,以从 Arbitrum Nova 跨链到 ETH L1,再跨链到 Arbitrum One 才能使用 Arbitrum One 中的 DeFi 协议),而新的 Arbitrum Orbit 可以允许你直接进行 Arbitrum Orbit 到 Arbitrum One 的跨链。

Orbit 作为一个创建第三层(L3)的技术栈,使得开发者可以利用现有的 Layer 3 解决方案,例如 Xai Games,他使用自己的数据可用性委员会(DAC)。或者,开发者也可以创建自己的独立 Layer 3 解决方案。(但如果你开发的是一个针对特定游戏的 Layer 3,其与以太坊的唯一联系只是偶尔发布哈希值,那么你可能会更适合使用一个介于传统网络(web2)和完全去中心化网络(web3)之间的解决方案,即所谓的“web2.5”。)

备选方案 2:把数据存储在另一个去中心化的网络上

除了等待 EIP4844 在以太坊主网生效(而且即便生效也还要受到带宽限制),像 Celestia、Avail 和 EigenDA 等其他项目决定将类似的概念做成一条单独的链(数据可用性(DA)层),通过专注于解决这个问题,他们提供了比以太坊主网计划支持的更大的数据存储空间。这些平台不支持智能合约,只被作为 L2 的数据可用性层。

值得注意的是,你可以创建一个像 Arbitrum Orbit 那样,把 Celestia 作为数据可用性层的 OP Stack。但这样做也需要做出一些取舍:

  1. 信任:这个 rollup 的安全性除了以太坊以外,还要受到 DA 层安全性的影响(但已经比 DAC 更安全);
  2. 成本:这个 rollup 需要向 DA 层支付安全费用(必须使用 DA 层的本地代币支付);
  3. 速度:Celestia 的区块时间是 15 秒,Avail 的区块时间是 20 秒。例如,数据需要先在 Celestia 上确认,然后才能通过 Celestia 的 blobstream 合约桥接到 EVM。不过,这一点要打个折扣,因为所有的 L2 一般都有比以太坊更快的区块时间(尽管以太坊的区块时间只有 15 秒,但 Arbitrum 使用的区块时间比这还快);

这种架构通常被 Mantle(OP Stack + EigenLayer DA)和 Manta Pacific(OP Stack + Celestia)所使用。他们的成本尚待观察,但 Celestia 团队声称大约为 0.001 美元,这意味着与在 EVM 上的执行成本相比,DA 层上的存储成本是最低的。

备选方案 3:将数据存储在可挑战的 DAC 中

最后,我们来看看 Redstone 采用了什么方案。如果你不喜欢将数据存储在 DA 层时必须做出的取舍,也不喜欢 DAC 的中心化。那么你可以构建一个 DAC,在这个 DAC 中,如果委员会不提供数据,你可以对其进行经济处罚。

为了辅助理解,我们重新梳理一下 DAC 协议的工作流程:

如何写入数据

  1. Redstone 的排序器收到你的交易;
  2. 排序器把数据发送到 DAC 进行存储;
  3. DAC 返回确认,数据已经存储;
  4. 排序器将数据的哈希发布到 L1;

如何读取数据

  1. 同步以太坊链,找到提交到 rollup 合约的哈希;
  2. 从 DAC 请求哈希对应的数据;
  3. 根据这些数据计算 L2 的状态;

那么 Redstone 有什么不同

在读取数据的时候,如果数据不可用,你可以挑战 DAC,声称他未提供数据(也就是说,数据无法从他们的服务器下载)。

为了有效地激励大家保持诚实,我们制定了以下的惩罚规则:

  1. 如果挑战者不诚实(数据确实可用),他们将受到惩罚(否则,他将可以通过挑战每个区块来对网络进行攻击);
  2. 如果 DAC 不诚实(数据不可用),他们将被处罚;

这似乎是一个简单的解决方案,但问题在于如果出现问题,如何确定谁是真正的责任方。想象一下以下情景:

  1. 排序器发布了哈希,但没有分享实际的数据;
  2. 有人挑战了排序器;
  3. 排序器在看到挑战后又提供了数据;

如果你是一个没有在实时监控链的整个运作过程的外部观察者,数据看起来是可用的(如果你事后查询 DAC,你会得到预期的数据),所以看起来挑战者在撒谎,而实际上他并没有。

如果你对这个问题的解决方案是假设排序器永远不会撒谎,那么为什么不使用标准的 DAC 呢?此外,假设排序器是诚实的,与共享排序器“superchain”的理念不太相符,这意味着资产无法使用共享排序器在 OP Stack 链之间转移(因此你会遇到与 Arbitrum Nova 相同的问题,除非 Redstone 以 L3 的形式部署)。

Lattice 计划如何处理这些问题,将是未来更详细文档和路线图发布时需要关注的重点。

备选方案 4:使用 ZK 零知识证明

请注意,Redstone 存在的数据不共享问题(数据扣留攻击)并不局限于 Optimistic Rollup。将数据存储在链外的 ZK Rollup(通常被称为“Validiums”)也面对同样的问题,这就是为什么人们通常更偏好那些将所有数据发布到链上的 Rollup 的原因。

因此一般来说,ZK Rollup 并不能帮助你安全地降低游戏的数据存储成本。即便他们显然可以以各种其他的方式帮助扩展你的游戏(将更多计算移到用户的本地计算机上,使用递归证明批处理许多交互,无论是 Rollup 方式还是状态通道方式等),但这就是另一篇文章的话题了。

如果 Solidity 本身就存在问题,那我该如何降低我的游戏成本?

在整篇文章中,我们讨论了如何处理存储成本。然而,一些游戏可能受到 CPU 限制(即使他们在一个中心化的 EVM 链上运行)。如果你是这种情况,你可能会对使用 Sovereign Rollup 感兴趣,比如你可以使用 Paima 引擎扩展游戏性能并超越 EVM 的自身限制。

Paima 引擎允许使用 Javascript 创建特定应用程序的状态机,你可以将其部署到你选择的任何 EVM 链上(包括 Redstone!)。这些 Sovereign Rollup 可以访问 EVM 信息(包括 MUD 引擎数据),因此可以作为使游戏的任何部分运行更快且更便宜的绝佳方式。

04.结论

总之,降低数据成本是降低全链上游戏成本最关键的一步。今天存在许多不同的解决方案,具有不同的权衡,Redstone 将自己称为比标准 DAC 更安全的解决方案,但是否意义大到足以替代数据可用性(DA)层解决方案还有待观察。而对于需要在数据之上扩展计算的项目,像 Paima 引擎这种解决方案也可以解决问题。

最后的免责声明:请记住 Redstone 的详细信息尚未完全公布。这篇文章旨在为你提供正确的思考框架,以便于理解他们未来的进展,所以让我们保持开放的心态,看看他们未来还会发布什么有意思的信息。

Paima Studios

Paima Studios 成立于 2022 年 4 月,是 Paima 引擎的核心贡献者:这是一种使用新型 layer 2 技术构建的 Web3 引擎,帮助开发全链上游戏、Gamefi 和自主世界。Paima 引擎是进入 Web3 安全且简便的方式,他可以利用现有的 Web2 技能,且可以保护用户或开发者免受常见的 Web3 风险和黑客攻击。




扫描二维码加入社群

关于我们:

FunBlocks 是一家聚焦全链游戏(Fully On-Chain Game)与自主世界(Autonomous World)最新发展动态的媒体。我们相信为玩家创造快乐才是区块链游戏的价值所在!

中文推特:https://twitter.com/0xFunBlocksCN
英文推特:https://twitter.com/0xFunBlocks
Mirror:https://mirror.xyz/0x949B1fE8B1860E51fa550131EB0F21729cA68A1A

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

MetaCat
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开