是谁杀死了以太坊 Plasma?

本文作者是 Ashwin Ramachandran&Haseeb Qureshi,

蓝狐笔记「SIEN」翻译。  

是谁杀死了以太坊 Plasma?
(日出时春天的麦田,梵高)前言:由于 Layer 1 扩展不易,Layer 2 扩展一直也是区块链扩展的重要探索方向。以太坊社区曾经提出过 Plasma 的解决方案,但事后证明,Plasma 在资金退出等问题上非常复杂,导致其很难成为真正可行的可扩展性解决方案。但 Plasma 的失败并非没有用,zk-Rollup 的诞生让人们看到的 layer-2 扩展的可能方向,它可以解决 Plasma 的数据可用性问题和退出复杂性问题。而 Plasma Group 也将重心转向 Optimistic Rollup,以期实现可用于通用智能合约的 Rollup 侧链。从这里我们可以看出,很多的技术构想,包括 Vitalik 的构想从一开始也可能会有一定的局限性,只有在不断的摸索中才能找到真正可行的方向。社区的力量很重要,rollup 方案一开始就是由社区成员提出的,只有更多人参与进来,才能推动以太坊和公链生态的发展。伟大的力量总是根植于人们之中。
在 2017 年 8 月,Ether 的价格接近历史新高。以太坊区块链使用量暴增,在不断增长的需求下以太坊不堪重负。研究者和开发者疯狂地寻找新的扩展性解决方案。
在全球各地的区块链会议上,开发者争论着扩展性的解决方案。以太坊社区迫切需要一个方案。在这样的疯狂过程中,Plasma 论文的第一版发布了,它承诺一个 layer-2 可扩展性方案,可以处理「世界范围内的几乎所有财务计算」。
是谁杀死了以太坊 Plasma?
TechCrunch 关于 Plasma 的报告快进到 2020 年。以太坊跟以往一样慢,但它却在所有的所谓「以太坊杀手」项目中存活下来。ETH2.0 的发布日期越来越远,随着很多开发团队关闭运营,Plasma 看似完全消失。
不过,Optimistic Rollup 和 ZK Rollup(可以参考蓝狐笔记之前的发布《一文读懂 ZK Rollup 和 Optimistic Rollup:以太坊重要的扩展方向》)正在被誉为最佳扩展性解决方案。但是,对 Plasma 的记忆似乎消失得无影无踪。
那么,是谁杀死了 Plasma?
让我们回到 2017 年初。以太坊第一次进入主流,人们对其前景充满无限乐观。当时人们声称,所有有价值的资产会被代币化。在旧金山的活动聚会中,人们在房间里只能站着,每当有关于以太坊的主题,便是门庭若市。但以太坊并没有实现可扩展。
在这样的狂热之下,Vitalik Buterin 和 Joseph Poon 发布了一篇论文,其中提到一种新的 layer-2 可扩展性解决方案,它就是 Plasma。
是谁杀死了以太坊 Plasma?
Vitalik 和 Joseph Poon 在旧金山的活动上介绍了 PlasmaPlasma 声称,它能让以太坊扩展到 Visa 级别的交易量,这种大胆的声明引发了开发者和社区的热潮。不久之后,以太坊研究社区就 Plasma 问题进行集会,以作为解决以太坊扩展性问题的方案。
但什么是 Plasma?为什么它最终没能实现其承诺?
Plasma 是如何运行的

Plasma 论文最初描述了一种构建 MapReduce「区块链树」的机制。树中的每个节点都代表连接到其父节点的唯一区块链。所有这些区块链都按照巨大的层级结构进行排列。但是,最初的规范很模糊且复杂。不久之后,Vitalik 简化了规范,并称之为 MVP(蓝狐笔记:也就是最小可行的 Plasma,Minimal Viable Plasma)。
是谁杀死了以太坊 Plasma?
Plasma 的「区块链之树」MVP 提出了简化版本的 Plasma:基于 UTXO 的简单侧链在数据不可用的情况下是安全的。但是,什么是侧链?数据不可用意味着什么?在我们深入讨论 Plasma 之前,先来了解一下这些术语的含义。
侧链是连接到另外一个区块链的区块链。侧链可以通过多种不同方式来操作,例如通过可信的第三方、联盟、或共识算法。例如,Blockstream 参与了在比特币网络上的联盟侧链,它被称为 Liquid。Liquid 允许更高的交易吞吐量,它之所以能实现是因为它在其信任模型上做了权衡。用户必须相信联盟不会合谋和窃取资金。在这种情况下,链的运营者是 Liquid 联盟的各种成员,例如 Blockstream 公司。
是谁杀死了以太坊 Plasma?
侧链转账的可视化图(以 Liquid 作为例子)。来源:Georgios Konstantopoulos侧链通过双向锚定连接到较大的区块链,例如比特币区块链。用户可以在侧链存储资金,其方式是将其资金发送到主链上的特定地址或智能合约。这称为锚入交易。为了提取资金,用户可以在侧链上执行相同的操作以将其资金取回至主链。这称为锚出交易。但这跟 Plasma 有什么关系?
正如我们在上面的示例可以看到的那样:将资金从侧链移出需要一个关键的要素:信任。用户必须信任侧链的运营商不会拿资金潜逃。但这不是区块链无须信任的主要特性吗?如果用户想跟侧链交互而无须信任其运营商该怎么办?
这正是 Plasma 试图要解决的问题。
Plasma 旨在最小化对侧链运营商的信任。也就是说,Plasma 试图阻止资金被盗取,甚至即使运营商(或多数共识)行为不当。但是,即使侧链运营商无法彻底窃取资金,侧链还有另外一个问题。万一侧链运营商发布区块头,但拒绝发布底层的交易数据呢?这将阻止任何人验证侧链的正确性。这一概念称为数据的不可用性。(蓝狐笔记:也就是数据的发布需要依赖于可信的侧链运营商,可能存在数据不可获取的情况)
Plasma 试图确保用户安全,即使运营商保留交易数据。也就是说,如果运营商拒绝发布数据,所有用户将仍然能够取回其资金,并退出侧链。
Plasma 对其安全性和可扩展性许下很大的承诺。在 2017 年牛市期间,人们普遍相信 Plasma 将会解决以太坊的扩展性问题。但是,随着 2018 年市场的清醒,区块链炒作崩溃,关于 Plasma 的更现实的图景开始具体化。当它进入现实世界的部署,相对于解决方案,Plasma 提出了更多问题。
第一个问题是,每位用户不得不监控和验证 Plasma MVP 链上的所有交易以进行监察,并在运营商存在恶意行为时退出。但是,交易验证非常昂贵,这种监控要求对参与 Plasma 链来说,增加了非常大的开销。
研究者还意识到,用户很难退出 Plasma 链。当用户试图从 Plasma MVP 链中提取资金时,他们必须提交退出交易,然后等待设定的时间周期。也就是通常所说的挑战期。
在挑战期内的任何时候,任何用户可以挑战其他用户的退出,其方式是提交退出无效的证明(例如,他们挖出假代币或盗取其他人的代币等)。因此,所有退出只能在挑战期结束之后处理,在一些提议中,这需要花费一周时间。
但情况可能更糟。
请记住,即使运营商保留数据(也就是不发布数据),我们也希望用户能够从 Plasma 链中提取其资金。MVP 以如下方式处理这个问题:如果 Plasma 交易数据被保留,则每个用户都需要根据 Plasma 链最后的有效状态,分别退出其自己的资金。请注意,为了避免恶意运营商抢在诚实用户前面,退出按照最后一次交易的时间进行先后排序。
是谁杀死了以太坊 Plasma?
以太坊存储的增长。来源:Alexey Akhunov在最坏的情况下,如果所有用户都需要退出 Plasma 链,则链的整个有效状态都必须在单个挑战期内发布到以太坊主网。鉴于 Plasma 链可以任意增大,并且以太坊区块链已经接近于其瓶颈,将整个 Plasma 链倒入以太坊主网几乎是不可能的。因此,任何退出的踩踏都几乎会导致以太坊的拥堵。这也就是众所周知的大规模群体的退出问题。
随着价格在 2018 年的崩溃,以太坊追随者开始意识到 Plasma MVP 将不会是他们所期望的可扩展性的杀手锏解决方案。根本没有任何办法可以克服其弱点。Plasma MVP 陷入死胡同。一直以来,以太坊继续在其交易负担下挣扎,而 ETH2.0 还有几年才能实现。
下一代的 Plasma

在 2018 年中,随着价格持续暴跌,以太坊的研究社区继续其努力以优化 Plasma,在 Plasma MVP 设计上迭代。新版本被称为 Plasma Cash。
按照其主设计师之一 Vitalik 的说法,Plasma Cash 将可以实现任何高的 tps,并解决困扰其前身的问题。有些人甚至声称这种新设计将实现每秒数十万笔交易。
首先,让我们回顾一下 Plasma MVP 的问题。
*在运营商存在不当行为时,会存在大规模群体退出的问题(蓝狐笔记:就像是踩踏事件)。
*用户不得不等待整个挑战周期才能提取资金
*用户不得不监控 Plasma 链上的所有交易
相对于 Plasma MVP,Plasma Cash 拥有一个主要优势:通过使用不同的数据模型,Plasma Cash 可以避免大规模群体退出问题。在 Plasma Cash 中,所有代币都表示为 NFT(蓝狐笔记:不可互换代币),这使得证明一组代币的所有权更加容易。简而言之,用户有责任证明自己拥有代币的所有权,而不是其他人。因此,用户仅需要监控其自己代币,而不必监控整个 Plasma 链。
Plasma Cash 也展示了新的交互式挑战系统,它允许用户在运营商有不当行为时轻松提取资金。使用新的 Merkle Tree 结构,也就是所谓的 Sparse Merkle Tree,用户可以使用包含证明来轻松验明代币的历史和所有权。
在运营商存在不当行为时,用户将只需要发布链上证明,证明其当前拥有代币(由最近两次交易和其相应包含证明组成)。然而,Plasma Cash 带来一系列的全新问题。
首先,恶意用户或代币的过去所有者可以发布错误的提取资金尝试。由于用户被要求证明其自己代币的所有权,因此由这些用户来实际抓获并挑战其资金的欺诈性提款。
结果是,Plasma Cash 跟 Plasma MVP 一样,要求用户至少每两周保持在线一次,以在其挑战期内抓获错误的提款。
此外,为了证明代币的所有权,用户将不得不维持其代币的整个历史记录和相应的包含/排除证明,这导致不断增加的存储要求。
到 2018 年底,Ether 的价格跌至谷底,乌托邦式的加密乐观主义烟消云散。Plasma Cash 虽然比 Plasma MVP 有所改善,但它并不是以太坊所承诺的 Visa 规模的解决方案,并且其 MapReduce「区块链树」现在只不过是个空想。大多数为 Plasma Cash 开发客户端的公司都停止了工作,并且其实施都处于半完成的状态。
以太坊社区陷入了困境。尽管新的 Plasma 构建持续出现,并在其前身上有些许改进,但以太坊社区在这些新构建上没能实现反弹。
看上去 Plasma 已经死了。
进入 Rollup
在对 layer-2 的信心降至冰点时,一个名为「roll_up」的 GitHub 存储库由一位笔名为 Barry Whitehat 的用户发布。这个存储库描述了新型的 layer 2 扩展性解决方案:具有「捆绑」交易的类似于 Plasma 的结构,其中不是依赖于运营商的可信度,而可以使用链上的证明(SNARK)来验证「捆绑交易」的正确性。
该 SNARK 确保运营商无法发布恶意或无效交易,并保证所有侧链区块是有效的。
不久之后,Vitalik 发布了 Barry 提案的改进版本,并称之为 zk-Rollup。Zk-Rollup 成为在以太坊研究论坛上浏览次数最高的帖子之一。Vitalik 的提案引入一种解决方案,可以防止困扰 Plasma 的数据可用性问题:在以太坊链上发布侧链交易数据。
是谁杀死了以太坊 Plasma?
Vitalik 的 zk-Rollup 帖子
发布交易数据作为函数参数,这意味着它可以在发布时对其进行验证,然后可将其丢弃(这样就不会造成以太坊存储膨胀)。
Zk-Rollup 可以完全避免 Plasma 的退出博弈和挑战期,同时无须平衡可负担性或安全性。借助 zk-Rollup,人们可以一次使用新颖的密码学来解决所有 Plasma 的 layer-2 扩展性两难。
然而,zk-Rollup 也有其自身的一些平衡。即,有效性证明的生成在计算上是昂贵的。这些 zk-SNARKS 在每个区块产生,最多可能需要 10 分钟才能生成,而每次验证(伊斯坦布尔之后)的成本高达 350,000gas。作为参考,它大约占据整个区块的 3.5%(伊斯坦布尔之前为 8%)。(蓝狐笔记:PUSH 一般花费 3gas,普通交易一般消耗 21,000gas,由此可见有效性证明的 gas 花费高)
此外,当前在 zk-Rollup 侧链上部署通用智能合约还不可能。有些针对专用的零知识虚拟机提案(例如 zkVM 和 ZEXE)正在开发中,也许它们会支持,但它们依然需要很多专用知识来与其交互。在大多数情况下,zk-Rollup 限制了通用的可编程性。
是谁杀死了以太坊 Plasma?
Zk-Rollup 可视化。来源:Georgios konstantopoulos
到 2019 年中,这些新发展让以太坊研究社区重新焕发活力。Zk-Rollup 似乎解决了很多困扰 layer-2 叙事的难题。诸如 Matter Labs 和 LoopRing 这样的公司开始积极开发 zk-Rollup,如今两者都有了测试网。通过优化,Matter Labs 相信其可以在 ZK Sync 网络上实现高达 2,000 的 tps。
此外,Starkware 正在 zk-Rollup 上构建变体,他们称之为 StarkExchange。StarkExchange 使用 STARK 证明侧链交易的有效性,但却代表了链外数据托管的问题(如果侧链停止,则可以通过链上检查点来确保退出)。
他们正在与 DeversiFi 合作实施这种设计的 DEX,并在不久的将来在其主网上发布。
但并非所有人都将其希望寄托在 zk-Rollup 上。在第一个 zk-Rollup 规范发布一年之后,John Adler 和 Mikerah 引入一种他们称为 Merged Consensus(合并共识)的设计。合并共识支持链下共识系统,它完全在以太坊上验证,而无须任何花哨的零知识密码学。
在发布之后,Plasma Group 发布了合并共识设计的扩展版本,并带有现在众所周知的名字:Optimistic Rollup。
尽管 zk-Rollup 依赖于 zk-SNARKS 来验证和实现每个区块最终性,但 Optimistic Rollups 采用了不同的方法:如果仅假设每个单一区块是有效的,该怎么办?
当每个人都正常运作,它会运行良好。但我们知道,运营商可能会有恶意行为。那么,Optimistic Rollups 如何处理运营商的行为不当?
Optimistic Rollups 的答案是使用欺诈证明。欺诈证明是运营商执行无效操作的计算证明。如果运营商发布无效状态转换,则任何人都可以提交该转换无效的证明,并还原这些交易(大约 1 周时间)。由于这些证明是非交互式的,任何人都可以发布:它们不需要用户监控其代币以确保安全。
但是,Optimistic Rollup 跟 zk-Rollup 不同,它需要将更多的数据(3-5 倍)发布到链上。这些数据主要包括见证人,例如签名数据(在 zk-Rollup 上并不需要,既然它用零知识来验证)。
在最好的情况下,Optimistic Rollup 将永远无须验证交易,除非有人提交欺诈证明。链上的见证验证和发布非常昂贵,然而,开发者已经探索了聚合签名机制,该机制允许进行廉价的大规模验证并减少交易数据的需求。这种优化可以提升 Optimistic Rollup 的理论 TPS,从当前的大约 450TPS 提升到潜在的 2000TPS 左右。
Optimistic Rollup 提供了跟 zk-Rollup 完全不同的权衡。考虑到欺诈挑战不是经常的事,它们不会那么昂贵,但是它们权衡了安全性,导致其安全性较差。换言之,交易可能会被错误应用且在后续还可能被还原。该安全窗口可以长达一整周。结果是,用户无法在该安全窗口内将资金退出该链。否则,他们可能会带着别人的资金跑掉。但是,可以通过引入二级市场来改善这些资金提取问题。
用户可以将其资金退出权卖给第三方流动性提供商,流动性提供商可以收取小额费用。流动性提供商会因为承担一周时间的退出带来流动性不足而获得报酬。这样可以实现用户在 rollup 链的即时退出。(蓝狐笔记:第三方流动性提供商专业做这个事情,比用户操作更合适,这是一个好的方案)
尽管 zk-Rollup 需要程序员理解复杂的约束系统和高级加密学,Optimistic Rollup 允许通用智能合约的部署(例如 Solidity)和执行。这意味着基于智能合约的协议,例如 Uiswap 可以构建于 Optimistic Rollup 侧链之上。
Rollup 系列的解决方案提供类似的方法来解决 Plasma 的数据可用性问题和退出复杂性问题,但是,所有这些都有可能大大扩展 Plasma 的结构。例如,IDEX 已经构建并部署了自己的 Optimistic Rollup,并在此结构上运行 DEX。
同样,Fuel Labs 也已经构架了一个 Optimistic Rollup 版本,它允许 UTXO 模式付款和 ERC-20 代币的交换。Plasma Group(现在是 Optimism)近期宣布将其重点转向 Optimistic Rollup,并致力于在其平台(通过其 OVM 结构)提供通用智能合约能力。
任何上升的东西必须收敛
Plasma 最终远不仅是协议。在一个非理性的繁荣时间,Plasma 是以太坊需要相信的故事。但从事后看来,它声称的无限扩展性证明是技术的狂妄。只有越过 Plasma,才能深入理解 layer-2 可扩展性所固有的权衡取舍。
随着 ETH 价格在去年的反弹,对以太坊未来的乐观情绪也随之而来。在历经接近 3 年对安全、可扩展和稳健的扩展性方案的寻找之后,以太坊研究社区最终走向 rollup 为中心。Plasma 及其表亲是首次尝试,但是,一群创新者最终创造了更现实的 layer-2 设计,似乎解决了 Plasma 的最严重问题。
是谁杀死了以太坊 Plasma?
一些专注于 Plasma 的研究团队,例如 Plasma Group 已经着手研究 Optimistic Rollup 的解决方案,但我们相信寻找最终的 layer2 解决方案的工作才刚刚开始。这里有很多竞争者,我们期望这一领域保持活跃,它也是让人兴奋的研究和开发领域。

区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。