侧链 vs Plasma vs 分片

这篇文章深入探讨了侧链、Plasma和分片技术之间的主要区别和联系。文章详细介绍了每种架构的特点、优势和限制,并分析了它们在数据有效性和可用性保障方面的不同,最终提出了一种混合系统的前景,结合了分片基础层和Plasma链以提高可扩展性。

侧链与 Plasma 与分片

侧链与 Plasma 与分片

特别感谢 Jinglan Wang 的审阅和反馈

一个常常被提出的问题是:分片与侧链或 Plasma 有什么具体区别?这三种架构似乎都涉及一个中心的“主链”,作为系统的共识基石,及一组包含用户级交易的“子链”。子链的哈希通常定期发布到主链(理论上,没有中心的分片链是可能的,但到目前为止还没有实现;本文将不专注于这些,但论点是相似的)。考虑到这一基本相似性,为什么选择一种方法而非另一种?

区分侧链和 Plasma 是简单的。Plasma 链是具有无托管属性的侧链:如果 Plasma 链中出现任何错误,则可以检测到错误,用户可以安全地退出 Plasma 链,防止攻击者造成任何持久损害。用户唯一遭受的成本是他们必须等待一个挑战期,并在(不可扩展的)基础链上支付一些更高的交易费用。普通侧链没有这种安全属性,因此安全性较低。然而,在许多情况下,设计 Plasma 链要更困难,有人可能会争辩,对于许多低价值的应用,安全性与增加的复杂性不成正比。

那么,Plasma 与分片又怎样呢?关键的技术区别与紧耦合的概念有关。紧耦合是分片的一个特性,但不是侧链或 Plasma 的一个特性,它表示主链的有效性(即以太坊 2.0 中的“信标链”)与子链的有效性是不可分离的。也就是说,指定一个无效主链区块作为依赖的子链区块定义上是无效的,更重要的是,包含无效子链区块的主链区块定义上也是无效的。

在非分片区块链中,这种规范链(即每个人接受的“真实”历史的链)的有效性和可用性也适用;例如,在比特币和以太坊的情况下,通常说规范链是“最长有效链”(或者,更准确地说,是“最重的有效和可用链”)。在分片区块链中,规范链是最重的有效和可用链这一理念同样适用,且有效性和可用性要求适用于主链和分片链。然而,分片系统面临的新挑战是,用户无法直接完全验证任何给定链的有效性和可用性,因为数据量太大。工程设计分片链的挑战在于,通过提供最大程度无信任和实用的间接方法来验证哪些链是完全可用和有效的,从而仍然能够确定哪条链是规范链。在实际操作中,这包括像委员会、SNARKs/STARKs、渔民方案和欺骗及数据可用性证明等技术。

如果一个链结构不具有这种紧耦合特性,那么可以说它不是一个层-1 分片方案,而是一个坐落于不可扩展层-1 链之上的层-2 系统。Plasma 不是一个紧耦合系统:无效的 Plasma 区块绝对可以将其头部提交到主以太坊链中,因为以太坊基础层并不知道它表示一个无效的 Plasma 区块,甚至不知道它根本是一个 Plasma 区块;它看到的只是一笔包含少量数据的交易。无论如何,单个 Plasma 链失败的后果局限于该 Plasma 链内部。

分片 努力确保系统每个部分的有效性/可用性
Plasma 接受局部故障,但尽量限制其后果

但是,如果你尝试分析用户是如何执行“间接验证”过程来确定他们查看的链是否完全有效和可用的,而不下载和执行整个链,你会发现它与 Plasma 的工作方式有更多相似之处。例如,防止可用性问题的一种常见技术是渔民:如果一个节点发现某个区块的某部分不可用,它可以发布一个声明进行挑战,创建一个时间段,在此期间任何人都可以发布该部分数据。如果一个区块在足够长的时间内没有被挑战,列出的区块及引用它作为依赖的所有区块便可以被回滚。这似乎与 Plasma 根本上相似:如果一个区块不可用,用户可以向主链发布消息以退出其状态。两种技术在压力下最终会反弹,以相同的方式:如果分片系统中出现太多虚假挑战,用户将无法追踪所有可用性挑战是否已被回应;而如果 Plasma 系统中出现太多可用性挑战,那么主链可能会因退出填满链的区块大小限制而瘫痪。在这两种情况下,似乎存在一个表面上具有 O(C2) 可扩展性的系统(其中 C 是一个节点的计算能力),但在攻击发生时可扩展性下降到 O(C)。然而,分片对这一点有更多的防御。

首先,现代分片设计使用随机抽样的委员会,因此一个人不能轻易占主导地位以产生一个假区块,除非他们拥有整个验证者集的一大部分(或许超过 13)。其次,处理数据可用性的策略比渔民更好:数据可用性证明。在使用数据可用性证明的方案中,如果一个区块是不可用的,则客户端的数据可用性检查将失败,客户端将看到该区块为不可用。如果该区块是无效的,那么即使一个欺诈证明也会让他们相信这个事实在整个区块上。一个 O(1) 大小的欺诈证明可以让客户端相信一个 O(C) 大小区块的无效性,因此 O(C) 数据足以让客户端相信 O(C2) 数据的无效性(在客户端处理所有父节点只有一个有效的 N 个兄弟区块的最糟情况下;在更可能的情况下,一个单独的欺诈证明足以证明整个无效链的无效性)。因此,理论上分片系统对拒绝服务攻击的承受能力要低于 Plasma 链。

其次,在面对大型和多数攻击者(拥有超过 13 或甚至 12 个验证者集)的情况下,分片链提供了更强的保证。一个 Plasma 链始终可以通过对主链进行 51% 攻击来成功攻击,从而审查退出;而分片链无法。这是因为数据可用性证明和欺诈证明发生在客户端内部,而不是链内部,因此它们无法被 51% 攻击审查。第三,分片链提供的防御更容易推广;Plasma 的退出模型要求状态在离散部分中分开,每个部分的维护对任何单一行为者都有利,而分片链则依赖于数据可用性证明、欺诈证明、渔民和随机抽样,理论上是普遍适用的。

因此,第一层提供的有效性和可用性保障与由第二层提供的保障之间确实存在较大差异,后一者是有限且更复杂的,因为它们需要对激励以及哪一方对哪些状态片段感兴趣进行明确推理,而第一层系统则致力于完全满足这些要求。

但 Plasma 链也有很大的优势。首先,它们可以更快地迭代和实现新设计,因为每个 Plasma 链可以单独部署,而无需协调整个生态系统。其次,分片本质上更脆弱,因为它试图保证某数量数据的绝对可用性和有效性,而这个数量必须在协议中设置;太少则系统可扩展性会降低,太多则整个系统面临破坏的风险。最大安全可扩展性水平还取决于系统用户的数量,这是一个无法预测的变量。另一方面,Plasma 链允许不同的用户在这方面做出不同的权衡,使用户能够对情况变化做出更灵活的调整。

单一操作的 Plasma 链还可以提供比所有数据公开的分片系统更多的隐私。即使在不需要隐私的情况下,它们潜在的效率可能更高,因为分片系统对总数据可用性要求需要在安全边际上添加大量的冗余。而在 Plasma 系统中,各个数据片的要求可以被最小化,以至于从长远来看,每个单独的数据片可能只需要转换几次,而不是像分片系统中那样复制一千次。

因此,从长远来看,存在一个混合系统,其中一个分片基础层存在,而 Plasma 链在其顶部存在以提供进一步可扩展性的方式,似乎是最有可能的方法,更能满足不同用户组的需求,而不是完全依赖于一种或另一种策略。而且,很不幸的是,在足够的进展水平上,Plasma 和分片并不会融入同一设计;在一些关键方面,两者是不可约的不同(例如,分片系统中客户端进行的数据可用性检查不能转移到 Plasma 中的主链,因为这些检查只有在主观和基于私密信息的情况下才能工作)。但是,这两种可扩展性解决方案(以及状态通道!)都拥有光明的前景。

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

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/