一文解析以太坊扩展解决方案大不同:分片、侧链和Plasma
经常出现的一个问题是:分片与侧链或Plasma究竟有何不同?这三种架构似乎都涉及一个中心辐射式架构,该体系结构具有一个作为系统共识主干的中心“主链”,以及一组包含实际用户级交易的“子”链。来自子链的哈希值通常会定期发布到主链中(没有枢纽的分片链在理论上是可行的,但目前尚未实现;本文不会重点讨论它们,但论点相似)。鉴于这种基本的相似性,为什么要采用一种方法而不是其他方法?
区分侧链和Plasma很简单。Plasma链是具有非托管属性的侧链:如果Plasma链中出现任何错误,那么错误可以被检测到,并且用户可以安全地退出Plasma链并防止攻击者造成任何持久的损害。用户遭受的唯一成本是他们必须等待挑战期并在(不可扩展的)基础链上支付一些更高的交易费用。常规侧链没有这种安全特性,因此它们的安全性较低。然而,在许多情况下,设计Plasma链要困难得多,人们可能会争辩说,对于许多低价值的应用程序,安全性不值得增加复杂性。
那么Plasma与分片呢?关键的技术差异与紧密耦合的概念有关。紧密耦合是分片的特性,但不是侧链或Plasma的特性,也就是说主链(以太坊2.0中的“信标链”)的有效性与子链的有效性密不可分。也就是说,将无效主链块指定为依赖项的子链块定义为无效,更重要的是包含无效子链块的主链块定义为无效。
在非分片区块链中,规范链(即每个人都接受的代表“真实”历史的链)根据定义完全可用且有效的想法也适用;例如,在比特币和以太坊的情况下,人们通常会说规范链是“最长的有效链”(或者,更迂腐地说,是“最重的有效和可用链”)。在分片区块链中,根据定义规范链是最重的有效和可用链的想法也适用,有效性和可用性要求适用于主链和分片链。然而,分片系统面临的新挑战是用户无法直接完全验证任何给定链的有效性和可用性,因为数据太多。
工程分片链的挑战是通过为用户提供最大程度的去信任和实用的间接手段来验证哪些链是完全可用和有效的,以便他们仍然可以确定哪些链是规范的,从而绕过这个限制。在实践中,这包括委员会、SNARKs/STARKs、渔夫方案以及欺诈和数据可用性证明等技术。
如果区块链结构不具有这种紧密耦合特性,那么它可以说不是layer1分片方案,而是位于不可扩展的layer1链之上的layer2系统。Plasma不是一个紧密耦合的系统:一个无效的Plasma绝对可以将其头部提交到以太坊主链中,因为以太坊基础层不知道它代表一个无效的Plasma区块,甚至根本不知道它代表一个Plasma区块;它所看到的只是一个包含一小段数据的交易。然而,单个Plasma链失效的后果仅限于该Plasma链内部。
但是,如果您尝试分析用户如何执行“间接验证”过程以确定他们正在查看的区块链是否完全有效且无需下载和执行整个过程即可使用,您会发现与Plasma的工作方式有更多相似之处。例如,用于防止可用性问题的一种常用技术是渔夫:如果一个节点看到一个给定的区块不可用,它可以发布一个挑战来声明这一点,并创建一个时间段,在这个时间段内任何人都可以发布该区块数据。如果一个区块在足够长的时间内没有受到挑战,则该区块和所有引用它作为依赖项的区块都可以恢复。
这似乎从根本上与Plasma相似,如果一个区块不可用,用户可以向主链发布消息以退出其状态作为响应。这两种技术最终都以同样的方式在压力下屈服:如果分片系统中有太多的虚假挑战,那么用户无法跟踪是否所有的可用性挑战都得到了回答,如果有太多的可用性挑战一个Plasma系统,那么主链可能会因为被填满的出口链块大小限制而不堪重负。在这两种情况下,似乎都有一个系统名义上具有O(C^2)可扩展性(其中C是一个节点的计算能力),但在发生攻击时,O(C)可扩展性就会下降。然而,分片有更多的防御措施。
首先,现代分片设计使用随机抽样的委员会,因此,除非一个委员会拥有整个链验证者集的很大一部分(可能>1/3),否则即使是一个委员会也无法轻易控制足以产生假块的委员会。其次,有比渔夫更好的处理数据可用性的策略:数据可用性证明。在使用数据可用性证明的方案中,如果一个区块不可用,那么客户端的数据可用性检查将失败,客户端将看到该区块不可用。如果该区块无效,那么即使是单个欺诈证明也会使他们相信整个区块的这一事实。O(1)大小的欺诈证明可以让客户相信O(C)大小的块的无效性,因此O(C)数据足以说服客户O(C^2)的无效性数据(这是在最坏的情况下,客户端正在处理N个姐妹块,所有姐妹块都具有相同的父块,其中只有一个是有效的;在更可能的情况下,一个欺诈证明就足以证明整个无效链的无效性)。因此,理论上分片系统比Plasma链更不容易被拒绝服务攻击淹没。
其次,分片链在面对大型和多数攻击者(超过1/3甚至1/2的验证者集)时提供了更强的保证。一条Plasma链总是可以通过对审查退出的主链的51%攻击而成功攻击;分片链不能。这是因为数据可用性证明和欺诈证明发生在客户端内部,而不是链内部,因此它们无法被51%攻击审查。第三,分片链提供的防御更容易泛化;Plasma的退出模型要求将状态分成去中心化的部分,每个部分都符合任何单个参与者的利益,而依赖于数据可用性证明、欺诈证明、渔夫和随机抽样的分片链在理论上是通用的。
因此,在Layer2提供的有效性和可用性保证之间确实存在很大差异,它们是有限且更复杂的,因为它们需要对激励进行明确推理以及哪一方对哪个状态感兴趣,以及由致力于完全满足他们的Layer1系统。
但是Plasma链也有很大的优势。首先,它们可以迭代,并且可以更快地实施新设计,因为每个Plasma链可以单独部署,而无需协调生态系统的其余部分。其次,分片本质上更脆弱,因为它试图保证一定数量数据的绝对和总可用性和有效性,并且这个数量必须在协议中设置;太少的话,系统的可扩展性比它本来拥有的要差,太多的话,整个系统就有崩溃的风险。可扩展性的最大安全级别还取决于系统的用户数量,这是一个不可预测的变量。而Plasma链则允许不同的用户在这方面做出不同的权衡,并允许用户更灵活地适应环境的变化。
与所有数据都是公开的分片系统相比,单运营商Plasma链还可用于提供更多隐私。即使在不需要隐私的地方,它们也可能更有效,因为分片系统的总数据可用性要求需要大量额外的冗余作为安全余量。另一方面,在Plasma系统中,每个数据的数据需求可以最小化,从长远来看,每个单独的数据可能只需要复制几次,而不是像现在这样复制一千次分片系统中的情况。
因此,从长远来看,一个混合系统,其中存在一个分片基础层,而Plasma链存在于它之上以提供进一步的可扩展性,似乎是最可能的方法,比单独依赖更能满足不同用户群体的需求在一种策略或另一种策略上。不幸的是,在足够的进步水平下,Plasma和分片不会崩溃到同一个设计中。两者在某些关键方面有着不可简化的不同(例如,客户端在分片系统中进行的数据可用性检查不能移动到Plasma中的主链上,因为这些检查只有在主观和基于私人信息的情况下才有效)。但是这两种可扩展性解决方案(以及状态通道)都有光明的未来。
Scan QR code with WeChat