用户安全与跨链安全性实际上是一币两面,Rollup 只是允许链提供确认规则,其安全性可达主链的安全性。
原文标题:《Do Rollups Inherit Security?》
撰文:Jon Charbonneau
编译:Frank,Foresight News
不管你喜欢还是讨厌,Twitter 可能永远不会停止关于「L2」或 Rollup 是否「继承安全性」(inherit security)的争论。
虽然大多数争论都是难以辨别的语义之战,但如果你能设法缩小争论范围,那么潜在的观点就非常有价值,因为它们触及了 Rollup 何时、何地以及为何有意义的核心问题。
可扩展的 L2 是否消除了市场对 L1 的需求?有没有可能将像 Solana 这样的 L1 变成 L2?
这些争论主要归结为安全问题。不幸的是,这里的「安全」定义一直非常难以捉摸。我们通常会随意使用这个术语,大多数人都大致知道我们在说什么,但又不完全清楚。我们将在这里跨不同架构详细分解安全性。
我之前使用过 Mustafa 的以下定义:「Rollup 是将其区块发布到另一个区块链并继承该区块链的共识和数据可用性(DA)的区块链」。
以下则是 James Prestwich 给出了更一般的定义:「Rollup 是通过自定义状态转换函数,选择加入另一个共识机制,并保留超集状态的一种方式」。
两者都不需要验证桥,以最小的信任假设构建跨链桥接的能力是 Rollup 的主要好处,但单独分析它们至关重要。
我们可以考虑以下的 Rollup 标准:
Rollup 节点通过应用自身的状态转换函数(STF),在主链共识结果上确定 Rollup 的状态(例如主链确认排序和可用性的数据区块)。
跨链桥是允许两个区块链相互通信的系统。链 A(目标链)需要确信链 B(源链)上发生了某些事件,反之亦然。理想情况下,我们希望这种通信是双向的,具有强相关的安全属性(例如消息有效的高置信度、源链不会撤销等等)。
从根本上来说,跨链桥充当了另一个区块链的「观察者」(就像任何其他典型的人类用户一样)。跨链桥实现了给定的确认规则,通过该规则,它确信所连接链的状态(例如,必须通过多少个以太坊区块才能接受转账输入)。
从主链桥接→Rollup
这个方向非常简单,因为 Rollup 节点会完全验证主链。
Rollup 节点知道主链上发生的一切,因此它们知道跨链桥接的交易何时发生,当前的以太坊 Rollup 完整节点还必须为以太坊基础层本身来运行完整节点。
请注意,如果支持的话,Rollup 节点也可以改为运行其主链的完整验证器轻节点。让我们考虑一个假设的例子,其中以太坊已经完全实现了以下升级:
现在,假设你想为基于以太坊的 Rollup 运行完整节点,要遵循有效的 Rollup 链,必须了解以太坊的规范链,这就需要检查以太坊自身的共识和有效性:
Rollup 节点必须检查以太坊自身执行层的状态有效性和 DA,因为这些是以太坊区块的有效性条件。Rollup 节点需要知道它不仅跟踪共识已签署的以太坊,而且还知道它是有效的区块头。例如,他们可能会意外地跟踪共识签署但无效的以太坊区块(例如它产生了大量 ETH)。
如果基础执行层本身将其数据发布到 DA 层(就像其他 Rollup 一样)并添加有效性或故障证明,那么它将成为一个内置 Rollup。
从 Rollup → 主链桥接
这个方向比较棘手,因为主链默认不知道 Rollup 的状态和 STF(即以太坊节点不需要运行 Rollup 节点)。为了让主链相信 Rollup 的状态,你可以在主链上部署的智能合约(即 rollup 的验证桥合约)中实现 Rollup 的逻辑。该智能合约检查 DA 和 Rollup 状态的有效性。
同样,这个跨链桥是可选的。主链上的智能合约用于使所有主链节点相信 Rollup 的有效性,这就允许在良好的信任假设下进行双向通信。
正如所讨论的,Rollup 除了拥有它们主链的状态(例如以太坊的状态)之外,还保存它们自己的一些状态(Rollup 的状态)。那么,CoW Swap 是否有自己的状态,而不是以太坊状态的一部分?如果是,那么听起来就像是 Rollup。如果不是,那么它可能是「协处理器」(Co-processor)。
然而,即使这个问题也不像看起来那么简单:
相反,你可能会认为区分因素是状态的持久性:
如果 CoW Swap 允许特定的参与者向用户提供快速的预确认(比以太坊的出块时间更快),并承诺包含批次处理(batch)的订单——因为以太坊批次处理时间比大多数用户想要的要长,那么它现在是一个 Rollup 么?
Chris Goes 在模块化峰会的演讲中探讨了这个话题,首先他为意图(Intents)提供了一个近似的定义:「对给定系统状态空间的偏好函数的承诺」。
请注意部分解决(匹配意图)和 Rollup 排序之间的相似之处。操作员获取用户的链下签名消息→将结果数据发布到主链。
以意图为中心的架构和以 Rollup 为中心的架构从相反的方向实现相似的目标。以意图为中心从用户和应用程序的角度广泛地解决了这个问题,以 Rollup 为中心的方式从不同区块链的角度广泛地解决了这个问题。
在这里,设置具体的区分边界并不重要。更重要的是,我们发现 Rollup 实际上与我们已经习惯的具有链下意图匹配的应用程序没有太大不同!
你依赖链下参与者(排序器与求解器 / 填充器等)来获得一些较弱的保证,例如提供最佳执行和良好的用户体验 → 根据发布到主链的数据来确定结果。但是,他们不保管你的资金。
随着可验证的链下计算变得越来越重要,两者之间的界限可能会变得模糊:
如果你希望意图求解器或 Rollup 排序器不那么受信任......
单片区块链(又名集成区块链)通常被定义为垂直集成所有核心功能(即共识、DA 和执行)的链。它们对自己的安全负全部责任,Solana 和 Cosmos Hub 就是典型的例子。
DA 层(例如以太坊和 Celestia)通常被称为「模块化」区块链,因为它们将执行外包给 Rollup,但这并不十分准确。他们还独立负责自己的共识、DA 和执行。
即使 Celestia 的执行也会受到限制(例如,转账、质押、跨链)。同样如果有人在 Solana 之上启动 Rollup,它也不会神奇地成为一个「模块化」区块链。
因此,当你听到人们将以太坊或 Celestia 等链称为「模块化」区块链时,请意识到这更多是一种实际区别,而不是严格的技术区别。两者通常都在优化自己的架构以支持 Rollup。这些 Rollup 预计将处理其范围内的大部分交易执行。
即使 Rollup 也不一定完全「模块化」——Rollup 排序器可以就交易排序达成共识,提供 DA,并在主链执行任何操作之前执行交易。这就是用户获得预先确认的方式。然后主链提供另一个「最终」承诺,再次声明 DA 和对 Rollup 交易顺序的共识。
对于我们的目的而言,更重要的区别是「Rollup」或「非 Rollup」。链的最终状态是否源自发布到单独主链(即 DA 层)的数据?
虽然我们今天将 DAS 和有效性 / 故障证明与传统 Rollup 联系起来,但我们应该注意到这些在逻辑上是不同的概念。理论上,任何「集成链」(例如典型的 Cosmos 应用链)都可以升级以添加 DAS 和有效性证明,而无需将其数据发布到以太坊等其他外部主链。节点将单独对该链进行采样和检查证明。
Vitalik 在他的《终局之战》(Endgame)中谈到了这一区别:
你可能会注意到,添加 DAS + 有效性 / 故障证明的「传统大区块链」(集成链)最终可能看起来像一个「内置 Rollup」(enshrined rollup)!类似地,「一个可扩展和占主导地位的 Rollup」可能会变得非常成功,以至于它只是与其主链合并以容纳该 Rollup。
区分的界限在极限处变得模糊。
因此,如果你相信 DAS + 有效性 / 故障证明是最终结果,那么某种意义上的「Rollup」是不可避免的。上图中的两种方法之间存在有效的区别:
当我们在本报告中讨论「Rollup」时,我们将指的是前者(即不是具有 DAS + 有效性 / 故障证明的集成链,这可能被称为内置 Rollup)。
虽然「传统」Rollup 并没有垄断 DAS 或证明(即集成的大型区块链可以添加它们),但请注意,我们在这里忽略了很多技术细节,你不能只选择 Solana 并决定「哦,我想我们今天就添加 DAS」。
这需要从根本上重构协议,以开始接近我们所看到的以太坊和 Celestia 正在做的事情:
改变数据编码方式以支持 DAS 将等同于减慢区块编码和传播速度,开始更接近传统的 DA 层:
出于这个原因,我们看到团队构建了以下内容:
然而如果将快速区块和 DAS 的时间分开,它们并不一定不兼容。例如,你可以想象像 Solana 这样的链提供两条不同的路径:
Anatoly 在播客中讨论了 Eclipse 如何将以太坊、Celestia 和 Solana 结合在一起,从另一端来看,你可以想象 DA 层在使数据可用于采样之前添加更快的路径:
在同一基础层协议中提供两条路径可以有效地内部化快速共享排序,从而为基于 Rollup 提供有趣的设计。请注意,目前这仍然是一个非常探索性的想法。
有了背景知识,我们现在可以开始分解这些不同架构的安全属性。
首先,节点通过运行「确认规则」(Confirmation Rules)来与任何区块链进行交互:
「确认规则,是指由节点运行的输出某个区块是否被确认的算法。在这种情况下,在某些假设下,主要涉及网络同步和诚实股份的百分比,当满足这些条件时,该区块将被保证永远不会发生重组 」。
对于给定的链可以存在任意多个确认规则:
由于每个确认规则可以做出非常不同的假设,因此即使与同一条链交互,它们也可以具有非常不同的安全属性:
这种区别很微妙但很重要:
现在让我们深入研究 Rollup 是否会从其主链「继承安全性」。
继承,也许更清楚地说,Rollup 总是「租用」而不是「继承」其主链中的任何内容,它会为消耗的资源(DA)支付持续的成本,任何一方都可以选择结束这种关系。但这不是问题有趣的部分。
安全性,从现在开始我们将重点关注安全性。算法的安全(Security)由安全性(Safety)和活跃度(Liveness)组成:
使用 Sreeram 的出色框架,我们可以将它们进一步分解为五个属性,这些属性共同确保确认规则的安全:
让我们考虑一个具有 DAS + 有效性 / 故障证明的假设集成链的示例。它的数据不会发布到任何其他外部主链。为了简单起见,我们假设即时最终确定(例如 Tendermint),因此可用分类账与最终确定分类账之间没有可用的区别(例如以太坊的 Gasper)。
我们将考虑三个确认规则,可用于使用不同类型的节点来跟踪链:
再次强调这一点,「我们通俗地谈论一条链是安全的,但实际上它是安全属性所附加的确认规则」。
让我们看一些例子。
作为背景,CAP 定理告诉我们,没有一个账本可以同时满足这两个条件:
共识协议往往分为两个部分,每个部分都满足上述条件之一:
比特币的共识并不提供任何硬性的经济最终性。
节点在其本地视图中观察最长的链,每个用户都可以自由应用他们喜欢的任何确认规则(例如接受具有 > k 个确认的区块)。标准是等待 6 个区块确认,但这取决于你。
对于更高价值的交易,等待更长时间是合理的。等待时间与安全性(即重组的可能性)之间需要权衡。
以太坊的 PoS 共识(Gasper)乍一看似乎回避了 CAP 定理。然而,它实现了这两个属性,因为它包含两个嵌套账本:
Gasper 属于「潮起潮落」(ebb-and-flow,又名双账本或双确认规则)协议家族。双账本设计不属于 CAP 定理的范围(即它假设单一确认规则)。当网络分区时,最终确定的账本落后于自适应账本,但当网络修复时它会赶上。
这允许在用户级别而不是在系统范围级别解决适应性与最终性之间的权衡。这是区块链 CAP 定理在允许用户依赖的适应性和最终性中,提出的「检查点最长链」协议的一个特征。这些协议为个人用户提供了最终性和适应性之间的选择,而不是将其强加于整个系统级别。
Gasper 明确公开了两个不同的确认规则,映射到上面提到的两个账本:
正如论文中所讨论的:
「更乐观的自适应规则总是确认由更保守的规则标记为最终确定的区块,并且可能在可变的参与水平期间确认更多的区块。客户(用户)根据个人喜好在确认规则之间进行本地选择,而矿工遵循与这两个确认规则一致的固定区块提议规则」。
这允许系统中所有(诚实的)节点:
无论参与程度如何,验证者都会继续延长最长的链(在不断增加的高度上开采新区块),但只有在有足够的参与度时才会出现新的检查点。
最长的链(包含最新的检查点)可以在不同的链之间交替(即重组未完成的区块),但无论网络条件如何(即最终性),检查点都保证位于单个链上。
用户的安全取决于他们遵守的确认规则。快速区块确认与更强的安全保证之间需要权衡。卖咖啡的用户可能更喜欢活跃性而不是安全性,但卖游艇的用户可能更喜欢安全性而不是活跃性。
以太坊节点还可以将一些其他的中间确认规则启发式应用于实际用途。与其像比特币那样使用朴素的 k 个区块作为自适应确认规则,我们可以添加其他启发式方法,其中包括有关网络同步和验证者诚实的假设。
这正是《以太坊共识协议确认规则》中提出的内容,它提出了具有以下属性的确认规则:
该确认规则不能替代经济最终性。相反,它为相信网络同步将在不久的将来保持的用户,提供了有用的启发式方法。让我们比较一下两者:
让我们考虑一些例子,譬如你以 250 万美元的 ETH 出价售卖一艘游艇,以下是一些可能的确认规则:
与任何链一样,节点使用不同的确认规则与 Rollup 进行交互。Rollup 最强的确认规则将与其主链的共识一起最终确定。Rollup 定序器可以暴露较弱的确认规则以获得更好的用户体验(即为不耐烦的用户提供快速预确认),但用户也可以等待主链确认规则的完全安全性。
典型的 Rollup 交易流程大致如下:
交易数据发布到主链后:
同一 Rollup 的不同观察者使用不同的确认规则,因此他们在不同的时间最终确定其观点:
用户还可以通过信任定序器预先确认来更快地确认交易,甚至在主链接收数据之前也是如此。如果定序器行为不当,安全性可能会失败。然后,一旦数据位于主链上(并且你已经检查了 DA + 有效性),只有主链故障(例如以太坊重组)才会影响你的安全。
因此,即使中心化排序器也不会真正降低「Rollup」的安全性。你始终获得符合你所需的确认规则的安全性。无论 Rollup 具有基于定序器还是其他的设计,你都可以使用相同的确认规则(例如等待主链最终确定并检查 Rollup 有效性)。假设正确实施(例如,通过主链强制交易包含),你可以在相同的时间范围内获得相同的安全属性,同时保持其他条件相同。
同样,你可以想象以太坊 L1 区块生产者由于区块时间缓慢而提供预先确认,这也不会让「以太坊」的安全性降低。你只需决定是否使用另一条确认规则(安全性较低),直到以太坊验证器最终确定更高的安全性为止。
预先确认的想法非常符合 Vitalik 所描述的 Gasper 的逻辑:
总的原则是,你希望为用户提供「尽可能多的共识」:如果存在 > 2/3,那么我们会定期达成共识,但如果存在 < 2/3,那么就没有理由拖延而不提供任何内容,因为显然尽管新区块的安全级别暂时较低,但该链仍有可能将继续增长。如果单个应用程序对较低级别的安全性不满意,则可以随意忽略这些区块,直到它们最终确定。
将所有这些结合在一起,当所有确认规则同时就账本的相同状态达成一致时,我们就有了一个「一致性区域」:
如果你的确认规则是信任由 SBF 运行的单个定序器,而不是信任由世界上最有信誉的验证器组成的去中心化定序器,那么你的安全性可能会更差,活性故障和重组是安全故障。
或者,你可以等待更强的(主链)确认规则变得可用。那么,在其他条件相同的情况下,不可信的定序器就不会影响你的安全性。如果你正在卖咖啡,你可能马上出发,但如果你要卖游艇,你则需要仔细检查主链确认信息。
然而,如果每个人实际上都使用该确认规则来出售他们的游艇,我们不能完全忽视「信任运行单独定序器的随机人选」确认规则潜在的较低安全性。精确的设计是基于对给定用例在什么时间所需的渐进承诺水平的平衡。
同样,这也触及了对 Solana 等高吞吐量区块链的真正批评。人们实际上可以使用什么确认规则?你可能具有运行 Solana 完整节点的良好安全条件,但大多数人可能无法访问该确认规则(即取决于资源要求和 / 或成本)。
直接验证(即不仅仅是信任诚实的大多数)是这些系统的核心属性。因此,对于给定的确认规则,我们真正关心的是两个方面——安全和可访问性:
总之:
实际上,当我们说一条给定链是安全的时候,我们试图表达这样一个概念:其相关的确认规则既安全又可访问。
我们现在看到,有关 DA 和状态有效性的安全性可以直接通过加密技术(DAS + 有效性 / 故障证明)进行检查,而无需对链的运营商进行强有力的假设。任何协议都可以在技术上实现这些。全节点还可以在没有外部假设的情况下检查 DA 和状态有效性。
现在让我们关注其他属性 - 活跃度和抗重组。正如我们之前所看到的,无论你运行哪种确认规则,这些都可能会失败。再看一条 DAS+ 有效性证明 +PoS 单插槽最终性的集成链:
选择强大的确认规则对于安全故障的子集特别有效,即使大多数恶意验证者也无法欺骗全节点或全验证器轻节点,使其相信:
无论以太坊有 1 个验证器还是无数个验证器,全节点都或多或少地相信区块的 DA 或有效性,他们通过检查来得到保证。完整验证器轻节点可以以更简单的方式进行检查(但请注意,DAS 会做出一些其他假设,我们将在稍后讨论)。
然而,恶意的大多数验证器可能会阻止账本增长、审查你或重组链(发生哪些失败取决于确认规则)。DAS + ZK 救不了你。抗重组和活跃度在某种程度上总是依赖于给定链的各种底层属性(例如可靠的运营商、经济激励、社会共识等)。
不太明显的是,活跃度和抗重组仍然是给定确认规则的属性,因为每个节点都会受到和上表中相同的攻击。无论这里的确认规则如何,他们都有相同的保证。
然而,当你删除单插槽最终性假设时,这一点再次变得明显。在以太坊的 Gasper 中,根据你遵循的账本(即可用的最长链账本或检查点最终确定账本),你将再次拥有不同的活跃度和抗重组属性。大多数恶意验证器会导致不同的安全失败,具体取决于你运行的确认规则。
无论如何,关键是链的底层构建在这里非常重要。你需要强大的运营商、经济激励和社会共识来维持链的活跃度和抗重组。此外,诸如以太坊之类的双账本共识协议为用户提供了宝贵的灵活性,可以根据自己的需求自行计算可用性与最终性。
现在让我们稍微修改一下这个例子:
你会注意到,Rollup 对于不同的时间范围有两类完全独立的确认规则(即无论你是基于定序器的预共识进行操作还是等待主链的最终共识),我们现在来看看每条路径。
快速路径 - 在主链共识之前
Rollup 节点可以依赖定序器的确认(在发布到主链之前),我们假设他们可以运行以下 Rollup 节点:
从技术上讲,Rollup 定序器可以促进 DAS 并在发布到主链之前提供有效性证明,但实际上这不会发生。完整验证器轻节点通常旨在通过主链检查这些,但是我假设「实时」DAS + 证明可以与集成链进行更清晰的同类比较。
下表是与集成链示例相比的变化:
删除内容以红色删除线显示,添加内容以蓝色显示:
慢速路径 - 等待主链共识
为了额外的安全性,节点可以等待主链(例如以太坊)的共识,这就是更清楚地发挥作用的地方,即 Rollup 节点也应该运行主链节点:
请注意,可以通过两个不同的路径验证 Rollup 的状态有效性:
如果我们得到一个可零知识证明的主链(例如以太坊 L1 zkEVM)+ 所有 Rollup 都证明它们在主链内部的状态→我们就得到了 Vitalik 对奇点证明的愿景。验证以太坊的一个零知识证明意味着验证所有其他链及其内部实现的验证节点:
为了简单起见,我们在这里假设 Rollup 的状态有效性是在主链本身内验证的(例如 Rollup 与主链有一个内置的桥),因此我们可以忽略显式运行协议外的附加 Rollup 节点软件。
与之前的「快速路径」Rollup 表相比的变化如下:
通过主链强制交易包含或强制定序器 / 证明器替换来实现,我们在这里称之为「最终」活跃度,因为从 Rollup 的角度来看,它是一条慢速路径,但从主链的角度来看,这可以被视为「实时」活跃度。
现在我们可以看到与集成区块链和 Rollup 相关的安全属性变化:
无法通过密码保证这些属性,即使跨越确认规则(例如无论运行全节点还是轻节点),你也可能容易受到安全故障的影响。
如果运营商完全失控,没有完整的节点或 ZK 证明可以保护你免受活跃度故障或重组的影响。
这些属性是通过强大且去中心化的运营商、抗审查机制、有利于活跃度的共识、重组的高「成本」、强大的社会共识等来实现的。客观比较这些通常具有挑战性。
你如何衡量运营商去中心化和社会共识?没有一个正确答案。这些可以说是最难设计的方面,而且它们对于给定的链来说确实是非常独特的。
重要的是,我们看到 Rollup 可以将抗重组和活跃度委托给主链,Rollup 上使用的确认规则可以具有相同的安全属性,就像它们在同一时间范围内在主链上运行一样。
链甚至可以选择将哪些属性委托给哪个链,不同类型的「L2」架构(例如 validiums、optimism 和侧链)可以吸收不同的安全属性子集。例如:
Rollup 还可以为用户提供退出 Rollup 的逃生通道,但保留审查用户并防止存款进入 Rollup 的能力(例如 Loopring 就是这样工作的)。如果存款在一段时间后仍未得到处理,用户可以从 L1 合约中提取锁定的资金。
这凸显了此类机制的重要性。
与活跃度和抗重组不同,节点可以确保 DA 和状态的有效性,而无需做出任何大的阈值假设(或无需在两者之间进行安全权衡)。恶意的大多数区块生产者可能会导致活跃度和重组失败,但它们不会导致全节点或全验证器轻节点的 DA 或有效性失败。
然而,共识验证者轻节点当然会受到诚实多数的状态有效性和 DA 失败的影响。他们只是相信共识所说的一切。这就是为什么 DA 和状态有效性是使安全确认规则易于访问并真正发挥作用的原因。这通常是传统 Rollup 与不太重视用户验证的大型区块链之间在意识形态上的巨大差异。
按照顺序,这些通常是平衡安全性和可访问性的首选方法:
请注意,2(完整节点)实际上是最安全的。ZK 验证非常简单,但 DAS 节点做了一些完整节点没有的额外假设。然而,它们提供与完整节点接近相同的安全性,而资源需求只是其中的一小部分,它们是可扩展的。
全节点只需下载所有数据,因此具有 100% 的确定性。只有当一切都在那里时,他们才会在区块上签字。没有对外部各方做出任何假设。
DAS 的目标是获得几乎与全节点一样好的安全性,同时资源需求大幅降低(即更高的规模)。这篇关于轻节点数据可用性安全级别的文章很好地涵盖了这一点。
简而言之,你通常会围绕网络同步性以及是否存在足够的节点来重建数据做出一些假设。如果敌对区块生产者隐瞒任何数据,即使是一小部分诚实的轻节点也应该能够集体重建区块。关于选择性份额披露还存在一些假设,其中敌对区块生产者可以单独欺骗一些少量的轻节点,但不能集体欺骗。
相对于典型的大致「N/2」假设(例如,51% 的区块生产者可以导致重组),这些「N 中少数」假设(例如,诚实的少数节点可以确保 DAS 安全)非常有利。 Vitalik 在信任模型的帖子中对此进行了很好的介绍。
总体而言,DA 和状态有效性并不像活跃度和抗重组那样由 Rollup「委托」。DA 和状态有效性可由用户直接验证,而其他属性更严重地依赖于链的共识参与者及其激励。
回顾一下之前验证 Rollup 证明的示例:
无论哪种情况,你都可以保证有效性。无论你在哪里检查,都无法确定其有效性。以太坊并没有像以太坊节点「强制」抗重组或活跃属性那样真正「强制」有效性。抗重组和活力很大程度上取决于你从谁那里获得它们。
考虑基于诈骗链的 Rollup:
Rollup 能够公开具有与其主链相同的安全属性的确认规则,他们最多可以按照其主机链共识的速度接收这些属性(实际上,它通常会慢一些,具体取决于 Rollup 发布到主链的频率)。
Rollup 还可以提供「快乐路径」更宽松的确认规则(即定序器)以获得更好的用户体验,但它们保留了失败时的交易回退。如果你的定序器停止了,你可以继续移动。但是,如果你的链完全依赖于你自己的验证器集(即作为集成链),则情况并非如此。
明智地选择 Rollup 的主链会对安全属性产生具体的影响。利用具有强大活跃度(账本增长 + CR)和抗重组特性的主链尤其有价值。
让我们看一个简单的例子。Chain X 正在决定是在现有主链上部署为 Rollup,还是部署为自己的集成区块链。
Rollup 具有以下特点:
集成区块链具有以下特点:
下表给出了用户在各种实现下可能拥有的最佳安全保证的简化直观表示(即他们使用可用的最强确认规则)。特别是,我们在这里关注活跃度和抗重组(因为我们假设该链将在这两种情况下仅实现 DAS + 有效性证明):
Rollup 的「最终安全性」高于其「实时安全性」,因为主链无法为我们提供比其自身出块时间更快的保证。即使你可以检查定序器的预确认是否是有效的状态转换,但在它们最终到达 DA 层之前,你也无法完全保证它们的最终性。
但正如我们所看到的,以 Rollup 方式部署到强大的主链可以增强安全性。他们可以按照其主链的速度租用安全性。从根本上说,没有办法以比主链自身共识更快的速度获得主链的全部安全属性。
然而,用户往往不耐烦。因此,Rollup 通常会提供更快的预确认,但在此期间的保证会较低。Rollup 可以选择一个平衡的定序器设计:
有趣的是,你可以认为 L1 排序 Rollup 的活跃度比中心化定序序器更差,具体取决于你的时间尺度。到目前为止,我们已经讨论了活跃度,将其纳入某种「有限时间」的概念中。然而,这完全是相对的和主观的。相对于什么?需要多少时间?
单纯的 L1 顺序 Rollup 将仅以 L1 区块的速度(例如 10 秒)包含在内,当你周围的世界在变化时,你在这些区块之间没有活跃度保证。所以这取决于你的基准:
如果你尝试在没有预先确认的情况下实现基于「真实」的 Rollup,则甚至有可能无论如何都会出现预先确认。对于参与者(例如以太坊构建者和验证者)来说,他们自己做出这一承诺是有经济激励的。这正是为什么有人讨论以太坊建设者和利益相关者如何尝试在基础层提供快速预确认。
这里有最后一个重要的说明。假设 Rollup 用户可以回退到与主链相同的活跃度,假设你可以完全以主链区块的速度强制包含(例如如果 Rollup 排序器正在审查你,你可以强制将交易包含在主链下一个以太坊区块)。
在实践中,通常会有短暂的延迟。如果你允许立即强制包含,你可能会暴露有利可图的审查 MEV 以及其他复杂性。然而,有些设计可以从主链提供近乎实时的活跃度保证(例如,可能以几个主链区块而不是一个区块的速度)。
无论确切的时间尺度如何,吸收主链的最终活跃度都是非常强大的,使用强大的主链作为协调机制提供了可信的威胁和退出权利。仅仅暴露这种可信的威胁本身,就使得它极不可能被需要从而从一开始就防止恶意行为。
例如,如果用户有可靠的机制可以强行退出甚至强行删除运营商,那么中心化的 Rollup 定序器就不能随意从用户那里提取租金并将其锁定。这是 Chris Goes 关于 MEV 转换成本边缘和慢游戏的演讲中讨论的一个一般领域。
当然,意外的活跃度也可能发生,在这种情况下,此备份路径可能再次非常有价值。
遵循这一切,我们可以看到,对于给定的确认规则,证明更准确地保护 Rollup 的不同「观察者」(用户),而不是保护「Rollup」本身。「Rollup」的安全性并不作为单一的具体措施而存在。
确保观察者的安全当然是最重要的,因为我们都是链的观察者!这条链就是它的观察者所说的任何东西。如果你无法以安全的方式观察它,你就必须信任其他人(例如验证者)来告诉你它的「真相」。但我们不想信任,我们想要验证→我们想要证据。
要了解为什么区分「证明保护链」和「证明保护链的观察者」很重要,请考虑以下事项:
证明为无法直接检查其有效性的链观察者(即轻节点)增加了安全性。我们不希望用户必须运行强大的全节点,因此这些证明很重要。
Rollup 的验证桥是一个极其重要的观察者!证据确实保证了桥的安全!
与任何典型的轻节点一样,网桥无法直接检查 Rollup 的有效性。我们不相信诚实的多数,而是用证据来保护桥梁。数据库 A(DA 层)的共识协议对数据 blob 进行排序,然后验证桥独立检查数据库 B(Rollup)相应更新的有效性:
桥是另一条链的观察者,它铸造的每一项资产总是带有对应桥的确认规则的安全假设。其确认规则的安全性可以产生广泛的影响。这就是为什么建立安全的桥如此重要(或者理想情况下,首先通过进一步扩展单链执行来减少对如此多的桥的需求)。
如果你为该链运行全节点,则恶意方无法诱骗你接受无效的状态转换。然而,如果恶意方有不同的确认规则,它仍然可以欺骗桥。如果你在该桥中持有有抵押品支持的资产,那么你的资金可能会变得没有支持。从这个意义上说,欺骗桥的安全故障是「传染性的」。
让我们考虑一个关于 Terra 的旧假设场景:
随着 Terra 的崩溃,LUNA 的价格暴跌,最终,理论上变为恶意验证器集的的利润将超过所质押的 LUNA 的价值,Terra 验证器可以签署无效区块,并执行以下操作:
那么,这里的安全性就失败了:
该桥使用了具有更强信任假设的确认规则。
Terra 验证者无法从完整节点窃取 Terra 本身的大量资产(他们不会被欺骗),他们会拒绝这些区块。然而,验证者可能会欺骗共识验证器轻客户端(包括桥),这就是为什么共识错误会影响跨链资产。
请注意,重要的是,这些故障不会「传染」到链的其余部分,即该故障会「传染」到暴露于 Terra 桥路线的 Osmosis 资产,但 Osmosis 链本身不存在安全故障。
然而,我们显然想要桥接东西(一般来说,跨链通信),仅限于使用其主链上的原生资产会很糟糕,我们需要链来安全地通信和跨链桥接。
作为一个思想实验,最简单的解决方案就是让每个用户运行每个链的全节点,这包括跨链桥本身。请记住,我们已经看到了一些单向嵌入式全节点桥:
这适用于以太坊全节点,但这显然无法扩展。你无法开始让每个 Cosmos 链只需要运行每个其他 Cosmos 链的全节点。这些双向全节点桥不会扩展,它们只是增加硬件要求。
幸运的是,有一个更具可扩展性的选项。我们可以部署桥来充分验证另一条链的状态有效性和 DA(除了仍然检查共识之外)。
状态有效性 - 虽然 IBC 目前与传统共识证明一起使用,但可以对其进行修改以添加连接链的有效性证明,现在桥不会被无效的状态转换所欺骗。这本来可以准确地防止前面描述的攻击,如果桥能够验证状态转换的有效性,则会将 Terra 验证器的区块视为无效而拒绝。
这看起来与以太坊上的 Rollup 桥如何检查 Rollup 证明非常相似,只不过这里也可以是双向的。
DA - 此外,链可能要求其节点运行连接链的 DAS 轻节点。例如你可以让这两个 Cosmos 链需要它们自己的验证器来运行另一个链的 DAS 轻节点(如果每个链都实现了 DAS 轻客户端,而这些链目前不支持)。完成此操作后,每个链现在都可以知道彼此的有效性和 DA,而无需运行全节点。
对于 Rollup,根据定义,你拥有主链上的所有数据,因此那里的桥可以访问它。另一方面,Rollup 节点运行主链节点。
让我们再看一次我们的五个安全属性,现在在以太坊上观察 Rollup 的 Rollup 验证桥的背景下:
请注意,桥的安全性不仅仅通过附加链的超强确认规则(例如,到具有超级值得信赖的验证器集的链的完整验证器桥)来最大化。如果桥具有与主链相同的安全性假设,则你可以在跨链原生资产时获得最大的安全性。
Vitalik 提供了一个有用的说明性示例:
「你将 100 ETH 转移到 Solana 上的一座桥上,得到 100 Solana-WETH,然后以太坊受到 51% 的攻击。攻击者将自己的一堆 ETH 存入 Solana-WETH,然后在 Solana 方面确认后立即在以太坊端恢复该交易。Solana-WETH 合约现在不再得到完全支持,也许你的 100 Solana-WETH 现在只值 60 ETH。即使有一个完美的基于 ZK-SNARK 的桥接器完全验证共识,它仍然容易受到像这样的 51% 攻击。
因此,在以太坊上持有以太坊原生资产或在 Solana 上持有 Solana 原生资产总是比在 Solana 上持有以太坊原生资产或在以太坊上持有 Solana 原生资产更安全。在这种情况下,「以太坊」不仅指基础链,还指构建在其上的任何适当的 L2。
如果以太坊受到 51% 攻击并恢复,Arbitrum 和 Optimism 也会恢复,因此即使以太坊受到 51% 攻击,在 Arbitrum 和 Optimism 上保存状态的「交叉 Rollup」应用程序也能保证保持一致。如果以太坊没有受到 51% 攻击,那么就没有办法分别对 Arbitrum 和 Optimism 进行 51% 攻击。因此,持有基于 Arbitrum 的 Optimism 发行的资产仍然是完全安全的。
你可以用任何你想要的链替换 Solana - 甚至是你在信任方面超过以太坊验证器的假设链,从根本上讲,当你谈论将资产与其记录账本(例如,来自以太坊的 ETH)跨链时,任何安全假设都是附加的,并且连接的链总是有可能重组或出现活跃度故障。
然而,具有合并共识的链(即共享其主链共识的 Rollup)可以回避这些额外的安全假设。这些不同区域之间的跨链桥可以具有与主链本身相同的最终活跃度和抗重组属性。共享共识最大限度地减少了该共享安全区域内的跨链信任假设。
什么是合理的安全假设由你决定。实际上,各大链之间还没有出现过类似的共识失败的情况。这将是显而易见的,且成本高昂,但这可能是连接较弱链的更强有力的假设。
将 Rollup 链绑定到主链也有一些缺点。让我们比较两种跨链场景,在这两种情况下,我们都有两个使用双向全验证器跨链桥接的链:
有趣的是,这些都有好有坏:
同样,锁定和过度寻租也存在潜在的积极和消极影响,这凸显了为什么中立且抗审查的基础层如此重要:
提交证明 + 双向运行 DAS 而不是共享公共主链也存在一些低效率:
这里有权衡和好处,但也要记住,有趣的资产在哪里存在巨大的路径依赖性,如果你想使用一堆以太坊原生资产(包括其 Rollup 中的资产),那么将你的链扎根于以太坊及其跨链桥是有意义的。
「Rollups 继承安全性」是一个很好的简写,但请记住这些是我们真正的意思的关键点:
现在,考虑在集成链上部署 Rollup 的好处:
用户安全 - 无论你是否想要实现任何跨链桥,Rollups 都可以从其主链租用 DA 并回收其共识,这允许 Rollup 向其用户公开与主链匹配的确认规则,无需达成自己的共识;
跨链安全性 - Rollup 可以在主链的共享安全域(即主链本身及其 Rollup)内构建跨链,其安全属性与在主链本身上操作相当;
我们应该看到,这实际上是一币两面,Rollup 只是允许链提供确认规则,其安全性可达主链的安全性。跨链桥和普通用户都是具有给定确认规则的链的观察者。桥可能是这些链中最重要的「观察者」,因为它们的安全具有广泛的影响。
当我们尝试创建安全系统时,我们需要关心给定确认规则的安全性以及它们的可访问性。如果大多数与这些链交互的观察者(用户)无法触及,那么安全确认规则就没有多大帮助。
虽然我们今天将 DAS 和有效性证明与 Rollup 联系起来,但它们在逻辑上是独立的概念。任何链都可以集成这些技术,并且什么是 Rollup 或不是 Rollup 的区别在终局时开始分解(即对于单个集成的 Rollup 来说,它可能在一个协议下具有逻辑上独立的 DA 和执行层)。
然而,「传统 Rollup」和 DA 层显然在当今的这些验证和扩展技术中占主导地位。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。