一种区块链的共识方法及系统与流程

文档序号:34679905发布日期:2023-07-05 20:06阅读:30来源:国知局
一种区块链的共识方法及系统与流程

本技术涉及区块链领域,具体涉及一种区块链的共识方法及系统。


背景技术:

1、去中心化(decentralization)是互联网发展过程中形成的社会关系形态和内容产生形态,是相对于“中心化”而言的新型网络内容生产过程,其被广泛应用于分布式系统。而建立一个分布式系统的关键在于达成分布式共识。分布式共识是分布式系统为了确保多个对等的分布式节点最终数据正确性和一致性的实现手段。以现有的区块链为例,网络里有各种各样的用户在向网络广播交易,而节点必须对哪些交易可以进行广播和交易发生的次序达成共识,以此使系统形成一个唯一的全球交易总账。

2、因此,需要使所有的节点对交易产生的区块达成共识。最好的方式就是:在一定的时间段里,比如每隔10分钟,每个节点都提议将自己未被认可的交易成为已经达成共识的区块链后面的下一个区块。然而这种方式会面临不完美网络的挑战。例如网络延迟会导致节点之间没有一个统一的全球时间概念。因为网络延迟的存在,会造成某些节点早发或者同时发布的交易被延后收到。甚至,收到的交易数量也会有差异。即,并非所有节点都能根据每个交易的交易时间来达成共识。

3、上述分析表明,基于时间概念的共识方案显然无法应对真正的分布式系统。因此现有的区块链系统采用的共识方案都尽可能地放弃时间概念。目前主要的共识方案主要有pow、pos等数十种方案。通过共识方案确定权威的记账人进行记账,进而实现所记账目的共识。其中,pow(proof of work,工作量证明)是首个共识方案。pow的过程需要不断利用哈希算法计算和比对,具体表现为得到的哈希前导值为0比特位数,随着工作节点参与数的增长,其工作量将随所需0比特位数的增加而呈指数级增长。因此,这种网络系统要求的计算量会是天文数字,带来大量社会资源的消耗,包括电力和网络及装备资源。pos(proof ofstake,权益证明)作为pow的替代技术,意在解决pow的一些内在问题。pos没有使用pow的算力挖矿方法,而是依据工作节点在系统中所拥有的权益。如果工作节点用于10%的权益,那么该工作节点挖掘下一个区块的可能性就是10%。因此,pos虽然能够解决资源消耗的问题,但是其致命问题是越来越集中化。即,工作节点的权益越多,则其挖掘并获得收益的可能性越大,并最终形成垄断,这将使得共识方案不再公平,与分布式系统的去中心化目的背道而驰。

4、因此,本技术旨在提出一种新的共识方案,以确保区块链系统公平公正,实现去中心化的目的,同时避免资源的消耗。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种区块链的共识方法及系统。

2、第一方面,提供一种区块链的共识方法,所述区块链包括:用户节点、工作节点以及公证节点;

3、所述共识方法包括:

4、用户节点构造交易信息并向工作节点进行广播;

5、工作节点接收广播的交易信息形成交易池,并按预设的规则对交易池中的交易信息进行排序;

6、工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点;

7、公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点;

8、选定工作节点广播本地打包的交易区块,未选取的工作节点接收广播的交易区块,验证合格后存储入库。

9、在进一步的实施例中,所述按预设的规则对交易池中的交易信息进行排序的过程为:

10、所述工作节点获取接收的交易信息中的手续费信息,并根据手续费的多少对交易池中的交易信息进行排序和实时刷新。

11、通过采用上述技术方案:根据手续费的多少对交易池的交易信息进行排序,使得手续费较高的交易信息排序靠前,一方面能够确立一种交易信息的排序标准,以增大不同工作节点打包的交易信息的一致性,另一方面,也能使得较为重要的交易信息能够较快的处理。实时刷新能够确保交易池中的交易信息时刻处于更新状态,提高交易信息的处理时效。

12、在进一步的实施例中,所述用户节点构造的交易信息中附带有第一时间戳,所述第一时间戳用于标识交易发起的时间;

13、所述工作节点在对交易池中的交易信息进行排序和打包时,对于第一时间戳超过预定时间仍未打包的交易信息进行丢弃。

14、通过采用上述技术方案:交易信息中附带第一时间戳,能够标识交易发起时间,当交易信息长时间未被打包时,直接将交易信息丢弃,从而避免交易信息长时间未被打包造成账号卡壳,长时间无法进行交易的问题。

15、在进一步的实施例中,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程为:

16、所述工作节点从排序后的第一个交易信息开始,依次选取n个交易信息,形成交易区块,并使该交易区块满足预设的配置[x,y];配置中的参数x表示交易区块中交易信息的数量下限,即n≥x;配置中的参数y表示交易集合的区块头数据大小的上限,即区块头的数据大小m≤y;

17、所述工作节点将交易区块的区块头发送至公证节点。

18、通过采用上述技术方案:利用预设的配置[x,y]为排序后的交易信息提供打包标准,从而使不同工作节点打包的交易信息高度一致,提高共识效果。

19、在进一步的实施例中,所述配置[x,y]中的参数x至少为1。

20、通过采用上述技术方案:参数x的设置,能够避免打包的区块中没有交易信息,防止无效区块的产生。

21、在进一步的实施例中,所述交易区块的区块头至少包括交易信息的merkle根、交易信息的数量以及交易费总额。

22、在进一步的实施例中,所述公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点的过程包括:

23、公证节点接收不同工作节点发送的区块头,并获取各区块头对应的交易费总额;

24、公证节点基于获取的交易费总额,选取交易费总额最大的区块头对应的工作节点为选定工作节点。

25、通过采用上述技术方案:将交易费总额作为预设的条件选定工作节点,激励工作节点尽可能提高单次处理的交易信息的数量,避免多次处理造成的资源浪费。

26、在进一步的实施例中,所述工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点的过程包括:

27、工作节点生成随机数,并基于随机数生成随机数的隐文,然后进行广播;

28、工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头附带随机数的明文一起发送至公证节点。

29、通过采用上述技术方案:工作节点先将随机数的隐文广播,后将随机数的明文随区块头一起发送至公证节点,便于量子节点对工作节点发布的随机数进行验证,使工作节点诚实地参加选取以成为选定工作节点。

30、在进一步的实施例中,所述公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点的过程包括:

31、公证节点接收不同工作节点发送的区块头,并获取各区块头对应的交易费总额;

32、公证节点基于获取的交易费总额,选取交易费总额最大的区块头对应的工作节点;

33、如果选取的工作节点数量唯一,则定义该选取的工作节点为选定工作节点;

34、如果选取的工作节点数量大于或等于2个,则计算选取的工作节点发送的随机数的平均值,并将距离平均值最小的随机数对应的工作节点定义为选定工作节点。

35、通过采用上述技术方案:将交易费总额作为选取选定工作节点的第一条件,尽可能提高单次处理的交易信息的数量,避免多次处理造成的资源浪费;将随机数作为选取选定工作节点的第二条件,解决第一条件无法选取选定工作节点的问题;同时,进一步保证选定工作节点选取的公平公正。

36、在进一步的实施例中,所述工作节点生成随机数,并基于随机数生成随机数的隐文,然后进行广播的过程包括:

37、工作节点预先向公证节点申请并获取量子随机字符串,同时公证节点存储量子随机字符串的副本;

38、工作节点确定偏移量从量子随机字符串中截取预设字节长度形成随机数;

39、工作节点通过哈希函数求取随机数的哈希值,并将该哈希值作为随机数的隐文;

40、工作节点将随机数的隐文和偏移量进行广播。

41、通过采用上述技术方案:基于量子随机字符串生成随机数,避免工作节点的随机数出现相同的可能,进而为唯一的选定工作节点提供可能;而通过哈希函数求取随机数的隐文,防止通过随机数的明文推导随机数隐文,使工作节点诚实地参与选定工作节点的选取。

42、在进一步的实施例中,所述共识方法还包括:

43、工作节点将随机数的隐文和偏移量进行广播后,公证节点接收量子随机数的隐文s和偏移量t;

44、当工作节点将交易区块的区块头附带随机数的明文m一起发送至公证节点后,公证节点根据偏移量在公证节点存储的量子随机字符串副本获取随机数副本,将随机数副本与随机数的明文m进行对比验证;并对随机数的明文m求哈希,将求取的哈希结果与随机数的隐文进行对比验证。

45、通过采用上述技术方案:通过公证节点能够对根据随机数确定选定工作节点进行验证,避免选定的工作节点不诚实情况的产生;也能降低工作节点与公证节点串通作弊的风险。

46、第二方面,提供一种区块链,包括:

47、通信互联的用户节点、工作节点以及公证节点;

48、所述用户节点包括业务处理单元,所述业务处理单元被设置为构造交易信息,并将交易信息进行广播;

49、所述工作节点包括第一共识单元,所述第一共识单元被设置为接收广播的交易信息形成交易池,并按预设的规则对交易池中的交易信息进行排序,然后再按预设的配置进行打包成交易区块,并将交易区块的区块头发送至公证节点;

50、所述公证节点包括第二共识单元,所述第二共识单元被设置为接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点;然后选定工作节点广播本地打包的交易区块,未选取的工作节点接收广播的交易区块,验证合格后存储入库。

51、在进一步的实施例中,所述用户节点还包括第一时间戳单元,所述第一时间戳单元被设置为对构造的交易信息增设第一时间戳。

52、在进一步的实施例中,所述区块链还包括:

53、可信时间戳节点,包括时间戳提供单元和时间戳验证单元;所述时间戳提供单元被设置为根据请求节点的请求颁发时间戳,所述时间戳验证单元被设置为对颁发的时间戳进行验证,以使确保时间戳与请求节点的请求一一对应。

54、在进一步的实施例中,公证节点还包括量子随机单元;所述量子随机单元被设置为当工作节点预先向公证节点申请量子随机字符串时,量子随机单元随机生成量子随机字符串,在将生成的量子随机字符串发送给提出申请的工作节点的同时,存储量子随机字符串的副本。

55、第三方面,提供一种区块链的共识系统,包括:

56、第一模块,用于用户节点构造交易信息并向工作节点进行广播;

57、第二模块,用于工作节点接收广播的交易信息形成交易池,并按预设的规则对交易池中的交易信息进行排序;

58、第三模块,用于工作节点基于排序后的交易信息,按预设的配置进行打包形成交易区块,并将交易区块的区块头发送至公证节点;

59、第四模块,用于公证节点接收不同工作节点发送的区块头,并基于接收的区块头按预设的条件选取选定工作节点;

60、第五模块,用于选定工作节点广播本地打包的交易区块,未选取的工作节点接收广播的交易区块,验证合格后存储入库。

61、第四方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述实施例中所述的共识方法的步骤。

62、第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中所述共识方法的步骤。

63、第六方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中所述共识方法的步骤。

64、有益效果:本技术提供的区块链的共识方法,通过引入公证节点来选取选定工作节点,并将选定工作节点的打包的交易区块作为共识的区块进行上链,避免了采用pow方式的资源量浪费;同时,基于预设的条件选取选定工作节点,避免公证节点选取选定工作节点时的主观性,确保公平公正。进一步,按预设的规则对交易池中的交易信息进行排序,以及按预设的配置[x,y]对排序后的交易信息进行打包能够提升不同工作节点打包的交易区块的一致性,提升共识效果。此外,上述共识方法还能解决区块链系统中账号卡壳的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1