LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 科普 | 什么是分片 (Sharding)?

科普 | 什么是分片 (Sharding)?

2019-12-31 区块律动BlockBeat 来源:区块链网络

原文标题:《科普 | 什么是分片 (Sharding)?》
原文来源:EthHub 翻译:Unitimes_David


概要


区块链系统中有一个三元悖论能以一个三角形(被称为 DCS 三角形)的形式可视化,它所传达的是「去中心化一致性以及可扩展性这三者是不可能同时实现的。设计者必须进行权衡(你可以选择其中任意两者而非全部)。」(笔者注,DCS 三角形在国内常被称为区块链不可能三角)。见下图:




分片 (Sharding) 是解决这一挑战的一种尝试。分片就是把笨重的区块链(数据库)划分为更轻量、更快的区块链。到底怎么做呢?为了解决可扩展性的问题,我们将存储在主链上的状态数据和历史数据划分为一个个分片 (shards)。每个分片管理自身,有着自己的交易历史,以及在某个分片上的交易的影响仅限于该分片。

上述表述的一个例子就是这样的:一个 dApp (去中心化应用程序) 自身拥有一个完整的分片,因此与它相关的所有交易将只在这个分片上。与特定领域相关的几个 dApp 将会处于相同的单个分片上。

ETH2.0 的后期阶段考虑了跨分片通信的可能性。

分片还引入不同类型的节点,如「轻节点」,「超级全节点」等等,取决于其下载和验证的数据的多少。

可扩展性三元悖论


可扩展性三元悖论声称区块链系统只能最多满足下面三个性质中的其中两个:


  去中心化(定义为系统能够在每个参与者只获取 O(c) 资源 (即普通的笔记本电脑或小型的 VPS) 的情况下就可以运行)


  可扩展性(定义为能够处理大量交易)


  安全性(定义为网络在面对拥有高达 O(n) 资源的攻击者时能够保持安全)


可扩展性的关键挑战是在区块链的底层找到一个实现所有这三个特性的方法——分片就是为了解决该问题的一个尝试。


什么是分片?


当前,在所有的区块链协议中,每个节点存储整个状态(包括账户余额,合约代码及存储等等)并且处理所有交易。这种设计提供了高度的安全性,但大大限制了可扩展性:一个区块链网络不能处理比单个节点更多的交易。在很大程度上,因为这个原因,比特币被限制在每秒大约 3-7 笔交易,以太坊则约为 7-15 笔交易,等等。


然而,这就提出了一个问题:是否能够创建一种新的机制,其中只有一小部分节点会验证每一笔交易?只要有足够多的节点对每笔交易进行验证,那么这个系统仍然是高度安全的,但只会占所有验证者集合中的一小部分,使得系统可以并行处理大量交易,我们是否可以通过把交易处理分派到各个小节点组中来大大增加区块链的整体吞吐量?

分片背后的基本思想是什么?


我们把以太坊的状态数据和历史数据划分到被我们称为「分片」的分区之中。例如,以太坊上的分片方案可能会把以 0x00 开头的所有地址放到一个分片上,以 0x01 开头的所有地址放到另一个分片上,等等。在最简单的分片形式中,每个分片也有着自身的交易历史,在某个分片上交易的影响仅限于同一个分片的分片状态。


一个简单的例子就是多资产区块链,其中有着许多分片,每个分片保存余并处理与某种特定资产 (比如某种 ERC20 代币) 相关的交易。在更高级的分片形式中,存在着某种形式的跨分片通信能力,其中一个分片的交易能够触发其他分片上的事件。

带有分片的区块链的基本设计看起来大概是怎样的?


存在这样一个验证者集合(即 PoS 节点):这些验证者被随机地分配去创建分片区块。在每个 slot(一个 8 秒的时间段)中,为 [0...999] 个分片中的每个分片随机地选择一个验证者,并给予被选中地验证者在分片上创建区块的权利,该分片区块可能包含多达如 32kb 的数据。此外,对于每个分片,系统还会选择一个大小为 100 的验证者集合 (也即所谓的「委员会」) 作为证明者 (attestors)。一个区块的区块头,连同至少 67 个证明签名,可以作为一个对象被打包到「主链」(也被称为信标链) 上。


注意,在这样一个系统中当前可以存在着几个「级别」的节点:

  超级全节点——下载信标链所有的数据以及信标链上引用的每个分片区块。


  顶级节点——仅处理信标链区块,包含分片区块的区块头和签名,但不会下载分片区块的全部数据。


  单分片节点——充当顶级节点,但同时下载和验证它更关心的某个特定分片的每一个校验块 (collation)。(笔者注:在分片上的区块被称为 collation,验证者被称为 collator)


  轻节点——仅下载和验证信标链的区块头;不处理任何检验块头或者交易,除非它需要读取某个特定分片的状态中的某个特定条目,这种情况下,轻节点将会下载该分片最近的校验块头的默克尔分支,并从那里下载所需的状态中的默克尔证明。


资料 Resources


Sharding FAQ
Sharding Roadmap
DCS Triangle

来源链接:https://www.unitimes.pro/p/83442f806ea64861a45c7d72c808fe44


区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

—-

编译者/作者:区块律动BlockBeat

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...