以太坊二层扩容之路:Plasma 衰落与 Rollup 崛起
曾经声称无限扩容的 Plasma 现在消失得无影无踪,各有权衡的 ZK Rollup 与 Optimistic Rollup 正在崛起。
发布时间:2020年1月28日
NFT支付侧链比特币托管公链隐私钱包以太坊DEX交易所开发者ETH
作者:ForesightNews 推荐
曾经声称无限扩容的 Plasma 现在消失得无影无踪,各有权衡的 ZK Rollup 与 Optimistic Rollup 正在崛起。
撰文:Ashwin Ramachandran 与 Haseeb Qureshi,前者系区块链风险投资机构 Dragonfly Capital 初级合伙人,后者为 Dragonfly Capital 管理合伙人那是 2017 年 8 月。以太坊原生代币 ETH 的价格接近历史最高水平,以太坊区块链随着使用量增加而爆棚,链条在不断增长的需求下不堪重负,研究人员和开发人员正在疯狂地寻找新的扩容解决方案。在世界各地的区块链会议上,开发人员讨论了不同的扩容建议。以太坊社区迫切需要一个解决方案。在这种狂热中,Plasma 论文的首个版本发布,它承诺提供一个第 2 层扩容解决方案,称其可以处理「全世界几乎所有的金融计算」。让我们再快进到 2020 年。以太坊还是跟从前一样缓慢,但它却战胜了所有的所谓的「以太坊杀手」。以太坊 2.0 的发布日期不断推迟,随着许多开发团队偃旗息鼓,Plasma 似乎已经完全消失了。新的解决方案,如 optimistic 和 ZK rollup 被誉为最好的扩容解决方案。而关于 Plasma 的记忆,似乎消失得无影无踪。让我们把时间拨回到 2017 年初。以太坊第一次成为了主流,人们对不久的未来充满无限的乐观。有人声称所有有价值的资产不久将被代币化。旧金山的各种聚会上只有站着的地方,每当提到以太坊,人群就会聚集。但是以太坊并没有实现可伸缩性。在这股热潮中,Vitalik Buterin 和 Joseph Poon 发表了一篇论文,介绍了一种名为「Plasma」的新第 2 层扩容解决方案。Vitalik Buterin 和 Joseph Poon 在旧金山的一次会议上介绍 PlasmaPlasma 声称能令以太坊扩展到 Visa 级别的交易量,这种大胆的说法促使开发人员和社区兴奋无比。不久后,以太坊的研究团队聚集在 Plasma 周围,将它视为解决以太坊可伸缩性问题的办法。但是到底什么是 Plasma,为什么它最终没有兑现它的承诺呢?最初的 Plasma 白皮书描述了一种构造 MapReduce 「区块链树」的机制。树中的每个节点都代表一个唯一的区块链,这个区块链连接到它的父节点,所有这些区块链被安排在一个巨大的层次结构中。然而,最初的规范很模糊而复杂。在它发布后不久,Vitalik 在一篇新论文中简化了这个规范,论文题为 MVP(Minimal Viable Plasma,最小可行化 Plasma)。MVP 提出了 Plasma 的简化版本:一个简单的基于 UTXO 的侧链,在数据不可用的情况下能保持安全性。但什么是侧链?数据不可用意味着什么?在深入研究 Plasma 之前,我们先来看看这些术语的含义。侧链,就是连接到另一个区块链上的区块链。侧链可以通过许多不同的方式,比如由可信的第三方、某个联盟或共识算法来运营。例如,Blockstream 在名为 Liquid 的比特币网络上参与一个联盟侧链。Liquid 在其信任模型中进行了权衡,因此能确保更高的事务吞吐量。用户必须相信联盟不会串通和窃取资金。在这种情况下,区块链运营商是 Liquid 联盟的各种成员,譬如 Blockstream 公司。Liquid peg-in 和 peg-out 机制的可视化一个侧链通过双向挂钩连接到一个更大的区块链(比如比特币)上。用户可以通过将资金发送到特定的地址或主链上的智能合约,将资金存入侧链。这被称为「peg-in」交易。要提取资金,用户可以在侧链上执行相同的操作,在主链上取回他们的资金。这被称为 「peg-out」交易。正如我们在上面的例子中所看到的,将资金移出侧链需要一个关键的组成部分:信任。用户必须相信侧链运营商不会携款潜逃。但区块链的主要特征不就是免信任吗?如果用户想要在无需信任其运营商的情况下与侧链进行交互,该怎么办?Plasma 的设计最大限度地降低了侧链运营商的信任要求。也就是说,即使运营商(或共识中的多数)行为不端,Plasma 也能防止资金被盗。但即使运营商不能直接窃取资金,侧链还有另一个问题。如果侧链运营商发布了一个区块头,但拒绝发布底层交易数据,该怎么办?这将阻止任何人验证侧链的正确性。这个概念称为数据不可用。Plasma 试图在哪怕运营商拒绝提供交易数据的情况下,仍能确保用户的安全——万一运营商拒绝发布数据,所有用户仍然可以取回他们的资金并退出侧链。Plasma 对其安全性和可伸缩性做出了很大的承诺,给人们带来了希望。因此,在 2017 年的牛市中,人们普遍认为 Plasma 可以解决以太坊的可伸缩性问题也就不足为奇了。但随着市场在 2018 年清醒起来,区块链炒作轰然倒塌,有关 Plasma 的一幅更现实的图景开始显现。在现实世界的部署中,Plasma 构成的问题比解决方案还多。第一个问题是,每个用户必须监控和验证 Plasma MVP 链上的所有交易,以检测恶意运营商的行为并及时退出。然而,事务验证成本高昂,并且这种监视需求为参与 Plasma 链增加了大量开销。研究人员还意识到,用户很难退出 Plasma 链。当用户试图从 Plasma MVP 链中提取资金时,他们必须提交退出交易请求,然后等待一段时间。这就是所谓的挑战期。在挑战期的任何时候,任何用户都可以通过提供退出无效的证明来挑战另一个用户的退出(例如,他们正在铸造假代币或偷别人的代币)。因此,所有的退出只能在挑战期结束后处理,一些挑战期会长达 1 周。记住一点,即使运营商扣下数据,我们也希望用户能够从 Plasma 链中提取资金。MVP 是这样处理的:如果 Plasma 交易数据被扣留,每个用户需要根据 Plasma 链的最后有效状态来退出并获得资金。(注意:为了避免恶意运营商抢占诚实用户的先机,退出的优先级是根据它们最后交易的时间排序的。)在最坏的情况下,如果所有用户都需要退出一个 Plasma 链,那么该链的整个有效状态必须在一个挑战期内发布到以太网主网上。考虑到 Plasma 链可以任意增长,而以太坊区块已经接近其容量,几乎不可能将整个 Plasma 链倾倒到以太坊的主网上。因此,几乎可以肯定的是,大量退出会把以太坊挤爆。这就是所谓批量退出问题。随着 2018 年价格开始暴跌,以太坊的追随者开始意识到 Plasma MVP 并不是他们所期望的那种万试万灵的可伸缩性解决方案。根本没有办法克服它的弱点。Plasma MVP 是一个死胡同。以太坊仍然将在它的事务负载下挣扎,而以太坊 2.0 离我们还有很多年。2018 年年中,随着价格持续下跌,以太坊的研究社区继续尝试改进 Plasma,反复研究 Plasma MVP 的设计。他们提出的新版本被称为 Plasma Cash。据其主要设计者 Vitalik Buterin 称,Plasma Cash 将允许每秒任意高的交易量,并解决困扰其前身的问题。有些人甚至声称,这种新设计可以达到每秒数十万的交易。在运营商行为不当的情况下,存在批量退出问题
用户必须等待整个挑战期结束才能取钱
用户必须监控 Plasma 链上的所有交易
Plasma Cash 与 MVP 相比,有一个主要的优势:通过使用不同的数据模型,Plasma Cash 可以完全避免批量退出的问题。在 Plasma Cash 中,所有代币都被表示为非同质代币 (NFT),这使得证明一套代币的所有权变得更加容易。简单来说,用户有责任证明自己而非他人拥有对代币的所有权。因此,用户只需要监控他们自己的代币,而不是整个 Plasma 链。Plasma Cash 还提出了一种新的交互式挑战系统,允许用户在运营商行为不当的情况下轻松提取资金。利用一种新的 Merkle 树结构,即「稀疏 Merkle 树」,用户可以使用包含证明轻松地验证代币的历史和所有权。在运营商行为不当的情况下,用户只需要发布他们目前拥有的代币的链上证明(包括 2 个最近的交易和相应的包含证明)。然而,Plasma Cash 带来了一系列新的问题。首先,恶意用户或代币过去的所有者可能会做出错误的取款尝试。因为用户需要证明他们拥有自己的代币,所以实际上是由这些用户来发现并质疑自己的钱被骗走。因此,和 Plasma MVP 一样,Plasma Cash 要求用户每两周至少上线一次,以及时在挑战期内发现错误取款。
此外,为了证明代币的所有权,用户必须维护该代币的全部历史记录和相应的包含 / 排除证明,导致存储需求不断增加。
到 2018 年底,ETH 的价格已跌至谷底,乌托邦式的乐观主义不复存在。Plasma Cash 虽然比 MVP 有所改进,但并不是以太坊当年所承诺的 Visa 规模的解决方案,它的 MapReduce「区块链树」 现在只是一个白日梦。大多数为 Plasma Cash 开发客户端的公司都已经将工作搁置,而且其实现都处于半完成状态。以太坊社区陷入了僵局。虽然新的 Plasma 架构继续出现,并较其前辈略有改善,但以太坊社区未能团结一致支持其中任何一个架构。就在人们对第 2 层的信心触底之际,一位化名为 Barry Whitehat 的用户在 GitHub 上公开了名为「roll_up」的方案。该报告描述了一种新类型的第 2 层扩容解决方案:一个类似于 Plasma 的架构,并可「打包」交易,它无需依赖于对运营商的信任,打包的正确性可以通过使用一个 SNARK 的链上证据来证明。此 SNARK 确保运营商不可能发布恶意或无效的事务,并确保所有侧链区块都是有效的。不久后,Vitalik Buterin 对 Barry 的方案发布了一个改进版,他称之为 zk-Rollup。zk-Rollup 成为了以太坊论坛上浏览量最高的帖子之一。Vitalik 建议引入一种解决方案来避免困扰 Plasma 的数据可用性问题:在以太坊区块链上发布侧链交易数据。将交易数据作为函数参数发布意味着可以在发布时对其进行验证,随后将其丢弃,这样就不会占据以太坊的存储空间。zk-Rollup 可以在不牺牲可负担性或安全性的情况下,避免 Plasma 的退出游戏和挑战期。有了 zk-Rollup,人们可以使用新的密码学一次性解决 Plasma 的所有第 2 层扩容难题。但是 zk-Rollup 有它自己的一套权衡方案。生成有效性证明在计算上很昂贵。这些 zk-SNARK 会在每个区块生成,生成时间可能长达 10 分钟,而每次验证的成本高达 350,000 gas(伊斯坦布尔升级后),这大约占整个区块的 3.5%(在伊斯坦布尔升级前占到了 8%)。此外,目前无法在 zk-Rollup 侧链上部署通用智能合约。目前正在开发专门的零知识虚拟机,如 zkVM 和 ZEXE,但在与之交互时仍然需要大量的专门知识。在大多数情况下,zk-Rollup 限制了一般的可编程性。zk-Rollup 可视化,Georgios Konstantopoulos 制图到 2019 年年中,这些新进展为以太坊的研究社区重新注入了活力。zk-Rollup 似乎解决了困扰第 2 层的许多问题。像 Matter Labs(我们的投资组合公司之一)和 LoopRing 这样的公司开始积极地开发 zk-Rollup,现在这两家公司都已有测试网进行实现。通过优化,Matter Labs 相信它可以在 ZK 同步网络上达到 2,000 TPS。但并不是所有人都把希望寄托在 zk-Rollup 上。在第一个 zk-Rollup 规范发布一年后,John Adler 和 Mikerah 引入了一个他们称为「合并共识」(Merged Consensus)的设计。合并共识使得链下的共识系统可以完全在以太坊上验证,而不需要任何花哨的零知识加密。Plasma 团队其后发布了合并共识设计的扩展版本,并添加了现在有些声名狼藉的名字:Optimistic Rollup。zk-Rollup 依赖于 zk-SNARKs 来验证和完成每个区块,而 Optimistic Rollup 采用不同的方法:你何不假设每个区块都是有效的呢?当每个人都表现得很诚实时,这在「快乐路径」中很有效,但是我们知道运营商可能会行差踏错。那么 Optimistic Rollup 又将如何处理运营者的错误行为呢?「乐观(optimistic)」的答案是使用欺诈证明。欺诈证明是运营商执行无效操作的计算证明。如果运营商发布了一个无效的状态转换,任何人都可以提交一个证明,证明该转换无效,然后恢复那些事务(大约 1 周的时间)。由于这些证明是非交互式的,它们可以由任何人发送:不需要由用户监控自己的代币的安全性。然而,与 zk-Rollup 不同的是,Optimistic Rollup 需要 3-5 倍的事务数据才能完成。这些数据主要包括签名数据(zk-Rollup 不需要这些数据,因为它在零知识中验证了那些数据)之类的见证。在最好的情况下,除非提交欺诈证明,否则乐观汇总交易永远不需要验证。然而,对链上见证进行验证和发布很昂贵,并且开发人员已经探索了允许廉价的大规模验证和减少事务数据需求的聚合签名机制。这种优化可以将 Optimistic Rollup 的理论 TPS 从目前的约 450 TPS 一直增加到潜在的约 2,000 TPS。Optimistic Rollup 提供了一组与 zk-Rollup 非常不同的权衡。它们的成本较低(假设欺诈带来的挑战极其罕见),但是它们的安全性较差,换句话说,一直存在不正确地应用事务、之后再予以恢复的可能性。这个安全窗口可以长达一个星期。因此,用户在这个安全窗口期无法退出(否则,他们可能会拿着别人的资金跑掉)。然而,可以通过引入二级市场来改善这些退出问题。用户可以将他们的退出权出售给第三方流动性提供者,以换取少量的费用。(流动性提供者将因持续一周的流动性不足而获得回报)。这将允许用户立即退出 rollup 链。虽然 zk-Rollup 需要程序员理解复杂的约束系统和高级密码学,但 Optimistic Rollup 允许通用智能合约部署(例如 Solidity)。这意味着像 Uniswap 这样基于智能合约的协议可以建立在 Optimistic Rollup 侧链之上。Rollup 系列解决方案为解决 Plasma 的数据可用性问题和退出复杂性提供了类似的方法,但都有可能极大地扩展 Plasma 的结构。例如,IDEX 已经构建并部署了他们自己的 Optimistic Rollup 版本,并在这个结构上运行了一个去中心化交易所 (DEX)。同样,Fuel Labs 也建立了 Optimistic Rollup 的一个版本,允许 UTXO 风格的支付和 ERC-20 代币交换。Plasma Group(如今的 Ethereum Optimism),最近宣布他们把重点放在 Optimistic Rollup,并致力于在他们的平台(通过他们的 Optimistic Virtual Machine 建设)上提供通用智能合约性能。Plasma 最终不仅仅是一个协议。在非理性繁荣时期,Plasma 是以太坊需要相信的故事。但事后看来,它所宣称的无限扩容是一种技术上的傲慢。只有在随着 Plasma 发展的过程中,我们才能深刻地认识到第 2 层扩容所固有的权衡。ETH 的价格在去年有所反弹,人们对 ETH 的未来也持乐观态度。经过近三年对安全、可扩展和稳健扩容解决方案的探索,以太坊研究社区最终围绕 rollup 进行了聚合。Plasma 和它的兄弟们最初的尝试是高尚的,但一群创新者最终创造出了更现实的第 2 层设计,这似乎解决了 Plasma 最糟糕的问题。 一些以 Plasma 为重点的研究小组,如 Plasma Group,已经着手研究 Optimistic Rollup 解决方案。但是我们认为,寻找最终的第 2 层扩容解决方案才刚刚开始。这个领域已经涌现出了许多竞争者,我们希望这仍然是一个活跃且令人兴奋的研究和开发领域。感谢 Tom Schmidt、Georgios Konstantopoulos 和 Ivan Bogatyy 审读本文初稿。