以太坊:以太坊2.0的分片是如何工作的?_SHARD

什么是分片?

分片(Sharding)指的是将整个以太坊网络分成许多个小部分(Shards)。每个分片都包含独立的状态、完整的账户系统和智能合约。

分片绝对是最复杂的以太坊扩展解决方案,因此它也被放在了以太坊2.0路线图中的最后一阶段,给开发者充足的时间开发和在生产环境中测试。

在进入分片的技术细节之前,我们首先需要了解节点在以太坊网络中扮演的角色。节点负责验证链上交易并确保交易都遵守区块链共识规则。要做到这一点,最好的方法就是让每个节点都保留一份以太坊交易账本的完整副本,用以验证交易的真实性和完整性。但是以太坊的链上数据一直在快速增长,目前的数据大小已经超过1TB,对于普通人来说保存完整的数据副本是不切实际的。

以太坊的瓶颈

这就导致了一个大问题:如果以太坊全节点的运营成本过高,运营全节点的人数就会越来越少,网络将更容易受到中心化的影响。

同时,如果每笔交易都需要通过所有节点验证,那以太坊也将难以实现可拓展性,分片将是这些问题的终极解法。

分片与状态通道和plasma等拓展解决方案不同的是,分片不会将任何交易数据放到链下处理。分片只是将链上数据分成很多个部分,节点就不需要处理网络上的所有交易,而只要处理某一个片区的交易。分片也引发了一个讨论,分片后还能保障区块链的安全吗?

分片的优势

迄今为止,还没有任何区块链网络可以同时实现以下三个特性:去中心化、可扩展性、安全,这被称为区块链不可能三角。所以,分片可以看做是在这个三难困境前提下,相对牺牲了一部分安全性的情况下,解决以太坊可拓展性的解决方案。

在每一个分片中,将会周期性地随机挑选出一批公证人(Notaries)用于验证区块,相当于PoW链中矿工的角色。然后以太坊主链上将会有一个委员二次检验这些区块的真实性(Validity)。每个分片的出块方式和块之间的排列方式与主链是完全一样的。

每个分片都以默克尔树的形式与以太坊主链相关联,两者之间的链接也是加密的。每个分片都可以充当独立的区块链。每个分片上的用户都有自己的账户余额,与以太坊主链无关,只能用于与用一个分片上用户间交易。

对于以太坊分片最简单的理解方式就是,想象以太坊链被分裂成数千座岛屿,每个岛屿有自己的特色,也是主权独立的。如果他们想联系其他岛屿,将需要使用某种特定协议。每个分片独立存储了该分片上的交易信息,但是在需要时又可以随时返回主链。

分片的挑战

虽然分片在理论上听起来很不错,但也存在许多潜在的攻击途径。一种特定的攻击是单分片接管攻击(Single-shardtakeoverattack)。这种攻击的方式是,攻击者接管了某一分片中的大多数出块者,创建了一个提交不实交易信息的恶意分片。

以太坊核心开发人员提出了随机抽样检查的应对方法,这个解决方案目前还在积极开发中。

分片在权益证明链上比在工作量证明链上更容易实现。因为权益证明链上本来就已经有活跃的验证者,这些验证者可以被进一步随机指派到不同的分片中去。而在工作量证明中则无法阻止矿工向特定分片贡献算力。如果矿工可以选择他们想要验证的分片,他们就可以联合起来共谋作恶。

_______________________

作者|district0x

翻译&校对|林芒果

本文由矿视界翻译整理编辑,如需转载,请标明出处

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-6:280ms