Optimistic与ZK Rollup:深入探讨

  • herrmit
  • 发布于 2021-04-09 20:56
  • 阅读 11

本文深入探讨了Optimistic Rollup和ZK Rollup两种以太坊Layer-2扩展技术,比较了它们在灵活性、可扩展性、交易成本、安全性、延迟、隐私等方面的优缺点,并分析了各自的应用场景和未来发展方向。

乐观 Rollup 与 ZK Rollup:深入分析

Optimus Prime 对抗 Wing Zero

2021 年重大更新: ZK Rollup 现在可以 支持 EVM 兼容性!!!

TL;DR:简要总结

乐观 Rollup 是一种有前景的技术,能够在短期内扩展以太坊上的通用智能合约。如果能够相对快速地构建,它可以为迁移现有的去中心化应用(dapps)和服务提供一种简单的方式,并在合理的安全性/可扩展性权衡下实现。这将使 ETH 1.0 能够跟上不断增长的需求。

ZK Rollup 是一种更复杂的技术。它现在可以用于代币转移和专用应用程序。然而,实现通用智能合约还需要更长的时间,并且需要更多的研究工作来有效地将 EVM 包装在零知识证明中。然而,一旦 ZK Rollup 完全发展,所有现有的以太坊 dapps 和服务将能够在没有太大努力的情况下顺利迁移到其上。

ZK Rollup 将解决乐观 Rollup 的几个基本问题:

  • 消除危险的尾部风险:通过复杂而可行的攻击方式从乐观 Rollup 中盗取资金;
  • 将提款时间从 1-2 周减少到几分钟;
  • 实现几乎无限量的快速交易确认和退出;
  • 默认引入隐私。

乐观 Rollup 对 ZK Rollup 来说是个好消息。向 L2 扩展的过渡需要在钱包、预言机、dapps 和用户习惯上进行重大改变。乐观 Rollup 可以帮助为这一转变做好生态系统准备,从而为尚未能够在今天的 ZK Rollup 上构建的 dapps 带来规模。这将给 ZK Rollup 足够的时间成熟,并使其采用完全无缝,同时保持以太坊的增长势头。

Rollup 101

什么是 Rollup?

Rollup 是一种类似于 Plasma 的二层扩展解决方案:一个主链合约持有所有资金,并对更大“侧链”状态进行简明的加密承诺(通常是账户、余额及其状态的默克尔树)。侧链状态由用户和操作员在链外维护,无需依赖 L1 存储(这是最大的可扩展性收益来源)。

Rollup 与 Plasma 的区别在于,Rollup 通过在 L1 网络上发布每笔交易的一些数据(在以太坊中专门使用 tx CALLDATA 来实现)解决了 Plasma 的巨大问题——数据可用性。这样可以将成千上万的交易集中(rolled up)在一个 Rollup 块中。虽然这种方法在成本上严格依赖线性增长(交易数量的 O(n)),但它提供了实际的 100 倍的吞吐量改善,因为 CALLDATA 的成本远低于 L1 存储和计算成本。

Rollup 一直被 Vitalik Buterin 重申,作为他最喜欢的二层扩展解决方案

根据状态转换正确性的保障方式,Rollup 有两种类型:ZK Rollup 和乐观 Rollup。两种解决方案的简要历史可以在 这里优雅地呈现

什么是 ZK-Rollup(ZKR)?

在 ZK-Rollup 中,操作员必须为每个状态转换生成一个简明的零知识证明(SNARK),该证明由主链上的 Rollup 合约验证。该 SNARK 证明存在一系列正确签名的交易,以正确的方式更新账户余额,并从旧的默克尔根(Merkle root)转变到新的根。因此,操作员无法提交无效或被篡改的状态。

更多技术细节可以在 这里这里 找到。你可以体验 Matter Labs 的 ZK Rollup 进行 ERC-20 代币转移的实时演示

什么是乐观 Rollup(OR)?

乐观 Rollup 中,新状态根由操作员发布,而不需要 Rollup 智能合约每次进行检查。相反,大家都希望状态转换是正确的。然而,如果发布了不正确的状态转换,其他操作员或用户(必须观察 L1 Rollup 合约中发生的所有事情,执行每一笔交易)将能够指出无效交易并撤销不正确的区块,从而对恶意操作员进行惩罚。

OR 的概念最早是由 John Adler 提出的。读者可以在 乐观 Rollup 的 AMA 会议 中了解更多细节。感谢 Plasma Group 的出色工作!

让我们比较一下!

灵活性:通用计算

2021 年重大更新: 本节内容已过时。ZK Rollup 现在可以 支持 EVM 兼容性

乐观 Rollup

尽管乐观 Rollup 可以用于专用应用程序,但 Plasma Group 的最重要创新是 OVM:乐观虚拟机。OVM 使得可以实现任意的智能合约逻辑。以太坊中几乎所有的功能在 OVM 中也都是可以实现的,包括智能合约的组合性。它可以基于 EVM、EWASM 或任何其他虚拟机。

OVM 的一个好处是,如果与 EVM 一起使用,它将支持使用 Solidity 编写代码。因此,现有代码库的大部分可以很容易地移植到 OR 上。

理想情况下,OVM 可以直接重用现有的 EVM 字节码,但这可能并不简单。适当的实现将需要对交易数据(CALLDATA)格式的改变,以及对 fraud proofs 挑战/响应协议的复杂 Truebit/Plasma Leap 风格实现。这很可能导致 EVM 的分歧,以适当地处理边缘案例,这意味着仍然需要对现有合约进行一些工作以适应 OVM。

实现的另一个挑战在于,针对大型区块的欺诈证明所需的 gas 可能超过 L1 区块的 gas 限制。这些欺诈证明必须被分解为多个 ETH 交易。

ZK Rollup

目前所有现有的 ZK-Rollup 实现(包括我创建的那个)迄今为止都仅专注于 token 转移或原子交换等专用操作。这有几个主要原因。

首先,对于不同的零知识证明(ZKPs),目前没有有效的简洁递归证明组合技术,这将在单个区块中聚合不同智能合约的执行。我们所拥有的最好的是基于 Groth16椭圆曲线循环(由 Coda 使用),这需要在长域上进行计算,并且对于大型计算将完全低效。

其次,即使我们有更短的字段,Groth16 也需要对每个智能合约及其每个新版本进行单独的 信任设置仪式!显然,这绝对不切实际。

我们唯一的没有信任设置的高效 ZKP 技术是 基于 FRI 的 STARKs。然而,验证器仅适用于有限类别的问题(可表示为简洁的算术电路)。STARK 验证器必须至少执行被证明计算声明的每个约束一次,这意味着我们无法遍历异质智能合约的集合。

这一切随着 SNORKs 的出现而开始发生变化,SNORKs 是基于稍微不同的密码学原语的新一代 ZKPs——尤其是多项式承诺方案。由 Sean Bowe 在 Sonic 中开创,随后在 2019 年夏季发布了 PLONKMarlin。他们有一个共同点:虽然仍然需要信任设置,但现在将是通用且可更新的。只需执行一次,即可重复使用任意数量的不同程序。

然而,这些证明系统中使用的 Kate 多项式承诺方案仍需要有效的椭圆曲线递归周期,目前尚不可用。这就是为什么我们对最近的完全简洁透明(无信任设置)证明系统,如 Halo、SuperSonic、Fractal 以及 Matter Labs 团队目前正在开发的令人兴奋的东西 感到非常激动。

长话短说: 在 ZKP 上构建通用智能合约的障碍现已消除。ZK Rollup 完全能够支持与 EVM 相同的编程模型(包括无缝的组合性和互操作性)。第一批合约可能需要专用 DSL,但 Solidity 开发者的学习曲线不会超过 1 天。最终,考虑到目前 ZKP 证明者技术的进展速度,我们预计所有现有的 ETH(甚至 EWASM)合约都将以最低的努力有效移植。

可扩展性与交易成本

乐观 Rollup

  • 根据 John Adler 的说法,当前每次转移交易的估算是在 EIP2028/Istanbul 更新后约 4000 gas。
  • 这大约转化为 ~100 TPS。
  • 借助 BLS 签名聚合,这个数字可以提高到 ~500 TPS(为了不破坏 EVM 兼容性,交易参数可能会长时间保持不变)。
  • 如果打破 EVM 兼容性,吞吐量理论上可以增长到 ZKR 的极限。

实际吞吐量上限(代币转移):500 TPS。

目前这大概足够了。

ZK Rollup

  • 在 Matter Testnet 中,公共数据每次转移交易的成本当前为 16 字节,这将导致 EIP2028/Istanbul 后成本为 272 gas。
  • 此外,还将有一个估计约为 300k gas 的证明摊销成本。
  • 即便我们假设最坏情况下证明成本为 100 万 gas,估计的上限仍将超过 2140 TPS 的转移。
  • 在一些讨论中,我听到有人认为 ZKP 会带来重大计算开销,因此是昂贵的。实际上,计算成本与 gas 成本相比微不足道,因为这是审查抗性去中心化的真正瓶颈。我们也预期这个因素将随着时间的推移而显著降低。

实际吞吐量上限(代币转移):超过 2000 TPS — 类似于 Visa 的规模。

然而,对于许多用例来说,ZK Rollup 将提供更显著的节省,因为重要部分可以从公共数据中省略(通过将它们移动到 ZK 电路见证),这些数据并不需要用于重构状态转移增量。核心见解是:虽然 OR 始终要求用户发布完整的交易输入,但在 ZK 中,我们可以灵活选择 1)交易输入减去不影响状态转移的见证和 2)仅交易输出。这一选择可以相当优雅而且没有太多复杂性地实现。

显著的例子:

  • 在多签钱包、带有 Argent 风格账户抽象或去中心化交易所中,用户需要提交签名以供合约验证。这些签名对于状态增量更新并不必要,并能从公共数据中省略。
  • 像 Gnosis 的 Dfusion 荷兰 DEX 这样的合约需要不直接影响存储的大量数据集输入,但仅用于验证计算结果。

后 ETH 2.0

由于任何 Rollup 都将处于一个共享中,因此 CALLDATA 的费用(以及因此 Rollup 的交易成本)不太可能发生很大变化,除非带宽普遍变得更便宜。

元交易

两种 Rollup 都非常适合支持元交易和账户抽象。

安全性

乐观 Rollup

与支付通道不同,Rollup 中的所有资金都由一个智能合约持有。由于 Rollup 是我认为最有前途的扩展方向,我们应该看到大量用户迁移到它,并且大量价值集中在这个合约中。当面临数千万(甚至可能数十亿美元)资产的情况下,Rollup 合约成为了一个高风险黑客蜜罐。在这种情况下,如果攻击有很好的机会,可能会被尝试,无论它多么复杂。

OR 的安全模型基于两个假设:

  1. 至少有 1-of-N 的诚实参与者执行所有 OR 交易,并在发布无效状态转换时提交欺诈证明;
  2. 基础 L1 网络的强大审查抗性。

1-of-N 诚实参与者

至于第一部分,可以合理地预期只有 Rollup 的操作员会实际监控和执行交易。普通用户既没有这样做的激励,也没有在高负载情况下处理交易的技术能力(如果他们能够做到,那么扩展性从何而来呢?)。幸运的是,操作员本质上受到激励,以检查彼此的区块的正确性,因为在无效区块之上创建一个区块是一种惩罚条件。

1-of-N 的诚实操作员是在有足够可信参与者的情况下的合理假设。然而,由于活跃参与者的数量有限(数百?),一些复杂的攻击可能包括:针对所有操作员的基础设施(非常困难但不是不可能)、贿赂/勒索 DevOps 工程师,秘密安装恶意代码,针对 Rollup 软件更新分发渠道等,当然还有两者的结合。这些攻击是困难的,应该积极防范,但与攻击以太坊矿工同样方法相比,它们的现实性更高——特别是因为对 OR 的成功攻击将在完成前不会被注意到。

L1 的强大审查抗性

第二假设比较棘手。实际上,以太坊的设计提供了非常有效的经济机制,以防止普通的审查。然而,当存在 反机制 时,这些机制将无法发挥作用。攻击者可能创造一个 完全自动化的贿赂机制,以协调矿工的 51% 攻击,这将阻止诚实的矿工在其区块中包含欺诈证明。有趣的是,攻击参与矿工的直接成本为零,不包括由于受愤怒社区响应而可能产生的社会成本。这一部分也是棘手的,因为该机制优雅地为攻击参与者提供了合理的否认:“鉴于攻击多数的可信承诺,如果我不参与,我的区块将被遗弃,因此我这样做不是为了获利,而是为了避免损失。”

我邀请读者关注 对此攻击的讨论 和 Vitalik Buterin 最近对 51% 审查攻击的 分析。在这里,我将分享一些有趣的见解。

这种攻击在 PoW 下的现实性非常高。没有有效的方式去惩罚参与其中的匿名矿工。

在转向 PoS 后,社区将有能力通过削减审查矿工的权益进行惩罚,只要在这个问题上达成广泛的社会共识。毕竟,这种审查攻击可以被视为对整个网络的攻击(虽然有人也可以争辩说矿工仅仅是诚实地遵循协议,没有义务以任何与自己最佳经济利益相悖的方式行事)。但是,在 DAO 分叉之后,这将是一场极为有争议的讨论,无法预测最终结果。在 Vitalik 最近进行的社区投票中, 63% 明确反对 在不可变区块链中进行任何手动干预,以救助用户,无论攻击的程度如何。毫无疑问,清除即使是一个验证者的股份也会非常困难,更不用说清除大多数验证者的股份。

更新:2019年11月26日: 有关共谋的更多研究 _最近发布了 ,以及关于 PoS 环境中欺诈证明的新攻击 (在其中提出)表明在 PoS 下 OR 的审查攻击风险至少和在 PoW 中一样高。

应对这类攻击的一个更现实的方式是快速动员社区实施 UASF(用户激活软分叉),强迫矿工包含某些交易。这个场景在工程和社会层面上都相当复杂,并且肯定要求较长的欺诈证明挑战期——至少 1 周,更好是 2 周。同时,考虑到 主要的 DeFi 操作员实际上处于决定这种分叉结果的能力,他们为了避免引发巨大纷争,可能会做出选择,暗中遵循攻击者(这将使以太坊留在最长链上,并产生比成功的软分叉更少争议的结果)。

总之:欺诈证明审查的风险相对较低,但不可忽视。对于 1–2 周的欺诈证明挑战期且赌金不算太高的情况,OR 可能还可以:操作员/矿工共谋不会太有价值。不过,随着 Rollup 中的价值增长,潜在的黑天鹅事件将变得愈发令人担忧,至少于我这个偏执的人而言。

ZK Rollup

在 ZK Rollup 中,每个状态转换都必须由 Rollup 智能合约在其生效前进行验证。操作员根本无法盗取资金或破坏 Rollup 状态。ZKR 仅依赖于 L1 的审查抗性以确保其活动性,而不是其安全性。没有人需要监控 ZKR:区块一旦被验证,用户的资金始终保证最终可被找回,即使操作员拒绝合作。

因此,ZKR 更充分地体现了密码货币的基础理念:通过用密码学和博弈论的激励对齐来实现弹性。

然而,为了完整性,我必须提到 ZKR 一些特有的潜在风险。

信任设置

如果 ZK Rollup 中使用的 ZKP 需要通用的信任设置,我们就会陷入 1-of-N 诚实参与者假设。这可能是一种可以接受的风险,也可能不是,这取决于参与者的数量和质量。但安全就是安全,这就是为什么我对高效无信任 SNARKs 最近的进展感到非常兴奋,特别是 我们在 Matter Labs 当前开发的构造

密码学

最新一代的 SNARKs 使用比 Groth16 更加坚固且经过实际验证的密码学原语。Matter Labs 之前提到的工作基于 FRI,因此在可行性上甚至可以被视为后量子安全。然而,为了保证绝对安全,应实施两种缓解策略:

  • 必须部署一项较大规模的悬赏,使用相比于实际生产版本设定更低的安全参数,类似于 RSA 挑战。如果发现实用攻击,该挑战将会在研究者发布破坏生产代码可行之前被破解。
  • 所有状态转换只能由 ZKR 的操作者发送,他们将实际上作为第二因素保护层。

延迟(可验证终结时间)

乐观 Rollup

由于上述安全性部分提到的问题,乐观 Rollup 只能在 1–2 周的欺诈证明挑战窗口内保持安全。在此时间经过之前,无论是内部 Rollup 交易还是退出的交易都无法被视为最终确认。

不幸的是,最终用户检查交易是否最终确认的唯一快速方式,是执行整个最近一次挑战期内的所有交易。值得注意的是,用户不能依赖区块最终性的纯博弈论保证,因为单个操作员的节点中的错误(或黑客攻击)可能仍然导致回滚。

最终确认时间(在 PoW 下):2 周。

最终确认时间(在 PoS 下):1 周。

ZK Rollup

目前 ZKP 的计算强度相当高。目前,对于 1000 笔交易的区块,使用普通服务器硬件的证明生成时间可能为 20 分钟。

正在进行的 GPU 证明者实现(由 Matter LabsCoda 开展)有望将交易速度提高至少 ~10 倍。在不远的未来,专业硬件可能会具备更高的计算能力。最终,我们期望看到区块确认时间不足 1 分钟。

当前最终确认时间:20 分钟。

未来最终确认时间:不足 1 分钟。

快速确认内部 Rollup 交易

在这两种类型的 Rollup 中,操作员可以通过设置一定的安全押金,向用户发出即时交易确认,如果交易没有包含在承诺的区块中,这些押金将被扣除。这为最终性提供了经济保证。

这种方法有几个局限性。它对可替代代币转移的表现较好,但在NFT(可能没有市场价值,或者当这些资产的所有者根本不想立即“出售”时)和通用合约调用上则比较困难(因为如果链上某笔之前的交易被回滚,确切量化金钱价值并不容易;简单的例子是:对于你接受某个稳定币预言机价格广播作为最终结果,操作员的金钱有多少应该置于风险中?)

快速提款

快速退出类似于快速内部 Rollup 确认。操作员可以与流动性提供者合作,立即启动向用户提款的可替代代币,而无需等待退出交易在 Rollup 中成为最终确认。

这需要大量的抵押资金,其规模将与最终确认的时间成正比。假设乐观 Rollup 的现实最终确认时间为 1 周,而 ZKR 则为 5 分钟,OR 将需额外抵押 2000 倍的资金,以支持与 ZKR 相同的每周提款量。

隐私

乐观 Rollup

乐观 Rollup 可以支持在 L2 以太坊上可用的任何隐私解决方案(混合器等)。由于 OR 本身是 L2,任何在其上实现的隐私解决方案都将作为 L3 存在。这可能导致隐私服务的更大碎片化,结果也值得小的匿名集合,使隐私的效用变得非常低(正如我们在 zcash 中观察到的那样,交易默认并不被遮蔽)。

ZK Rollup

为了实现真正的隐私,系统必须默认支持隐私。从技术角度看,ZKR 在某些时刻可以轻松在协议层次层默认支持代币转移的机密交易,并且能够区分公共和私有智能合约(ZK ZK Rollup 风格)。

与此同时,构建完全匿名的交易(如 zcash 样式,既隐藏金额又隐藏交易参与者)将需要将 ZK Rollup 的存储模型从基于账户转换为基于 UTXO,这会带来过多的问题,不太可能实现。

结论

乐观 Rollup 目前处于概念验证阶段。希望很快能够看到生产级实现。如果事实证明现有代码的移植相对简单,项目将会逐渐开始采用它并构建新的基础设施:钱包将出现 L2 支持,预言机将开始向 OR 广播等。

ZK Rollup 在专用应用(如 ERC-20 代币转移)方面已经相对成熟,但将在通用智能合约的完全态上走得更加渐进的道路。最终,将能够将任何基于 EVM 和 WASM 的智能合约移植到 ZK Rollup——考虑到当前的技术发展速度,这不会需要数年时间。

对两种 Rollup 类型,都必须进行类似基础设施变革,包括钱包、预言机和其他智能合约组件。这需要大量工作,随着越来越多的项目对 L2 扩展技术产生兴趣,该工作将加速进行。由于乐观 Rollup 比 ZK Rollup 更早做出了通用基于 EVM 的智能合约的承诺,这将大大提升社区支持 L2 的积极性。

对于用户和 dapps 来说,从一种 Rollup 跳到另一种 Rollup 的难度将比从 ETH 跳跃到 L2 来得容易。桥接将使这个过程变得更加平滑。由于这种切换的便利性,我个人认为,某个解决方案在用户体验上具备显著优势的可能会在长期内成为唯一的赢家。

无论结果如何,这都将是一场非常重要和激动人心的演变,值得关注。而最终的受益者将在任何情况下都是以太坊社区。

  • 原文链接: blog.matter-labs.io/opti...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
herrmit
herrmit
江湖只有他的大名,没有他的介绍。