43

V神 :侧链 VS Plasma VS 分片 区块链扩展方案优劣对比

 4 years ago
source link: https://www.tuicool.com/articles/Jniyyia
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

特别感谢Jinglan Wang对文章的审阅及提供的反馈。

我们经常会遇到一个问题:分片(sharding)、侧链以及Plasma有什么不同?这三种体系结构似乎都涉及了一个中心“主链”的星形拓扑结构,该中心“主链”充当系统的共识支柱,此外还有一组包含实际用户级事务(transaction)的“子”链。子链中的哈希通常周期性地发布到主链(理论上不带中心的分片链是可能的,但到目前为止还没有实现,本文不会关注它们,但参数是相似的)。考虑到这种基本的相似性,选择其中一种方案,而不选用其他方案的理由是什么呢?

侧链和Plasma的区分是简单的。Plasma链是具有非监护性质的侧链: 如果Plasma链中存在任何错误,则错误是可检测到的,用户可安全地退出Plasma链,并防止攻击者造成任何持久的伤害。用户所承受的唯一成本,是他们必须等待一个challenge周期,并在(不可扩展的)基础链上支付一些更高的交易费用。而常规的侧链则没有这种安全属性,因此它们的安全性较低。然而,设计Plasma链在很多情况下要困难得多,有人可能会说,对于很多低价值应用而言,增加复杂性而带来更好的安全性,其实是不值得的。

nUvU3ia.jpg!web

(图:Vitalik Buterin,来自Duncan Rawlinson)

那么,Plasma和分片之间,又是什么关系,两者孰优孰劣呢?关键的技术差异在于 紧密耦合(tight coupling) 的概念。紧密耦合是分片的一种属性,但不是侧链或Plasma的属性,这意味着主链(例如以太坊2.0中的信标链)的有效性与子链的有效性密不可分。也就是说,根据定义,将无效主链区块指定为附属项的子链区块是无效的,更重要的是,根据定义,包含无效子链区块的主链区块是无效的。

在非分片区块链中,规范链(即所有人都接受的代表“真实”历史的链)的定义,是完全可用和有效的;例如,在比特币和以太坊的情况下,人们通常说规范链是“最长有效链”(或者,换个更卖弄学问说法是,规范链是“最重的有效和可用链”)。在分片区块链中,最重有效和可用的规范链概念同样适用,其有效性和可用性要求同时适用于主链和分片链。然而,分片系统面临的新挑战是,由于数据太多,用户无法直接完全验证任何给定链的有效性和可用性。工程学分片链的挑战在于,通过给用户一个最大程度的不信任和实际的间接手段来验证哪些链是完全可用和有效的,从而使他们仍然能够确定哪条链是规范的。在实践中,这包括委员会、SNARKs/STARKs、fisherman方案、欺诈及数据可用性证明等技术。

如果一个链结构没有这种紧密耦合特性,那么可以说它不是layer-1分片方案,而是一个位于不可扩展的layer-1链之上的layer-2系统。Plasma不是一个紧密耦合的系统:一个无效的Plasma块绝对可以将其块头提交到主以太坊链中,因为以太坊基础层不知道它代表一个无效的Plasma块,甚至根本不知道它代表一个Plasma块;它看到的只是一个包含一小部分数据的事务。然而,单个Plasma链失效的后果,便局限于该Plasma链内。

z2Ejqu7.jpg!web

但是,如果你试图分析用户如何执行“间接验证”程序的过程,以确定他们所查看的链是否完全有效且可用,且在不下载和执行整个过程的情况下,则我们可发现分片与Plasma工作方式更为相似的地方。例如,用来防止可用性问题的一种常见技术是 fishermen :如果一个节点将一个区块的给定部分视为不可用,它可以发布一个声明此问题的challenge,从而创建一个时间段,任何人都可以在该时间段内发布该数据。如果一个区块在足够的时间内没有被质疑,则可还原将其作为依赖项进行引用的区块。这看起来与Plasma基本上类似,在Plasma中,如果区块不可用,用户可以将消息发布到主链以响应退出状态。这两种技术最终都会在压力下以同样的方式屈服:如果一个分片系统中有太多的错误challenge,那么用户就无法跟踪是否所有的可用性challenge都得到了解决;如果一个Plasma系统中有太多的可用性challenge,那么当出口填满该链的块大小限制时,主链可能会不堪重负。在这两种情况下,似乎系统具有 O(C^2)的  可伸缩性(其中 C 是一个节点的计算能力),但在发生攻击时,可伸缩性降至 O(C) 。然而,分片对此具有更多的防御性。

首先,当前的分片设计使用了随机抽样的委员会机制,所以即使是一个委员会也不能轻易地做恶(足以产生一个虚假区块的程度),除非一个委员会拥有链整个验证器集的很大一部分(可能大于1/3)。

第二,有比fishermen更好的数据可用性处理策略:数据可用性证明。在使用数据可用性证明的方案中,如果区块不可用,则客户端的数据可用性检查将失败,客户端会认为该区块不可用。如果该区块是无效的,那么即使是一个欺诈证明也会使得他们相信整个区块的这一事实。一个O(1)大小的欺诈证明,可以使客户端相信 O(C) 大小的区块是无效的,因此 O(C)  数据足以使客户端相信 O(C^2) 数据是无效的(在最坏的情况下,客户端与N哥姊妹区块交互,所有姊妹区块的母块只有一个是有效的;在更可能的情况下,一个单一的欺诈证明就足以证明整个无效链的无效性。)因此, 理论上说,分片系统比Plasma链更不容易被DoS(拒绝服务)攻击所击倒

第二,分片链在面对大型攻击者及多数攻击时提供了更强的保障(超过1/3甚至1/2的验证者集)。 Plasma链总是可被审查退出的主链成功地实施51%攻击,而分片链则不能。这是因为数据可用性证明和欺诈证明发生在客户端内部,而不是链内部,因此分片链不能被51%攻击审查。第三,分片链提供的防御更易于概括。Plasma的exit模型要求状态被分离成独立的部分,每个部分都符合任何单个参与者的利益,而依赖数据可用性证明、欺诈证明、fishermen以及随机抽样的分片链,在理论上是广泛适用的。

然而,Plasma链也有很大的优势。首先,它们是可以进行迭代的,并且可以更快地实现新的设计,因为每个 Plasma链可以单独地进行部署,而不需要协调生态系统的其余部分。第二,分片本身就更脆弱,因为它试图保证某些数量数据的全部可用性和有效性,而这个数量必须在协议中设置。如果这个数量太少,则不利于系统的可扩展性,太多,则整个系统都有崩溃的风险。可扩展性的最大级别安全还取决于系统的用户数,这是一个不可预测的变量。另一方面,Plasma链允许不同的用户在这方面进行不同的权衡,并允许用户更灵活地适应环境变化。

单运营商Plasma链,也可提供比所有数据公开的分片系统更多的隐私性。即使在不需要隐私的地方,它们也可能更有效,因为分片系统的总数据可用性要求需要大量额外的冗余作为安全边际。另一方面,在Plasma系统中,对每一数据块的数据要求可以最小化,从长远来看,每一数据块可能只需要复制几次,而不是像在分片系统中那样复制一千次。

因此, 从长远来看,分片链+Plasma链的混合系统,以提供进一步的可扩展性,似乎是最可行的方法 ,这种混合模型更能够服务于不同群体的用户需求,而不仅仅依赖于一种或另一种策略。不幸的是,Plasma和分片无法折叠成相同的设计,这两者在某些关键方面有着不可弥补的不同。但这两种可扩展性解决方案(以及状态通道!)都拥有一个光明的未来。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK