何为Rollup,何不为Rollup
原文标题:Open letter to Jon Charbonneau (or Rollups = Bridges + Blockchains)
原文作者:bruno_f
原文来源:ethresear
编译:MarsBit,MK
作者前言:这篇文章起初是写给 Jon Charbonneau 的一封电子邮件,是在我读了他出色的博客文章《Rollups Are L1s (& L2s) a.k.a. How Rollups Actually Actually Actually Work 31》后写的。但到最后,它变得太长,不适合作为邮件发送,我觉得这对其他人也许很有趣。所以我决定在这里发表。
TLDR:我是 Bruno França,Matter Labs 的共识主管,我只是想与您分享一下我对于什么是 Rollup 以及什么不是 Rollup 的看法。
话虽如此,我已经关注了您几个月的帖子。有时候我不同意您的结论(例如,在共享排序器方面),但是您的帖子总是具有高质量的研究内容,而且相当客观,所以我通常会学到一些新的东西。您最近关于 Rollup 的帖子也不例外,不同之处在于,这次它实际上迫使我花了一些时间来思考什么是 Rollup,而我认为我这些随想可能对您有所帮助。
首先,我会阐述我同意您观点的方面。我确实同意:
让我们从一个思维实验开始。想象我们有两个分别存在的区块链,比如以太坊和 Near。我们能否在不修改它们的协议的情况下,在它们之间构建一个无需信任的双向桥梁?是的,我们可以!首先,想象我们为 Near 的虚拟机和共识开发了 zk 有效性证明(我所有的例子都是关于 zk Rollup 的,这对我来说更简单)。这显然不需要对 Near 的协议进行任何更改,我们只需找到一种方法来证明给定的块是 SNARK/STARK 内部有效状态转换的方法。现在,我们还在以太坊上创建一个智能合约来验证这些证明,然后我们就完成了。
现在,任何人都可以将 Near 块(或状态增量)与有效性证明一起提交到以太坊,那个智能合约将在没有任何信任假设的情况下了解 Near 区块链的状态。然后,将消息从 Near 发送到以太坊变得非常简单,您只需要将 Near 的状态的 Merkle 证明提交到以太坊的智能合约,这样您就可以证明 Near 状态的任何部分。这是第一个认识。我们并没有将硬币或数据从一个区块链移动到另一个区块链,没有任何东西的移动,这些仍然都是独立的数据库。我们只是在另一个区块链中证明了一个区块链的状态。将硬币跨越区块链的行为只是一个便利的抽象。
但到目前为止,这是单向的,我们只是在以太坊上证明 Near 的状态。那么我们如何做反向操作呢?很简单,我们为以太坊开发有效性证明,然后在 Near 上创建一个验证器合约,将以太坊块和有效性证明发送到 Near。现在我们可以在 Near 上证明以太坊的状态。通过两个单向的无需信任的桥梁,我们得到了一个双向桥梁。但这引发了一个问题,为什么我们需要两座桥梁呢?Rollup 没有两座桥梁,Arbitrum 和 zkSync 也没有在它们的状态中引入以太坊的桥梁,这里发生了什么?实际上,它们有,但这是一种不同类型的桥梁。我们要求 zkSync 全节点也同时是以太坊全节点,Arbitrum 全节点也是如此。这是第二个认识,所有的 Rollup 实际上都有两座单向的桥梁。只是在 zkSync → 以太坊方向上,我们使用有效性证明 + 状态增量,而在以太坊 → zkSync 方向上,我们只使用全节点桥梁。显然,连接以太坊和 Near 的一个可能的解决方案是要求每个以太坊全节点也同时是 Near 全节点,反之亦然。实际上,这也能实现相同的效果,只是这种方法有点愚蠢,因为它无法很好地扩展。
但现在我们在以太坊和 Near 之间有了两座带有有效性证明的桥梁。我们可以在另一个区块链上证明一个区块链的状态,并使用它来“转移资产”和“发送消息”。我想指出的是,我们没有更改任何协议,也没有要求以太坊或 Near 的全节点具有任何额外的功能,每个区块链甚至可能根本不知道这些桥梁的存在。一个完全独立的第三方,如 Matter Labs 或 Coinbase,可以维护(并最终无法维护)这些桥梁。那么,现在以太坊和 Near 是不是 Rollup 呢?现在 Near 是否因为其区块被发布在以太坊上而更加安全?如果这些桥梁停止工作,两个区块链的安全性会降低吗?我认为您会同意,不,任何一个区块链都没有发生改变。只是现在每个区块链上都有一个智能合约,可以访问另一个区块链的状态。请注意,这些桥梁也是独立的,如果其中一个桥梁失败,另一个桥梁完全不受影响。
现在我们可以讨论不同类型的桥梁了。Patrick McCorry 在一篇精彩的帖子中谈到了 Rollup 是验证桥梁。我可以说,我基本上赞同 Patrick 的观点,但我认为实际上有更多类型的桥梁:
有效性桥梁和乐观桥梁都旨在以不需要相同资源水平的方式近似全节点桥梁的安全性。事实上,有效性或乐观桥梁几乎与另一个区块链的全节点表现相似,但它只是一个智能合约。
当然,您还可以有轻客户端桥梁(例如 Near 的彩虹桥)、多签桥梁等等。现在我们可以使用这个模型来对不同的 Rollup 项目进行分类。例如,zkSync Era 是一个中心化的(即单一验证者)区块链,具有从以太坊到基础链的全节点桥梁,以及从基础链到以太坊的有效性桥梁。这也是大多数 Rollup 项目的情况:具有从基础链到基础链的全节点桥梁,以及从基础链到基础链的有效性或乐观桥梁。请注意,这在链之间创建了一种层次关系,以太坊全节点不会成为任何决定要桥接到它的 Rollup 的全节点,但是 Rollup 全节点几乎都被迫也成为以太坊全节点。因此,即使我同意对于给定资产,L1 和 L2 是相对的(我们可能需要更好的这些概念的命名),在 L1 和 L2 术语方面可能确实存在一些价值。
最后,请注意 Rollup 区块链不会继承母链的技术安全性。换句话说,将来自某个区块链的数据(和证明)发布到以太坊并不会增加该区块链的安全性。使用以太坊的数据可用性仅有利于 Rollup 桥梁,而不利于 Rollup 区块链。这意味着 Rollup 桥梁包括了以太坊上的智能合约和数据可用性,而 Rollup 区块链本质上只是一个区块链。
虽然这个模型看起来很整洁,但它并不能解释有效性 Rollup 和独立 Rollup。有效性 Rollup 是桥梁还是区块链?它与有效性桥梁有何不同?那么独立 Rollup 呢?它们甚至没有桥梁!我们从分析简单的独立 Rollup 开始。
通常将独立 Rollup 描述为没有桥梁的 Rollup。它们实际上将另一个区块链的数据可用性和共识作为自己的数据可用性和共识,从而继承了该区块链的安全性。它们通过将所有数据发布到基础链上,并在独立 Rollup 全节点上增加额外规则来实现。
那么,这是 Rollup 吗?不,不是。
虽然一开始听起来可能像是 Rollup,但实际上还有很多其他事物也符合这个定义。例如,比特币中的 Ordinals 就是这种情况。Ordinals 区块链的所有数据都在比特币区块链上。要成为 Ordinals 区块链的全节点,您只需要一个比特币全节点并了解 Ordinals 的规则。它的安全性与比特币完全相同。许多其他基于比特币的协议(如 Omni、Counterparty、Mastercoin 等)也可以用类似的方式描述。所有这些协议都可以称为独立 Rollup 吗?
我可能还可以找到更多的例子,但主要观点是,在另一个区块链的共识和/或数据可用性的基础上构建区块链并不是什么新鲜事。据我所知,目前没有一个通用的术语来描述这些构造,所以我将尝试使用“依赖性区块链”这个名称。Rollup 的创新之处在于创建了一种以无需信任和高效的方式让两个区块链进行通信的方法。独立 Rollup 缺乏这一点,因此不应该称为 Rollup,它们只是依赖性区块链。
现在,我们的整体模型可以很好地适应这一点。如果一个区块链具有自己的共识和数据可用性,则它是独立的;如果它使用另一个区块链的共识或数据可用性,则它是依赖性的。另外,它们可能会有或没有与另一个区块链之间的桥梁。因此,独立 Rollup 实际上只是一种没有与基础链之间桥梁的依赖性区块链。但是,根据定义,独立 Rollup 确实具有从基础链到全节点的全节点桥梁,因为依赖性区块链的全节点需要成为基础链的全节点。
最后,我们来看一下有效性 Rollup。就像 Rollup 一样,它们是具有从基础链到全节点的全节点桥梁以及某种桥梁到基础链的区块链。这种新类型的桥梁基本上是一个有效性桥梁,其中我们不会将区块链数据(输入或状态增量)发布到基础链,我们只会发布 zk 证明。由于没有更好的名称,我们可以称之为“部分有效性桥梁”。但是,这与正常的 Rollup 有什么不同呢?要弄清楚这一点,我们需要了解当区块链失败和桥梁分叉时会发生什么。
让我们回到桥接以太坊和 Near 的思维实验。在这种情况下,如果 Near 区块链停止(暂且不考虑如何发生的,就假设 Near 完全停止产生区块),会发生什么?显然,从 Near 到以太坊的桥梁将停止更新。如果该桥梁上有硬币,则它们将被困在那里,直到 Near 链恢复。显然,该桥梁上的资产似乎没有与以太坊区块链相同的安全性。这与通常关于 Rollup 安全性的说法相矛盾,那么这里发生了什么?请记住,有效性和乐观桥梁在行为上类似于全节点,并且全节点可以分叉一个区块链。大多数 Rollup 都计划了某种“逃生机制”,实际上只是一种自动化的分叉机制。在我们的示例中,如果 Near 区块链失败,桥梁可能会变成基于 Rollup 3,允许任何人更新桥梁的状态,只要附带一个有效性证明。如果 Near 区块链随后恢复正常,则其状态将与桥梁不同,从而强化了这一概念,即桥梁确实已经与 Near 分叉开来。这个桥梁将实际上具有与以太坊相同的安全性,但关键是桥梁中计划了一些分叉机制。再想象另一种情况,即以太坊和 Near 区块链都在工作,但只允许 Coinbase 更新桥梁的状态(因为桥梁是这样设计的)。如果 Coinbase 由于某种原因失败,并且桥梁中没有分叉机制,那么该桥梁将停止工作,所有资产将被困住,即使 Near 区块链仍然在运行。到现在为止,应该相当清楚,桥梁和区块链确实是不同的实体,其中一个的安全性不会影响另一个的安全性。
现在我们可以很容易地看出有效性桥梁和部分有效性桥梁(即 validiums)之间的区别了。有效性桥梁始终保证具有状态数据(当然需要创建一个分叉),
因为它们将所有状态更新都发布到基础链上。部分有效性桥梁可能没有该状态数据,而是需要在 validium 区块链中保证数据的可用性的验证者少数诚实验证者。
综上所述,我们可以总结说,无论是区块链还是桥梁,它们都存在于不同的层次之中。有许多不同类型的桥梁,但对于 L2 领域来说,最有趣的是:全节点桥梁、乐观桥梁、有效性桥梁和部分有效性桥梁。我们还可以将区块链分类为两种不同类型,即依赖性或独立性,具体取决于它们是否将另一个区块链的共识和数据可用性用作自己的。但这些是分开的概念,我们可以将任何类型的区块链与几乎任意数量和类型的桥梁配对。