Rollup 为何能成为当下最火的 Layer2 方案?
除非躲进深山老林,否则很难不知道这波由以太坊二层可扩展方案 Rollup 掀起的热潮。
2020 年 9 月,以太坊的 gas 价格突破历史新高,超过 477 Gwei,或许这预示着离 gas 价格涨至 Twei 的日子不远了。
自 2017 年的 ICO 热潮以来,以太坊网络上还没有如此拥堵过,可以说现在的拥堵程度更高了。区块 gas 上限也创下了历史新高 1250 万。交易量达到了 2017 年的峰值的水平,区块大小也达到了历史最高水平。
虽然这对于提高以太坊网络的实用性来说(至少从这些指标来看)是令人鼓舞的消息,但是有人可能会争辩说,当前底层的可扩展性不足问题极大地限制了应用程序,并严重影响了用户体验。但是,这个问题已经不新鲜了。以太坊社区早在数年前就预见了这一问题,此后也一直在探索解决方案。
目前,Eth2.0 的研究主要聚焦于底层的 PoS 和分片机制上。在接下来的几个月中,我们很快将看到 phase 0 上线。然而,Eth2.0 的计算可扩展性(即,在分片中通过智能合约来完成状态执行)要等到 phase 2 才能实现,目前预计要等到 2021 年以后。
在计算机科学中,所有问题都可以通过另一种迂回方式解决。—— David Wheeler
Layer 2 解决方案采用的迂回方式是,在 Layer 2 上处理交易,只在必要时使用 Layer 1。这类解决方案包括状态通道、侧链和 Plasma 等。多年来,已经有很多项目探究过这些方案,取得了巨大进展。
最近,Bitfinex 的姊妹公司 Tether 发行的 USDT 是目前市值最高的稳定币,并且一直是 以太坊 gas 的最大消费者。Tether 已经转向了OMG Network 的 More Viable Plasma Layer 2 解决方案。
Reddit 举办了 “超强 Reddit 可扩展性方案(The Great Reddit Scaling Bake-Off)” 大赛,来提高其基于以太坊的社区积分(Community Points)计划(目前只在两个子 reddit 板块实现)的可扩展性。目前,大赛已经收到了 22 项有关 Layer 2 解决方案的提案。
然而,要注意的一点是,Layer 1 和 Layer 2 解决方案不是互斥的,而是相乘的。
因此,虽然 Eth 2.0 将在未来几年分阶段上线,但是 Layer 2 解决方案有望在此之前和在此之后提供亟需的可扩展性。
过去的几年来,Layer 2 解决方案的研究主要聚焦于状态通道和 Plasma 项目,但是 Rollup 方案最近非常火爆,获得了很大进展。
因此,本文将深入探究 Rollup,并从原因、定义和采用等方面对其进行总结。我们将介绍两类 Rollup 方案—— ZK Rollup 和 Optimistic Rollup ——的概念,以及一些主要实现。最后,我们还将提到 Status Network 上可能会受益于Layer 2 方案的各种举措,以及我们即将实现的项目。
为什么要采用 Rollups?
背景知识 :构建在以太坊上且无需对底层 Layer 1 协议进行任何修改的可扩展性方案被称为 Layer 2 方案。这些方案无需与以太坊网络交互即可处理交易,并通过智能合约将其安全性锚定在以太坊的 Layer 1 上。
Layer 2 方案之所以具有吸引力,是因为以太坊上可以运行多个类似方案,仅供那些可以感知 Layer 2 的应用使用,无需每个人都升级底层基础设施(这是一项风险极高的大工程)。虽然 Layer 2 并不一定会提供像 Layer 1 那样的安全性和确定性,但是相比 Layer 1 来说,它可以提高吞吐量,降低成本,并改善用户体验。对于某些应用来说,Layer 2 就够了。
目前,最具潜力的 Layer 2 解决方案是状态通道和 Plasma。
状态通道 最适合那些参与人数确定,并且需要在一段时间内多次交换状态更新的应用;另外,它也需要极强的可用性保证,来满足 “挑战期” 的安全需要。Connext Network 就是使用状态通道来帮助 dApp 实现可扩展性的典型例子。
Plasma 是 2017 年 8 月由 Vitalik Buterin 和 Joseph Poon 提出的。Plasma 是一个可扩展性框架,可以通过根链上的智能合约将资产转入/转出子链,所有交易执行都发生在子链上,状态承诺(通过根据区块中所有状态更新创建的默克尔根)会发布到根链上,等到之后退出根链时可以在欺诈证明中使用。Plasma 有多种变体方案,包括 Minimum Viable Plasma、More Viable Plasma、Cash、Debit 和 Prime。OMG Network 的 More Viable Plasma 是最近出现的 Plasma 项目,已经获得市场采用。
缺点 :状态通道的最大缺点是其活性假设。用户或其受委托方需要一直监控 Layer 1,以便处理各种挑战。Plasma 不仅继承了这种活性假设,还引入了数据可用性假设,即,用户需要相信运营者会提供所有交易数据,以便在需要时使用这些数据来验证交易的正确性。如果没有数据可用性,在最糟糕的情况下,用户退出 Plasma 链时可能会引发大规模问题。状态通道和 Plasma 都不支持智能合约,这严重限制了需要具备 EVM 兼容性的应用。
查看对比图可知,Rollup 不需要引入上述两个限制性假设。这两个假设会在很多情况下造成不便。对于大部分应用来说,Rollup 相比状态通道和 Plasma 更有前景。
接下来就让我们介绍一下 Rollup 的定义,以及它不需要像状态通道和 Plasma 那样引入限制性假设的原因。
Rollup 是什么?
Rollup 与 Plasma 非常相似,只有一处较大的差别,避免了数据可用性假设,即,所有 Layer 2 交易都会“汇总”到一个交易的调用数据(调用数据(calldata)是以太坊交易存储数据参数的只读区域)内,然后打包进区块提交至 Layer 1。
鉴于调用数据在成本上比 Layer 1storage(合约存储)低得多,Rollup 方案可以让任何人在任何时候都能从 Layer 1 上获取 Layer 2 上的交易数据(不像 Plasma 方案那样只是默克尔根),用来验证状态转换。因此,Layer 2 数据一旦提交,即可从 Layer 1 上获得。这一特性可以免去活性假设和数据可用性假设的要求,让 Rollup 相比状态通道和 Plasma 更具优势。
根据状态转换的验证方式,我们可以将 Rollup 分为两类:ZK Rollup 和 Optimistic Rollup。
ZK Rollup(ZKR) :在 ZKR 中,运营者必须为 Layer 2 上的每个状态转换生成一个 zk-SNARK 有效性证明,并将这些有效性证明提交至 Layer 1 上的 Rollup 合约。Rollup 合约会验证这些从旧的默克尔根到新的默克尔根的状态转换的证明是否有效。虽然使用了新的元件,但是这些保障从本质上来说是密码学的。
Optimistic Rollup(OR) :在 OR 中,运营者将新的默克尔根与交易数据一起提交至 Layer 1 上的 Rollup 合约。每个人都会假设这是有效的状态转换(不会像 ZKR 方案中那样进行验证),乐观地向前推进。因为,如果状态证明无效,就会有参与者使用欺诈证明来挑战它。这些保障从本质上来说是密码学经济的,因为代币奖励以及质押和罚没机制会激励运营者保持诚实。
根据深层次的对比分析可知( 中文译本 ),ZKR 更适合那些敲定时间较短(大约 1 ~ 20 分钟)的代币转账,但是不支持通用型应用所需的兼容 EVM 的智能合约。相比之下,OR 更适合那些需要兼容 EVM 的智能合约的应用,但是在默认情况下,敲定时间较长(大约 1~2 周),因为需要等待欺诈证明挑战期结束。(但是,有一些技术可以提供经济保障,以缩短 OR 的敲定时间和提款时间。)
谁在开发 Rollup?
有很多团队都在开发 ZKR 和 OR 实现,并根据不同的场景设计了不同的假设和特性。
ZKR :Matter Labs 团队开发的 zkSync 已在以太坊主网上线。Loopring 已经使用 ZKR推出了中心化交易所和支付服务。StarkWare 团队的 StarkEx 是一种使用 zk-STARK(而非 zk-SNARK)的 ZKR 技术,因此不依赖于可信设置,具有更强的可扩展性,而且能够抵御量子计算攻击。
OR :至少有 9 个项目在研究不同的 OR 变体方案(具体可以参考这篇文章中的对照表)。最大的区别在于是否支持 EVM 兼容性和欺诈证明挑战的交互性要求。例如,Celer、Nutberry 和 Optimism 支持兼容 EVM 的智能合约和非交互型欺诈证明。
Status Network
Status 的一大愿景就是成为 “以太坊上的窗口”。虽然 Status Messenger 不直接与以太坊区块链交互,但是该应用整合了安全的密码学钱包和 Web3.0 浏览器。这二者都需要与以太坊交互,由于上文提到的可扩展性挑战,会直接受到 gas 价格飙升的影响。
Status Network 旗下的 Keycard 产品正在探索构建一种支付网络,旨在满足当前以太坊网络所不具备的信用卡级别的可扩展性和即时确定性。
另外,Status Network 还采取了许多其它举措,例如,Kudos rewards、Tribute-to-Talk 和 ENS 域名。这些举措非常需要较低的 gas 价格,来实现可行的部署和良好的用户体验。
虽然 Status Network 的 Nimbus 团队正在与其它客户端团队合作开发以太坊 2.0,但是上述 Status 举措很快就能从 Layer 2 可扩展性方案中受益。
因此,我们 Status 团队评估 Layer 2 方案已经有一段时间了。由于上述种种原因,Rollup 肯定是首选。其中,支持智能合约的 Optimistic Rollup 方案更吸引我们,因为它适用于我们的所有用例。
点对点 :目前,所有 Rollup 架构都要依靠运营者聚合来自客户端的所有交易,并使用传统的客户端-服务器架构来创建区块。缺点是可能会引入中心化和审查制度,并降低隐私性。
因此,我们 Status 团队正在探索 Layer 2 上的客户端-运营者交互如何使用我们的去中心化点对点协议(如Waku)来提供隐私保护路由和抗审查性。例如,使用 Waku 来将交易路由至不同的运营者既能保护客户的隐私,又能在抵抗审查的同时为他们提供不同的路径来发布交易。
结论
虽然我们准备在接下来的几年大规模升级至以太坊 2.0,但是过去的几年来,Layer 2 方案在不断发展,Rollup 成为继状态通道和 Plasma 之后的新秀。
在本文中,我们全面调查了 Layer 2 的环境,总结了不同的方案及其优缺点,以鼓励更多项目方采用 Rollup。最后,我们还提到了 Status 团队对 Layer 2 方案的探索。
原文链接:
https://our.status.im/lets-rock-n-rollup/
作者: Rajeev Gopalakrishna
翻译&校对: 闵敏 & 阿剑