不同类型的第 2 层

2023 10月 31查看所有帖子


特别感谢 Karl Floersch 的反馈和审查

以太坊第 2 层生态系统在过去一年中一直在迅速扩张。EVM rollup 生态系统,传统上以 ArbitrumOptimism 和 Scroll 为特色,以及最近的 Kakarot 和 Taiko,一直在快速发展,在提高其安全性方面取得了长足的进步;L2beat 页面很好地总结了每个项目的状态。此外,我们看到构建侧链的团队也开始构建 rollups(Polygon)、寻求成为 Validium 的 Layer 1 项目(Celo)以及全新的努力(LineaZeth......最后,还有不仅仅是 EVM 生态系统:像 Zksync 这样的“几乎是 EVM”,像 Arbitrum Stylus 这样的扩展,以及像 Starknet 生态系统Fuel 等更广泛的努力。

这样做的一个不可避免的后果是,我们看到第 2 层项目变得更加异构的趋势。我预计这一趋势将持续下去,主要原因如下:

  • 一些目前独立的 Layer 1 项目正在寻求更接近以太坊生态系统,并可能成为 Layer 2。这些项目可能需要逐步过渡。现在一次性转换会导致可用性下降,因为该技术还没有准备好将所有内容都放在一个汇总上。以后一次性过渡可能会牺牲动力,而且为时已晚而没有意义。
  • 一些中心化项目希望为用户提供更多的安全保证,并正在探索基于区块链的途径。在许多情况下,这些项目在上一个时代会探索“许可联盟链”。实际上,他们可能只需要一个“中途之家”级别的去中心化。此外,它们通常非常高的吞吐量水平使它们甚至不适合汇总,至少在短期内是这样。
  • 非金融应用程序,如游戏或社交媒体,希望去中心化,但只需要半程安全级别。在社交媒体案例中,这实际上涉及以不同的方式对待应用程序的不同部分:用户名注册和帐户恢复等稀有和高价值活动应该在汇总上完成,但频繁和低价值的活动(如帖子和投票)需要较少的安全性。如果链条故障导致您的帖子消失,这是可以接受的成本。如果链故障导致您丢失帐户,那将是一个更大的问题。

一个大主题是,虽然今天在以太坊第 1 层上的应用程序和用户在短期内支付较小但仍然可见的汇总费用是可以的,但来自非区块链世界的用户不会:如果你之前支付 1 美元,那么支付 0.10 美元比你之前支付 0 美元更容易证明合理。这既适用于当今集中式应用程序,也适用于较小的第 1 层,这些应用程序通常具有非常低的费用,而其用户群仍然很小。

一个自然而然的问题是:rollups、validium 和其他系统之间的这些复杂权衡中,哪一个对于给定的应用程序有意义?

Rollups、Validiums、断开连接的系统

我们将探讨的安全性与规模的第一个维度可以描述如下:如果您有一个在 L1 上发行的资产,然后存入 L2,然后转移给您,您有什么级别的保证能够将资产带回 L1?

还有一个平行的问题:导致这种保证水平的技术选择是什么,以及该技术选择的权衡是什么?

我们可以简单地用图表来描述这一点:

 

系统类型 技术特性 安全保障 成本
汇总 通过欺诈证明或 ZK-SNARK 验证计算,数据存储在 L1 上 您可以随时将资产带回 L1 L1 数据可用性 + SNARK 证明或冗余执行以捕获错误
Validium(瓦利姆) 通过 ZK-SNARK(不能使用欺诈证明)、存储在服务器或其他独立系统上的数据来验证计算 数据可用性故障可能导致资产丢失,但不会被盗 SNARK证明
断开 单独的链(或服务器) 相信一个人或一小群人不会窃取您的资金或丢失钥匙 非常便宜

 

值得一提的是,这是一个简化的架构,并且有很多中间选项。例如:

  • rollup和validium之间:任何人都可以进行链上支付以支付交易费用的validium,此时运营商将被迫在链上提供一些数据,否则将失去押金。
  • 介于 Plasma 和 Validium 之间Plasma 系统提供类似 rollup 的安全保证和链下数据可用性,但它只支持有限数量的应用程序。系统可以提供完整的 EVM,并为不使用那些更复杂应用程序的用户提供 Plasma 级保证,并为使用这些更复杂应用程序的用户提供 Validium 级保证。

这些中间选项可以看作是介于 rollup 和 validium 之间的范围。但是,是什么促使应用程序选择该频谱上的特定点,而不是更左或更右的某个点?在这里,有两个主要因素:

  1. The cost of Ethereum's native data availability, which will decrease over time as technology improves. Ethereum's next hard fork, Dencun, introduces EIP-4844 (aka "proto-danksharding"), which provides ~32 kB/sec of onchain data availability. Over the next few years, this is expected to increase in stages as full danksharding is rolled out, eventually targeting around ~1.3 MB/sec of data availability. At the same time, improvements in data compression will let us do more with the same amount of data.
  2. The application's own needs: how much would users suffer from high fees, versus from something in the application going wrong? Financial applications would lose more from application failures; games and social media involve lots of activity per user, and relatively low-value activity, so a different security tradeoff makes sense for them.

Approximately, this tradeoff looks something like this:

 

 

Another type of partial guarantee worth mentioning is pre-confirmations. Pre-confirmations are messages signed by some set of participants in a rollup or validium that say "we attest that these transactions are included in this order, and the post-state root is this". These participants may well sign a pre-confirmation that does not match some later reality, but if they do, a deposit gets burned. This is useful for low-value applications like consumer payments, while higher-value applications like multimillion-dollar financial transfers will likely wait for a "regular" confirmation backed by the system's full security.

Pre-confirmations can be viewed as another example of a hybrid system, similar to the "plasma / validium hybrid" mentioned above, but this time hybridizing between a rollup (or validium) that has full security but high latency, and a system with a much lower security level that has low latency. Applications that need lower latency get lower security, but can live in the same ecosystem as applications that are okay with higher latency in exchange for maximum security.

Trustlessly reading Ethereum

另一种较少考虑但仍然非常重要的连接形式与系统读取以太坊区块链的能力有关。特别是,这包括在以太坊恢复时能够恢复。要了解为什么这很有价值,请考虑以下情况:

 

 

假设,如图所示,以太坊链恢复。这可能是一个时期内的暂时小插曲,而链尚未最终确定,也可能是一个不活跃的泄漏期,由于太多验证者离线,链在很长一段时间内没有完成。

由此可能出现的最坏情况如下。假设顶链上的第一个区块从以太坊链上最左边的区块读取一些数据。例如,以太坊上的某个人将 100 ETH 存入顶链。然后,以太坊恢复。但是,顶部链不会恢复。因此,顶链的未来区块会正确地遵循新正确的以太坊链中的新区块,但现在错误的旧链接(即 100 ETH 存款)的后果仍然是顶链的一部分。这个漏洞可以允许印钞,将顶链上的桥接 ETH 变成部分储备。

有两种方法可以解决这个问题:

  1. 顶链只能读取以太坊的最终区块,因此它永远不需要恢复。
  2. 如果以太坊恢复,顶部链可能会恢复。两者都可以防止此问题。前者更容易实现,但如果以太坊进入不活动泄漏期,可能会导致功能在很长一段时间内丢失。后者更难实现,但始终确保最佳功能。

请注意,(1) 确实有一个边缘情况。如果对以太坊的 51% 攻击创建了两个新的不兼容区块,并且这两个区块看起来同时完成,那么顶层链很可能锁定到错误的区块(即以太坊社会共识最终不支持的那个),并且必须恢复以切换到正确的区块。可以说,没有必要提前编写代码来处理这种情况;它可以通过硬分叉顶链来简单地处理。

链无需信任读取以太坊的能力很有价值,原因有两个:

  1. 它减少了将以太坊(或其他 L2)上发行的代币桥接到该链所涉及的安全问题
  2. 它允许使用共享密钥库架构的账户抽象钱包安全地将资产保存在该链上。
  1. 很重要,尽管可以说这种需求已经得到广泛认可。(2)也很重要,因为这意味着你可以拥有一个钱包,它允许轻松更改密钥,并在大量不同的链上持有资产。

拥有一座桥梁会让你成为 Validium 吗?

假设顶层链开始时是一条单独的链,然后有人将桥接合约放到以太坊上。桥接合约只是一个合约,它接受顶链的区块头,验证提交给它的任何头都带有一个有效的证书,表明它被顶链的共识所接受,并将该头添加到列表中。应用程序可以在此基础上构建,以实现存款和提取代币等功能。一旦这样的桥梁到位,它是否提供了我们之前提到的任何资产安全保障?

 

 

到目前为止,还没有!原因有二:

  1. 我们正在验证块是否已签名,但未验证状态转换是否正确。因此,如果你在以太坊上发行的资产存入了顶链,而顶链的验证者变得流氓,他们可以签署一个无效的状态转换,窃取这些资产。
  2. 顶链仍然没有办法读取以太坊。因此,如果不依赖其他(可能不安全的)第三方桥,您甚至无法将以太坊原生资产存入顶链。

现在,让我们让这座桥成为验证桥:它不仅检查共识,还检查一个 ZK-SNARK,证明任何新块的状态都计算正确。

一旦完成,顶级链的验证者就无法再窃取您的资金。他们可以发布一个包含不可用数据的区块,阻止所有人退出,但他们不能窃取(除非试图为用户提取赎金以换取泄露允许他们退出的数据)。这与 Validium 的安全模型相同。

但是,我们仍然没有解决第二个问题:顶链无法读取以太坊。

为此,我们需要做以下两件事之一:

  1. 将验证最终以太坊区块的桥接合约放在顶链内。
  2. 让顶链中的每个区块都包含最近以太坊区块的哈希值,并有一个分叉选择规则来强制执行哈希链接。也就是说,链接到不在规范链中的以太坊区块的顶链区块本身就是非规范的,如果顶链区块链接到一个以太坊区块,该区块最初是规范的,但后来变成了非规范的,那么顶部链区块也必须成为非规范的。

 

紫色链接可以是哈希链接,也可以是验证以太坊共识的桥接合约。

 

这够了吗?事实证明,仍然没有,因为一些小的边缘情况:

  1. 如果以太坊受到 51% 的攻击会怎样?
  2. 您如何处理以太坊硬分叉升级?
  3. 您如何处理链的硬分叉升级?

对以太坊的 51% 攻击与对顶链的 51% 攻击会产生类似的后果,但相反。以太坊的硬分叉可能会使以太坊在顶链内的桥不再有效。如果以太坊恢复了最终的区块,则恢复社会承诺,如果以太坊硬分叉,则进行硬分叉,这是解决这个问题的最干净的方法。这样的承诺可能永远不需要实际执行:如果看到可能的攻击或硬分叉的证据,你可以激活顶链上的治理小工具,并且只有在治理小工具失败时才对顶链进行硬分叉。

不幸的是,(3)唯一可行的答案是在以太坊上拥有某种形式的治理小工具,可以使以太坊上的桥合约意识到顶链的硬分叉升级。

总结:双向验证桥几乎足以使链成为 validium。剩下的主要成分是社会承诺,如果以太坊发生异常情况,使桥不再工作,另一条链将硬分叉作为回应。

结论

“与以太坊的连接”有两个关键维度:

  1. 提现到以太坊的安全性
  2. 读取以太坊的安全性

这些都很重要,并且有不同的考虑因素。在这两种情况下都有一个频谱:

 

 

请注意,这两个维度都有两种不同的衡量方式(所以真的有四个维度?):提现的安全性可以通过(i)安全级别来衡量,以及(ii)有多少百分比的用户或用例受益于最高安全级别,读取的安全性可以通过(i)链读取以太坊区块的速度来衡量。 特别是最终区块与任何区块,以及 (ii) 链在处理边缘情况(如 51% 攻击和硬分叉)方面的社会承诺的强度。

在这个设计空间的许多地区,项目都有价值。对于某些应用,高安全性和紧密连接性非常重要。对于其他人来说,为了获得更大的可扩展性,可以接受更宽松的东西。在许多情况下,从今天更宽松的东西开始,然后随着技术的进步在未来十年内转向更紧密的耦合,很可能是最佳选择。