一种区块链的共识方法及系统技术方案

技术编号:38101704 阅读:9 留言:0更新日期:2023-07-06 09:20
本申请涉及一种区块链的共识方法及系统,属于区块链技术领域。具体的,本申请提供的区块链的共识方法,通过引入公证节点来选取选定工作节点,并将选定工作节点的打包的交易区块作为共识的区块进行上链,避免了采用POW方式的资源量浪费;同时,基于预设的条件选取选定工作节点,避免公证节点选取选定工作节点时的主观性,确保公平公正。进一步,按预设的规则对交易池中的交易信息进行排序,以及按预设的配置对排序后的交易信息进行打包能够提升不同工作节点打包的交易区块的一致性,提升共识效果。此外,上述共识方法还能解决区块链系统中账号卡壳的问题。账号卡壳的问题。账号卡壳的问题。

【技术实现步骤摘要】
一种区块链的共识方法及系统


[0001]本申请涉及区块链领域,具体涉及一种区块链的共识方法及系统。

技术介绍

[0002]去中心化(decentralization)是互联网发展过程中形成的社会关系形态和内容产生形态,是相对于“中心化”而言的新型网络内容生产过程,其被广泛应用于分布式系统。而建立一个分布式系统的关键在于达成分布式共识。分布式共识是分布式系统为了确保多个对等的分布式节点最终数据正确性和一致性的实现手段。以现有的区块链为例,网络里有各种各样的用户在向网络广播交易,而节点必须对哪些交易可以进行广播和交易发生的次序达成共识,以此使系统形成一个唯一的全球交易总账。
[0003]因此,需要使所有的节点对交易产生的区块达成共识。最好的方式就是:在一定的时间段里,比如每隔10分钟,每个节点都提议将自己未被认可的交易成为已经达成共识的区块链后面的下一个区块。然而这种方式会面临不完美网络的挑战。例如网络延迟会导致节点之间没有一个统一的全球时间概念。因为网络延迟的存在,会造成某些节点早发或者同时发布的交易被延后收到。甚至,收到的交易数量也会有差异。即,并非所有节点都能根据每个交易的交易时间来达成共识。
[0004]上述分析表明,基于时间概念的共识方案显然无法应对真正的分布式系统。因此现有的区块链系统采用的共识方案都尽可能地放弃时间概念。目前主要的共识方案主要有POW、POS等数十种方案。通过共识方案确定权威的记账人进行记账,进而实现所记账目的共识。其中,POW(Proof of Work,工作量证明)是首个共识方案。POW的过程需要不断利用哈希算法计算和比对,具体表现为得到的哈希前导值为0比特位数,随着工作节点参与数的增长,其工作量将随所需0比特位数的增加而呈指数级增长。因此,这种网络系统要求的计算量会是天文数字,带来大量社会资源的消耗,包括电力和网络及装备资源。POS(Proof of Stake,权益证明)作为POW的替代技术,意在解决POW的一些内在问题。POS没有使用POW的算力挖矿方法,而是依据工作节点在系统中所拥有的权益。如果工作节点用于10%的权益,那么该工作节点挖掘下一个区块的可能性就是10%。因此,POS虽然能够解决资源消耗的问题,但是其致命问题是越来越集中化。即,工作节点的权益越多,则其挖掘并获得收益的可能性越大,并最终形成垄断,这将使得共识方案不再公平,与分布式系统的去中心化目的背道而驰。
[0005]因此,本申请旨在提出一种新的共识方案,以确保区块链系统公平公正,实现去中心化的目的,同时避免资源的消耗。

技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种区块链的共识方法及系统。
[0007]第一方面,提供一种区块链的共识方法,所述区块链包括:用户节点、工作节点以及公证节点;
[0008]所述共识方法包括:
[0009]用户节点构造交易信息并向工作节点进行广播;
[0010]工作节点接收广播的交易信息形成交易池,并按预设的规则对交易池中的交易信息进行排序;
[0011]工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点;
[0012]公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点;
[0013]选定工作节点广播本地打包的交易区块,未选取的工作节点接收广播的交易区块,验证合格后存储入库。
[0014]在进一步的实施例中,所述按预设的规则对交易池中的交易信息进行排序的过程为:
[0015]所述工作节点获取接收的交易信息中的手续费信息,并根据手续费的多少对交易池中的交易信息进行排序和实时刷新。
[0016]通过采用上述技术方案:根据手续费的多少对交易池的交易信息进行排序,使得手续费较高的交易信息排序靠前,一方面能够确立一种交易信息的排序标准,以增大不同工作节点打包的交易信息的一致性,另一方面,也能使得较为重要的交易信息能够较快的处理。实时刷新能够确保交易池中的交易信息时刻处于更新状态,提高交易信息的处理时效。
[0017]在进一步的实施例中,所述用户节点构造的交易信息中附带有第一时间戳,所述第一时间戳用于标识交易发起的时间;
[0018]所述工作节点在对交易池中的交易信息进行排序和打包时,对于第一时间戳超过预定时间仍未打包的交易信息进行丢弃。
[0019]通过采用上述技术方案:交易信息中附带第一时间戳,能够标识交易发起时间,当交易信息长时间未被打包时,直接将交易信息丢弃,从而避免交易信息长时间未被打包造成账号卡壳,长时间无法进行交易的问题。
[0020]在进一步的实施例中,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程为:
[0021]所述工作节点从排序后的第一个交易信息开始,依次选取n个交易信息,形成交易区块,并使该交易区块满足预设的配置[X,Y];配置中的参数X表示交易区块中交易信息的数量下限,即n≥X;配置中的参数Y表示交易集合的区块头数据大小的上限,即区块头的数据大小m≤Y;
[0022]所述工作节点将交易区块的区块头发送至公证节点。
[0023]通过采用上述技术方案:利用预设的配置[X,Y]为排序后的交易信息提供打包标准,从而使不同工作节点打包的交易信息高度一致,提高共识效果。
[0024]在进一步的实施例中,所述配置[X,Y]中的参数X至少为1。
[0025]通过采用上述技术方案:参数X的设置,能够避免打包的区块中没有交易信息,防止无效区块的产生。
[0026]在进一步的实施例中,所述交易区块的区块头至少包括交易信息的merkle根、交
易信息的数量以及交易费总额。
[0027]在进一步的实施例中,所述公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点的过程包括:
[0028]公证节点接收不同工作节点发送的区块头,并获取各区块头对应的交易费总额;
[0029]公证节点基于获取的交易费总额,选取交易费总额最大的区块头对应的工作节点为选定工作节点。
[0030]通过采用上述技术方案:将交易费总额作为预设的条件选定工作节点,激励工作节点尽可能提高单次处理的交易信息的数量,避免多次处理造成的资源浪费。
[0031]在进一步的实施例中,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程包括:
[0032]工作节点生成随机数,并基于随机数生成随机数的隐文,然后进行广播;
[0033]工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头附带随机数的明文一起发送至公证节点。
[0034]通过采用上述技术方案:工作节点先将随机数的隐文广播,后将随机数的明文随区块头一起发送至公证节点,便于量子节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链的共识方法,其特征在于,所述区块链包括:用户节点、工作节点以及公证节点;所述共识方法包括:用户节点构造交易信息并向工作节点进行广播;工作节点接收广播的交易信息形成交易池,并按预设的规则对交易池中的交易信息进行排序;工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点;公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点;选定工作节点广播本地打包的交易区块,未选取的工作节点接收广播的交易区块,验证合格后存储入库。2.根据权利要求1所述的区块链的共识方法,其特征在于,所述按预设的规则对交易池中的交易信息进行排序的过程为:所述工作节点获取接收的交易信息中的手续费信息,并根据手续费的多少对交易池中的交易信息进行排序和实时刷新。3.根据权利要求1所述的区块链的共识方法,其特征在于,所述用户节点构造的交易信息中附带有第一时间戳,所述第一时间戳用于标识交易发起的时间;所述工作节点在对交易池中的交易信息进行排序和打包时,对于第一时间戳超过预定时间仍未打包的交易信息进行丢弃。4.根据权利要求3所述的区块链的共识方法,其特征在于,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程为:所述工作节点从排序后的第一个交易信息开始,依次选取n个交易信息,形成交易区块,并使该交易区块满足预设的配置[X,Y];配置中的参数X表示交易区块中交易信息的数量下限,即n≥X;配置中的参数Y表示交易集合的区块头数据大小的上限,即区块头的数据大小m≤Y;所述工作节点将交易区块的区块头发送至公证节点。5.根据权利要求4所述的区块链的共识方法,其特征在于,所述配置[X,Y]中的参数X至少为1。6.根据权利要求1所述的区块链的共识方法,其特征在于,所述交易区块的区块头至少包括交易信息的merkle根、交易信息的数量以及交易费总额。7.根据权利要求6所述的区块链的共识方法,其特征在于,所述公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点的过程包括:公证节点接收不同工作节点发送的区块头,并获取各区块头对应的交易费总额;公证节点基于获取的交易费总额,选取交易费总额最大的区块头对应的工作节点为选
定工作节点。8.根据权利要求1所述的区块链的共识方法,其特征在于,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程包括:工作节点生成随机数,并基于随机数生成随机数的隐文,然后进行广播;工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头附带随机数的明文一起发送至公证节点。9.根据权利要求8所述的区块链的共识方法,其特征在于,所述公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点的过程包括:公证节点接收不同工作节点发送的区块头,并获取各区块头对应的交易费总额;公证节点基于获取的交易费总额,选取交易费总额最大的区块头对应的工作节点;如果选取的工作节点数量唯一,则定义该选取的工作节点为选定工作节点;如果选取的工作节点数量大于或等于2个,则计算选取的工作节点发送的随机数的平均值,并将距离平均值最小的随机数对应的工作节点定义为选定工作节点。10.根据权利要求8所述的区块链的共识方法,其特征在于,所述工作节点生成随机数,并基于随机数生成随机数的隐文,然后进行广播的过程包括:工作节点预先向公证节点申请并...

【专利技术属性】
技术研发人员:赵呈洋张能伟史钦锋曹飞赵健叶飞
申请(专利权)人:矩阵时光数字科技有限公司
类型:发明
国别省市:

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

1