一种区块链系统的节点共识方法及装置制造方法及图纸

技术编号:34903531 阅读:14 留言:0更新日期:2022-09-10 14:14
本发明专利技术公开了一种区块链系统的节点共识方法及装置,涉及区块链技术领域,主要目的在于实现不需要通过大量算力实现节点共识。本发明专利技术主要的技术方案为:先计算出目标节点对应的目标散列值,再通过将目标节点以及其对应的目标散列值组成二元组;将多个二元组按照散列值升序排列组成第一数组;根据当前区块链最后一个区块的目标信息通过预设散列函数计算得到对比散列值;基于对比散列值遍历第一数组寻找大于对比散列值的第一目标散列值和不大于对比散列值的第二目标散列值,两者所在二元组相邻;若存在,则确定第一目标散列值对应的目标节点为共识记账节点。本发明专利技术用于确定区块链系统中的共识记账节点。统中的共识记账节点。统中的共识记账节点。

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


[0001]本专利技术涉及区块链
,尤其涉及一种区块链系统的节点共识方法及装置。

技术介绍

[0002]区块链是由多个相连的区块组成。每一个区块中保存了一定的信息,每一个区块按照各自产生的时间顺序连接成链条。区块链被保存在区块链系统中的所有服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。当区块链增加一个新区块时,需要通过共识机制确定记账节点,记账节点为创建新区块的服务器,共识机制是所有节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果,直接被其他节点认同后并最后有可能成为最终共识结果。
[0003]目前的共识机制主要有工作量证明机制、权益证明机制、股份授权证明机制、Pool验证池和实用拜占庭。其中,可靠性最高的共识机制是工作量证明机制,工作量机制的共识方法是区块链系统中的所有节点通过计算随机哈希散列的数值解争夺记账权,哪个节点能够最快解出正确的数值解就确定哪个节点为记账节点,可以创建新区块。
[0004]但是,由于工作量证明机制在确定记账节点的过程中,区块链系统中的所有节点需要进行大量的计算去争夺记账权,因此会造成大量的计算机算力的资源浪费,并且会引起计算机产生挖矿行为,更进一步导致资源的浪费,同时也会造成达成节点共识所需要的周期较长。

技术实现思路

[0005]鉴于上述问题,本专利技术提供一种区块链系统的节点共识方法及装置,主要目的是为了实现不需要通过大量算力实现节点共识。
[0006]为解决上述技术问题,本专利技术提出以下方案:第一方面,本专利技术提供一种区块链系统的节点共识方法,所述方法包括:根据目标节点的目标信息和当前区块链最后一个区块的目标信息通过预设散列函数计算得到所述目标节点对应的目标散列值,其中,所述目标节点的数量不少于2个;将所述目标节点和所述目标节点对应的所述目标散列值组成二元组;将多个所述二元组按照散列值升序排列组成第一数组;根据所述当前区块链最后一个区块的目标信息通过所述预设散列函数计算得到对比散列值;基于所述对比散列值遍历所述第一数组中所述二元组的所述目标散列值,判断是否存在大于所述对比散列值的第一目标散列值和不大于所述对比散列值的第二目标散列
值,且所述第一目标散列值和所述第二目标散列值分别位于的二元组相邻;若存在,则确定所述第一目标散列值对应的所述目标节点为共识记账节点。
[0007]优选地,在根据所述当前区块链最后一个区块的目标信息通过所述预设散列函数计算得到对比散列值之后,所述方法包括:获取预设截取位数;依次将所述第一数组中的所述目标散列值从最低位开始向最高位截取所述预设截取位数,形成所述预设截取位数目标散列值;将根据所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点组成的新二元组组成第二数组;将所述第二数组的所述新二元组按照散列值升序排列,得到第三数组;将所述对比散列值从最低位开始向最高位截取所述预设截取位数,形成所述预设截取位数对比散列值;基于所述预设截取位数对比散列值遍历所述第三数组中所述新二元组的所述预设截取位数目标散列值,判断是否存在大于所述预设截取位数对比散列值的第一预设截取位数目标散列值和不大于所述预设截取位数对比散列值的第二预设截取位数目标散列值,且所述第一预设截取位数目标散列值和所述第二预设截取位数目标散列值分别位于的新二元组相邻;若存在,则确定所述第一预设截取位数目标散列值对应的所述目标节点为共识记账节点。
[0008]优选地,所述获取预设截取位数,包括:获取所述当前区块链系统的节点总数;基于所述节点总数通过预设计算规则计算得到所述预设截取位数,其中,所述预设计算规则为:J=K/2,2
J
< N <=2
K
,K为所述预设截取位数,N为所述节点总数。
[0009]优选地,所述基于所述节点总数通过预设计算规则计算得到所述预设截取位数,包括:判断所述预设截取位数是否小于预设阈值;若是,则确定所述预设截取位数等于所述预设阈值。
[0010]优选地,所述将根据所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点组成的新二元组组成第二数组,包括:依次获取所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点;基于所述预设截取位数目标散列值判断所述第二数组中是否存在相同的所述预设截取位数目标散列值;若不存在,则将由所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点组成的新二元组依次加入所述第二数组中。
[0011]优选地,在所述确定所述第一目标散列值对应的所述目标节点为共识记账节点之后,所述方法还包括:所述共识记账节点创建目标区块并同步至所述当前区块链网络;所述当前区块链网络的其他节点接收所述目标区块,且根据预设验证规则判断所
述目标区块对应的所述共识记账节点是否通过验证;若验证通过,则反馈验证通过信息;基于获取所述验证通过信息的数量确定所述当前区块链网络中对所述共识记账节点验证通过的其他节点数量;判断所述当前区块链网络中对所述共识记账节点验证通过的其他节点数量占所述当前区块链网络中所有节点数量的比例是否大于预置阈值;若是,则所述当前区块链网络的其他节点同步添加所述目标区块至对应的本地区块链末端。
[0012]优选地,所述当前区块链网络的其他节点接收所述目标区块,且根据预设验证规则判断所述目标区块对应的所述共识记账节点是否通过验证,包括:所述当前区块链网络的其他节点接收到所述目标区块,且判断所述目标区块对应的所述共识记账节点与所述其他节点本地计算出的本次应记账节点是否相同;若相同,则验证通过,且反馈验证通过信息。
[0013]第二方面, 本专利技术提供一种区块链系统的节点共识装置,所述装置包括:第一计算单元,用于根据目标节点的目标信息和当前区块链最后一个区块的目标信息通过预设散列函数计算得到所述目标节点对应的目标散列值,其中,所述目标节点的数量不少于2个;第一组成单元,用于将所述目标节点和所述目标节点对应的所述目标散列值组成二元组;还用于将多个所述二元组按照散列值升序排列组成第一数组;第二计算单元,用于根据所述当前区块链最后一个区块的目标信息通过所述预设散列函数计算得到对比散列值;判断单元,用于基于所述对比散列值遍历所述第一数组中所述二元组的所述目标散列值,判断是否存在大于所述对比散列值的第一目标散列值和不大于所述对比散列值的第二目标散列值,且所述第一目标散列值和所述第二目标散列值分别位于的二元组相邻;确定单元,用于若所述第一数组中存在大于所述对比散列值的第一目标散列值和不大于所述对比散本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统的节点共识方法,其特征在于,所述方法包括:根据目标节点的目标信息和当前区块链最后一个区块的目标信息通过预设散列函数计算得到所述目标节点对应的目标散列值,其中,所述目标节点的数量不少于2个;将所述目标节点和所述目标节点对应的所述目标散列值组成二元组;将多个所述二元组按照散列值升序排列组成第一数组;根据所述当前区块链最后一个区块的目标信息通过所述预设散列函数计算得到对比散列值;基于所述对比散列值遍历所述第一数组中所述二元组的所述目标散列值,判断是否存在大于所述对比散列值的第一目标散列值和不大于所述对比散列值的第二目标散列值,且所述第一目标散列值和所述第二目标散列值分别位于的二元组相邻;若存在,则确定所述第一目标散列值对应的所述目标节点为共识记账节点。2.根据权利要求1所述的方法,其特征在于,在根据所述当前区块链最后一个区块的目标信息通过所述预设散列函数计算得到对比散列值之后,所述方法包括:获取预设截取位数;依次将所述第一数组中的所述目标散列值从最低位开始向最高位截取所述预设截取位数,形成所述预设截取位数目标散列值;将根据所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点组成的新二元组组成第二数组;将所述第二数组的所述新二元组按照散列值升序排列,得到第三数组;将所述对比散列值从最低位开始向最高位截取所述预设截取位数,形成所述预设截取位数对比散列值;基于所述预设截取位数对比散列值遍历所述第三数组中所述新二元组的所述预设截取位数目标散列值,判断是否存在大于所述预设截取位数对比散列值的第一预设截取位数目标散列值和不大于所述预设截取位数对比散列值的第二预设截取位数目标散列值,且所述第一预设截取位数目标散列值和所述第二预设截取位数目标散列值分别位于的新二元组相邻;若存在,则确定所述第一预设截取位数目标散列值对应的所述目标节点为共识记账节点。3.根据权利要求2所述的方法,其特征在于,所述获取预设截取位数,包括:获取所述当前区块链系统的节点总数;基于所述节点总数通过预设计算规则计算得到所述预设截取位数,其中,所述预设计算规则为:J=K/2,2
J
< N <=2
K
,K为所述预设截取位数,N为所述节点总数。4.根据权利要求3所述的方法,其特征在于,所述基于所述节点总数通过预设计算规则计算得到所述预设截取位数,包括:判断所述预设截取位数是否小于预设阈值;若是,则确定所述预设截取位数等于所述预设阈值。5.根据权利要求2

4中任一项所述的方法,其特征在于,所述将根据所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点组成的新二元组组成第二数组,包括:
依次获取所述预设截取位数目标散列值与所述预设截取位数目标散列值对应的所述目标节点;基于所述预设截取位数目标散列值判断所...

【专利技术属性】
技术研发人员:丁军红
申请(专利权)人:北京航天奥祥通风科技股份有限公司
类型:发明
国别省市:

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

1