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