让我们从一个比喻开始。
想象一下我们回到了中学的数学课上。正如中学数学老师往往冷酷的那样,我们的老师递给我们一张表单,上面列着一百道长除法题,每一道都有非常大的数字。我们被告知,我们的任务是要计算出尽可能多的题目。但棘手的是,我们必须使用同一张纸来写出答案和进行每一个计算步骤。仅仅几分钟后,我们就不得不正视这项任务的荒谬之处:要将这么多完整的解题方案挤进这一张纸上简直是不可能的。
这个噩梦般的故事和 Rollups 什么关系?
在这个比喻中,这张纸就好比一个以太坊区块,而这些数学问题就是智能合约交易。以太坊目前极度拥挤。有太多的交易需要被打包进每个区块中。更糟糕的是,这些交易中的大多数都是计算密集型的 (也即需要进行大量计算),比如闪电贷 (flash loans) 或通过聚合器进行的交易。过去 (DeFi 之前的) 那种简单的转账和支付的时代已经一去不复返。
这就是问题的关键。就像该比喻中的数学老师要求我们把每一行辛苦的长除法都填到一张纸上一样,以太坊也必须处理和记录每一笔交易的每一行计算。
直到 Rollups 的到来。
Rollups 将计算转移至链下,而在链上只存储最少的交易数据。从这个基本意义上讲,Rollups 就像是以太坊计算的「草稿纸」。Rollups 处理所有凌乱的数据处理,通过对交易进行批量处理 ("卷起") 的方式来实现单个以太坊区块内包含的智能合约交易量呈指数增加。
这个比喻有助于描述 Rollups 要解决的问题 (也即"由于计算超负荷造成的网络拥塞"),甚至为我们提供了一个关于 Rollup 解决方案的模糊概念 (也即"将计算转移至链下")。但至于 Rollups 是如何工作的,它们是什么样子的,以及为什么它们让我们人如此兴奋,我们还需要深入研究一下。
数据:以太坊24小时内新增地址数剧增:根据Santiment报告显示,以太坊24小时内新增地址数在12月14日达到177000个,这是自2018年1月份以来未曾有过的积极信号。[2020/12/16 15:23:18]
本质上来说,每个 Rollup 都是一条单独的区块链,但进行了一些修改。与以太坊一样,每个 Rollup 协议也有一个执行智能合约代码的“虚拟机”。Rollup 的虚拟机独立于以太坊自己的虚拟机 EVM 而运行,但它是由某个以太坊智能合约管理。这种连接性使得 Rollups 能够与以太坊进行通信。Rollup 执行交易并处理数据,以太坊接收并存储结果。
在技术层面上,Rollup 链和其他更传统的区块链之间的关键区别在于产生新区块的方式。
通常,区块链是一个由多方 (即"矿工" 或 "验证者",取决于区块链的共识类型) 组成的分布式网络维护。这些各方通过共识来共同生产区块。简单地说,各方投票决定如何处理一组交易,或者换句话说,如何构建下一个区块。获得多数支持的区块将被永久写入区块链中。
相比之下,Rollup 链并不通过多数决定规则来运行。相反,监控 Rollup 状态的某个单一方可以向以太坊 (L1基础层) 发送所谓的“断言”,说明某个批次的交易应该如何被处理。重要的是,以太坊将独立地接受或拒绝这一断言,不管该 Rollup 的大多数其他方是否支持这一断言。在实践中,这通常意味着 Rollup 链的某个单一方会被指定处理交易和生产区块的任务。
等等...Rollups 是中心化的?
当前BTC全网合约持仓总量为24.21亿美元 24小时减少1200万美元:据合约帝持仓报告显示,当前全网合约持仓总量为24.21亿美元,24小时减少1200万美元。其中,Huobi合约5.39亿美元,24小时增加2.92%;OKEx合约6.12亿美元,24小时增加0.29%;BitMEX合约6.16亿美元,24小时减少0.87%;Binance合约3.87亿美元,24小时增加0.54%;Bybit合约2.68亿美元,24小时减少0.51%。[2020/9/19]
Rollup 区块生产的这一中心化属性正是 Rollups 能够如此高效地处理交易的部分原因。但这也提出了一个明显且令人担忧的问题:没有多数人的共识,Rollups 如何确保区块生产是正确的?如果区块生产者碰巧是恶意的,会发生什么?
这种中心化让习惯于基于共识的区块链的加密用户感到困惑。事实上,如果故事到此结束,我们可能会 (错误地) 得出这样的结论:Rollups 只是“由单一方复制的数据库”,正如 Avalanche 联合创始人 Kevin Seqniqi 最近在推文中 (误解的) 那样。
实际上,这个关于 Rollup 中心化的指控与其说是错误的,不如说是逻辑上的误解。通常情况下,没有健全共识机制的中心化区块链确实容易受到腐败和敌意接管的影响;然而,在 Rollups 的独特情况下,这种缺乏去中心化实际上对于它们的安全性或者可靠性并不是一个问题。为了理解为什么会出现这种情况,我们需要更深入地了解。
回顾一下我们一开始的那个不幸的数学作业。用于计算的「草稿纸」允许我们在主要表单上仅需写下题目和答案即可;Rollups 就好比是「草稿纸」,它们“将智能合约计算转移至链下,而在链上只存储了最少的交易数据。”
实际上,这最后一部分,也即 "在链上存储交易数据",对于 Rollups 的运作方式至关重要。在一个 Rollup 链中,只有计算 (数据处理) 在链下进行,而 Rollup 处理的每一笔交易仍会将其输入数据 (也即"calldata") 存储在以太坊上。
在链上保存交易数据的重要性是什么?在数学作业的比喻中,我们最终交给老师的那张纸包括了长除法题目和它们的答案,这使得老师可以检查我们的作业,即使我们没有在上面写出单独的计算步骤。类似地,链上数据的持久可用性意味着,Rollup上面的任何计算都可以被以太坊基础层重复计算。
简而言之,Rollup 的链上数据可用性允许一个内置的审查过程。在将交易永久记入账本之前,以太坊可以对 Rollup 链上处理的交易的完整性进行“再次检查”(double check) ——几乎就像美国最高法院的司法审查权力一样。
因此,Rollups 的关键特性是它们的局限性。Rollups 仅将交易推送到 (以太坊) 基础层;它们不能强制基础层接受,因为如果有必要,以太坊可以推翻任何 Rollup 交易。由于它们受到这个审查过程的制约,因此 Rollup 交易被认为是缺乏真正的确定性(finality)。
考虑到 Rollups 的这种局限性,我们可以回到上文未解决的有关 Rollups 中心化的指控。Rollup 的某个单一区块生产者可能会试图恶意地处理交易,但如果这样做,以太坊 (基础层) 将在审查过程完成后直接拒绝该批次的交易,且该区块生产者将受到惩罚。
当前,“审查过程”的运作方式取决于 Rollup 是 Optimistic Rollup 还是 ZK Rollup。但对于这两者来说,审查过程的效率都要比以太坊自己处理交易的效率高得多。
总而言之,Rollup 系统基于“制衡”,这确保了以太坊始终保持作为主权链:以太坊自己的共识是真理的最终仲裁者。
然而侧链就不一样了。由于缺乏相同的审查过程,侧链通过自己的、完全独立的共识机制来处理交易。侧链交易在某种程度上是“最终的”(finality),而 Rollup 交易不是 (直到它们在以太坊上得到确认)。因此,侧链需要更大的信任假设,因为它们不能从以太坊自己的去中心化安全性中获益。事实上,我认为侧链更类似于 EVM 兼容的 Layer 1,而不是 Rollup。
概括一下:Rollups 将计算移出链下,以释放更多的链上空间。链上的数据可用性是至关重要的,因为这允许以太坊对 Rollups 交易的可靠性进行再次检查。这种审查过程反过来又充当了对 Rollup 区块块生产的“检查”,从而消除了对共识机制的需要。
Rollups 最终让以太坊既能得到蛋糕又能吃掉它:它们在不破坏网络去中心化安全性的情况下释放出更多的链上容量。至少在我看来,这是我们所希望的最优雅的扩容性解决方案。
感谢 t11s 和 Hasu 的评论和建议。
来源:Benjamin Simon
编辑:南风
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。