【天眼深度】一文读懂V神说的Sharding

摘要:以太坊是所有区块链中一直与分片概念同步的底层平台,想要理解为什么以太坊开发者社区想要实现分片,重点是要理解分片是什么,以及这个解决方案为何如此有吸引力。

以太坊是所有区块链中一直与分片概念同步的底层平台,想要理解为什么以太坊开发者社区想要实现分片,重点是要理解分片是什么,以及这个解决方案为何如此有吸引力。

根据 ETH Gas Station 的统计,向以太坊区块链中添加一项交易大约需要 1.78 分钟,每 32 秒生成一个新的区块,平均每秒处理 15-20 个交易。这个生态系统创造了一个有利于矿工而非用户的环境,如果用户想要优先处理他们的交易,就必须要提高他们的 gas 价格。

由于低吞吐量、高延迟和高价格限制了以太坊网络性能,因此,目前以太坊上不太适合部署需要强可扩展性的服务和应用程序。

4月7日,V神发文表示,分片是以太坊可扩展性的未来,它将是帮助以太坊生态系统支持每秒数千笔交易,并允许世界上大部分人用可以承受的成本定期使用以太坊平台的关键。

什么是分片?

简单来讲,分片是一种分区方式,可以在 P2P 网络中分散计算任务和存储工作负载,经过这种处理方式,每个节点不用负责处理整个网络的交易负载,只需要维护与其分区(或分片)相关的信息就可以了。

为了进一步解释分片,我们可以看一下最简单的分片示例。以太坊的创始人 Vitalik Buterin 此前称其为「通过 1000 山寨币增加扩展性」。

在例中,不是运行单条区块链,而是运行多条区块链,我们将每条区块链称为一个 shard(分片),而不是称之为区块链。反过来说,每个分片都有自己的验证器网络或者节点网络,可以使用 PoW 算法挖掘区块,也可以通过质押(staking)或投票(voting)来挖掘区块。

可扩展性三角

可扩展性三角认为,区块链试图同时拥有三个属性,如果坚持技术“简单性”,那么你只能获得这三个属性中的两个,即区块链“不可能三角”。

可扩展性:区块链可以处理的交易量比单个常规节点(例如:消费级笔记本电脑)可以验证的交易量更多。

去中心化:区块链可以在不依赖来自一小群大型中心化参与者的任何信任的情况下运行。 这通常意味着,您不能把信任交给一小组节点(即使假设它们多数是诚实的)(你无法通过消费级笔记本加入成为这些节点之一)。

分片最容易理解的版本是通过随机采样进行分片。与我们在以太坊生态系统中建立的分片形式相比,通过随机采样进行分片具有较弱的信任属性,但它使用的技术更简单。

核心思想如下。假设您有一个具有大量(例如10000个)验证者的PoS链,并且您有大量(例如100个)需要验证的区块。在出现下一组区块产出之前,单一一台计算机不具有足以验证所有这些区块的能力。

因此,我们要做的是随机分配进行验证的工作。我们随机地对验证者列表进行混洗,并在混洗后的列表中分配前100个验证者以验证第一个区块,在混洗后的列表中分配后100个验证者以验证第二个区块,依此类推。这些随机分配用于验证区块(或执行其他任务)的验证者们称为委员会(committee)。

区块链的分片和缩放

分片要解决的问题以及要有效实现分片需要克服的一些障碍。那么接下来我们将讨论跨分片交易、无效交易和恶意行为。

以简单的付款为例,如果用户 A 和用户 B 在同一个分片上,那么分片中的验证器能够毫无障碍地处理交易,但是当他们的账户在不同的分片上时,会出现什么状况呢?

用户 A 在 1# 分片上,用户 B 在 2# 分片上。各个分片上的验证器将无法借记或贷记用户的账户,因为它们没有彼此分片的权限。

然而,这个问题也是有解决方案的,下面就让我们来更详细地看一看其中一些解决方案:

同步(同时)跨分片交易

在这种情况下,当在 1# 分片的用户 A 要向在 2# 分片的用户 B 发送资金时,将同时在每个分片生成包含与此交易相关的状态转换(state transition)的区块,并且每个分片上的验证器会协同工作以确认这笔交易。

早在 2018 年初,Vitalik Buterin 就已提议将区块与此解决方案合并。

异步跨分片交易

这是一个较为容易完成的操作,并且协调起来也要简单的多,因此它比同步交易要更受欢迎。

同样,我们将使用 1# 分片上的用户 A 想要给 2# 分片上的用户 B 汇款的例子。在此场景下,负责贷记用户 B 的账户的分片只有在有足够证据证明负责借记用户 A 账户的分片已经完成后,才会验证这次交易中 B 自己负责的部分。

但是,这种方法并不是完美的,其中一个分片的一个区块被舍弃的可能性并不为零。当概率非零时,无论概率有多小,也仍是一个不容忽视的弱点。

当这样的分叉发生时,分片必须舍弃一条链并接受另一条链。此时,如果链 A、B 等成为 1# 分片中接受的链,W』、X』等成为 2# 分片中接受的链,那么交易将顺利完成,皆大欢喜。

如果 1# 分片接受 A』、B』等,2# 分片接受 W、X 等,那么整个交易将失败,但这也是一种可以令人接受的结果,因为可以重新发送交易。

但是如果 1# 分片接受链 A、B 等,2# 分片接受链 W、X 等的话会发生什么呢?交易中的一部分(A、B 等)被完成,但另一部分(W、X 等)会被舍弃。

免责声明

本文观点仅代表作者个人观点,不构成本平台的投资建议,本平台不对文章信息准确性、完整性和及时性作出任何保证,亦不对因使用或信赖文章信息引发的任何损失承担责任
上一篇

鸡与蛋的问题:为什么说NFT终究还是可互换的?

下一篇

Equilibrium完成250万美元融资,以支持波卡平行链竞拍