本文就从一个比喻开始吧。
想象一下我们回到了中学的数学课上。我们的老师,和其他中学数学老师一样残忍,给我们列出了一百道长除法问题,每道题的数字都很大。我们的任务是解决尽可能多的问题。但是要注意,我们必须将最终答案和每个计算步骤都写在一张纸上。几分钟内,我们可能就会眉头一皱,意识到问题并不简单。一张纸所能容纳的,除了所有完全解出的答案之外,不可能再包含计算步骤。
这个卡夫卡式的故事与 Rollups 有什么关联呢?
在这个比喻中,这张纸就是一个以太坊区块,数学问题是智能合约事务。目前的以太坊非常拥挤。每个区块中需要包含的交易太多了。雪上加霜的是,这些交易中的大多数都需要大量计算,例如闪电贷或经过聚合器路由的交易。前 DeFi 时代的简单转账和支付模式已经是过去时了。
这就是问题的关键。正如比喻中的数学老师一样,要求我们把长除法的每一行都塞在一张纸的空间里,以太坊也必须处理和记录每笔交易的每一步计算。
直到 Rollups 的出现。
Rollups 将计算移到了链下进行,同时只在链上存储最少的交易数据。从这个基本意义来说,Rollups 是以太坊的草稿纸,负责处理所有杂乱的数据,允许在单个以太坊区块内“汇总”几何倍数的智能合约交易。
这个比喻有助于厘清 Rollups 旨在解决的问题 (“由于计算过载导致的网络拥堵”)。它甚至提供了 Rollups 解决方案必备条件的大致概念 (“计算移至链下”)。但至于 Rollups 实际的工作方式,它们是什么模样,以及为什么能让像我这样的人感到如此兴奋——我们还需要深入探讨。
Rollup 本质上是一条独立的区块链,但进行了修改。与以太坊一样,Rollup 协议具有执行智能合约代码的“虚拟机”。Rollup 的虚拟机独立于以太坊的虚拟机 (即“EVM”) 运行,但由以太坊智能合约管理。这种连接使得 Rollups 能够和以太坊进行通信。Rollup 执行交易并处理数据,以太坊接收并存储结果。[2]
从技术层面来说,Rollup 链和其他传统区块链的关键区别在于新区块的生产方式。
通常来说,区块链是由分布式网络中的不同参与者来进行维护 (“矿工”或“验证者”)。这些参与方通过共识机制来共同生产区块。简单来说,参与方投票决定如何处理一组交易,或者说如何构建下一个区块。获得大多数支持的区块就会被永久写进区块链。
相比之下,Rollup 链不遵循“大多数”规则运行。相反,监控 Rollup 状态的一方可以将所谓的“断言” (assertion) 发送回以太坊,说明交易应该如何处理。重要的是,以太坊将接受或拒绝此断言,无论其他 Rollup 参与方的大多数是否支持此断言[3]。在实践中,这通常意味着 Rollup 中的单个参与方被指定了处理交易和生成区块的任务。[4]
Rollup 区块生产的中心化特性是其能够如此高效处理交易的原因之一。但这也引发了一个显而易见且令人担忧的问题:如果没有大多数共识,Rollup 如何确保区块生产的正确性?如果区块生产者碰巧是恶意的,又会发生什么?
这种中心化不免使习惯了基于共识的区块链用户感到困惑。事实上,如果故事到此结束,我们可能会 (错误地) 得出结论:Rollups 只是“由单个参与方再造的数据库”,正如 Avalanche 的联合创始人 Kevin Seqniqi 最近在推特上所说。
实际上,正如我们将看到的,与其说对中心化的指控是错误的,不如说是逻辑上的误导。通常情况下,共识机制不够强大的中心化区块链很容易遭受贿赂和恶意攻击的影响。然而,在 Rollups 的特例中,不够去中心化实际上并不会破坏其安全性和完整性。[5] 要理解其中的原因,我们需要再进一步。
回想一下我们开头的数学作业。用来计算的草稿纸是我们的救命稻草,因为它使我们可以在答题纸上只写问题及其答案。将 Rollups 与草稿纸进行比较,我们则称其“将智能合约计算移到链下,同时仅在链上存储最少的交易数据。”
事实上,链上交易数据的存储对于 Rollups 的运作至关重要。在 Rollups 中,只有计算、数据处理在链下,处理的每笔交易仍将其输入数据 (即“calldata”) 存储在以太坊区块链上。
为什么将交易数据保存在链上这么重要?在数学作业的比喻中,我们交给老师的最后一张纸包括长除法问题及其答案。以便老师事后检查我们的作业,即使我们没有记录单独的计算步骤。同样,链上数据持续的可用性意味着以太坊基础层可以重复 Rollups 上的任何计算。
简而言之,Rollups 的链上数据可用性允许内置的审验过程。以太坊可以对 Rollups 链上处理的交易的正确性进行双重检查,然后再将其永久写入账本,类似美国最高法院的司法审查权。[6]
因此,Rollups 的关键特性在于其局限。Rollups 只是将交易推到基础层,无法强制区块链接受,因为以太坊可以在有需要时推翻任何 Rollups 交易。因为它们受制于这个审验过程,所以 Rollup 上的交易被认为缺乏真正的最终确定性。
考虑到 Rollups 的局限性,我们可以再回到其中心化控诉。Rollup 的单个区块生产者可能会尝试恶意处理交易。但如果是这样,以太坊将在审验过程完成后拒绝该批量交易,并且区块生产者将受到惩罚。[7]
现在,“审验过程”究竟如何运作取决于 Rollups 是基于 Optimistic 还是零知识 (点击此处可了解更多)。但对于两者而言,审验过程仍然比没有 Rollup 的以太坊处理交易的效率要高出几何级。
总之,Rollup 系统基于“制衡” (checks and balances),确保以太坊仍然是主权链;以太坊主链的共识是事实的最终仲裁者。但重要的是,侧链却不是这种情况。由于缺乏相同的审验流程,侧链通过其完全独立的共识机制处理交易。侧链交易是“最终确定的”,而 Rollup 中交易则不是 (直到在以太坊上得到确认)。因此,侧链需要更强大的信任假设,因为它们不能共享以太坊的去中心化安全性。事实上,我认为侧链更类似于兼容 EVM 的 Layer 1,而不是 Rollups。
概括来说:Rollups 将计算移至链下以释放更多链上空间。链上数据可用性至关重要,因为它允许以太坊对 Rollup 交易的正确性进行审验。反过来,此审验过程可作为对 Rollup 区块生产的“检查”,从而无需共识机制。
Rollups 最终让以太坊获得了它得蛋糕和好处:它们在不破坏网络去中心化安全性的情况下成倍地释放了更多的链上容量。至少在我看来,这是我们所能期望的最优雅的扩容解决方案。
[1] 注意:我最近在 Deribit Insights 上开启了 Rollups 系列文章,其中第一期探讨了零知识 Rollups 和 Optimisitic Rollups 之间的一些差异。许多读者问我是否有非技术性的 Rollup 介绍文章推荐,因为我的文章假设读者具备了这个主题的基础知识。事实上,有许多有用的概述 (参阅此处、此处和此处)。但是我还没找到针对初学者的绕开了技术术语 (至少在可能范围内) 的全面介绍。以下介绍旨在填补这一空白。
[2] 顺便说一句,这种连接是通过称为“状态根”的东西在链上维护的,它跟踪 Rollups 的内部状态——账户余额、交易、代码等。请参阅 Vitalik 的介绍了解更多细节。
[3] 事实上,在 Optimistic Rollup 中,即使所有其他网络参与者不同意,一方也可以 (正确!) 处理交易。这是 Optimistic Rollup 的“1 of N”诚实参与者假设,我在这篇 Deribit 文章“Security Considerations”部分中进行了更深入的探讨。
[4] 区块生产者角色在 Optimistic 和零知识 Rollup 中有不同的要求。有关这方面的更多信息,请参阅 Deribit 文章的同一部分(“Security Considerations”)。
[5] Haseeb Qureshi 关于去中心化的文章发人深省。Qureshi 的论点是,去中心化本质上并没有价值,相反,中心化本质上也不是坏事。虽然 Qureshi 在文章中没有讨论 Rollups,但他的论点仍然非常相关。
[6] 在马布里诉麦迪逊案 (1803) 中,马歇尔法院裁定最高法院有权推翻其认为违宪的国会立法,有效地赋予司法部门对所有立法事项的最终决定权。
[7] 事实上,ZK Rollups 中的区块生产者以密码学形式禁止欺诈,因为交易的零知识证明本身可能是无效的。
来源 | Mechanism Capital
作者 | Benjamin Simon
日期 | 2021 年 6 月 1 日 [1]