以太坊Rollup 的实用指南

这篇文章深入探讨了以太坊的Rollup技术,与以太坊的扩展目标紧密相关,从定义区块链到Rollup的生命周期、特征和安全风险等一系列主题进行了详细的分析。文章结构清晰,内容丰富,适合寻求深入理解Rollup技术的读者。

在本文中,我们旨在概述围绕以太坊 Rollup 的技术领域,以提供一个坚实的基础,帮助人们理解它们的基本工作原理以及它们如何助力实现以太坊的可扩展性目标。随后,我们建立了一个基础框架,旨在增强公正中立方对以太坊不同 Rollup 实现的判断和评估。

Rollup 在构成以太坊最终目标的拼图中占据着至关重要的部分,因此我们必须改善现有材料,以便更好地理解这些复杂但常常被误解的模块化区块链。虽然加密领域的 Rollup 设计空间极为广阔,但我们希望提供一种更加与以太坊本地相关的 Rollup 视角,特别是围绕着专为以太坊扩容而设计的 Rollup。因此,可以值得一提的是,并非所有可能的 Rollup 变体都会在本文中进行覆盖,特别是那些存在于以太坊之上的 alt-VM Rollup 将不予覆盖(原因稍后会详细说明)。

在了解这些背景后,让我们概述本文将涵盖的一些主题:

  1. 定义区块链 : 对区块链系统基础知识的简要概述,这对于建立 Rollup 的心理模型至关重要。
  2. 建立抽象以太坊 Rollup 模型 : 定义 Rollup 是什么,它们与像以太坊这样的区块链有何不同,并提供对以太坊扩容 Rollup 核心特征的看法。
  3. Rollup 生命周期 : 梳理 Rollup 的基本生命周期。
  4. Rollup 特性与功能 : 涉及 Rollup 确认性的工作原理、序列器设计空间、信任最低化桥接、应急机制。
  5. 经典 Rollup 与主权 Rollup : 定义经典和主权 Rollup,并探讨它们如何在以太坊中实施以及这两类 Rollup 之间的关键区别。
  6. 介绍导航以太坊 Rollup 设计空间的框架 : 利用前述信息,介绍一个用于映射以太坊 Rollup 设计空间的框架。
  7. Rollup 安全性与风险向量的探讨 : 识别并描述 Rollup 所面临的不同类型风险。
  8. 应对 Rollup 安全风险的潜在解决方案 : 解析 Rollup 安全风险,重点展示多种潜在策略和解决方案,旨在从多个维度提升安全性。

区块链的简要定义

在深入了解以太坊的 Rollup 领域之前,快速建立对区块链的心理模型会很有帮助。一般来说,当我们谈论“区块链”时,指的是具有两个特征的系统:

  1. 加密数据结构 : 不可变的、仅追加的块链。
  2. 网络 : 一个去中心化的节点网络,运行着一个区块链协议,维护这一加密数据结构。

“区块链”这一术语最初用于描述这些网络所依赖的加密数据结构,但现在,人们常常将这些网络本身称为区块链(例如,以太坊是一个区块链)。考虑到这一点,让我们对区块链给出一个简要的定义。

区块链是去中心化的公共平台,允许用户在不同方式下安全地相互交易,无需中央权威。它们实际上以去中心化的节点网络的形式存在,这些节点运行着一个区块链协议,通过一个加密数据结构不带信任地执行和记录全球交易和系统状态的历史(以下将称之为“链”)。

这个链数据结构由一系列块组成,每个块包含交易列表,以及当前区块链状态和前一个块的加密散列。因此,这个数据结构类似于一个“块链”,提供了一个不可变的、抗篡改的、全球排序的交易和系统状态列表。当新的块被添加到区块链时,网络中的每个节点都会独立执行该块中的交易列表,并相应地更新其状态和链数据结构。通过去中心化共识,网络共同同步此更新,通过将新块附加到区块链上,承认其为当前区块链的头部。

现在我们对区块链的工作原理有了更清楚的了解,我们可以将它们的架构视为由三个层次组成,每个层次具有不同的用途:

  • 数据可用性层 : 确保所有块和交易已发布且对网络可访问。它提供在任何给定时间计算区块链当前状态所需的数据。
  • 共识层 : 负责对块的排序及其包含的交易实现全网共识。
  • 执行层 : 处理块内的交易执行,并维护区块链的状态。

从高层次上来说,这基本上描述了以太坊的工作原理,并且我们将独立实现这种功能并以此方式运行的区块链称为第一层区块链(或 L1)。在上述背景建立之后,让我们将注意力转向 Rollup,了解这些解决方案究竟是什么,以及它们与以太坊的关系。

Rollup 是什么?

Rollup 是那些其链和状态可以完全从 L1 的 DA 层衍生出来的区块链。当我们谈论“在以太坊上的 Rollup”时,我们指的是利用以太坊作为其 DA 层的 Rollup。

与像以太坊这样的 L1 不同,后者实现其所有三个架构层(DA、共识、执行),Rollup 仅实现其专有的执行层。它们将 DA 和共识的管理外包给 L1。我们在下面说明了架构差异:

那么将 DA 和共识管理外包给 L1 区块链意味着什么?

  • DA : 这指的是 Rollup 交易的全球历史。
  • 共识 : 这里的共识是指确保全球交易历史的完整性,这样一旦发布到 L1 区块链,其内容和排序的细节就无法被修改。

L1 区块链已经为发布到它的数据提供了不可变细节和排序的安全性,因此当一个 Rollup 选择使用 L1 来为其区块链提供类似的保障时,显示出 L1 是如何向 Rollup 提供 DA 和共识的保证。

当我们考虑 Rollup 及其与以太坊的关系时,通常将它们称为第二层区块链(L2)。这样称呼的原因在于,这些区块链的设计利用了以太坊的安全属性,使它们能够实现高效的执行而不妥协于安全性。最终结果是,以太坊的安全性使这些高效但安全的区块链成为可能,因此可以视为有效利用以太坊以增加实用性。当我们以这种方式考虑 Rollup (特别是以太坊在使这些系统以这种安全形式存在方面的关键作用),我们可以认为 L1 提供的功能是 链上 的,而 L1 以外的功能(由 Rollup 系统本身自主处理)被视为 链下 的。

在更好地理解以太坊如何向 Rollup 提供 DA 和共识保证的基础上,让我们考虑承载所有有关其系统状态和用户交易活动的有用信息的区块链数据结构如何从以太坊导出。

参与 Rollup 的参与者可以通过从以太坊获取全球 Rollup 历史,信任地构建当前的 Rollup 区块链状态。从这里,这些数据可以通过 Rollup 节点进行处理,在其中应用状态转移和规则,并确定性地计算当前的 Rollup 区块链状态。处理这一过程的步骤将被正式描述在 Rollup 的技术规范中,并转化为 Rollup 节点运行的代码 – 我们将管理这一过程的步骤称为 Rollup 的 链衍生。正是通过链衍生过程,Rollup 节点能够从以太坊读取有序的 Rollup 历史,解析信息并信任地构建 L2 块链。在以这种方式管理 Rollup 区块链计算的过程中,Rollup 节点之间无需互相信任,因为数据安全地存在于以太坊上,简单地需要输入到 Rollup 的链衍生程序中,所有节点都应确定性地达到对 Rollup 区块链的相同视图。我们在下方展示 Rollup 链衍生基本机制的运作:

Rollup 如何扩展以太坊?

在提供关于像以太坊(L1)如何使 Rollup 成为可能的动机时,有必要提供关于 它们如何分类为扩展以太坊的方法 的类似动机。

如前所述,Rollup 是使用 L1(在这种情况下为以太坊)来维护其全球交易历史的可用性和规范排序的区块链 – 这些信息是确定性地计算 Rollup 状态所需的,并在其随时间推移和使用过程中继续进行。因此,在将这一责任管理外包给以太坊的过程中,Rollup 可专注于提供更好的执行能力,以提高用户和开发者在其上的操作能力。虽然这表明以太坊在提供安全性和启用 Rollup 专注于执行以提供在以太坊上不可行的经验方面的重要性,但这并没有给出如何证明它们作为以太坊扩展解决方案的完全有说服力的答案 – 如果有什么,这种关系可以被表征为以太坊成为 Rollup 区块链的服务提供商。

如果 Rollup 真心希望对以太坊的扩展作出实际贡献(并赢得被归类为以太坊扩展解决方案的头衔),Rollup 需要在技术上具备超越定义其区块链类型的简单构造的特征。那么它们需要做什么才能客观地符合并满足被视为以太坊扩展解决方案的技术标准呢?

共享以太坊的安全属性是一个已满足的要求,但还需要更多。“扩展以太坊”意味着不仅要提高其安全基础设施的实用性,还要为以太坊的用户、经济价值和应用场景提供更多实用性和技术能力。为实现这一目标的一步是使 Rollup 与以太坊更加紧密兼容和可组合,从而扩展而不是碎片化以太坊。在此背景下,我们将突出两个额外的要求,以赋予 Rollup 实现这一目标的能力:

  1. 与以太坊的可组合性 : 用户、经济价值和应用应该能够转移到 Rollup,而不会显现为“吸血鬼攻击”或稀释以太坊的生态(需要明确的是,一些交易相对于其他交易需要的时间会大为不同)。 在这样的情况下,通过与以太坊紧密连接且对用户有帮助的方式,使用 Rollup 的体验并不意味着用户和价值被从以太坊中移除,而是用不同的方式投入到工作中。获得直观认识的有效方式是考虑存在于以太坊上的 dApp。当开发者在以太坊上创建一个去中心化应用时,它可能要求用户将价值锁定在其中(在某些情况下甚至取决于使用情形是永久性锁定的),但这并不意味着它破坏了以太坊的全球流动性或用户基础。相反,它反映出在区块链应用层上实现了更高的生产率。你不会认为以太坊上越来越多的 dApp 被创造出来意味着其总价值和用户的碎片化,因此同样的理念也应适用于我们对 Rollup 的看法(前提是我们为扩展以太坊的目的正确地设计它们)。
  2. EVM 等价性 : 如果 Rollup 的执行规则符合以太坊虚拟机的技术规范,我们将其执行模型视为 EVM 等价。EVM 等价性很重要,因为我们希望 Rollup 至少能够提供使用以太坊的应用层的原生体验,从而有助于将以太坊的应用层网络效应扩展到用户,为他们提供熟悉的应用级体验,但以更低的成本和更高的性能(转化为更快的交易)。这不仅延伸了以太坊执行的效用,而且展示了一种链外使用以太坊原生执行的更高性能方式,同时并未妥协于使其能够保持的安全性。此外,Rollup 的 EVM 等价性使其基本执行模型与以太坊同步更新,从而使 Rollup 和以太坊看起来像是一个单一的、同质的系统,鉴于执行模型的兼容性及其共享安全性更新。与更强的可组合性(例如以太坊与 L2 之间的双向应用层通信)相结合,还能对 Rollup 被归类为以太坊扩展和因此实际上是其可扩展解决方案的技术和社会论证建立更强的基础。虽然以太坊和 Rollup 之间的双向互操作性不是技术上扩展以太坊的严格先决条件,但它可以被视为提供重大好处的东西(稍后在探索经典和主权 Rollup 类型时会进一步谈论)。

在表述 EVM 等价性在满足将 Rollup 合格为以太坊扩展解决方案的技术标准中的重要性时,可以澄清的是,Rollup 可以是 EVM 等价的,同时扩展其执行模型的能力。我们相信,实际上能扩展以太坊而不造成破碎的 Rollup,至少要提供 EVM 等价性。这一信念背后的动机在于以太坊与 Rollup 之间的原生可组合性。EVM 等价性并不意味着对 EVM 的绝对忠诚,而是对以太坊的执行管理方式的忠诚 – 这关乎维持兼容性。如果一个 alt-VM Rollup 能够完全将以太坊的执行(及其涉及的状态)转化为自己的执行模型,那么它就可以满足技术标准 - 请注意,这只是描述 EVM 等价性或有什么是 EVM 等价性。并不意味着 alt-VM Rollup 不可以在向技术层面上扩展以太坊中发挥作用,它只是我认为不应该被定位为 L2,而可能应该是依赖于 EVM 等价的 Rollup 来提供安全性的 L3 (这些是我对如何最好地利用 alt-VM 执行技术上扩展以太坊的推测性看法,所以具体情况还是需要审慎看待)。

在描述对 Rollup 施加约束如何帮助提供更强的技术论证,从而被视为以太坊可扩展解决方案时,让我们牢记这样的基础 Rollup 规范,探索以太坊中 Rollup 如何工作以及推动其功能的各个部分。

Rollup 的核心功能

在这一部分中,我们将彻底涵盖 Rollup 内部的核心功能, 包括它们如何管理与以太坊的互动及其实施的各种组成和设计特性,以推动其操作并提供安全性和性能保证。

Rollup 的生命周期

为了理解推动 Rollup 操作所需实施的功能,我们首先应熟悉使用 Rollup 的生命周期。为此,我们将梳理用户提交交易给 Rollup 后所发生的事情:

  1. 用户 将他们的交易提交给 Rollup。
  2. Rollup 持续流式处理用户提交的交易,立即执行。这一操作由一个被称为 序列器 的特权角色执行。在此过程中,序列器为用户提供了执行的软保证及其将如何改变 Rollup 的状态。
  3. 经过一段时间(通常是一个以太坊区块:12 秒),序列器将这 12 秒内收到的交易进行批处理,并在以太坊中以 L1 交易的方式发布这些批次。这些批次包含稍后将由 Rollup 节点信任地衍生为 L2 块的所有交易。这些批次通常在发布时附带额外的批次元数据(可能由另一个 Rollup 操作员发布,而不是序列器 – 这将根据特定 Rollup 选择管理此步骤而有所不同)。
  4. Rollup 节点 监视以太坊已发布的 Rollup 批次,并在观察到时下载它们。
  5. Rollup 节点 将下载的批量数据传入其衍生逻辑,解析批量数据并生成一组新的 L2 块进行执行。
  6. Rollup 节点 更新其链数据结构(将来自批次的新块附加到其上)。这显示了序列器提供的软保证变成了硬保证。
  7. 在包含批次的 L1 块在 L1 上最终确认后,它们在 L2 也会被确认。

需要阐明的一个关键设计细节是用户实际上如何在 Rollup 中支付交易费用。在像以太坊这样的 L1 中,费用始终以本地资产(以太币,在以太坊例子中)计价。相反,Rollup 通常以 ETH 计价交易费用。有三种原因表明这是一种合理的决策:

  • 成熟的资源定价 : 考虑到 Rollup 是 EVM 等价的,因此与 EVM 一起实施的资源定价旨在代表交易的真正社会成本,并使用户以每单位气体以 ETH 计价这些成本。因此,简单地使用 ETH 是合乎逻辑的,因为引入新的本地资产用于为交易定价可能需要大量机制设计工作,以确保 Rollup 费用市场和资源定价驱动的经济均衡稳定。
  • 解决 Rollup 环境中独特的新成本的便捷性 : 鉴于 Rollup 在向以太坊发布批次时承担着至关重要的任务,这些成本要求 Rollup 参与者支付 L1 交易费用。这些成本需要在 Rollup 用户之间均摊,以确保 L2 的经济效率。以 ETH 计价的交易费用使交易成本的均摊过程变得简单,因此简化了 Rollup 上的费用逻辑和资源定价。
  • 与以太坊的可组合性 : 利用 ETH 管理交易费用的 Rollup 为用户和开发者提供了来自以太坊的熟悉体验,这有助于维持使用 Rollup 或以太坊时的技术和用户体验的一致性。

以 ETH 计价的费用并不是严格的技术要求,但基于上述原因,可以理解为何这么做是合理的。

理解 L1 和 Rollup 最终性

在区块链中谈到最终性时,容易将其视为一种永不被打破的承诺。在以太坊中,当一个块被添加时,网络做出了承诺,表示其中的交易将不会被撤销,尽管这是一个强大的承诺,但并非不可打破。

如果包含这些交易的特定块被从区块链中重组,则可能会打破这个承诺,而这些交易不再包含在新的规范链记录中。然而,随着以太坊转向 PoS,这种情况不再存在。经过 2 个纪元(64 个区块)后,所有包含在这两个纪元中的区块都会被最终确认,这意味着这个承诺现在是不可打破的(这意味着这些块及其内容和排序将永久存在且不可篡改)。我们将这种终局类型称为 硬最终性

在我们上面梳理 Rollup 生命周期时,我们引入了几种针对 Rollup 交易的承诺。其中,用户的交易经历了多个阶段,最终通过 L1 的最终确认得以永存。让我们梳理这些阶段,以更好地理解如何在 Rollup 中实现最终性:

  1. 序列器预确认 : 用户向序列器提交交易后,他们会收到一个承诺的响应,承诺该交易将在提交交易时序列器所持有的最新版本的 Rollup 状态上执行。序列器会根据其维护的 Rollup 区块链记录进行本地执行,并会保持这一提前记录的变更。在此阶段,Rollup 仅仅是流式接收用户交易,执行它们,并维护一系列相对顺序的交易,以便为其创建一个包含所有这些在某段时间内接收的交易的批次。序列器将在每个 L1 块中发布收集的 Rollup 交易批次。因为序列器正在向以太坊发布批次,所以它负责每 12 秒的时间内收集、本地执行和发布批次的任务。
  2. 软最终性 : 当批次被发布到以太坊时,我们将它们中包含的交易视为具有软最终性。我们之所以认为这些交易得到了软最终性,是因为它们现在正式在 L1 上发布,提供了不仅是批次内交易的 DA 和排序保证,还有批次本身的逻辑排序。当批次被发布到以太坊时,Rollup 节点会检测并获取它们,并执行其链衍生逻辑,从中生成新的 L2 块以添加到 Rollup 链中。因此,Rollup 节点将把这些从批次中衍生出的 L2 块添加到其 Rollup 链记录中,这些添加的 L2 块将被视为软最终确认,直到 L1 自身最终确认。
  3. 硬最终性 : 一旦 L1 最终确认,序列器的承诺将不再可打破/不可逆。L1 无法重新组织 Rollup 节点衍生链所需的数据,因此批次中编码的 L2 块和交易的内容及其排序将完全最终确认,并且不可能被修改或从 L1 的历史中移除。

序列化

以上两个部分为我们提供了有关如何将变更应用于 Rollup 的更多见解,以及当 L1 块包含新发布的 Rollup 批次最终确认后,它们如何最终完成和不可逆转。在此部分中,我们将探索 Rollup 系统中的序列化任务是如何管理的。

序列化在 Rollup 环境中是独特的,因为在像以太坊这样的 L1 中,用户习惯于将其交易发送给网络,区块生产者将其包含在下一个即将到来的区块中,或者不将其包含,届时可能会由未来的区块生产者来包含 – 因此,用户只能在块实际上添加到区块链后才能确认其交易将被执行。与此相反,在 Rollup 中,用户会收到关于执行的即时反馈,以序列器的承诺形式(即 预确认),其中任何关注序列器正在做的操作的参与者都可以在 L2 块甚至从 L1 中衍生出来之前,基于 Rollup 区块链的状态提前采取行动。这种预先执行使 Rollup 能够为用户提供更快的执行体验,并且由于 Rollup 的区块链架构结构,交易的成本显著低于 L1。在这种动态下,用户能够在 Rollup 上获得更快、更便宜的交易结算,而 Rollup 将确保这些交易最终会在 L1 块中得到确认,包含提前 L2 块(编码在批次中,包含预确认交易)的块同时也得到最终确认。

序列器在 Rollup 中扮演至关重要的角色,既提供对用户交易的预确认,也确保 Rollup 网络能够确定性地同步到区块链的最新版本:

上面的图表突显了序列器在推动 Rollup 功能中的核心角色,因此,Rollup 在设计如何管理序列化时必须谨慎,因为如果没有有效实施,这可能成为单点故障,干扰区块链的运行。在接下来的部分中,我们将探讨序列器的设计空间,并描述 Rollup 可以采取的各种不同方法来建立其序列器模型。

Rollup 的序列器设计空间

如前所述,序列器为 Rollup 提供了创造用户与交易执行反馈之间的极快联系的能力,实际上,这意味着用户可以在最快 100 毫秒内收到他们的交易响应(某些时候甚至更短),这标志着对以太坊的重大改进,后者在最佳情况下,仅能在 12 秒钟内仅提供交易执行反馈。

根据 Rollup 如何设计其序列化系统,提供这些交易预确认的时间将有所不同。例如,如果 Rollup 决定由一个单一、可信的序列器实施其序列化,Rollup 可能会为用户提供极快的预确认,相比之下,采用在特定时间间隔轮换参与者的共识模型的 Rollup 则不然。这是因为将交易发送给单个序列器参与者的过程远比涉及到增加网络通信和阻塞行为的策略简单,后者会减慢序列化的速度。

最终,这突显了性能与安全之间的权衡。理想情况下,我们希望序列器角色去中心化,以确保承担该角色的参与者完成职能的完整性,但同时我们希望为用户提供有价值的预确认属性,这些属性是 Rollup 独特定位可以提供的。考虑到这一点,我们可以更正式地表述希望 Rollup 序列化中具有期望安全性和预确认速度的属性。鉴于我们希望建立描述 Rollup 应如何设计以充分补充和贡献于扩展以太坊的标准,值得指出的是,以太坊 Rollup 应努力提供的安全保证应该尽可能接近以太坊自身的阈值。在有如此协调目标的情况下,它可以指导与设计 Rollup 组件相关的决策,使全球 Rollup 设计的一致性在所有组件和特征的实施中得到体现。

考虑到这一点,让我们阐述一些在设计 Rollup 序列化方案时希望保证的期望安全性:

  • 活跃性 : 我们希望确保序列化设计到 Rollup 中时对活跃性有很强的保证,能够适应意外情况。
  • 审查抗性 : 我们希望确保用户的交易始终会在某个明确定义的时间段内被纳入(需要澄清的是某些交易与其他交易对时间的依赖关系会有很大不同)。
  • 问责制 : 我们希望确保 Rollup 有能力审核序列化เพื่อ确保其诚实执行并按照既定的性能标准完成。这描述了可识别功能,其中任何与序列化要求的偏差都可以被识别并归因于特定的序列器,此外,还能够针对这些违规行为采取应对机制。

在更加明确 Rollup 序列化模型中的期望属性之后,Rollup 设计师可以采取不同的方法,具体取决于他们希望优先考虑哪些属性。我们在下方展示了基于信任的序列化水平的基本序列:

尽管上述图表中仅描述了四种不同的序列化模型, 但实际存在超出这些模型的许多其他选项。上述四种模型旨在展示不同序列化模型所应用的差异化范围,而非详尽表达可以在 Rollup 序列化中采取的所有可能方法。为了便于推理在 Rollup 系统中应用不同序列化模型的情况,我们将前面表达的操作图简化如下,展示不同的序列化模型可以应用于粉色/紫色圈元素:

单一序列器模型

单一的可信角色充当 Rollup 的序列器。此设置最终为用户提供最低的潜在延迟,原因有二:

  1. 没有领导人选举过程 : 由于只有一个可信的角色永久负责序列化,因此没有时间用于管理序列器职责的轮换。这是预序列化延迟最小化的一种形式。
  2. 没有验证过程 : 由于只有一个可信的角色永久负责序列化,只有该单一方负责验证其执行的工作,这意味着没有其他网络参与方由于已经对序列器建立信任而阻塞进展。这是一种后序列化延迟最小化的形式。

在仅有一个扮演序列器角色的情况下,用户正与序列器建立一对一的信息连接。这不仅由于上面列出的原因效率高,同时也意味着不会引入显著的网络相关延迟。在以太坊中(除了私有订单流),用户传统上将其交易提交给一个节点,然后该节点通过 P2P 网络传播其存在,自然这使得交易在网络范围内的发现效率低下,意味着用户广播交易与区块生产者发现之间的时间是不容忽视的。在单一可信序列器模型中,这一发现时间显著减少,因为用户(或其钱包代其)与序列器建立了直接连接,并将其交易直接广播给序列器,序列器将立即为其服务。

授权集模型

一组白名单中的参与者在时间上轮换序列器角色。此方法解决了在单一序列器模型中引入的单点故障关注,从而改善了活跃性保证。换言之,此模型通过将序列化转变为具有更强容错能力的模型而进行了改进。但由于这些参与者不是独立的且代表一个授权集,因而仍引入强信任假设。

经典、主权 BFT 模型

在此模型中,利用 BFT 协议(例如去中心化共识协议)管理序列器的委派。我们将该模型称为“主权”模型,因为在该模型中,Rollup 启动自己的无许可参与者网络,参与共识过程。

Rollup 使用 BFT 共识的方式因其目的而异,并且不同的方法可能会产生不同的性能和安全保证。为了突显不同性能和安全保证的实现方式,我们可以考虑两个出于不同目的使用 BFT 协议的 Rollup:

  • 进行领导者选择的共识 : 在这种设置中,Rollup 仅利用 BFT 协议来进行领导者选择(即指定特定角色的序列化以进行有限时间)。
  • 进行领导者选择与约束验证的共识 : 在这种设置中,Rollup 利用 BFT 协议以管理领导者选择以及验证每个序列器所完成的工作的有效性。在这个过程中,共识协议除了领导者选举之外,还承担了更多职责。在这种情况下,使用 BFT 协议的网络参与者达成共识,确定谁是活动序列器,并验证序列器批次中所包含的交易的有效性,然后允许序列器将其发布到以太坊。

与授权集模型相比,主权 BFT 模型从根本上消除了受信单一序列器和授权集模型所面临的单点故障风险,提高了活跃性这一期望安全属性之一。此模型相较于可信的单一序列器和授权集模型的更大优势在于允许不可信的参与者参与序列化,BFT 共识 为 Rollup 提供去中心化的序列化机制提供了相容性和密码证明的手段

此外,这一模型还能够确保更强的安全属性(审查抗性、问责制)。依赖去中心化的共识,这一模型可能需要将问责机制纳入系统设计,以确保参与者在委员会中遵循透明且一致的标准进行运作。反过来,这有助于确保参与去中心化序列器协议的角色诚实且有效地履行其职责,并为该协议提供了一种手段,使得可以随时将不符标准的行为或表现归因于特定的参与者,并惩罚他们(例如未提供 Rollup 设置的标准性能保证、中伤用户)。

虽然这一序列化方法在信任假设方面较之前两种方法有了显著的提高,但由于运营 BFT 协议所需的工作增加,它给序列化过程引入了更多的延迟。如果 Rollup 决定将 BFT 协议同时用于领导者选择和批次验证,则延迟会进一步增加。这种延迟的增加导致 Rollup 对用户提供的交易预确认速度显著减慢,相比于可信序列器模型。

基于序列化模型

在我们深入探讨基于序列化的具体含义之前,有必要提醒自己 Rollup 的序列器在将批次发布到以太坊时发生的真正事情。当序列器发布 Rollup 批次到以太坊时,他们实际上是在创建携带该批次的 L1 交易到以太坊。这意味着,他们需要激励以太坊区块生产者将此交易纳入缔结,以便得以使发布批次中的 L2 块赋予软最终性。无论选择哪种序列化模型,Rollup 的序列器都必须将 L1 交易广播到以太坊,并激励区块生产者在其区块中纳入该批次交易:

在理解序列器与以太坊之间的关系后,自然产生了一个想法 - 为什么不让 L1 验证者集合在序列化 Rollup 交易中发挥更积极的作用呢? L1 验证者集合已经在最大范围内实现去中心化,尽管针对构建者的集权和股份集中的情绪存在不同看法,但作为验证者进行登记的参与者的多样性无法轻易被忽略,同时也存在旨在约束中心化参与者代理权的核心协议的机制设计。由于 L1 提供强大的安全属性,如活跃性、审查抗性和问责制,因此,如果能使序列化继承这些属性所提供的某些安全保证,通过更紧密结合的方式实现由 L1 区块生产者驱动的序列化,显然会非常理想。

所以问题是,Rollup 如何利用 L1 能力来协助其序列化,更好地改善围绕序列化的信任假设,同时也增强序列化可以通过向用户发布预确认提供的理想体验。这实际上引领我们进入基于序列化和各种解决方案,这些解决方案致力于向 Rollup 提供此类功能。

基于序列化是一种相对较新的 Rollup 序列器设计方法。从最根本的层面来看,它涉及利用以太坊中 L1 提议者的验证者集合为 Rollup 提供序列化服务。

重要的是,在这里理解序列化 主要的特征是为 Rollup 订购交易并将其发布到提供 DA 的 L1。执行并不是序列化交易所严格要求的前提,它只是使序列化参与方能够根据情况向用户提供预确认的基础。考虑到上述对序列化的描述,我们认为如果处理 Rollup 交易的集合、批量处理并将批量发布到 L1 的任务是由 L1 区块生产者负责的,则我们将其视为基于序列化的 Rollup。我们在下方展示了一个基于序列化的 Rollup 最简单示例:

最简单的基于序列化的 Rollup 使 L1 区块生产者代表 Rollup 执行序列化服务,但从基本定义来看,基于序列化似乎没有提供预确认 此时,这可能会让读者感到困惑,因为序列器难道不是旨在向用户提供预确认吗?

答案是肯定的,但技术上来说,基于序列化的 Rollup 确实提供预确认 – 在这种情况下,预确认和软最终性同时发生。考虑我们之前提供的不同阶段的最终性图示:

让我们观察在实施上述描述的简单基于序列化模型的 Rollup 的不同最终性阶段在时间上的表现:

上述插图帮助阐明预确认在技术上是提供给用户的(通过在硬最终性之前提供反馈),但只是通过发布的批次变得公开知识,使 Rollup 节点能够告知用户其软执行保证。问题在于,当软最终性和预确认之间的时间为零时,我们失去了相对于 L1 区块链的 Rollup 序列化提供的所有宝贵优势 – 它看起来只是在以太坊的块时间中产生的,它的交易费用更便宜。因此我们可以肯定地说,预确认的价值随其与软最终性之间的时间延长而减少。现在的问题是,选择实施基于排序(以换取强安全性属性)的 Rollup 是否永远注定要放弃预确认在软最终时间之前所能提供的潜在好处?这个问题的简短答案是否定的,但需要对驱动 Rollup 基于排序的协议进行更复杂的设计。从与主权 BFT 排序模型如何利用问责工具来帮助强制遵循协议的处罚,以确保去中心化的行为者诚实地执行排序并发出预确认的方式来看,相同的策略可以用于启用从执行基于排序的 L1 区块生产者那里更快的预确认发放

为了更好地理解如何通过基于排序的模型来实现更快的预确认,首先让我们熟悉一下可信承诺机制的概念。可信承诺机制描述了一种旨在确保承诺或承诺的一方将来会遵守该承诺的系统。它通过经济激励、处罚和/或加密保证,使这一承诺既可验证又可强制执行。由于 L1 区块生产者是不可信任的行为者,可信承诺机制通过为这些代为排序的区块生产者提供更高的激励(以额外收入的形式)来帮助协调 Rollup 的交易者与这些区块生产者的利益,同时在他们违背之前所作的承诺时对其进行追责。在这种情况下,具有约束力的承诺和因服务质量差或恶意提供的服务而可能带来的惩罚,与主权 BFT 模型的排序提供的非常相似。主要区别在于,可信承诺机制是在 Rollup 用户和 L1 区块生产者之间实施的,而不是仅限于 Rollup 网络内的参与者之间。

基于排序设计的世界广泛且正在积极研究中,存在许多令人激动的新想法,例如引入新关键参与者如预确认者和包括者,他们利用 L1 验证者集更可靠地促进一致的排序模式。虽然探索这些主题会很有趣,但它们在这一篇幅中基本上超出了范围,因此值得澄清的是,虽然基于排序的设计空间正在增长,但目标依然是提供最佳的安全属性,以满足涉及排序的 Rollup,并向用户提供能够提升 L2 体验的快速预确认。

以太坊和 Rollup 之间的桥梁

以太坊和 Rollup 之间的桥梁对于两个关键原因非常重要:

  1. 用户接入 Rollup:如前所述,以太坊 Rollup 大多以 ETH 收取交易费用,因此用户为了开始使用 Rollup,必须以某种方式将 ETH 转到 Rollup。唯一可行的方法是通过以太坊和 Rollup 之间的桥梁机制。即使存在一个符合规范的 Rollup 可以被视为以太坊的实际扩展解决方案,但如果不在 Rollup 上使用 ETH 作为Gas,则仍需存在桥梁连接以启用价值转移,提供最低限度的组合能力,补充以太坊。

  2. 以太坊和 Rollup 之间的组合性:为了使以太坊和 Rollup 能够相互组合,它们需要一种相互通信的方式。从根本上来说,桥梁是协调这种通信的媒介。它们帮助用户在两个不同的区块链之间转移资产以及执行任意消息传递,可以触发从一个区块链执行某些操作到另一个区块链。

理解桥梁安全性

从根本上讲,桥梁就是在不同区块链之间进行消息传递,以帮助实现原子跨链动作。在这种情况下,原子性意味着确保在链 A 上执行操作 X,只有在链 B 上执行操作 Y 时才会进行,反之亦然。

  • 设链 A =
  • 设链 B = 目的地

一个希望执行涉及源和目的地的操作的用户,可以寻求将资产从一个区块链发送到另一个区块链。这将需要在源和目的地都执行原子操作(注意,这里的原子性并不意味着在字面时域意义上的同时执行,它严格受逻辑约束控制。换句话说,同时的原子执行可以提升组合性,因此增加以太坊扩展的好处)。

为了实现这一结果,目的地需要确定在源上执行的操作实际发生。有多种方法可以管理这一点,从完全信任某人证明在源上所发生的事情的正确性,到让信任方提供某种轻量的、可验证的方式来核实其主张,甚至让源运行一个完整的目的地节点,以核实有关该链的每个可能信息。

桥梁启用资产转移和跨不同区块链的智能合约调用等功能。设计空间很广泛,我们观察到许多系统围绕利用桥梁的效用而构建。

虽然这些好处很不错,但桥梁仍然面临许多挑战,如与桥梁实现相关的漏洞和其他风险。我们已经看到数十亿美元因此类漏洞而损失,而 这一数字只会持续增长。这突显了在实现桥梁时最小化安全假设的重要性。其中一个因素涉及 验证 发生在桥梁另一侧的活动,另一个因素涉及桥梁本身的 主权 状态。桥梁通常可升级且由受信方控制,这可以是在服务小心去中心化桥梁操作中的前期步骤,或者是围绕桥梁本身实施的设计决策。

通过了解桥梁的信任假设如何受到参与者如何识别有效性和主权在扩展中的角色的影响,我们对塑造桥梁信任假设的整体情况有了更全面的认识。

Rollup 的桥梁需求:信任最小化桥梁

Rollup 必须支持信任最小化桥梁,将其与所继承安全性的基础 L1 连接起来。这里的信任最小化是指,桥梁另一侧的任意区块链能够验证在另一侧发布的交易的有效性,而无需无信任地运行全节点以进行验证。有效性主要意味着交易是在 Rollup 状态的正确版本上执行的,以及交易执行的正确性。

在 Rollup 的上下文中,这将意味着提供:

  1. 从 L1 到 Rollup 的信任最小化桥梁:在 Rollup 上验证 L1 的正确性。
  2. 从 Rollup 到 L1 的信任最小化桥梁:在 L1 上验证 Rollup 的正确性。

由于 Rollup 已经继承了基础 L1 提供的安全保障,从 L1 到 Rollup 的桥梁从本质上来看默认是信任最小化的(这是因为 Rollup 节点已经被要求运行以太坊全节点以无信任方式跟随 Rollup 区块链)。不幸的是,从 Rollup 到 L1 的桥梁并非如此。例如,以太坊无法验证 Rollup 执行的正确性,也无法确保发布到其上的数据确实反映了 Rollup 区块链的当前状态。这意味着以太坊必须信任那些对 Rollup 链的完整性进行证明的行为者,而以太坊将没有手段去验证这些主张。

如果 Rollup 和其基础 L1 之间没有双向的信任最小化桥梁,则 Rollup 的真实安全级别最终会下降到其可信任的弱点。这促使我们严格要求 Rollup 和其他区块链之间的桥梁必须是信任最小化的。任何其他层级的桥梁实现都被视为非规范的 Rollup 实现,因此代表用户在选择使用它们时接受的风险。这突出强调桥梁实现的安全保障受协议规范所规定的内容约束。默认情况下,提供了最基本的方案,即从提供 DA 的 L1 到 Rollup 本身的一种单向信任最小化桥梁。对于选择保存区块验证双向桥梁的 Rollup(经典 Rollups – 更多关于这些内容将在后续介绍),协议强制的桥梁保障将会增强。我们通过下面的图示来说明这一点:

信任最小化的验证桥梁

让我们快速定义一下 信任最小化 在区块链上下文中具体意味着什么。考虑轻客户端如何与区块链交互。他们试图查询和验证区块链的数据,而无需手动执行每个交易以无信任的方式来确认正确性。要做到这一点,轻客户端查询信息并附带能够确定许可证的加密证明。

这体现了信任最小化验证的原则,其中轻客户端不无信任地评估区块链数据来确定信息,但也没有完全信任全节点向其提供的信息 – 相反,他们处于中间状态,可以通过加密证明查核全节点提供的信息(在以太坊和比特币中,这是通过 Merkle 证明来管理的,它为任何人提供了验证区块链数据结构中描述的信息正确性的一种廉价方式)。

如前一节所述,从 L1 到 Rollup 的桥梁实际上是“无信任的”(无信任一词用于在极强的信任最小化与其他形式的信任最小化验证之间进行区分),因为 Rollup 节点已要求运行以太坊全节点,以便与 Rollup 区块链同步,但当涉及从 Rollup 到 L1 的桥梁时,以太坊没有办法验证 Rollup 链的状态 - 这在实质上意味着,通过这种方式进行桥梁的情况下,默认情况下存在较强的信任假设。

幸运的是,有一种策略可以使 Rollup 到 L1 的桥梁更加信任最小化,它依赖于轻客户端进行信任最小化验证时遵循的相同原则。类似于轻客户端如何验证加密证明以确定其区块链的正确性,在 L1 上可以引入类似功能的有效性执行机制,允许 L1 以信任最小化的方式验证 Rollup 区块链。支持 Rollup 到 L1 信任最小化桥梁的这种功能的实现以 L1 上的验证桥梁的形式存在。最终结果是有可能实现 Rollup 与其所继承安全性相同的 L1 之间的双向信任最小化桥梁。在引入此功能后,可以实现对 Rollup 的信任最小化存款和取款。

验证桥梁的目标是通过提供核实 Rollup 区块链及其上执行正确性的信任最小化手段,使从 Rollup 到 L1 的桥梁信任最小化。这意味着,连接 Rollup 与其基础 L1(如以太坊)之间的桥梁的设计方式是,以太坊拥有更可审计的手段来验证 Rollup 链及其上交易的正确性,而不仅仅依赖于有效性确认的受信任证明。

  • 信任最小化的 L1 到 L2 桥梁:从 L1 到 L2 的消息。此桥梁的主要应用用例是将资产从以太坊存入 Rollup。由于 Rollup 已经依赖于以太坊的安全性,因此不需要说服 Rollup 认可以太坊的执行。
  • 信任最小化的 L2 到 L1 桥梁:从 L2 到 L1 的消息。此桥梁的主要应用用例是从 Rollup 提取资产到以太坊。L2 到 L1 的桥梁可以通过验证桥梁以信任最小化的方式执行,该桥梁利用有效性执行机制为以太坊提供了验证 Rollup 完整性的方法,以便在以太坊上执行操作之前。

让我们通过看看涉及 Rollup 和 L1 的存款和取款生命周期来简要了解双方信任最小化桥梁的实现。

让我们看看当用户请求将 ETH 存入 Rollup 时发生了什么:

  1. 用户向以太坊的验证桥合约存入 5 ETH。
  2. Rollup 收到一条在以太坊发生的消息,表明发生了存款事件。
  3. Rollup 铸造 5 ETH,并发送到用户在 Rollup 上的账户。
  4. 由于 Rollup 的数据已发布到以太坊,进行铸造和转让给用户的交易可以由以太坊在无需信任的情况下进行验证。

到目前为止,我们还没有看到验证桥做了什么,但如前一节所述,从以太坊到 Rollup 桥梁的设置由于设计上是信任最小化的,因为 Rollup 接受基础 DA 和共识提供的保障。接下来看看从 Rollup 提取到以太坊的操作,以及验证桥在无信任的情况下参与管理的方式:

  1. 用户通过向桥合约提出请求,从 Rollup 提取 5 ETH 到以太坊。
  2. 提取请求被中继到以太坊的验证桥。
  3. 通过在 L1 上使用有效性执行机制,Rollup 向以太坊证明用户有足够的资金请求提取,并证明发起提取请求的链状态的完整性。
  4. 如果有效性执行机制得到满足,以太坊确认提取请求,并从验证桥合约中向 L1 的用户释放 5 ETH。

有效性执行机制的存在是为了给以太坊提供一种验证 Rollup 区块链正确性的方式,使得无论是来自 Rollup 发起的消息(例如,从 Rollup 提取资产到以太坊),都无需以太坊 i) 必须执行 Rollup 交易以验证完整性/正确性 ii) 信任那些声称 Rollup 链的完整性的行为者。

理解有效性执行机制的相关性一个简单的方法是将其与以太坊本身存在的等效构建进行对比,然后将有效性执行机制框定在经典 Rollup 中:

  • 以太坊如何证明其执行的正确性:当新块被发布到以太坊时,每个节点都会自行运行该块,以检查块生成者是否正确描述了执行结果。随后,通过共识过程,多个节点共同收敛至标准链。这基本上描述了以太坊设计本身的有效性执行机制。
  • 以太坊如何证明经典 Rollup 执行的正确性:以太坊之所以需要验证 Rollup 区块链状态的正确性,是为了帮助强化更安全的桥梁。从 Rollup 向以太坊中嵌入有效性执行机制(更具体地说是在支持验证桥的以太坊智能合约中),使以太坊能够在不直接执行的情况下验证 Rollup 状态更新的正确性。
    • 这在某种程度上类似于“轻客户端”通过请求 Merkle 证明验证执行或状态片段正确性的理念,使它们能够以信任最小化的方式进行验证,而不是完全“无信任”地独立运行完整节点来自我验证每一个动作。

有效性执行机制(ZK 证明,故障证明)

有效性执行机制在单独使用时扮演的角色是:为 L1 提供一种验证 Rollup 执行的信任最小化方法。如前所述,Rollup 通常通过批量更新状态。这意味着我们可以想象一种离散的“验证 Rollup 执行”的事件,看起来可能是这样的:

为了使桥梁的 L1 端能够执行任何操作,我们需要确保从 L2 提交的交易的正确性(这意味着它们的有效性以及它们是在有效版本的 Rollup 区块链上创建的)。为此,Rollup 将在其设计中实施有效性执行系统,其中包括允许以太坊验证执行的链上组件;正是这个链上组件被称为 Rollup 的有效性执行机制。

有两种领先的方法为 L1 提供有效性执行机制,这两者在验证 Rollup 执行的正确性上采取了截然不同的方法。

  1. ZK 证明:这种方法涉及链下生成简洁的、加密证明(确切地说是零知识证明),这些证明可在链上被以太坊验证,以断言 Rollup 批量执行的正确性。
  2. 故障证明(即故障排除):与其证明执行的有效性,这种方法依赖于假设一切都正确,同时提供较长的时间段(形式上称为挑战窗口),让任何参与者向 L1 提供无效状态变更的证据以纠正“故障”。如果有证据产生,接下来将在挑战者和发布争议数据的参与者(通常是序列器)之间进行“搜索与解决”的博弈,由 L1 仲裁。如果挑战窗口过后没有任何故障被提出,以太坊将验证此次期间的所有批次。

除了这两种方法的实施细节外,Rollup 有效性执行向 L1 提供信息的关键区别在于 L1 验证 Rollup 离散批量执行事件的时机。

  • 在采用 ZK 证明的 Rollup(更常称为 ZK Rollup)中:一旦与批处理相关的 ZK 证明在链下生成并传送给 L1,L1 可以立即验证正确性。
  • 在采用故障证明的 Rollup(更常称为乐观 Rollup)中:当挑战窗口过期且未对 L1 提出故障证明挑战时,L1 可以在挑战窗口期结束后验证批次的正确性。

这表明,在乐观 Rollup 中,批次必须等到此挑战窗口过去(平均约为 7 天),而在 ZK Rollup 中,一旦发布了声称它们正确性的 ZK 证明,批次就能立即被验证。经过以太坊对使用任何这些方法的批次的验证后,这些信息能够用来授权来自 Rollup 的行动在以太坊上执行(例如,从 Rollup 提取资产返回以太坊)

寻求在其区块链与所继承的 L1 之间实现信任最小化验证桥梁的 Rollup 将决定采用哪种方法为其验证桥提供信任最小化的功能,但归根结底,两者都需要信任每种有效性执行机制的健壮性和完整性。因此,虽然这些支持有效性机制提升了围绕桥梁的信任假设,仍然应考虑与这些系统交互时较弱的信任假设。

紧急机制

序列器是用户处理 Rollup 交易的切入点,但如果序列器处于离线状态或故意忽视用户交易,那么会发生什么?如果 Rollup 不提供应对这些情况下的后备措施,其安全性和可靠性实质上就会受到削弱。对上述两种情况的脆弱性展示了活性和抗审查性存在缺陷。

再次考虑活性和抗审查性的广义定义:

  • 活性:我们希望确保 Rollup 能够随时间如预期般继续运作。
  • 抗审查性:我们希望确保用户的交易总会在某个明确定义的时间段内被包括在内(值得说明的是,某些交易所需的时间比其他交易显著更短)。

假设序列器发生故障,我们希望提供后备/紧急机制,使用户能够绕过里面失败的关键路径,与 Rollup 互动并在这些极端情况下推动其操作。提供用户绕过序列器故障或审查的方法的一个流行方案,是让 Rollup 在 L1 上嵌入强制交易包含机制(为 Rollup 提供 DA)。从这里开始,Rollup 的派生过程中的逻辑可以定期监测以这种方式提交的交易并在 Rollup 区块链上同步。提供这种方式绕过序列器不仅可满足序列器停机,还可防止审查向量,如果序列器有意不包含特定用户的交易。

经典 Rollups 与主权 Rollups

到目前为止已经讨论了很多,因此最好重申一些有主见的定义:

Rollup被严格定义为——一个完全可从另一底层区块链(L1)推导出的区块链,该底层区块链提供了 Rollup 输入数据的可用性以及对其的排序,使得任何运行 Rollup 节点的参与者都能够在任何时刻无信任并且可确定地计算 Rollup 的状态。

以太坊扩展 Rollup(有主见的分类)被定义为具有以下特点:

  • Rollup 完全是可从以太坊提供的可用数据中推导而来的。
  • Rollup 是 EVM 等效的。
  • Rollup 和以太坊之间的桥梁是信任最小化的。
  • 有一个排序模型。
  • 可以有一个验证桥(带有效性执行机制)。

在这一点上,我们展示了 Rollup 设计者可以做出的各种设计决策,例如实施其排序模型的方式、在基础 L1 和 Rollup 之间实现验证桥的方式等等。但现在我们达到了一个关键点,一个设计决策将决定我们所讨论的 Rollup 的基本类型。虽然许多人认为排序策略或用于 Rollup 的有效性执行机制选择应该主要界定一个 Rollup,但我相信,分类 Rollup 的主要标准应归结为一个问题 - 它是否嵌入了与其所继承的 L1 之间的验证桥?

验证桥的嵌入是关键标识。在回答上述问题的“是”或“否”时,我们会得到存在的两种 Rollup 类型:

  1. 经典 Rollup:指那些与其所继承的 L1 之间嵌入了验证桥的 Rollup。
  2. 主权 Rollup:指没有与其所继承的 L1 之间的桥梁的 Rollup。这并不意味着在 L1 和 Rollup 之间不能存在验证桥,而仅仅是对于将其定义为规则元素的设计偏好。

经典 Rollups

经典 Rollup是指那些和以太坊之间嵌入了验证桥的 Rollup。这实现了以太坊与 Rollup 之间双向、信任最小化的桥梁。因此,嵌入的验证桥是这类 Rollup 的一个决定性建筑组件。由名称显而易见,嵌入的验证桥由两个关键细节构成:

  1. 嵌入:Rollup 与以太坊之间的桥梁深植于 Rollup 区块链的设计中。这意味着 Rollup 和以太坊之间有一个规范的桥梁实现。
  2. 验证:该桥梁赋予以太坊一种信任最小化的方式,以验证 Rollup 的状态及其上链外执行的正确性。这意味着桥梁的设计使得以太坊可以以更可审计的方式来验证 Rollup 当前状态和执行操作的正确性,而不仅仅依赖于可信的证明。

经典 Rollup 与主权 Rollup 之间的技术差异已经表述过,它归结于决定是否将桥梁嵌入到 Rollup 和基础 L1 之间,以提供 DA 和共识保障 – 仅仅是这样简单

这意味着 Rollup 区块链被定义为具有默认的、规范的桥梁与其基础 L1(此处为以太坊)之间的关系。这个结果使得经典 Rollup 的定义不仅仅是从 L1 上可用数据中推导出来,并且包括必须有一个嵌入的验证桥连接 Rollup 与这一 L1。这个设计决定本质上建立了 Rollup 和底层 L1 之间更紧密的关系。为了更好地理解其含义,请记住,Rollup 基础上由下图定义:

通过经典 Rollup 的嵌入,现在我们将 Rollup 和其底层 L1 之间的关系扩大到不仅仅是关于可用性和共识的交易关系。这个关系现在包括在可用性层和 Rollup 之间建立一个验证桥。Rollup 和 L1 之间的关系现在在 Rollup 协议级别上以这两种形式特征化:

这一设计决定的结果是,以太坊和 Rollup 之间实现了更流畅的互操作性,因为与 L1 和 Rollup 之间的桥梁被嵌植为系统中的一等公民(可以将其视为以太坊上辅助验证者在 Beacon 链上质押的特别智能合约)。

经典 Rollup 的目标因此更容易理解。经典 Rollup 旨在通过扩展 L1 使用的本地体验来扩展以太坊。经典 Rollup 旨在通过制定两个目标来实现这一目标:

  1. 减轻以太坊的执行压力:通过进行链下的 EVM 等价执行,经典 Rollup 可以为用户提供在以太坊上可以提供的类似体验,但费用更便宜且交易结算更快。
  2. 经典 Rollup 与以太坊之间的组合性:通过依赖于以太坊提供的安全属性(基于其可用性和共识),经典 Rollup 既是连接以太坊的 EVM 等价区块链,又能通过信任最小化桥梁实现这些,经典 Rollup 不仅减轻了以太坊的执行负担,还引入了更强的互操作能力,不仅能够与以太坊实现交互,同时也能和其他经典 Rollup 确保以太坊的生态和流动性不会碎片化。这样的跨链组合性意味着经典 Rollup 可以在不与整个生态系统隔离的情况下增加以太坊的产能。

当人们通常谈论以太坊中的 Rollup 时,经典 Rollup 通常是人们心中想到的概念 – 一个 L2 区块链,其继承了一些由以太坊提供的安全属性,并且可以相对容易地与以太坊进行交互。

虽然经典 Rollup 的直觉相对容易理解(在合理的背景下),但它往往成为了 Rollup 的代名词。虽然经典 Rollup 在自身权利上是极具威力和实用的解决方案,但它并不完全代表 Rollup 的整个设计空间,即便是在追求以太坊扩展目标方面。必须记住,从其 L1 推导出 Rollup 区块链仍是其定义的关键特征。这意味着 Rollup 在以太坊扩展的方式远不止一个具有紧密互操作性的 L2 区块链。这就是有关主权 Rollup 设计空间的出现。

主权 Rollups

主权 Rollup可以被描述为那些在其用于提供 DA 和排序的基础 L1 上选择不嵌入验证桥的 Rollup。由于这一设计决定,这使得它们相较于经典 Rollup 容易区分。

以太坊主权 Rollup 的起始蓝图如下图所示:

与经典 Rollup 相比,主权 Rollup 可能是一个令人困惑的概念。但它们教会我们的一件最有用的事情是,Rollup 如何依赖一个区块链来提供 DA 和排序保证,并利用这样一个光客户端的 L1 DA 层来在 Rollup 和完全不同且独立的区块链之间实现信任最小化的桥梁。尽管这并不一定与以太坊扩展相关或互补,但确实对证明 主权 Rollup 的设计空间非常有用。

与经典 Rollups 类似,主权 Rollups 在实现从以太坊(基础 L1)到 Rollup 的信任最小化能力时,区别在于它们无法“本土”提供从 Rollup 到以太坊的信任最小化桥梁。考虑到这一点,以及仅将信任最小化桥接视为 Rollup 接受的条件,是否在实现以太坊扩展目标方面具有一种向以太坊的桥梁的 Rollup 存在任意好处?

答案是肯定的。如先前各节所述,在保留与以太坊执行兼容的同时,减轻执行负担的 Rollup(并继承以太坊的安全保证)为扩展其功能提供了切实的影响。在这种情况下,从 Rollup 返回以太坊的桥接不会可行(除非通过受信任的方法),这对组合性造成伤害,但确立了可能促进更特定于应用的 Rollup 使用的界限(例如,如果从 Rollup 返回的桥接不可行,用户最好确认他们进入 Rollup 域的目的)。这样的代理限制在防止 Rollup 出现 Sybil/非有机活动方面可能是重要的。这一点本身是一个强有力的概念,因为它为用户提供了更便宜、更高效的执行方式,同时也让他们做出是否投资该系统的一些决定。如果他们想要更具组合性的选择,可以直接寻求在以太坊内的经典 Rollup 上参与。

在为一向信任最小化的桥梁在 Rollup 和其基础 L1 之间的实用性辩护时,我们还可以开始看到桥梁如何在主权 Rollup 中以多种方式实施。一个很好的例子是展示一个主权 Rollup 可能如何在其所依赖的 L1 上实现一个验证桥梁。这只需要求 Rollup 的参与者部署实现验证桥功能的智能合约到 L1,使以太坊能够获得信任最小化验证的方法:

这突显了主权 Rollup 如何被模塑以达到与经典 Rollup 相同的结果(所有这些都没有嵌入的确认标识)。

经典 Rollup 和主权 Rollup 之间的关键区别在于每种 Rollup 类型选择其桥接选项的方式。对于 经典 Rollups,可以简洁地理清桥梁动态及其背后的动机。经典 Rollup 的设计具有明确目的,即与其所继承的安全性高度互操作。从这一决定可以合理地确认 Rollup 将保持强烈依赖以太坊的长期目标,因为其承诺嵌入一个验证桥。这与希望扩展以太坊的主权 Rollup 也拥有的目标是相关的。该决定在嵌入上优先考虑组合案例,例如与 L1 的组合性,意味着期望未来会涉及更多频繁的跨域交互,无论是通过资产转移还是通用跨链消息传递。值得注意的是,组合性可能增强对以太坊扩展的努力,但这并不意味着它是提供扩展的严格要求。

关于主权优势的误解(经典 Rollup 也可以具备这些优势)

关于主权 Rollup 的一个较为显著的论点是,成功实现时与底层 L1 相比,Rollup 生态系统自有的高度主权。主权意指 Rollup 生态系统在无需其底层 L1 或任何其可能建立桥接关系的其他区块链影响下设定其区块链规则。这有助于解释为什么主权 Rollup 不订立与其底层 L1 的验证桥。

然而,对主权 Rollup 与经典 Rollup 之间当前区分的问题在于,它们双方都具备这些能力。真正的区别无非在于经典 Rollup 施加其规则以增强与以太坊的桥接的机制面临更多障碍。除此之外,经典和主权 Rollup 都因其节点中设定的逻辑而定义 – 而不是它们之间或与其底层 L1 之间存在的任何桥梁。无论向底层 L1 提供的 Rollup 数据如何,都以 Rollup 节点所定义的逻辑被加以处理。

以上论述说明经典和主权 Rollup 在其技术主权方面的趋同,经济力量也同样对这两种 Rollup 类型施加压力。虽然我们从技术上说桥梁不会决定 Rollup,但从其所推导的价值中获取的抵押品可影响 Rollup 应成为何种形式的社会共识(类似于人们对某个区块链的某个分叉是否规范化的信号)。

可实现的主权优势 – 实践的固化

在上一篇中,描述了主权 Rollup 与经典 Rollup 之间的许多相似之处,而这种观点确实与现实一致。尽管这种观点可能会降低大家对主权 Rollup 相对经典 Rollup 的价值信念,接下来还是要对此形成提案。

由于经典 Rollup 表达了对嵌入与以太坊之间的验证桥的坚定承诺,因此它们在桥梁功能实现上采取了谨慎的方式。这表明,虽然它们与嵌入桥梁达成长期(且理想上是永久性)的承诺,但它们采取了一种稳步的方法来巩固验证桥。这样做则是出于风险管理的原因,但同时也引入了主权信任假设(请记住,桥梁的信任假设可以通过有效性如何被判断设定和功能如何被特权方所改变的方式来进行评估)。

桥梁的可变性/可升级性确实引发人们担忧,但并不是为了控制用户,而是为了确保能够立即处理任何潜在的漏洞,保护用户以免遭受潜在的灾难性结果。值得提醒读者的是,Rollup 还不到十年的历史,尽管在研究、出货和报告上已有不少成果,但我们在安全地实现其潜力上仍有很长的路要走。

这就是选择成为主权 Rollup(即不嵌入且致力于 Rollup 的意见导向)显示出独特好处的原因。在不承诺嵌入桥梁的情况下,主权 Rollup 可以采取消除更多不可变桥梁的途径,并在需要升级的情况下,表达变化的需要,以便用户能够表达他们是否同意升级细节。理论上,经典 Rollup 也可以与升级的嵌入桥梁相对进行这一过程,但这需要更中心化的社共识工作以达成同样的结果,并且可能依赖于遵循声明性加升级路径的更多强制压力将更难克服。

值得一提的是,对 Rollup 域的主权增强始终与以太坊扩展工作保持互补性(假设此 Rollup 为 EVM 等效),并仅仅为对关于桥接实现进行的决策提供了更大的用户决策权。

导航以太坊 Rollup 空间的框架

虽然区分 Rollup 是经典型还是主权型的主要方式已经相当明确,但 Rollup 特征/功能周围做出的设计选择也可以进一步分类我们所讨论的 Rollup 类型。绘制 Rollup 设计空间的方式很多,因此本文旨在描述一种可能的方法,考虑到以下几点:

  1. 排序:如前所述,Rollup 可选择采用的排序模型范围广泛,但主要的区别最终归结于 Rollup 是独立管理其排序还是让基础 L1 DA 层来帮助这个过程。因此,Rollup 可以根据在这里做出的决策视为基于与非基于。

  2. 信任最小化的 Rollup 验证支持和方法:如前所述,Rollup 可以提供类似轻客户端的功能,以启用从 Rollup 到另一区块链的信任最小化桥梁。如果在 Rollup 的设置中提供了此选项,它增强了 Rollup 用户可用的安全桥接机会。如果支持通过何种方式来提供信任最小化验证能力,那么将有助于区分我们所讨论的 Rollup 类型。* 如果 rollup 使用 ZK 证明来帮助提供信任最小化验证,则该 rollup 可被视为 ZK

    • 如果 rollup 使用故障证明来帮助提供信任最小化验证,则该 rollup 可被视为 Optimistic

基于上述因素,我们可以构建一个矩阵,以更正式地表示 rollup 设计空间:

上面的表格展示了试图帮助导航和更好地分类在实施 rollup 系统时所采取的任何方法的努力。你会注意到,围绕顺序和信任最小化验证能力所做的决定与 rollup 是经典性质还是主权性质无关。值得注意的是,例如在 rollup 系统提供不了信任最小化验证方法的情况下,这使得验证桥的确立变得不可能,在这个特定的列中有效地排除了经典 rollup 的存在——这些列中的 rollup 只是简单的香草或基于主权的 rollup,没有轻客户端支持,可以被其他区块链利用(这意味着 rollup 和其 DA 层之间只存在一个单向的信任最小化桥)。

通过这样的一个系统,我们可以更系统地推理不同的 rollup,并培养出标准化的 rollup,可以被归约到这个矩阵中的单个单元格来描述。本质上,我们可以将所有可能的 rollup 类型(在我们自称的以太坊扩展框架内)映射到这个 3D 矩阵的单个单元格中。

例如,让我们看看以太坊上排名前三的 rollup 如何在这个矩阵中进行分类(根据 L2Beat 描述的市值估计)。这三种 rollup(Optimism、Arbitrum One、Base)都可以被确定为 经典的 Optimistic Rollups,当前采用非基础排序。因此,我们可以看到它们在矩阵中的哪个单元格下:

这个设计框架有两个关键好处:

  1. 以太坊 rollup 的更系统化分类:本质上,建立一个更详细的分类系统使以太坊生态系统能够更好地组织对 rollup 领域的理解。像 L2Beat 这样的组织在这方面已经领先,但他们不能单靠自己,也不应该被期望做到。为了开放合作的精神,以太坊社区应该积极整合、扩展和审视所有在 rollup 领域所做的工作(包括提出评估框架,以以一种公正中立的方式推理系统)。这个分类系统旨在对此作出贡献,并补充全球社区在 rollup 评估方面的共识。
  2. 指导针对特定 rollup 实现的更具上下文感知的安全模型设计:通过这个分类系统,我们可以通过建立更具上下文感知的安全模型,潜在地评估不同 rollup 实现的安全性,而不是可能产生不公平的比较,从而导致仅在相对正确的情况下做出错误假设,具体取决于所使用的参考平面。

通过上述分类框架的好处,可以更直观和系统地绘制出以太坊的 rollup 领域。在建立在各个团队和研究者的努力之上,它能为组织和对寻求实现以太坊 rollup 生态系统的愿景的参与者之间的预计对齐提供良好基础。它甚至可以扩展到包括 Vitalik Buterin 概念化并由 L2Beat 更正式阐述的 rollup 阶段等有用的信息。

到目前为止,该框架旨在尽可能多地捕获详细信息和语义,而不对可能涉及主观争议的更微妙细节抱有过多观点。这是为了以尽可能中立的方式呈现分类框架的概念。主要目标是充分倡导采用有足够基础的框架,加以扩展。考虑到这一点,让我们继续探讨围绕以太坊 rollup 的安全性问题,旨在为以太坊提供足够的上下文,以潜在地扩展此框架或其可能激发的任何其他框架。

绘制有关 rollup 的安全考虑

在理解 rollup 分类框架的有用性时,我们可以开始考虑哪些信息可以增强它作为以太坊 rollup 生态系统的有效工具的价值。安全性仍然是 rollup 的一个重要支柱,旨在使其成为能够增强链上系统实用性的最安全的 L2 区块链。尽管可以明显推断出安全性是指什么,但还是值得简单概述一下安全性实际上旨在实现什么。

Rollup 的安全性是指 rollup 为其用户和各种独立运营商提供对其功能和服务的强有力保证的能力。技术上,rollup 应以定义明确的方式运行,使用 rollup 的体验应对所有用户公平且不偏不倚。

考虑到这一点,让我们回顾一下当前 rollup 面临的一些最紧迫的安全问题,试图绘制出以太坊生态系统应该关注和寻求改善的方面。

技术风险

技术风险是指围绕启用 rollup 功能并向其用户和独立运营商提供效用的技术的潜在风险。这些风险可能以多种形式突显:

  • 协议风险:这类风险描述了实际协议规范中的缺陷,这意味着虽然运行协议软件的 rollup 节点可能在技术上正常运行,没有故障,但实际的协议规范可能存在漏洞,导致意外或灾难性故障。
  • 客户端风险:这类风险与运行实施 rollup 协议的软件的 rollup 节点的广泛功能相关。在这里的风险表现为代码实现中的缺陷,其中错误可能导致意外或灾难性的行为(例如,未检测到的竞争条件使 rollup 节点偏离协议并进入不可恢复的故障状态)。
  • 信任最小化验证(Prover)系统风险:这类风险指的是使外部当事方能够对 rollup 区块链进行信任最小化验证的系统中的缺陷或其他形式的漏洞/缺陷(例如,通过验证 ZK 证明或具有利用故障证明的争议解决协议的 Optimistic rollup 设计)。这里的风险可能导致信任最小化桥接功能的意外或灾难性故障。
  • 智能合约风险:这类风险指的是可能存在于帮助驱动 rollup 功能的智能合约中的缺陷。这些智能合约可能存在于 rollup 上,或者存在于其继承其安全属性的基础 L1 上。此类错误可能导致资金损失、侵蚀用户体验的意外行为(例如,不正确的 L1 属性导致 rollup 上的不正确费用逻辑)等。由于智能合约在以太坊上主要作为轻客户端的形式使用,以支持大部分 rollup 原生功能,智能合约中的错误可能对 rollup 系统造成潜在的生存风险,包括对 L1 用户的风险,这些用户对整个系统的完整性感到期待。

此技术风险部分可以讨论的风险肯定还不止这些,但在很大程度上这些描述我们更为了解的多种类型,并且与下一个风险领域——中心化风险,并没有过多重叠。

中心化风险

中心化风险是指一个单一行为者(或一组行为者)对提供核心功能或可配置性施加的风险。这些风险可能以多种形式突显:

  • 活动性风险:鉴于专门的运营者(如执行各种关键任务的 rollup 节点)在维持 rollup 持续运行中发挥着重要作用,因此存在活动性故障形式的风险,即如果 rollup 因意外故障状态而无法继续运行,则用户将无能为力,除非有人为恢复机制。这样一来,用户在 rollup 上的资产可能被冻结,无法取回,除非特权操作者能够转变回“良好状态”,并如预期般运行。
    • 如果排序是一个受信任的角色,并且指定的 Sequencer 离线且用户没有选项可以执行其交易,用户可能会被卡住,没有方法访问其资产,甚至不能从 rollup 中提取资产。
  • 信任最小化验证(Prover)系统风险:如果围绕为底层 L1 验证 rollup 提供信任最小化手段的系统本质上是中心化的,则该系统本质上被默认信任,无论其是否通过规范减少信任。虽然对于密码学证明,这可能会被视为不可能,但值得强调的是,如果不恰当地处理信任最小化系统的技术风险,那么通过密码学无法消除中心化风险(例如,密码学证明可能是绑定的且防篡改的,但可能正在验证某个其他声明的真实性,而不是验证方期望其声称的正确性)。
  • 审查风险:这类风险与活动性风险相似,因为它涉及对受信任的运营者的依赖。一个受信任的运营者可能以不可归属的方式恶意审查用户或其他安全代理,如果没有机制来防止或限制这种行为,用户面临潜在的伤害和不公正。
    • 这可以表现为交易审查,妨碍用户在 rollup 上执行其交易。这也可能包括阻止用户将资金从 rollup 提取到 L1 或其他具有从 rollup 到其间信任最小化桥的区块链。
  • 价值提取风险:这类风险与审查风险相似,因为它们涉及对可能恶意侵害用户的受信任运营者的依赖。在这种情况下,一个不受限制的排序者或安全操作者可以利用用户交易的上下文信息,从而从其活动中获利,或者甚至危及用户对其交易的福祉期望。如果没有机制来制止受信任代理在此类信息上采取 opportunistic 策略,用户可能面临潜在的损害和不公正情况。
  • 可升级性风险:高度依赖智能合约来确保其系统功能循环的 rollup 通常会采用可升级合约,以对抗与智能合约相关的技术风险。虽然其意图可能是善良的(或并非如此),但将关键智能合约的可升级性留给受信任的操作者是强制性的,并迫使用户遵守,通常没有任何时间段供用户决定因为与系统更改的分歧而退出 rollup 系统。虽然某些智能合约确实允许升级窗口,为用户提供足够的时间在不再希望参与系统的情况下退出 rollup 系统,但并非所有可升级智能合约的部分都配置有这些窗口,且通常是即时更改(如果受信方认为升级非常紧急)。此外,升级窗口往往不足以保证用户在审查风险下可以退出系统,因为审查可能完全阻止或延迟用户交易,直到完全错过升级窗口。

阐明安全问题空间并提出解决路径

如上所述,在技术和中心化风险的形式中存在多种安全风险,它们往往以复杂的方式交织在一起,使它们加大,并且在理论上应该具有高度安全的区块链上变得更加显眼和突兀。

本节的目标不是为之前部分中描述的许多潜在风险提供完整的解决方案,而是突出出发于可能的几个渠道,以便减少并可能完全消除某些现存的问题。我们从对风险领域进行分组和关注开始,以更好地了解哪些问题希望得到解决,以及哪些潜在解决方案有助于导航这些特定问题空间:

  1. 工程:最恰当地描述这一点就是表达它是将规范转化为具体、物理组件(理论到实践的转变)的技术实现细节。对于工程来说,我们首要关注的不是系统设计决策,而是将规范转化为可执行工具。工程关注确保协议、客户端软件、证明系统和智能合约的技术实现正确性。其范围的关切集中在确保错误和竞争条件不威胁整个 rollup 系统的完整性。
  2. 可升级性:这涉及到 rollup 的可升级性,涵盖系统的所有部分,同时更直接地涉及那些显著影响 rollup 行为的智能合约升级控制,相较于更多面向软件开发的家务事。
  3. 系统弹性:这关心引发系统断裂后,rollup 系统的恢复能力。所谓的弹性是指系统抵御并从意外故障中恢复的能力,故障可能来源于传统的分布式系统错误以及拜占庭行为(恶意行为、审查、故意破坏或诱骗协议执行禁止的行为)。一个具备弹性的系统应能够抵盾诚实的实现错误和恶意攻击,提供动态的抵御和恢复过程,承诺不需要信任干预。

工程

如上所述,工程关注的是技术实施细节。这包括从协议规范到应用层通过智能合约的整个过程。

  • 协议规范:协议规范基本上描述了一个正式文档,该文档数学上描述了 rollup 协议如何运行。这涵盖了客户端(rollup 节点)需要实施的内容,以跟随协议,并描述 L1 如何被用来提供 DA 和共识以及需要实施的基本功能。此外,涵盖协议规范的工程风险在于正式验证规范与所指定功能要求的一致性。
  • 客户端:这涉及节点客户端软件的实施,这在确保 rollup 的操作中发挥着关键作用。包括确保客户端实现正确地将协议规范转化为软件。
  • Prover 系统:rollup 的有效性强制执行系统(亦称为 prover 系统)得到了正确实施,以确保任何区块链(无论是底层 L1 还是另一种单体 L1)都能够实施功能,实现从 rollup 到 L1 的信任最小化桥接。
  • 智能合约:智能合约可能在 rollup 系统中发挥重要作用,无论是在通过实施在 L2 和 L1 的智能合约实现信任最小化桥接,还是传递重要信息以协助同步 rollup 区块链的底层 L1 中的合约。这些智能合约需要经过充分审核,并必须设置应对意外情况的措施。

当涉及协议规范和客户端考虑时,实际上可用的选项并不是很多,但与此同时,这两个领域的成本大幅低于 prover 系统和智能合约。一旦考虑到这一点,关于协议规范和客户端实施的优化风险最小化的策略将涉及扩大对这些内容的严格性测试的既定方法,无论是通过正式验证来证明协议规范的数学正确性,还是针对客户端实施采用常规软件测试实践。

在优化最小化 rollup 的 prover 系统和智能合约实施的风险时,我们进入了更复杂的领域,这种情况更合适地被描述为未知领域。与协议规范和客户端实现不同,这些是一种比较新颖的概念,因此带来了更多不确定性,不知道在减轻技术风险时需要特别留意什么。在实现既新颖又复杂的系统时,需要更好地了解设计空间。遗憾的是,这种努力并不是可以凭一己之力在短时间内突围而出的,即使拥有最好的智力资本也是如此。要理解将新技术从破坏性、创新阶段转变为成熟阶段所需要的条件,在解提出去识别问题配置时已经得知过渡工作需要在资源上(无论是时序、资金和智力)进行大量投资。问题在于,虽然这是正确的,却不意味着直到我们达到这样的阶段,依然以信任为本的实验技术上存在显著风险。自然解决方案就是实施“保护栏”,以便如果遇到问题时能够快速解决。可惜,这样的方法引入强信任假设,将权力置于少数非独立权限紧凑的进程中。这在区块链情境中显然并不理想,因为这些系统被设计成具有开放性和无信任性质(这是推动整个行业努力的渐近目标)。

在哲学上,以上方法与构建基于区块链的系统的整个动机相悖,虽言之无物,显然反映出当前我们在实现 rollup 系统的 prover 系统和智能合约时的现状。讽刺的是,以太坊生态系统和 rollup 设计者并不对此无动于衷,这不幸是没有任何更好解决方案来应对风险的结果。

  • 在一边,若 rollup 设计者决定立即放弃控制,将承担一个强大的假设,即该技术一直有效并将永远有效,这显然没有现实依据。
  • 另一方面,rollup 设计者理解与实验系统相关的技术风险,并主动决定对这些系统施加更大控制,直到我们可以像信任自然法则或信息理论所决定的安全保证那样信任它们。这里的风险在于,对将这些系统转变为更加无信任状态的自满可能成为常态

这有效突显了 rollup 设计者面临的困境,即在放弃对实验技术的控制的压力与预计实验技术如预期有效之间存在矛盾——无论如何,某种形式的信任假设都寄托于这些系统的设计者身上。在此背景下,问题依然是我们如何在不引入更高技术风险的情况下改善目前被迫承担的信任假设

深度防御(DiD)

深度防御被认为是一种通过多层安全策略来保护系统的策略。对于保护实验系统尤其是通过验证桥实现信任最小化桥接的 prover 机制,基于 DiD 的方法提供了一个很好的替代方案,用以在小心管理信任风险的同时确保这些系统的安全性。

在 rollup 中,DiD 改进的大致样子是什么?

在回答这个问题之前,让我们回顾一下可能成为 rollup 的证明系统的最常见的实际示例——在 rollup 和 L1 之间实施验证桥:

在前面的部分中,我们逐步形成了对 prover 系统的直观理解,通过称其为“有效性执行机制”来描述,正如当时所述,这些系统负责提供一种方法,使得任何人都可以验证给定 rollup 的当前状态,而无需运行 rollup 全节点

这本质上描述了我们试图在其周围最小化信任的实验性技术,同时确保技术风险得到充分考量和规划。此系统涉及将链上逻辑和链下逻辑结合在一起,共同提供上述信任最小化功能。这就是为什么在讨论这些风险时,智能合约和 prover 系统被凝聚到一起,因为智能合约通常是这一“轻客户端”行为对 L1 可及的载体。在未来, 这个载体可能以其他形式出现,例如集成到 P2P 网络层中,为其本土 L1 的轻客户端提供服务——但在目前,我们将在系统图中考虑到,与 rollup 的 prover 系统以智能合约接口进行交互的系统。

考虑到这一点,有两种潜在策略采用 DiD 来改善 rollup 的 prover 系统信任假设。这两种策略都旨在识别并停止依赖 rollup prover 系统的功能。

  1. 多 prover:此方法要求实现两个或更多不同的证明系统,以证明相同的 rollup 输出。如果证明系统生成不一致的结果,可以提示已检测到某个证明系统存在致命漏洞。例如,一个 ZK rollup 可能利用 ZK prover 机制作为其提供信任最小化验证功能的主要手段,但也可以有一个依赖 SGX 证明来验证正确性的证明系统。如果这两种证明系统的输出存在偏差,将会在其中一个系统中信号出可能的错误。获知此信息后,rollup 可以协调停止依赖该 prover 机制而停止其功能,并计划进行升级以纠正此问题。或者,可以在 rollup 协议中描述逻辑,以识别出现问题的 prover 系统,并允许系统自发转向使用备用证明系统,同时协调对出现错误的 prover 实例进行升级(升级完成后,系统将再度回到使用主要的证明手段)。
  2. 多验证:当谈到验证者时,我们通常指的是智能合约,对于现存的大多数 rollup 而言,它描述了验证桥如何执行信任最小化验证。正如两个不同实现之间的等效输出可以进行比较,这一点也适用于验证桥的实现。例如,可以有两个不同的智能合约(例如,一个用 Solidity 实现,另一个用 Vyper 实现),它们相互独立但共享相同的存储。实现 L1 上验证桥的主要智能合约可以执行额外检查以确认两者的等效性,然后在执行过程中提交更改,如果发现不一致则进入与多 prover 相同的修复路径。

因此,在通过多 prover 和多验证者引入的 DiD 概念提供的解决方案中,提供了增加更多安全层的新选择,同时为放松信任假设铺平了道路。但是,虽然该解决方案确实有所改善,但其引入的技术冗余确实会带来更高的成本。因此,是否标准化使用此方法将取决于评估它在推动安全改善方面的实际和有用程度,是否足以使耗费的成本值得。

可升级性

关于可升级性,我们通常是指对 rollup 系统继续运作所必需的关键智能合约。如前所述,这可能涉及 W1和 L2 上的桥合约,以及驱动验证桥功能的 L1 上的验证合约。

可升级性的一个目标是减少与更新核心智能合约相关的必要信任和随之而来的强制性。如果 rollup 要升级智能合约,则应该设置一个窗口,让用户有机会决定是否退出 rollup 系统,并能够这样做,如果他们不同意正在实施的某个升级的细节。

为了向用户提供这一保证,我们需要确保两件事:

  1. 消除紧急升级:可升级性只可以在足够大的时间节点内适用,以便用户能够处理 rollup 退出请求。
  2. 抗审查性:确保用户希望由于升级事件退出 rollup 系统时,不会因为审查而受到伤害。

在前一部分我们引入了多 prover 和多验证者的想法,以及它们如何帮助最小化信任假设,同时仍为抵御技术风险提供保护。通过多层安全机制的引入改善信任最小化,这可以平缓紧急升级的要求

确保抗审查性时,我们力求确认没有恶意行为者能够阻止用户在即将升级事件时得到退出。当前情况下的解决方案大多是为用户提供手段,通过 L1 DA 层迫使交易纳入(在这种情况下,她们是 rollup 交易请求提取资本),而 rollup 协议提供的方法跳过信任行为者如排序者,确保交易请求在升级事件之前可以得到处理。

系统弹性

弹性在计算机系统中指的是一个系统自适应影响并增强自身可用性和适应意外挑战的能力。当我们谈到 rollup 的弹性时,我们指的是两个方面:

  1. 操作弹性:这指的是 rollup 系统能够适应并恢复到关键路径上所有故障,例如排序者和/或提议者的故障。
  2. 对抗抵御:指的是 rollup 系统抵抗由独立参加网络的行动者所施加的恶意攻击的能力。

需要表达的是,操作弹性和对抗抵御并不是互相排斥的领域,实际上相当多所期望的操作弹性特征都依赖于对抗抵御的保证。对抗抵御仅关注于解决某些特定问题,一会儿会对此进行讨论。

操作弹性

活动性是实现操作弹性的关键要求,因此 rollup 系统需要确保能独立探测和处理潜在活动性问题,而无需信任干预。我们来评估可能在 rollup 系统中出现活动性问题的地方。

  • 排序:排序者负责流转用户交易,创建批次并将其发布到 L1 DA 层,rollup 节点将同步这些更改并更新 rollup 链。如果排序者不可用并且没有恢复机制,用户将无法执行其 rollup 交易。
  • 提议:提议即指将 rollup 状态根发布到 L1。这通常由排序者执行,连同发布批次一起进行,但预计将来会分拆开来。状态根与 prover 机制搭配使用,使 L1 能通过其验证桥进行信任最小化验证,以授权提取 rollup。若只有特权行为者被允许发布状态根,若该行为者离线,这将从技术上阻止验证桥处理提取请求,从而在单纯希望从 rollup 提取资产的用户的角度,构成活动性失败。

为了帮助提高排序的操作弹性,rollup 系统应提供给用户一种紧急机制,使其能够绕过排序者并自我排序交易。这是L1 强制交易纳入机制的基本原则。通过该机制,用户可以通过 L1 合约发布其 rollup 交易,该交易将被排队并最终作为同步流程的一部分在 rollup 上执行。通过 L1 强制纳入机制执行的交易通常将在 12 小时至 24 小时内纳入,具体取决于 rollup 选择以此可选的备份机制进行实施。他们因此能在诸如临时或长期排序者失效的最糟情况下提供“最终交易纳入”的保证。

状态根提议可以是无权限或有权限的,目前我们在实践中看到这两种方法。就有权限的情况而言,活动性保证可以通过为提议状态根增加提议者备用机制来进行改进,在此情况下,一组有权限提议者的状态根处于不活动状态超出一定时限可以启用备用机制提议状态节点。

对抗抵御

对抗抵御是提供抵御恶意攻击的方法。恶意攻击指的是任何试图利用 rollup 功能或审查用户交易的行为:

  • 利用 rollup 功能:这指任意恶意尝试去强制验证错误的状态变更以获取接受。虽然 rollup 区块链本身对于这些攻击是稳固的(由于 L1 安全性和 rollup 链派生逻辑),但连接其他区块链到 rollup 的验证桥就不能。
  • 交易审查:交易审查指的是恶意行为者阻止用户的交易达到目标的能力。
利用 rollup 功能

如上所述,rollup 功能可能在验证桥处受到利用。其工作原理是,恶意行为者可能会欺骗桥从 L1 智能合约释放资金(例如在经典 rollup 上),使其误以为有一个无效的 rollup 状态转换。这将导致桥接资产在 rollup 中的抵押物不足。这对 rollup 造成了重大系统性风险,因为桥接资产的抵押不足传递了传播效应,破坏依赖于验证桥安全性正常驱动的多个应用。

出于这个原因,确保 rollup prover 机制在保持验证桥顺畅工作方面的正常运行至关重要,因此,足够的降低此风险向量的方法是确保 rollup prover 系统的技术稳健性及其抵御恶意尝试以维护验证桥安全实施的能力。

交易审查

我们要提供的的第二个主要防线,就是抵御恶意攻击。交易审查是指恶意排序者阻止用户的交易达到目标。当我们谈到用户交易时,我们可以直观地认为它表征了两件事情:

  1. 用户的意图:这指的是用户希望通过其交易请求完成的目标。
  2. 实际的交易载荷:这指的是实际将被纳入并执行在 rollup 上的交易对象。

我们认为交易审查是成功的,如果恶意排序者导致用户的交易载荷未能实现用户的意图。未能满足用户意图可能通过两个不同的方式发生:

  1. 交易载荷排除:如果用户的交易从未到达 rollup 区块链,用户的意图就无法实现。
  2. 交易载荷执行未满足用户的意图:用户的交易载荷成功地被纳入并在区块链上执行,但执行结果并未到达用户的意图(例如,用户正在进行保证金交易,足够的抵押品即将被平仓,他们希望紧急添加更多的抵押品以防止这种情况发生。此时顺序者可能会故意阻止/延迟交易,出于某种原因使用户困扰。因此,由于交易延迟,用户的账户被平仓即使交易成功执行,其意图也未得以满足,因此情况变得更糟)。

上述信息帮助说明了,交易审查问题不仅仅在于防止交易被纳入 rollup 的通知,更广泛的关注是用户交易请求周围未能满足意图。由此可见,像 L1 强制纳入机制这样的旁路措施并不足以给用户提供足够的审查抵御保证。

因此,rollup 系统的目标是提供防范措施,以对抗用户可能面临的这一审查向量问题。当恶意排序者出现时,最主要的策略之一就是分散排序者并提供一些责任标准消强对及时纳入转换的保障。通过分散排序者角色,我们可以确保保证排序者角色的活动性,并保持中立性,确保在单个参与者手中暂时保持该角色并周期性轮换。责任标准可以提供一些手段归属活动性(停机)和恶意故障(审查)至具体的排序者角色,以便经验这些行为者从而制裁其干扰系统的保障属性。补充到基于去中心化排序的 rollup 模型中的此类工具,可以包括帮助识别潜在被审查交易的某种形式的纳入列表功能,或者甚至是那些试图使用网络发现以集中不同节点的多个交易视图位于反应链数据包中的更复杂的方案。最后,对于这个方向的解决方案,可以引入更复杂的预确认系统到排序者,实现绑定承诺(通过某种形式的可信承诺机制——例如质押或重新循环质押系统)以满足用户的交易意图,交互为更高效的交易服务以及提高审查抵御(尤其对于对时间敏感的交易)。

上述的另一种解决方案(这可能会借用某些责任性和 BFT 共识元素)是通过加密内存池减少交易信息的浮现,使得选择性审查更为困难。不过,目前我们正在早期阶段探索这类型方法,因此,可能值得 rollup 考虑探索此方法,以管控审查问题。

最终,这些仍然只是潜在的方案,并不是充分完善的解决方案,因此我们留给其他可能在此提供的信息上建立实现一条前进的道路。

最后的思考与总结

最后,让我们重申一下这篇文章中涉及的内容以及创建它的目的:

  • Rollup 系统的技术基础:提供从头到尾的对 rollup 的技术理解,并识别推动其运营的关键设计元素和过程中。
  • Rollup 和以太坊的技术与社会协调:描述 rollup 如何被设计得更客观地与以太坊及其扩展目标互相补充和对齐。
  • Rollup 安全风险及其潜在解决方案:描述 rollup 系统当前仍面临的各种安全风险,并提供几种探讨途径通过这些探索获得解决方案。
  • 以太坊 rollup 评估框架:引入一个框架以帮助从重要的参考点思考以太坊的 rollup 领域。

rollup 领域确实相当广阔,因此为用户和开发者提供更有效的途径以导航和推理不同解决方案,比以往任何时候都重要,类似于人们在帮助他们评估不同 L1 之间的差异时,为他们提供有关投入时间、努力和财务资源的信息,同时帮助他们深入了解所承载的风险。我希望,本文确立的基础能够在推动以太坊的 rollup 生态系统整体达到更高程度的成熟性中扮演更为重要的角色。

  • 原文链接: research.2077.xyz/the-pr...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
2077 Research
2077 Research
https://research.2077.xyz