一种适用于区块链网络的加速共识方法技术

技术编号:20969445 阅读:22 留言:0更新日期:2019-04-29 17:22
本发明专利技术涉及一种适用于区块链网络的加速共识方法,其能够在排序过程中的所有节点达成共识后,直接使用挖矿节点产生的执行结果,提升整链的确认时间和效率,并且克服“不确定性”,减少确认时间防止账本“分叉”其包括如下步骤:S1:“矿工”节点向区块链网络中推送区块,区块链网络中的“矿工”节点进行预执行工作并计算区块hash值,获取区块镜像,然后将区块镜像推送至区块链网络;S2:“其他”节点从区块链网络中接收区块,“其他”节点将区块镜像中的原始区块和映射表分离出来,“其他”节点验证映射表的正确性;S3:“其他”节点验证原始区块,“其他”节点对原始区块进行共识验证,并将结果更新至新的本地账本中。

An Accelerated Consensus Method for Block Chain Networks

The invention relates to an accelerated consensus method suitable for block chain network, which can directly use the execution results generated by mining nodes after reaching consensus among all nodes in the sorting process, improve the confirmation time and efficiency of the whole chain, overcome \uncertainty\, reduce confirmation time and prevent \bifurcation\ of accounts. The method includes the following steps: S1: \miner\ node to block In the chain network, the \miner\ node in the block chain network performs the pre-execution work and calculates the hash value of the block, obtains the block image, then pushes the block image to the block chain network; S2: \other\ node receives blocks from the block chain network; other\node separates the original block and mapping table in the block mirror; other\ node verifies the mapping. The correctness of the table; S3: \other\ nodes verify the original block, and \other\ nodes verify the consensus of the original block, and update the results to the new local account.

【技术实现步骤摘要】
一种适用于区块链网络的加速共识方法
本专利技术涉及区块链网络领域,具体而言,涉及一种适用于区块链的加速共识方法。
技术介绍
在目前的大部分区块链平台中,一个节点在计算事务/交易时往往会先对事务集合进行排序;执行完成后通过一定的算法计算该区块的hash值,在这里的算法一般指共识算法,这一过程在一些区块链平台中称为“挖矿”。当计算出所需要的目标Hash值后,该节点会将这个区块信息打包广播到整个区块链网络,网络上的其他节点在接收到该区块消息后会对区块中的Hash值进行正确性验证,通过后将区块中的每笔交易重新执行一次以更新自己本地账本信息,形成新的世界状态。但是基于现有的技术方案,网络中每个计算节点都会将区块中的事务执行一次来更新自己本地的账本库。这种方式也导致了一个事务或一笔交易将经历相当长的一段确认时间才会最终被全网认可并记账。并且,在每个节点执行交易时,由于“不确定性”问题,最终计算出的结果可能与原有结果不一致,这会导致该节点的区块链“分叉”。
技术实现思路
本专利技术的目的在于提供一种适用于区块链网络的加速共识方法,其能够在排序过程中的所有节点达成共识后,直接使用挖矿节点产生的执行结果,提升整链的确认时间和效率,并且克服“不确定性”,减少确认时间防止账本“分叉”。本专利技术的实施例是这样实现的:一种适用于区块链网络的加速共识方法,该加速共识方法在区块链确认阶段时,利用节点收到的区块hash值来验证区块的正确性,通过验证后,区块直接使用区块的执行结果并更新本地账本。在本专利技术的较佳实施例中,上述加速共识方法包括如下步骤:S1:“矿工”节点向区块链网络中推送区块,区块链网络中的“矿工”节点进行预执行工作并计算区块hash值,获取区块镜像,然后将区块镜像推送至区块链网络;S2:“其他”节点从区块链网络中接收区块,“其他”节点将区块镜像中的原始区块和映射表分离出来,“其他”节点验证映射表的正确性;S3:“其他”节点验证原始区块,“其他”节点对原始区块进行共识验证,并将结果更新至新的本地账本中。在本专利技术的较佳实施例中,上述S1的具体操作步骤如下:S11:“矿工”节点在对事务进行排序时对事务进行预执行工作,得到执行结果,同时开始计算区块hash值;S12:“矿工”几点计算出区块hash值后,“矿工”节点根据原始区块生成区块镜像,并将区块镜像传递给安全模块,区块镜像的内容和原始区块内容完全一致;S13:安全模块接收到区块镜像后,安全模块生产私钥,安全模块用私钥对映射表签名,安全模块将公钥封装至区块镜像,然后安全模块将区块镜像推至区块链网络。在本专利技术的较佳实施例中,上述区块镜像的内容包括原始区块中的所有事务、智能合约和映射表。在本专利技术的较佳实施例中,上述S2的具体操作步骤如下:S21:“其他”节点接收区块镜像,“其他”节点对区块镜像进行分离,将原始区块和映射表分开;S22:“其他”节点验证映射表的加密信息,用公钥解密映射表中的内容。在本专利技术的较佳实施例中,上述S22的具体操作如下,若公钥解密失败,则映射表可能被篡改,“其他”节点放弃当前区块镜像。在本专利技术的较佳实施例中,上述S3包括如下步骤:S31:签名校验通过后,“其他”节点对原始区块进行共识验证,若共识验证通过,则“其他”节点根据事务在映射表中映射的结果更新到本地账本中。在本专利技术的较佳实施例中,上述S13处,安全模块中的私钥和“矿工”节点在区块中其他地方用的私钥不相同。本专利技术实施例的有益效果是:提升执行效率:当排序在所有节点中达成共识后,则直接使用挖矿节点产生的执行结果,而无需再次重复地执行一边事务,这大大提升了整链的确认时间和效率;解决“不确定性”问题:因为所有节点不再需要重复执行事务,则不会由于重复执行事务而产生“非确定性”问题;减少确认时间,避免账本“分叉”;排序阶段优化:作为一种扩展,因为交易的执行会被所有节点信任,我们可以在排序阶段对系统进一步的优化,使排序的事务能够并行化的执行,这样会大大提升矿工在执行事务时候的效率。另外,目前以太坊的智能合约有时会因为业务而变得异常复杂,这样做也会极大的减轻其执行时系统的负担。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术实施例的整体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。第一实施例本专利技术提供一种适用于区块链网络的加速共识方法,在区块链网络中的各个节点确认阶段,节点首先需要根据收到的区块Hash值来验证该区块的正确性,在本实施例中,由于每个区块链的验证方式不尽相同,这里统称Hash值/区块Hash值,本专利技术与确认过程和Hash值无关。验证通过后,不需要重新执行相关事务/交易/智能合约而直接使用其执行结果来更新本地账本,达到加速的目的。本实施例主要分为3个阶段来实现,整体结构示意图如图1所示:S1:向区块链网络中推送区块:S11:区块链网络中的“矿工”节点在对事务进行排序的时候,会进行“预执行”工作,并得到所有执行的结果,并开始计算Hash难题,即区块hash值。S12:如果“矿工”节点成功计算出目标的区块Hash值,则该“矿工”节点会将其打包的区块连同验证信息一起推送至整个区块链网络。本实施例首先定义了一个特殊的区块镜像,请参见图1,该区块镜像(TXPoolImage)完全克隆当前成功计算的原始区块,该原始区块内包括事务池(TXPool)和数据(Data),事务池中包含多个事务(TX),数据中包含映射表、公钥签名和其他数据。除此之外还包含区块中所有事务、交易、智能合约等过程和其执行结果的映射表(ResultMappingTable,以下简称RM表)。将该区块镜像传递给安全模块(SecurityModule)。S13:安全模块接收到区块镜像后,对RM表用自身生成的私钥进行签名,并将公钥封装至区块镜像中,推送至区块链网络中。安全模块中的私钥与“矿工”节点在区块中其他部分可能用到的私钥为2套不同的私钥,这是为了用更少的依赖来降低对原有系统的耦合度。使用签名的原因是为了防止区块链网络中有作恶节点对其进行恶意修改。S2:从区块链网络中接收区块:S21:经过步骤1,区块链网络中的“其他”节点可以接收到区块镜像。接下来这些“其他”节点会对区块镜像进行分离工作,将区块镜像中的原始区块与RM表分离开来。本文档来自技高网...

【技术保护点】
1.一种适用于区块链网络的加速共识方法,其特征在于,所述加速共识方法在区块链确认阶段时,利用节点收到的区块hash值来验证所述区块的正确性,通过所述验证后,所述区块直接使用所述区块的执行结果并更新本地账本,其步骤如下:S1:“矿工”节点向区块链网络中推送区块,所述区块链网络中的“矿工”节点进行预执行工作并计算区块hash值,获取区块镜像,然后将所述区块镜像推送至所述区块链网络;S2:“其他”节点从所述区块链网络中接收所述区块,所述“其他”节点将所述区块镜像中的原始区块和映射表分离出来,所述“其他”节点验证所述映射表的正确性;S3:“其他”节点验证所述原始区块,所述“其他”节点对所述原始区块进行共识验证,并将结果更新至新的本地账本中。

【技术特征摘要】
1.一种适用于区块链网络的加速共识方法,其特征在于,所述加速共识方法在区块链确认阶段时,利用节点收到的区块hash值来验证所述区块的正确性,通过所述验证后,所述区块直接使用所述区块的执行结果并更新本地账本,其步骤如下:S1:“矿工”节点向区块链网络中推送区块,所述区块链网络中的“矿工”节点进行预执行工作并计算区块hash值,获取区块镜像,然后将所述区块镜像推送至所述区块链网络;S2:“其他”节点从所述区块链网络中接收所述区块,所述“其他”节点将所述区块镜像中的原始区块和映射表分离出来,所述“其他”节点验证所述映射表的正确性;S3:“其他”节点验证所述原始区块,所述“其他”节点对所述原始区块进行共识验证,并将结果更新至新的本地账本中。2.根据权利要求2所述的适用于区块链网络的加速共识方法,其特征在于,所述S1的具体操作步骤如下:S11:所述“矿工”节点在对事务进行排序时对所述事务进行预执行工作,得到执行结果,同时开始计算区块hash值;S12:所述“矿工”几点计算出所述区块hash值后,所述“矿工”节点根据原始区块生成区块镜像,并将所述区块镜像传递给安全模块,所述区块镜像的内容和所述原始区块内容完全一致;S13:所述安全模块接收到区块镜像后,所述安全模块生产私钥,所述安全模块...

【专利技术属性】
技术研发人员:王学东曹磊
申请(专利权)人:成都佰纳瑞信息技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1