Whisker17 / Layer2Things

This repo contains kinds of rollup scheme in current market
4 stars 0 forks source link

以太坊二层扩容之路:Plasma 衰落与 Rollup 崛起 #12

Closed Whisker17 closed 3 years ago

Whisker17 commented 3 years ago

以太坊二层扩容之路:Plasma 衰落与 Rollup 崛起

Contents

Whisker17 commented 3 years ago

Plasma 是如何运作的?

最初的 Plasma 白皮书描述了一种构造 MapReduce 「 区块链树 」的机制。树中的每个节点都代表一个唯一的区块链,这个区块链连接到它的父节点,所有这些区块链被安排在一个巨大的层次结构中

image

侧链 ,就是连接到另一个区块链上的区块链。侧链可以通过许多不同的方式,比如由可信的第三方、某个联盟或共识算法来运营。例如,Blockstream 在名为 Liquid 的比特币网络上参与一个联盟侧链。Liquid 在其信任模型中进行了权衡,因此能确保更高的事务吞吐量。用户必须相信联盟不会串通和窃取资金。

image

一个侧链通过双向挂钩连接到一个更大的区块链 (比如比特币) 上。用户可以通过将资金发送到特定的地址或主链上的智能合约,将资金存入侧链。这被称为「 peg-in 」交易。要提取资金,用户可以在侧链上执行相同的操作,在主链上取回他们的资金。这被称为 「 peg-out 」交易。

正如我们在上面的例子中所看到的,将资金移出侧链需要一个关键的组成部分:信任。用户必须 相信 侧链运营商不会携款潜逃。

区块链的主要特征不就是免信任吗?如果用户想要在无需信任其运营商的情况下与侧链进行交互,该怎么办?

这正是 Plasma 所要解决的问题。

Whisker17 commented 3 years ago

Plasma 的问题

第一个问题是, 每个用户 必须监控和验证 Plasma MVP 链上的所有交易,以检测恶意运营商的行为并及时退出。然而,事务验证成本高昂,并且这种监视需求为参与 Plasma 链增加了大量开销

第二,用户很难退出 Plasma 链。当用户试图从 Plasma MVP 链中提取资金时,他们必须提交退出交易请求,然后等待一段时间。这就是所谓的挑战期。在挑战期的任何时候,任何用户都可以通过提供退出无效的证明来挑战另一个用户的退出 (例如,他们正在铸造假代币或偷别人的代币) 。因此,所有的退出只能在挑战期结束后处理,一些挑战期会长达 1 周。

第三,在最坏的情况下,如果所有用户都需要退出一个 Plasma 链,那么该链的整个有效状态必须在一个挑战期内发布到以太网主网上。考虑到 Plasma 链可以任意增长,而以太坊区块已经接近其容量,几乎不可能将整个 Plasma 链倾倒到以太坊的主网上。因此,几乎可以肯定的是,大量退出会把以太坊挤爆。这就是所谓批量退出问题

Whisker17 commented 3 years ago

Plasma Cash

Plasma Cash 与 MVP 相比,有一个主要的优势:通过使用不同的数据模型,Plasma Cash 可以 完全避免批量退出 的问题。在 Plasma Cash 中,所有代币都被表示为 非同质代币 (NFT) ,这使得证明一套代币的所有权变得更加容易。简单来说,用户有责任证明自己而非他人拥有对代币的所有权。因此,用户只需要监控他们自己的代币,而不是整个 Plasma 链。

Plasma Cash 还提出了一种新的交互式挑战系统,允许用户在运营商行为不当的情况下轻松提取资金。利用一种新的 Merkle 树结构,即「 稀疏 Merkle 树 」,用户可以使用包含证明轻松地验证代币的历史和所有权。在运营商行为不当的情况下,用户只需要发布他们目前拥有的代币的链上证明 ( 包括 2 个最近的交易和相应的包含证明) 。

Whisker17 commented 3 years ago

Plasma Cash 的问题

  1. 首先,恶意用户或代币过去的所有者可能会做出 错误的取款尝试 。因为用户需要证明他们拥有自己的代币,所以实际上是由这些用户来发现并质疑自己的钱被骗走。因此,和 Plasma MVP 一样,Plasma Cash 要求用户 每两周至少上线一次 ,以及时在挑战期内发现错误取款

  2. 此外,为了证明代币的所有权,用户必须维护该代币的全部历史记录和相应的包含 / 排除证明,导致存储需求不断增加

Whisker17 commented 3 years ago

zk Rollup

一个类似于 Plasma 的架构,并可「打包」交易,它无需依赖于对运营商的信任,打包的正确性可以通过使用一个 SNARK 的链上证据来证明

此 SNARK 确保运营商不可能发布恶意或无效的事务,并确保所有侧链区块都是有效的。

将交易数据作为函数参数发布意味着可以在发布时对其进行验证,随后将其丢弃,这样就不会占据以太坊的存储空间。ZK Rollup 可以在不牺牲可负担性或安全性的情况下,避免 Plasma 的退出游戏和挑战期。

生成有效性证明在计算上很昂贵。这些 zk-SNARK 会在每个区块生成,生成时间可能长达 10 分钟,而每次验证的成本高达 350,000 gas (伊斯坦布尔升级后) ,这大约占整个区块的 3.5% (在伊斯坦布尔升级前占到了 8%) 。

Whisker17 commented 3 years ago

Optimism Rollup

合并共识使得链下的共识系统可以完全在以太坊上验证,而不需要任何花哨的零知识加密。

假设每个区块都是有效的

那么 Optimistic Rollup 又将如何处理运营者的错误行为呢?

答案是使用 欺诈证明 。欺诈证明是运营商执行无效操作的计算证明。如果运营商发布了一个无效的状态转换,任何人都可以提交一个证明,证明该转换无效,然后恢复那些事务(大约 1 周的时间)。由于这些证明是非交互式的,它们可以由任何人发送:不需要由用户监控自己的代币的安全性

然而,与 ZK Rollup 不同的是,Optimistic Rollup 需要 3-5 倍的事务数据才能完成。这些数据主要包括 签名数据 (ZK Rollup 不需要这些数据,因为它在零知识中验证了那些数据) 之类的见证。在最好的情况下,除非提交欺诈证明,否则乐观汇总交易永远不需要验证。然而,对链上见证进行验证和发布很昂贵,并且开发人员已经探索了允许廉价的大规模验证和减少事务数据需求的聚合签名机制。这种优化可以将 Optimistic Rollup 的理论 TPS 从目前的约 450 TPS 一直增加到潜在的约 2,000 TPS。

Optimistic Rollup 提供了一组与 ZK Rollup 非常不同的权衡。它们的成本较低 (假设欺诈带来的挑战极其罕见) ,但是它们的安全性较差,换句话说,一直存在不正确地应用事务、之后再予以恢复的可能性。这个安全窗口可以长达一个星期。因此,用户在这个安全窗口期无法退出 (否则,他们可能会拿着别人的资金跑掉) 。

然而,可以通过引入二级市场来改善这些退出问题。用户可以将他们的退出权出售给第三方流动性提供者,以换取少量的费用。 (流动性提供者将因持续一周的流动性不足而获得回报) 。这将允许用户立即退出 Rollup 链。