Paima引擎创始人详解Redstone的核心优势与潜在障碍

原文标题:Should you use Redstone for your next onchain game?

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

Lattice团队最近推出了Redstone,一个新的Layer 2,他以OP Stack为基础进行开发并做出了重要改进(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获取最新的数据),这绝对是朝正确的方向迈出了一大步。

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风险和黑客攻击。

Subscribe to FunBlocks
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.