一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种适用于联盟链的可信任的效率共识系统、方法

2022-12-13 21:25:25 来源:中国专利 TAG:


1.本发明涉及区块链共识技术领域,具体地涉及一种适用于联盟链的可信任的效率共识系统、方法。


背景技术:

2.随着比特币等数字加密货币的不断发展,保障其安全可靠的区块链技术也随之得到广泛关注,在很多领域产生深刻影响。区块链的本质是一种去中心化的分布式账本数据库,它集成了网络通信、共识算法、密码学原理、智能合约等技术,具备去中心化、防篡改、透明可溯源的特性。共识算法作为区块链系统的底层核心技术,起到确保系统中的各节点对特定时间内打包的交易顺序达成一致,即实现分布式系统各节点数据一致性的作用。
3.目前,在联盟链当中运用最多的是bft类共识算法,其中pbft乃至在其基础上其衍生而来的sbft、hot-stuff等共识算法更是应用广泛。但是pbft类算法本身有着很多局限性以及一下亟待解决的问题:第一,pbft算法中通信过于繁杂,所有节点都必须参与所有过程,其中的信息量过于冗杂,当节点过多时算法的效率会急剧下降;第二,pbft算法中主节点的选取过于简单,没有严格的流程来保证主节点的优先级和安全性;第三,pbft算法虽然能够在容忍f个错误节点的情况下保证算法的运行,但是它并不能找到并且处理这些错误节点;第四,客户端只能向主节点发送消息,当消息太多时会给主节点带来太多负担;第五,pbft适用于节点数目固定的联盟链中,当节点数目出现变化时只有重启整个网络才能再次生效。


技术实现要素:

4.本发明实施例的目的是提供一种适用于联盟链的可信任的效率共识系统、方法,该适用于联盟链的可信任的效率共识系统、方法基于pbft基础的通过聚类算法对节点进行群分、加入信誉度机制、允许节点的加入和退出来实现对共识系统的安全性和活性的保证。
5.为了实现上述目的,本发明实施例提供一种适用于联盟链的可信任的效率共识方法,所述适用于联盟链的可信任的效率共识方法包括:
6.初始化系统,其中,所述系统设置有信任节点,所述信任节点不参与共识过程且负责其他节点的身份确认和信誉度确认;
7.利用canopy聚类算法将所有待共识的节点划分成若干部分的群以分开共识;以及
8.根据身份确认结果和信誉度确认结果对节点中恶意节点进行处理,以保证共识系统的安全性,其中所有节点均能够执行加入操作或退出操作。
9.优选地,所述初始化系统包括:
10.输入安全参数k,生成阶数为素数q的椭圆曲线上的循环群g1和g2,以及双线性对e:g1
×
g1

g2,选择安全hash函数:h1:{0,1}
*

g1选择任意的生成元p∈g1,选取主密钥s,计算p1=sp;系统参数为(q,g1,g2,e,p,p1,h1,h2,h3,x4);
11.输入系统参数,用户idi随机选取计算pi=xip,xi为用户秘密值,pi为用户公钥。
12.优选地,所述利用canopy聚类算法将所有待共识的节点划分成若干部分的群包括:
13.利用canopy聚合算法遍历一次所有节点,将节点划分为多个群以分开共识;其中,
14.给定样本列表:l=x1,x2,
……
xn以及初始距离阈值t1、t2从列表l中随机选取一个节点p作为一个canopy的中心点,其中,t1》t2,t1、t2能够根据用户的需要或者交叉实验来确定;
15.计算l内所有其它节点到p的距离d;如果d小于t1,那么将该节点归类到该canopy中作为弱关联对象,如果d小于t2则该点为强关联对象,并将该点从列表l中删除;
16.重复上一个步骤,直到列表l为空,算法结束完成划分。
17.优选地,所述分开共识的方法包括:
18.客户端将共识请求发送给群节点,然后群节点签名验证之后再发送给群里的所有节点,此时群内进行共识,最后所有节点将共识结果发送给群节点,当群节点收集到足够多的确认消息之后将确认凭证作为对请求的答复发送给客户端,当客户端收集到超过群节点数目半数的确认凭证之后,该消息就可以通过上链。
19.优选地,所述根据身份确认结果和信誉度确认结果对节点中恶意节点进行处理包括:
20.在节点上引入了状态存储,所有的共识节点内置一个投票计数器,节点根据计数器来改变自己的投票意见;其中,节点计数器遵循如下规则:

每轮通信后,占比高的投票意见的计数器数值自增1;

当节点计数器的当前投票意见的计数值低于新的投票意见时,节点会支持新的投票意见;

一致性条件;当节点计数器达到阈值p时,节点最终选择自己当前的投票意见作为投票结果;
21.当一个群的投票结果与大多数群的投票结果不一致的时候,降低这个群的信誉度;当一个群的信誉度降低次数在群节点一个轮回内达到群内节点数目的1/3次时,则将这个群踢出整个网络;
22.当一个节点在任职群节点期间出现两次群投票结果与大部分群的投票结果不同的时候,这个节点就会被认定为恶意节点并被踢出网络。
23.优选地,所有节点均能够执行加入操作或退出操作包括:
24.当节点为被强制踢出网络后,该节点的身份信息不会被信任节点删除,以防止被强制提出网络的恶意节点再次申请加入网络;
25.当节点主动申请退出网络时,会先向全网发送退出请求,当得到足够多的同意消息之后会将消息摘要发送给信任节点,如果信任节点处有正在等候加入的节点,则信任节点会撤销掉退出节点的证书和信息,同时向全网广播一个节点的退出和另一个节点的加入。
26.另外,本发明还提供一种适用于联盟链的可信任的效率共识系统,所述适用于联盟链的可信任的效率共识系统包括:
27.初始化模块,用于初始化系统,其中,所述系统设置有信任节点,所述信任节点不参与共识过程且负责其他节点的身份确认和信誉度确认;
28.共识模块,用于利用canopy聚类算法将所有待共识的节点划分成若干部分的群以分开共识;以及
29.处理模块,用于根据身份确认结果和信誉度确认结果对节点中恶意节点进行处理,以保证共识系统的安全性,其中所有节点均能够执行加入操作或退出操作。
30.优选地,所述适用于联盟链的可信任的效率共识系统包括:
31.客户端,将共识请求发送给群节点;
32.群节点,签名验证之后再发送给群里的所有节点,此时群内进行共识得到共识结果;
33.所有节点,将共识结果发送给群节点,当群节点收集到足够多的共识结果的确认消息之后将确认凭证作为对共识请求的答复发送给客户端;
34.所述客户端,在收集到超过群节点数目半数的确认凭证之后,即可进行上链。
35.另外,本发明还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本技术上述适用于上述的联盟链的可信任的效率共识方法。
36.另外,本发明还提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行:如上述的联盟链的可信任的效率共识方法。
37.本发明通过canopy聚合算法将所有节点进行快速群分,将所有共识节点以群为单位划分为多个群,使得共识在每个群内进行以达到提升共识效率的目的;信任节点的设置可以用来对节点的投票情况进行监督,同时加入信誉度变量使得我们可以有效区分诚实节点与不诚实节点,来保证系统的安全性;节点的灵活加入与退出的涉及能够保证系统的灵活性和实时性,更有利于在应用中的使用。本发明不仅实现了在共识效率方面的提升,还使得整个系统能够承受更多的恶意节点的存在,同时在系统的运行过程中恶意节点的存在只会越来越少,实现系统的安全性的保障。在实用性方面本发明更加适合于商业钟得使用,提升了效率和安全降低了通信开销,更符合区块链应用未来的发展趋势。
38.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
39.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
40.图1是本发明一种适用于联盟链的可信任的效率共识系统的节点结构模型示意图。
41.图2是本发明一种适用于联盟链的可信任的效率共识系统的共识流程示意图。
具体实施方式
42.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
43.图1是本发明的一种适用于联盟链的可信任的效率共识系统的节点模型示意图,如图1所示,该方法包括以下:
44.系统设置信任节点,此节点不参与共识过程,负责其它节点的身份确认和信誉度;
45.利用canopy聚合算法将所有节点进行群划分,将所有节点的共识划分成若干部分的群分开共识以提升共识效率;
46.根据投票结果和信誉度对恶意节点进行处理,一定程度上减少恶意节点的数量保证共识系统的安全性;
47.节点的加入与退出,保证系统的灵活性和商业的实用性。
48.图2是本发明的一种适用于联盟链的可信任的效率共识系统的共识流程示意图,包括以下步骤:
49.步骤1,系统初始化
50.步骤2,共识过程
51.步骤3,恶意节点处理
52.步骤4,节点的加入与退出
53.在实施方法中,在步骤1的系统初始化方法包括:
54.步骤1.1,利用canopy聚合算法遍历一次所有节点,将节点划分为多个群。给定样本列表:l=x1,x2,
……
xn以及初始距离阈值t1、t2(t1》t2,这个值可以根据用户的需要或者交叉实验来确定)从列表l中随机选取一个节点p作为一个canopy的中心点,然后计算l内所有其它节点到p的距离d;如果d小于t1,那么将该节点归类到该canopy中作为弱关联对象,如果d小于t2则该点为强关联对象,并将该点从列表l中删除(表示该节点不会参与接下来的分类)。重复上一个步骤,直到列表l为空,算法结束。
55.步骤1.2,信任节点为网络节点提供身份证明和信誉度记录。输入安全参数k,生成阶数为素数q的椭圆曲线上的循环群g1和g2,以及双线性对e:g1
×
g1

g2,选择安全hash函数:数:选择任意的生成元p∈g1,选取主密钥s,计算p1=sp。系统参数为(q,g1,g2,e,p,p1,h1,h2,h3,x4)
56.步骤1.3,输入系统参数,用户idi随机选取计算pi=xip,xi为用户秘密值,pi为用户公钥。
57.在步骤2共识过程包括:
58.步骤2.1,客户端将请求发送给群节点,然后群节点签名验证之后再发送给群里的所有节点,此时群内进行共识,最后所有节点将共识结果发送给群节点,当群节点收集到足够多的确认消息之后将确认凭证作为对请求的答复发送给客户端,当客户端收集到超过群节点数目半数的确认凭证之后,该消息就可以通过上链。
59.在步骤3恶意节点的处理方法包括:
60.步骤3.1,在节点上引入了状态存储,所有的共识节点内置一个投票计数器,节点根据计数器来改变自己的投票意见。节点计数器遵循如下规则:

每轮通信后,占比高的投票意见的计数器数值自增1;

当节点计数器的当前投票意见的计数值低于新的投票意见时,节点会支持新的投票意见;

一致性条件。当节点计数器达到阈值p时,节点最终选择自己当前的投票意见作为投票结果。
61.步骤3.2,当一个群的投票结果与大多数群的投票结果不一致的时候,我们就会降低这个群的信誉度。当一个群的信誉度降低次数在群节点一个轮回内达到群内节点数目的1/3次时,则将这个群踢出整个网络。
62.步骤3.3,当一个节点在任职群节点期间出现两次群投票结果与大部分群的投票结果不同的时候,这个节点就会被认定为恶意节点并被踢出网络。
63.在步骤4节点的加入与退出方法包括:
64.步骤4.1,当节点为被强制提出网络后,该节点的身份信息不会被信任节点删除,以防止被强制提出网络的恶意节点再次申请加入网络。
65.步骤4.2,当节点主动申请退出网络时,会先向全网发送退出请求,当得到足够多的同意消息之后会将消息摘要发送给信任节点,如果信任节点处有正在等候加入的节点,则信任节点会撤销掉退出节点的证书和信息,同时向全网广播一个节点的退出和另一个节点的加入。
66.另外,本发明还提供一种适用于联盟链的可信任的效率共识系统,所述适用于联盟链的可信任的效率共识系统包括:
67.初始化模块,用于初始化系统,其中,所述系统设置有信任节点,所述信任节点不参与共识过程且负责其他节点的身份确认和信誉度确认;
68.共识模块,用于利用canopy聚类算法将所有待共识的节点划分成若干部分的群以分开共识;以及
69.处理模块,用于根据身份确认结果和信誉度确认结果对节点中恶意节点进行处理,以保证共识系统的安全性,其中所有节点均能够执行加入操作或退出操作。
70.优选地,所述适用于联盟链的可信任的效率共识系统包括:
71.客户端,将共识请求发送给群节点;
72.群节点,签名验证之后再发送给群里的所有节点,此时群内进行共识得到共识结果;
73.所有节点,将共识结果发送给群节点,当群节点收集到足够多的共识结果的确认消息之后将确认凭证作为对共识请求的答复发送给客户端;
74.所述客户端,在收集到超过群节点数目半数的确认凭证之后,上链该消息。
75.另外,本发明还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本技术上述适用于上述的联盟链的可信任的效率共识方法。
76.另外,本发明还提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行:如上述的联盟链的可信任的效率共识方法。本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:如图2所示的步骤。本文中的设备可以是服务器、pc、pad、手机等。
77.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:如图2所示的步骤。
78.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
79.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
80.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
81.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
82.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
83.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
84.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
85.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
86.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
87.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献