Vitalik Buterin:揭开分片技术特性的神秘面纱
分片是以太坊可扩展性的未来,它将是帮助生态系统支持每秒数千笔交易的关键,它还允许世界上的大部分地区可以以负担得起的成本定期使用该平台。然而,它也是以太坊生态系统和更广泛的区块链生态系统中被误解较多的概念之一。它指的是一组具有非常特定属性的思想,但现在它经常被与具有安全性较弱属性的技术合并在一起。这篇文章的目的是解释分片提供了哪些特定的属性,它与其他不分片的技术有什么不同,以及一个分片系统必须做出哪些牺牲来实现这些属性。
以太坊分片版本的众多描述之一。原始图由Hsiao-wei Wang绘制,Quantstamp设计。
可扩展性三难困境
描述分片的最佳方式应该是从计划并启发解决方案的问题陈述开始:可扩展性三难困境。
可扩展性三难困境表示区块链试图拥有三个属性,如果坚持使用“简单”技术,那么我们只能获得这三个中的两个。这三个属性分别是:
可扩展性:比起单个普通节点验证的交易数量,链可以处理更多的交易。
去中心化:链可以在不依赖于一小群大型中心化参与者的情况下运行。这通常被解释为当我们不能用一个普通笔记本电脑加入到一组节点时,就不应该对该节点有任何信任。
安全性:链可以抵抗大部分对参与节点的攻击。(理想情况是50%;超过25%就还好,5%绝对不行)。
现在我们来看看这三类“简单解决方案”,通常只能得到其中的两个:
传统区块链:包括比特币、pre-PoS/分片以太坊、莱特币和其他类似的链。它们依赖于每个参与者运行一个完整的节点来验证每个交易,因此它们具有去中心化和安全性,但没有可扩展性。
高TPS链:包括DPoS家族,也包括许多其他类似的。它们依赖于少数节点(通常是10-100个)来维持彼此之间的共识,用户必须信任其中的大多数节点。这是具有可扩展性和安全性的,但它不是去中心化的。
多链生态系统:这是指“横向扩展”的一般概念,通过在不同的链上运行不同的应用程序,并使用跨链通信协议在它们之间进行通信。这是去中心化和可扩展的,但它并不安全,因为攻击者只需要在众多链中的一个里获得多数共识节点即可破坏该链并可能引起连锁反应,对其他链中的应用程序也会造成巨大损害。
分片是一种可以同时满足这三种需求的技术。一个分片区块链是:
可扩展:它可以处理比单个节点多得多的交易。
去中心化:它完全可以在普通笔记本电脑上“生存”,不依赖任何“超级节点”。
安全:攻击者无法以少量资源攻击系统的一小部分;他们只能试图控制和攻击整个事物。
本文的其余部分将描述分片区块链是如何做到这一点的。
通过随机抽样进行分片
最易理解的分片是通过随机抽样进行的分片。与我们在以太坊生态系统中构建的分片形式相比,通过随机抽样的分片有更薄弱的信任属性,但它使用了更简单的技术。
其核心思想如下。假设我们有一个包含大量(例如 10000 个)验证者的权益证明链,并且同时有大量(例如 100 个)需要验证的区块。没有一台计算机能够强大到在下一组区块进入之前验证所有这些区块。
因此,我们所做的就是将验证工作随机地进行拆分。我们随机打乱验证者列表,让已打乱列表中的前100个验证者来验证第一个区块,让已打乱列表中的后100个验证者来验证第二个区块,以此类推。这种被随机选择来验证一个区块(或执行一些其他任务)的一组验证者被称为委员会。
当验证者验证一个区块时,他们会发布一个签名来证明他们已经这样做了的事实。其他所有人,不再验证100个完整的区块,现在只验证10000个签名,这样工作量会小得多,尤其是使用 BLS signature aggregation。每个区块不是通过相同的P2P网络广播,而是在不同的子网上广播,节点只需要加入它们负责(或出于其他原因感兴趣)的区块对应的子网。
试想一下,如果每个节点的计算能力都增加了2倍会发生什么?因为每个节点现在可以安全地多验证2倍的签名,所以我们可以减少最低质押存款规模,以支持2倍多的验证者,届时,