
以太坊是所有区块链中一直与分片概念同步的底层平台,想要理解为什么以太坊开发者社区想要实现分片,重点是要理解分片是什么,以及这个解决方案为何如此有吸引力。
根据ETH Gas Station的统计,向以太坊区块链中添加一项交易大约需要1.78分钟,每32秒生成一个新的区块,平均每秒处理15-20个交易。这个生态系统创造了一个有利于矿工而非用户的环境,如果用户想要优先处理他们的交易,就必须要提高他们的gas价格。
由于低吞吐量、高延迟和高价格限制了以太坊网络性能,因此,目前以太坊上不太适合部署需要强可扩展性的服务和应用程序。
什么是分片?
简单来讲,分片是一种分区方式,可以在P2P网络中分散计算任务和存储工作负载,经过这种处理方式,每个节点不用负责处理整个网络的交易负载,只需要维护与其分区(或分片)相关的信息就可以了。
为了进一步解释分片,我们可以看一下最简单的分片示例。以太坊的创始人Vitalik Buterin称其为“通过1000山寨币增加扩展性”。
在本例中,不是运行单条区块链,而是运行多条区块链,我们将每条区块链称为一个shard(分片),而不是称之为区块链。反过来说,每个分片都有自己的验证器网络或者节点网络,可以使用PoW算法挖掘区块,也可以通过质押(staking)或投票(voting)来挖掘区块。
分片所面临的挑战
在尝试去使用分片时,我们面临的第一个问题是,由于每个分片都有自己的节点集,所以每个分片的安全性都低于像以太坊这样的单链。
所以如果具有x数量节点的以太坊决定硬分叉并分裂为一条分片链,且将整个网络分布在超过10个分片上,那么每个分片将具有原链1%的安全性。这意味着通过控制原链5.1%(而不是51%)的节点,每个分片都可能会被破坏。
我们遇到的第二个问题是:“我们如何选择哪个节点验证哪个分片?”对于一个不怎么好的参与者来说,只有当这5.1%的网络节点都在同一个分片中进行验证时,要控制这些节点才会是个问题。
允许节点选择其