区块链技术彻底改变了企业存储数据和执行分布式交易的方式。即使在公共网络,区块链也可以确保所有参与者都可访问安全、可靠和可验证的记录。但区块链面临的重大限制是:可扩展性。随着交易数量的增加,系统会变得更慢更昂贵,并且从长期来看,可持续发展性会降低。
对于可扩展性问题,解决方法之一是分片,在分片过程中,数据被分解为可管理块,分布在不同节点上。目前区块链分片已经应用于私有区块链网络。而在公共网络部署分片技术会带来挑战,因此,在公共系统可有效扩展前我们必须解决这些挑战。
区块链困境
区块链是一种分布式分类帐技术,用于记录一个或多个参与者之间的交易。在传统配置中,分类帐分布在多个节点,每个节点都保持完整的副本。区块链按时间顺序将每个交易记录到分类帐中,然后同步和验证交易,这些交易在所有节点上都是透明且可验证的。
随着交易数量的增加,分类帐的大小也会增加,从而导致在每个节点上处理和存储更多数据。然而,部署额外的节点会使问题变得更糟,因为验证将需要更多时间。由于每个节点必须处理每个交易,因此,随着延迟增加、吞吐量降低和存储成本上升,用户将不可避免地面临性能和可靠性问题。
显然,这里需要更好的方法来扩展公共区块链系统。对于可扩展性,区块链分片是最流行的方法之一,它提供了方法来分散工作负载处理和数据存储,因而不会迫使某个节点处理整个交易负载。数据被分区为单独的桶,而每个节点分配到特定的分区。通过这种方式,节点仅需处理和存储与该节点所属的分区或分片相关的交易。
区块链分片战略
分片的概念源于数据库系统–将数据分割到多台服务器以改进交易处理。通过类似的方式,区块链处理可以分配到多个节点,以实现并行执行模型,该模型可以提高性能,同时减少每个节点必须处理和存储的数据量。在这种方法中,必须调整验证交易数据块的方法,这样做可以实现更高的吞吐量和更低的延迟性。
分片数据的确切方法因应用程序而异,并没有相同的最佳战略。即便如此,基本概念是相同的。每个节点都分配到单独的分片,负责验证该分片中的交易,而不是验证整个区块链网络中的每个交易。
同时,分片结合交易冗余以确保数据的有效性和可靠性。在将数据分割到多个分片后,每个分片将分布到多个节点。例如,如果区块链网络支持1,000个节点,则数据可能被划分到10个分片,每个分片分配到100个节点。通过这种方式,每个节点仅处理和存储十分之一的数据,但数据仍然可以跨100个节点得以验证。
区块链分片的优势很快就会显现出来。交易可以并行处理,并且,每秒可以处理更多交易,这是是传统区块链方法的10倍。并且,处理和存储成本要低得多,因为每个节点只处理十分之一的数据。
分片面临的4个挑战
在私有企业区块链部署中,分片可能是有效策略,但在公共区块链网络使用区块链分片并不容易。最大的挑战之一是分片间的通信。
当节点分配给分片时,与该节点相关的用户和应用程序会将分片视为独立的区块链系统,而不是大型系统的一部分。分片之间的通信可能难以建立,并且需要特定的开发工作来部署通信机制。即使有这种机制,分片间通信也会导致更大的开销,这会让分片的优势大打折扣。
分片也可能破坏更传统的区块链接带来的制衡。通过分片,用户不再下载和验证整个交易历史记录,因此他们无法确定数据的可靠性和不变性–这通常是根据交易块的链式序列来确定。如果没有这些安全机制,黑客就可更容易操纵或控制分片,这种情况被称为单一分片攻击,可能导致数据丢失或受损。
区块链分片的另一个挑战是共识和验证。不同的区块链方法依赖于不同的算法来跨节点达成共识。两种常见的算法是工作量证明(PoW)和权益证明(PoS)。这两者都可确定如何在分布式网络中验证交易,但它们是以不同方式完成验证。
虽然这些算法的对比不在本文讨论范围,但重点是它们都会影响分片的部署方式。一般来说,PoS被认为比PoW更适合分片,有些人认为PoW不合适是因为它验证交易的方式。然而,很多区块链平台依靠PoW来提供服务。
这些算法的差异也带来另一个挑战:对于如何部署分片,缺乏标准化。我们通过不同的方法来进行分片,并且,很多方法仍然在研究、开发或测试中。每种分片方法都有其优点和缺点,这使得难以确定行业标准。
分片的未来
对于公共区块链部署,可扩展性仍然是重大挑战,而分片正在成为解决此问题的主要方法之一。但我们必须谨慎应用分片技术,以确保它不会对区块链过程产生负面影响或使数据置于风险之中。
事实证明,区块链分片必须与其他技术结合使用以提供必要的可扩展性,例如支持分片通信的新协议。在此之前,公共区块链存储可能仍然保持目前的整体性,直到随着它变得越来越大,性能逐渐下降。