前言:由于Layer 1扩展不易,Layer 2扩展一直也是区块链扩展的重要探索方向。以太坊社区曾经提出过Plasma的解决方案,但事后证明,Plasma在资金退出等问题上非常复杂,导致其很难成为真正可行的可扩展性解决方案。但Plasma的失败并非没有用,zk-Rollup的诞生让人们看到的layer-2扩展的可能方向,它可以解决Plasma的数据可用性问题和退出复杂性问题。而Plasma Group也将重心转向Optimistic Rollup,以期实现可用于通用智能合约的Rollup侧链。从这里我们可以看出,很多的技术构想,包括Vitalik的构想从一开始也可能会有一定的局限性,只有在不断的摸索中才能找到真正可行的方向。社区的力量很重要,rollup方案一开始就是由社区成员提出的,只有更多人参与进来,才能推动以太坊和公链生态的发展。伟大的力量总是根植于人们之中。本文作者是Ashwin Ramachandran&Haseeb Qureshi,由蓝狐笔记社群的“SIEN”翻译。
在2017年8月,Ether的价格接近历史新高。以太坊区块链使用量暴增,在不断增长的需求下以太坊不堪重负。研究者和开发者疯狂地寻找新的扩展性解决方案。
在全球各地的区块链会议上,开发者争论着扩展性的解决方案。以太坊社区迫切需要一个方案。在这样的疯狂过程中,Plasma论文的第一版发布了,它承诺一个layer-2可扩展性方案,可以处理“世界范围内的几乎所有财务计算”。
快进到2020年。以太坊跟以往一样慢,但它却在所有的所谓“以太坊杀手”项目中存活下来。ETH2.0的发布日期越来越远,随着很多开发团队关闭运营,Plasma看似完全消失。
不过,Optimistic Rollup和ZK Rollup(可以参考蓝狐笔记之前的发布《一文读懂ZK Rollup和Optimistic Rollup:以太坊重要的扩展方向》)正在被誉为最佳扩展性解决方案。但是,对Plasma的记忆似乎消失得无影无踪。
那么,是谁杀死了Plasma?
让我们回到2017年初。以太坊第一次进入主流,人们对其前景充满无限乐观。当时人们声称,所有有价值的资产会被代币化。在旧金山的活动聚会中,人们在房间里只能站着,每当有关于以太坊的主题,便是门庭若市。但以太坊并没有实现可扩展。
在这样的狂热之下,Vitalik Buterin和Joseph Poon发布了一篇论文,其中提到一种新的layer-2可扩展性解决方案,它就是Plasma。
Plasma声称,它能让以太坊扩展到Visa级别的交易量,这种大胆的声明引发了开发者和社区的热潮。不久之后,以太坊研究社区就Plasma问题进行集会,以作为解决以太坊扩展性问题的方案。
但什么是Plasma?为什么它最终没能实现其承诺?
Plasma是如何运行的
Plasma论文最初描述了一种构建MapReduce“区块链树”的机制。树中的每个节点都代表连接到其父节点的唯一区块链。所有这些区块链都按照巨大的层级结构进行排列。但是,最初的规范很模糊且复杂。不久之后,Vitalik简化了规范,并称之为MVP(蓝狐笔记:也就是最小可行的Plasma,Minimal Viable Plasma)。
MVP提出了简化版本的Plasma:基于UTXO的简单侧链在数据不可用的情况下是安全的。但是,什么是侧链?数据不可用意味着什么?在我们深入讨论Plasma之前,先来了解一下这些术语的含义。
侧链是连接到另外一个区块链的区块链。侧链可以通过多种不同方式来操作,例如通过可信的第三方、联盟、或共识算法。例如,Blockstream参与了在比特币网络上的联盟侧链,它被称为Liquid。Liquid允许更高的交易吞吐量,它之所以能实现是因为它在其信任模型上做了权衡。用户必须相信联盟不会合谋和窃取资金。在这种情况下,链的运营者是Liquid联盟的各种成员,例如Blockstream公司。
侧链通过双向锚定连接到较大的区块链,例如比特币区块链。用户可以在侧链存储资金,其方式是将其资金发送到主链上的特定地址或智能合约。这称为锚入交易。为了提取资金,用户可以在侧链上执行相同的操作以将其资金取回至主链。这称为锚出交易。但这跟Plasma有什么关系?
正如我们在上面的示例可以看到的那样:将资金从侧链移出需要一个关键的要素:信任。用户必须信任侧链的运营商不会拿资金潜逃。但这不是区块链无须信任的主要特性吗?如果用户想跟侧链交互而无须信任其运营商该怎么办?
这正是Plasma试图要解决的问题。
Plasma旨在最小化对侧链运营商的信任。也就是说,Plasma试图阻止资金被盗取,甚至即使运营商(或多数共识)行为不当。但是,即使侧链运营商无法彻底窃取资金,侧链还有另外一个问题。万一侧链运营商发布区块头,但拒绝发布底层的交易数据呢?这将阻止任何人验证侧链的正确性。这一概念称为数据的不可用性。(蓝狐笔记:也就是数据的发布需要依赖于可信的侧链运营商,可能存在数据不可获取的情况)
Plasma试图确保用户安全,即使运营商保留交易数据。也就是说,如果运营商拒绝发布数据,所有用户将仍然能够取回其资金,并退出侧链。
Plasma对其安全性和可扩展性许下很大的承诺。在2017年牛市期间,人们普遍相信Plasma将会解决以太坊的扩展性问题。但是,随着2018年市场的清醒,区块链炒作崩溃,关于Plasma的更现实的图景开始具体化。当它进入现实世界的部署,相对于解决方案,Plasma提出了更多问题。
第一个问题是,每位用户不得不监控和验证Plasma MVP链上的所有交易以进行监察,并在运营商存在恶意行为时退出。但是,交易验证非常昂贵,这种监控要求对参与Plasma链来说,增加了非常大的开销。
研究者还意识到,用户很难退出Plasma链。当用户试图从Plasma MVP链中提取资金时,他们必须提交退出交易,然后等待设定的时间周期。也就是通常所说的挑战期。
在挑战期内的任何时候,任何用户可以挑战其他用户的退出,其方式是提交退出无效的证明(例如,他们挖出假代币或盗取其他人的代币等)。因此,所有退出只能在挑战期结束之后处理,在一些提议中,这需要花费一周时间。
但情况可能更糟。
请记住,即使运营商保留数据(也就是不发布数据),我们也希望用户能够从Plasma链中提取其资金。MVP以如下方式处理这个问题:如果Plasma交易数据被保留,则每个用户都需要根据Plasma链最后的有效状态,分别退出其自己的资金。请注意,为了避免恶意运营商抢在诚实用户前面,退出按照最后一次交易的时间进行先后排序。
在最坏的情况下,如果所有用户都需要退出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的数据可用性问题:在以太坊链上发布侧链交易数据。
发布交易数据作为函数参数,这意味着它可以在发布时对其进行验证,然后可将其丢弃(这样就不会造成以太坊存储膨胀)。
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限制了通用的可编程性。
到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 Group已经着手研究Optimistic Rollup的解决方案,但我们相信寻找最终的layer2解决方案的工作才刚刚开始。这里有很多竞争者,我们期望这一领域保持活跃,它也是让人兴奋的研究和开发领域。