区块链技术的应用可能将改变组织存储数据和执行分布式事务的方式。即使在公共网络上,区块链也可以保证所有参与者都以安全、可靠和可验证的方式访问记录。但是区块链有一个非常明显的限制:可伸缩性。随着交易数量的增长,区块链系统将变得更慢、更昂贵,从长期来看也不具备可持续性。

解决可伸缩性问题的一种方法是分片,这是一个将数据分割成可管理的块分布在不同节点上的过程。区块链分片技术已经用于私有区块链网络。但是对于公共网络来说,分片带来了一些挑战,在公共系统能够有效扩展之前,必须解决这些挑战。

区块链的困境

区块链是一种分布式分类账技术,用于记录一个或多个参与者之间的交易。在传统配置中,分类帐分布在多个节点上,每个节点维护一个完整的副本。区块链按时间顺序将每笔交易记录到分类账中,然后对这些交易进行同步和验证,这些交易在所有节点上都是透明的且可验证的。

随着交易数量的增加,分类帐的大小也随之增加,从而导致在每个节点上处理和存储更多的数据。部署额外的节点会使问题变得更严重,因为验证需要更多的时间。由于每个节点都必须处理每个事务,随着延迟的增加、吞吐量的降低和存储成本的增加,用户不可避免地将面临性能和可靠性问题。

显然,我们需要一种更好的方法来扩展公共网络的区块链系统。区块链分片是最流行的方法之一。它提供了一种扩展工作负载运行和数据存储的方法,因此没有一个节点会被迫处理整个事务负载。相反,数据会被划分到单独的区域中,每个节点被分配到一个特定的分区。通过这种方式,节点只处理和存储与节点所属的分区(或切分)相关联的事务。

区块链分片策略

分片的概念起源于数据库系统,系统将数据跨多个服务器进行分区,以改进事务处理。以类似的方式,可以跨多个节点对区块链处理进行分区,从而启用一个并行执行模型,该模型可以提高性能,同时减少每个节点必须处理和存储的数据量。虽然必须修改用于验证事务数据块的方法,但同时可以带来更大的吞吐量和更低的延迟。

切分数据的确切方法因应用程序的不同而不同,并没有哪一种办法是最好的。但尽管如此,基本概念都是相同的。每个节点被分配给一个单独的分片,并负责验证该分片中的事务,而不是验证整个区块链网络中的每个事务。

同时,分片包含事务冗余,以确保数据的有效性和可靠性。将数据划分为多个切片之后,每个切片将分布在多个节点上。例如,如果区块链网络支持1,000个节点,那么数据可能被划分为10个分片,每个分片分配给100个节点。通过这种方式,每个节点只处理和存储十分之一的数据,但是数据仍然跨100个节点进行验证。

区块链分片的优势是显而易见的。事务可以并行处理,每秒可以处理更多事务——是传统区块链方法的10倍。与此同时,处理和存储成本要低得多,因为每个节点只处理十分之一的数据。

分片的四个挑战

对于企业私有区块链部署来说,分片可能是一种有效的策略,但是在公共区块链网络中使用区块链分片并不容易。最大的挑战之一是分片间的通信。

当将节点分配给分片时,与该节点关联的用户和应用程序将该分片视为独立的区块链系统,而不是较大系统的一部分。分片之间的通信很难建立,需要特殊的开发工作来实现通信机制。而且即便使用这种机制,分片之间的通信也会带来更大的开销,从而抵消掉分片的一些优势。

分片还会破坏一些更传统的区块链方法带来的制衡。使用分片,用户不再下载和验证整个事务历史,因此他们不能确定数据的可靠性和不可变性——这是由事务块的链接序列决定的。如果没有这些安全措施,黑客就更容易操纵或控制分片,这种情况称为单分片接管,可能导致数据丢失或泄露。

区块链分片的另一个挑战是一致性和验证。不同的区块链方法依赖于不同的算法来实现跨节点的一致。两种常用的算法是工作证明(PoW)和利害关系证明(PoS)。两者都决定了如何在分布式网络上验证事务,但是它们的验证方式有所不同。

虽然对这些算法的比较超出了本文的范围,但值得关注的是它们都可能影响分片的实现方式。一般来说,PoS被认为比PoW更适合分片,大家认为PoW不适合分片是因为它验证事务的方式。不幸的是,许多区块链平台都依赖PoW来交付服务。

算法上的差异指向了另一个挑战:对于如何实现分片,目前仍缺乏标准化。分片有几种不同的方法,而且许多方法仍在研究、开发或测试中,以满足涉众对各种挑战的需求。每一种分片方法都有其优缺点,这使得行业标准更难被接受。

分片的未来

可伸缩性仍然是公共区块链应用实现所面临的一个重大挑战,分片是解决这个问题的主要方法之一。但是分片必须谨慎处理,以确保它不会对区块链进程产生负面影响或将数据置于危险之中。

事实可能会证明,区块链分片将需要与其他技术(例如用于跨分片边界通信的新协议)一起实现,以提供必要的可伸缩性。在那之前,公共区块链存储可能仍将是今天的状态——随着数据的增加,性能会下降。

原文作者:Robert Sheldon

Comments are closed.