区块链账本数据同步模式

2022-04-26 17:24:39 浏览数 (1)

随着区块链技术的兴起,其应用场景也在不断丰富扩展,从交易转账,到产品溯源,基本已经形成了一种“万物皆可上链”的发展趋势。而随着链上数据的不断增长,区块链的数据膨胀问题已经成为不可以避免现象

截止2020年下半年,比特币的账本数据总量已经接近300GB,这个数据量在大数据时代背景下的今天,其实不算大,掣肘比特币账本数据总量的主要原因是比特币系统对出块频率的限制。反观以太坊,随着交易速率的快速增长,其归档节点的数据规模已经超过5 TB。相比于以比特币、以太坊为代表的公有链,联盟链在节点规模上相对会小的多,但是账本数据的膨胀问题对于以Hyperledger Fabric为代表的联盟链同样不可避免。在这种级别的数据量之下,假如有全新的节点需要参与到链上,如何快速高效同步账本数据和状态将成为检验区块链技术易用性的标准之一

对于公有链,其账本数据的同步模式基本可以分为全量同步和快速同步两种模式。以比特币为例,在比特币网络中,节点可以分为“全节点”和“轻量级节点”。“全节点”存储所有账本数据,能够独立自主校验所有交易,不依赖第三方;“轻量级节点”只存储部分账本数据,通过一种名为“简易支付验证(SPV)”的方式来完成交易验证,但是要依赖于“全节点”。因此在比特币网络中,如果有全新节点想要参与到链上,作为“轻量级节点”接入比特币网络是最为快速高效的方法。

公有链的另一个典型代表以太坊,同样提供了三种账本数据同步模式,包括full,fast,light。full模式,和比特币的“全节点”模式一致,light模式的同步方式和比特币的“轻量级节点”类似。不过以太坊多了一种介于full和light两种模式之前的的fast模式,“fast”这种同步模式可以说是“full”模式和“light”模式的一个折衷,通过直接从网络同步状态数据而不是通过重放交易生成状态数据的方式,节省了很多时间。在账本数据量较大的情况下,以太坊网络的节点使用fast或者light模式同样可以快速接入网络。

对于联盟链,“全节点”模式则是更加普遍的模式。以Hyperledger Fabric为例,当有新的成员节点加入时,该成员节点往往需要全量同步链上区块账本数据后才能进行正常工作。主要原因可以归纳为以下两点:

一、权限问题。联盟链和公有链的区别在于,联盟链具有严格的准入机制和权限管理,这意味着所有联盟链的参与成员信息都会写到链上,每次有新的成员加入时,联盟链的参与成员信息都需要更新上链。只有当新的成员节点同步到最新的联盟链成员信息所在的区块时,才有权限参与到联盟链上的事务当中。

二、信任问题。公有链之所以可以支持快速同步的模式,主要还是依赖第三方来减少甚至免除账本数据的重建工作。而对于联盟链,作为链上事务的共识成员,依赖第三方来保证账本数据的可靠性显然会存在很大的安全风险,因此类似公有链的快速同步模式并不适用联盟链。

公有链的快速同步模式本质上还是通过减少账本数据的重建工作来实现的。这种方式对于联盟链来说,最根本的问题还是信任问题。因为如果可以实现减少账本数据的重建工作,新的成员节点完全可以快速获取权限控制区块数据,从而解决权限问题。而区块链本身的存在就是为了解决多方的信任问题,新的成员节点无法信任单个参与方的数据,却可以信任链上经过多方共识的数据。因此如果联盟链中可以对链上的数据状态在某一个时间点达成共识,使得新的参与成员可以信任这个时间节点前的所有账本数据,那么新参与成员只需要重建该时间节点后的账本数据,从而极大地减少账本数据的重建工作。

在Hyperledger Fabric区块链网络中,区块数据通常会同时包含有效交易与无效交易。为了减少无效交易占用的存储空间以及减轻新节点加入通道后的账本数据重建工作。Hyperledger Fabric提出了基于检查点机制(checkpoint)的有效账本数据裁剪方案,即各个peer在过滤区块中的无效交易并生成有效账本后,会根据系统设定的账本检查点(区块数量间隔),定期对裁剪后的有效账本达成共识。而基于类似Hyperledger Fabric的检查点机制,联盟链的快速同步方式便存在这样一个具备可行性的方案:如果联盟链可以定期对区块账本数据以及状态数据进行共识,从而生成一系列可以实现快速接入的检查点。当有新的成员加入联盟链后,如果该成员节点选择最近的检查点对应的账本状态数据进行恢复,那么就可以直接从该检查点对应区块之后的账本数据进行重建,而不需要从头开始进行全量账本数据的重建。因为所有的检查点对应的账本状态数据都是经过联盟链的参与方共识的,所以理论上具备较高的可靠性。

区块链账本数据的膨胀问题已经不可避免,因此区块账本数据的快速同步技术必将成为各个区块链引擎必备的基本能力之一。公有链的快速同步模式已经相对成熟,而联盟链由于组网形态的差异,还需要更加完备的技术方案来实现。虽区块链账本数据的同步技术尚不够成熟,但区块链技术的探索在持续进行,也有越来越多的专家人才愿意投入于区块链领域的技术突破,相信不久就会出现更加完善的技术解决方案。

0 人点赞