CN116015674A - 基于门限签名的抗拜占庭错误节点共识方法 - Google Patents

基于门限签名的抗拜占庭错误节点共识方法 Download PDF

Info

Publication number
CN116015674A
CN116015674A CN202211623691.1A CN202211623691A CN116015674A CN 116015674 A CN116015674 A CN 116015674A CN 202211623691 A CN202211623691 A CN 202211623691A CN 116015674 A CN116015674 A CN 116015674A
Authority
CN
China
Prior art keywords
node
signature
nodes
information
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211623691.1A
Other languages
English (en)
Inventor
高军涛
肖林青
李雪莲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202211623691.1A priority Critical patent/CN116015674A/zh
Publication of CN116015674A publication Critical patent/CN116015674A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于门限签名的抗拜占庭错误节点共识方法,主要解决现有共识技术抗拜占庭容错安全性不高,算法性能低下的问题。其实现方案是:将网络中节点分成四组,每组节点根据自己的信任值大小选举组内可靠的节点当选领导人节点主持共识过程;每组选出的领导人节点向本组节点发送交易信息;组内节点对接收的消息进行验证,为自己认为正确的交易信息进行签名,并广播给组内领导人节点;各个组的领导人节点对收到的签名信息进行共享,并采用门限签名技术和双线性映射方法对收到的签名信息进行聚合并验证,验证通过的交易在各个节点间达成共识。本发明提升了共识效率和***的安全性,减少了验证过程的计算量,可应用于区块链链上交易过程。

Description

基于门限签名的抗拜占庭错误节点共识方法
技术领域
本发明属于计算机技术领域,更进一步涉及一种抗拜占庭错误节点共识方法,可应用于区块链链上交易过程。
背景技术
随着互联网技术的不断发展,人们的工作、生活已与互联网息息相关。随着用户数量的激增,单位时间提出的请求数,单位时间处理的数据量都是传统的单机***无法承受的。为此,分布式存储应运而生。分布式存储通过将数据分散存储在多***立设备上,通过每台设备间的协调运作,达到数据一致性的目的。近年来,伴随区块链技术的火热,在分布式存储下如何保证集群各节点间数据一致性的问题成为人们关注的重点。
确保分布式存储***中所有节点维护的数据副本具有一致性的现有技术主要采用共识方法。在共识方法运行的过程中,主要关注共识方法在安全性、活性、效率等方面的表现。其中安全性要求集群各节点之间不会出现数据不一致的问题;活性要求集群能够在部分节点宕机的情况下,继续对外提供服务;效率要求集群节点对某条数据达成共识的时间不能过长。由于分布式存储对安全性和效率有着很高的要求,因此设计具有高安全性、高活性、高效率的共识方法具有重要意义。
Diego Ongaro等人在其发表的论文“In search of an understandableconsensus algorithm”中提出了一种简洁、易于理解的Leader选举和日志复制共识方法。该方法是非拜占庭容错CFT类共识方法,即参与共识的节点不会对交易信息和日志内容进行篡改。其具体过程是:***根据超时时间随机选取某个节点成为领导人节点,领导人节点向***中其他节点发送其收到的交易信息,其他节点根据投票表决的方式进行回应,当***中多数节点认可该笔交易,则认为该笔交易在整个***中达成共识。该方法由于主要面向分布式数据库,以及带有节点验证功能的区块链***,因而对于某些开放应用,例如节点可以随意加入的公链区块链***,其中参与共识的节点可能是拜占庭恶意节点,此时该方法将不能适用。
Barbara Liskov等人在其发表的论文“Practical byzantine fault toleranceand proactive recovery”中,提出第一个应用于工程领域的拜占庭容错方法,其采用3阶段通信交互的过程,通过节点之间相互交互确认,将原始拜占庭容错方法的通信复杂度由O(n3)降低到O(n2)。该方法中由于主节点的选取方式是按照编号轮流担任主节点,这种选取方式容易受到P2P网络中的DDoS攻击和女巫攻击,具有安全隐患;且其由于采用三阶段广播,需要进行两次通信开销极大的全网转发,严重影响共识效率。
发明内容
本发明的目的在于针对上述现有技术的不足,提出一种基于门限签名的抗拜占庭错误节点的共识方法,以避免拜占庭恶意节点成为领导人节点对***带来安全隐患,提高对链上交易的共识效率。
本发明的技术方案是:通过结合密码学理论中的门限签名技术和计算节点的信任值,解决CFT类共识方法无法应用于存在拜占庭恶意节点的公链区块链***的问题,及PBFT方法按照编号依次选举领导人节点,造成恶意领导人节点引发DDoS攻击和女巫攻击等安全隐患的问题,提高链上交易的共识效率,其实现步骤包括如下:
1.一种基于门限签名的抗拜占庭错误节点共识方法,其特征在于,包括如下步骤:
(1)***初始化;
(1a)在密钥初始化阶段,通过可信的第三方机构TTP辅助区块链***产生公私钥对(x,y),并将公钥y进行公开,将私钥x分成N份提供给N个节点进行共享,每个节点持有部分私钥xi;第三方机构TTP产生一个供签名方私有的随机数矩阵XX,及其对应的随机数公钥矩阵YY,并将其分发给***中的N个节点;
(1b)在***初始化分组时,根据通信量的分析将节点分成四组,设置信任值阈值TV,并为每个节点设置一个高于阈值的初始化信任值
Figure BDA0004003072460000021
(1c)在***初始化领导人选举时,每个分组独立选举本分组内
Figure BDA0004003072460000022
值最高的节点成为领导人节点;
(2)客户端向每个分组的领导人节点发送包含交易内容m、客户端信息c和查看客户端请求顺序时间戳t的Request消息<Request<m,t,c>>;
(3)领导人节点为收到的交易信息分配序号n,将消息内容m,交易序号n,视图编号v和对消息的摘要d通过消息<<AppendEntries,v,n,d>,m>发送给组内的其他节点进行检查:
若检查通过,则该节点进入签名回应阶段,执行步骤(4);
否则,跳转至步骤(8)进行视图更换;
(4)进入签名回应阶段的节点利用步骤(1)中TTP为自己分配的私钥xi和随机数矩阵XX,YY为其收到的交易信息进行签名,并将签名σi,私钥xi对应的公钥yi以及用于验证签名的信息wi通过消息<<AppendEntriesReponse,v,n,i>,yi,wii>广播给组内除自己以外的所有节点,其中v是当前视图编号,i是节点编号;
(5)领导人节点收到至少t+1个AppendEntriesReponse消息后,将自己收到的签名信息σi通过确认消息<<Commit,v,n,i>,yi,wii>发送给除自己之外的所有领导人节点;
(6)任意领导人节点收到超过t+1个Commit消息后对其聚合,并对聚合签名σ进行验证:
若通过验证,则执行步骤(7);
否则,验证其收到的各部分签名σi,并对σi验证不通过的节点i执行步骤(8);
(7)任意领导人节点进入回复阶段,将带有聚合签名σ和验证信息w的消息<<Reply,v,t,c,i>,w,σ>广播至客户端;
(8)对未通过验证的签名进行视图更换:
(8a)***中认为需要发起视图更换的任意节点,将包含自己签名信息σi,验证信息wi,部分公钥yi的视图更换请求<Viewchange<h,v-1,i,v,m>yi,wii>发送至同一个组内的其他节点,其中v是新视图编号,h是摘要信息;
(8b)收到至少t+1个视图更换请求的任意节点对签名信息进行聚合,并对其进行验证:
若验证通过,则进入步骤(8c);
否则,返回步骤(8a)重新发起视图更换请求;
(8c)节点发送<Viewchange-ack,<h,i,v>,y,w,σ>消息至***内其他不同领导人节点;其他领导人节点清除掉视图更换前的一致性请求,***中的节点也将重新分组,执行步骤(9);
(9)领导人选举过程;
(9a)收到领导人选举信号的节点,计算自己在视图v下的TVv i值,每个组内TVv i值最高的节点将发送消息<RequestVote,v,t,TVv i>给分组内的其他节点;
(9b)组内其他节点收到RequestVote消息后,对其进行检查;
若检查通过,则领导人节点向组内其他节点发送包含yi,wii的消息<RequestVoteResponse,v,t,TVv i>yi,wii>;
否则,返回步骤(8a)重新发起视图更换请求;
(9c)节点收到超过t+1个RequestVoteResponse请求之后,将其合成一个聚合签名,并验证该签名;
若验证通过,则节点会将自己当选为领导人的消息<<Validate,v,t,i>y,w,σ>发送给客户端及其他分组领导人节点,完成领导人选举;
否则,返回步骤(8)。
本发明与现有技术相比具有如下优点:
1)本发明由于引入信任值计算的方式,即根据每个节点在共识过程中的行为及与其他节点通信延迟大小,为每个节点赋予不同的信任值,可提高选举的可信度,使得共识效率更高的节点成为领导人节点,有效解决现有共识技术中节点依次轮流当选领导人节点造成的安全隐患,有效避免单个节点多次成为领导人节点,造成的“贫富悬殊”问题。
2)本发明引入阈值签名技术,由于阈值签名技术要求任意多于阈值数量的节点联合,才可以恢复出***私钥,否则均无法恢复出***私钥,因此可使少于阈值数量的恶意节点即使联合也无法恢复出***私钥,保障***可以抵抗拜占庭恶意节点,提高共识的安全性。
3)本发明由于引入双线性映射技术,可在保证相同安全性的同时降低现有抗拜占庭错误共识技术的通信复杂度,提高共识效率。
附图说明
图1为本发明的实现流程图;
图2为本发明中共识交易部分的整体节点交互图;
图3为本发明中视图转换部分的整体节点交互图;
图4为本发明中领导人选举部分的整体节点交互图。
具体实施方式
以下结合附图对本发明的实施作进一步说明。
参照图1,本实例的实现步骤如下:
步骤1,***的初始化
在对交易共识开始前,对***进行初始化,其中包括对密钥的初始化,对节点分组情况的初始化,以及初始化每个分组领导人节点选举,具体实现如下:
1.1)对密钥初始化:
1.1.1)通过可信的第三方机构TTP辅助区块链***产生公私钥对(x,y),并将私钥x分成N份提供给N个节点进行共享,每个节点持有部分私钥xi
1.1.2)第三方机构TTP产生一个供签名方私有的随机数矩阵XX及其对应的随机数公钥矩阵YY:
首先,定义G1,G2为两个乘法群,g1,g2为生成元,p为群G1的阶,e为G1×G1→G2的双线性映射,定义哈希函数H:{0,1}*→G1,公钥
Figure BDA0004003072460000054
公开***参数params={G1,G2,e,y,H};
接着,由第三方机构TTP产生一个供签名方私有的随机数矩阵XX:
Figure BDA0004003072460000051
然后,第三方机构TTP根据公钥的计算公式
Figure BDA0004003072460000055
计算对应的公有随机数矩阵YY:
Figure BDA0004003072460000052
其中xxjk为私有随机数矩阵中第j行第k列的一个随机元素,j从1至u,k从1至v;
Figure BDA0004003072460000056
为公有随机数矩阵中第j行第k列的一个元素,mod p为对矩阵中每个元素进行取余;
1.1.3)第三方机构TTP为每个节点i产生私有随机数矩阵XXi和公有随机数矩阵YYi
首先,根据秘密共享方案将随机数矩阵XX内的每一个元素分为N份,为每个节点i产生私有的随机数矩阵XXi
Figure BDA0004003072460000053
然后,根据公钥的计算公式
Figure BDA0004003072460000062
计算每个节点i对应的公有随机数矩阵YYi
Figure BDA0004003072460000061
其中(xxjk)i为节点i的私有随机数矩阵中第j行第k列的一个随机元素,
Figure BDA0004003072460000063
为节点i的公有随机数矩阵中第j行第k列的一个元素,mod p为对矩阵中每个元素进行取余;
1.2)对节点分组的初始化:根据通信量的分析将节点分成四组,用部分节点的相互通信代替所有节点的相互通信,以降低通信复杂度,提高共识效率;
1.3)初始化领导人选举:为每个节点i设置一个初始化信任值
Figure BDA0004003072460000065
选择每个分组内
Figure BDA0004003072460000064
值最高的节点成为领导人节点。
以下结合图2对共识交易部分进行描述:
步骤2,客户端发送交易信息。
客户端向每个分组的领导人节点发送包含交易内容m、客户端信息c和查看客户端请求顺序时间戳t的Request消息<Request<m,t,c>>;
步骤3,领导人节点向组内节点发送交易信息,其他节点对其进行检验。
3.1)领导人节点将包含消息内容m,交易序号n,视图编号v和消息摘要d的信息发送给组内其他节点;
3.2)其他节点对接收到的信息进行检验,其检验内容包括三个方面:
一是检查m的摘要信息是否与d一致,
二是检查视图编号v是否与自己所知的视图编号一致,
三是检查消息编号n是否是有效编号;
3.3)根据检验的结果确定后续操作:
若检查内容全部通过,则运行步骤4,
否则,运行步骤8。
步骤4,组内节点间广播签名信息。
4.1)组内节点利用第三方机构为自己分配的私钥xi和私钥随机数矩阵XX,公钥随机数矩阵YY为收到的交易信息进行签名:
4.1.1)节点根据其节点编号i,消息m,计算随机行数Rz
Rz=h(m)mod i
其中h(m)是对交易消息的哈希结果;
4.1.2)依次取出随机数矩阵XXi中第z列,第Rz行的随机数进行求和,得出节点i选择的随机数Ri
Figure BDA0004003072460000071
其中
Figure BDA0004003072460000076
为随机数矩阵XXi中第z列,第Rz行的随机数,mod p为对求和的结果取余;
4.1.3)节点计算对消息的签名信息σi,验证签名的信息wi,公钥信息yi
Figure BDA0004003072460000072
Figure BDA0004003072460000073
Figure BDA0004003072460000074
其中xi为节点i对应的部分私钥,yi为节点i对应的部分公钥,g1为第一乘法群G1的生成元;
4.2)完成签名的组内节点将签名σi,私钥xi对应的公钥yi以及用于验证签名的信息wi广播给组内除自己以外的所有节点。
步骤5,领导人节点向其他分组领导人节点发送签名信息。
当领导人节点收到超过t+1个节点的签名信息后,会将自己收到的签名信息通过确认信息发送给除自己之外的所有领导人节点。
步骤6,领导人节点对签名进行聚合并验证。
6.1)领导人节点对收到超过t+1个签名信息,根据收到的签名信息{σ12,...,σt},计算聚合签名σ,及验证签名信息w,公钥信息y:
Figure BDA0004003072460000075
Figure BDA0004003072460000081
Figure BDA0004003072460000082
其中,xi为节点的部分私钥,Ri为节点i选择的随机数,R为签名方最终选择的随机数,x为***私钥,h(m)是对交易信息的哈希结果,g1为第一乘法群G1的生成元,λi为拉格朗日系数;
6.2)领导人节点对聚合签名结果σ进行检验:
e(σ,g1)=e(h(m),yw)
其中e为指定的双线性映射;若等式左面与等式右面结果相等,则检验通过;
6.3)根据检验的结果确定后续操作:
若聚合签名σ检查通过,则运行步骤7;
否则,分别验证收到的签名σi
6.4)领导人节点对各部分签名σi进行检验:
e(σi,g1)=e(wiyi,h(m))
其中σi为收到的来自节点i的签名,g1为第一乘法群G1的生成元,若等式左面与等式右面结果相等,则检验通过;
6.5)根据检验的结果确定后续操作:
若签名σi检查未通过,则运行步骤8;
否则,检查收到的下一个签名σi
步骤7,领导人节点将带有聚合签名σ和验证信息w的消息<<Reply,v,t,c,i>,w,σ>广播至客户端。
步骤8,节点对未通过验证的签名进行视图更换。
参照图3,本步骤的具体实现如下:
8.1)节点发起视图更换的情况有以下三种:
从节点在超时时间内未接收到领导人节点消息;
领导人节点消息签名验证失败;
从节点接收到多于f+1个错误反馈信息;
8.2)认为需要发起视图更换请求的节点向组内其他节点发送签名消息。
认为需要发起视图更换请求的节点对消息进行签名,其具体过程与步骤4.1)中所述的签名方法相同;之后节点将包含自己签名信息σi,验证信息wi,部分公钥yi的视图更换请求,发送至同一个组内的其他节点;
8.3)组内其他节点对收到的超过t+1个签名信息后,将这t+1个签名消息σi聚合成一个签名σ,具体过程与步骤6.1)中所述的聚合方式相同;
8.4)完成聚合签名的节点对聚合结果σ进行检验,其具体实施过程与步骤6.2)中所述的检验方式相同;
8.5)根据检验的结果确定后续操作:
若验证通过,则进入步骤8.6);
否则,返回步骤8重新发起视图更换请求;
8.6)完成聚合签名的节点发送包含聚合签名的消息至***内其他不同领导人节点,其他领导人节点收到消息后清除掉视图更换前的一致性请求,并将***中的节点进行重新分组。
步骤9,节点对组内领导人进行选举。
参照图4,本步骤的具体实现如下:
9.1)收到领导人选举信号的节点,计算自己在视图v下的TVv i值:
Figure BDA0004003072460000091
其中a,b,c分别为三个数值不同的调整因子,isLeader是一个0/1变量,用来表示该节点在视图v-1中是否是领导人节点,feekmessage表示该节点在视图v-1中收到的错误反馈信息数量,
Figure BDA0004003072460000092
表示该节点与其他节点沟通反馈的平均时间;
9.2)组内TVv i值最高的节点将消息<RequestVote,v,t,TVv i>发送给分组内的其他节点;
9.3)其他节点对接收到的信息进行检验:
9.3.1)判断发送RequestVote消息节点的TVv i值是否比自己的大;
若是,则通过检查,执行步骤9.3.2);
否则,不发送任何信息;
9.3.2)判断RequestVote消息包含的视图编号是否与自己认为的视图编号一致;
若一致,则通过检查,执行步骤9.4);
否则,不发送任何信息。
9.4)通过检验的节点向组内其他节点发送包含yi,wii的签名信息,具体过程与步骤4.1)中所述的签名方法相同;
9.5)组内其他节点对收到的超过t+1个签名信息后,将这t+1个签名消息σi聚合成一个签名σ,具体过程与步骤6.1)中所述的聚合方式相同;
9.6)完成聚合签名的节点对聚合结果σ进行检验:具体实施过程与步骤6.2)中所述的检验方式相同;
9.7)根据检验结果确定后续操作:
若验证通过,则节点将当选为领导人的消息发送给客户端及其他分组领导人节点,完成共识交易过程;
否则,返回步骤8重新发起视图更换请求。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

Claims (10)

1.一种基于门限签名的抗拜占庭错误节点共识方法,其特征在于,包括如下步骤:
(1)***初始化;
(1a)在密钥初始化阶段,通过可信的第三方机构TTP辅助区块链***产生公私钥对(x,y),并将公钥y进行公开,将私钥x分成N份提供给N个节点进行共享,每个节点持有部分私钥xi;第三方机构TTP产生一个供签名方私有的随机数矩阵XX,及其对应的随机数公钥矩阵YY,并将其分发给***中的N个节点;
(1b)在***初始化分组时,根据通信量的分析将节点分成四组,设置信任值阈值TV,并为每个节点设置一个高于阈值的初始化信任值TV0 i
(1c)在***初始化领导人选举时,每个分组独立选举本分组内TV0 i值最高的节点成为领导人节点;
(2)客户端向每个分组的领导人节点发送包含交易内容m、客户端信息c和查看客户端请求顺序时间戳t的Request消息<Request<m,t,c>>;
(3)领导人节点为收到的交易信息分配序号n,将消息内容m,交易序号n,视图编号v和对消息的摘要d通过消息<<AppendEntries,v,n,d>,m>发送给组内的其他节点进行检查:
若检查通过,则该节点进入签名回应阶段,执行步骤(4);
否则,跳转至步骤(8)进行视图更换;
(4)进入签名回应阶段的节点利用步骤(1)中TTP为自己分配的私钥xi和随机数矩阵XX,YY为其收到的交易信息进行签名,并将签名σi,私钥xi对应的公钥yi以及用于验证签名的信息wi通过消息<<AppendEntriesReponse,v,n,i>,yi,wii>广播给组内除自己以外的所有节点,其中v是当前视图编号,i是节点编号;
(5)领导人节点收到至少t+1个AppendEntriesReponse消息后,将自己收到的签名信息σi通过确认消息<<Commit,v,n,i>,yi,wii>发送给除自己之外的所有领导人节点;
(6)任意领导人节点收到超过t+1个Commit消息后对其聚合,并对聚合签名σ进行验证:
若通过验证,则执行步骤(7);
否则,验证其收到的各部分签名σi,并对σi验证不通过的节点i执行步骤(8);
(7)任意领导人节点进入回复阶段,将带有聚合签名σ和验证信息w的消息<<Reply,v,t,c,i>,w,σ>广播至客户端;
(8)对未通过验证的签名进行视图更换:
(8a)***中认为需要发起视图更换的任意节点,将包含自己签名信息σi,验证信息wi,部分公钥yi的视图更换请求<Viewchange<h,v-1,i,v,m>yi,wii>发送至同一个组内的其他节点,其中v是新视图编号,h是摘要信息;
(8b)收到至少t+1个视图更换请求的任意节点对签名信息进行聚合,并对其进行验证:
若验证通过,则进入步骤(8c);
否则,返回步骤(8a)重新发起视图更换请求;
(8c)节点发送<Viewchange-ack,<h,i,v>,y,w,σ>消息至***内其他不同领导人节点;其他领导人节点清除掉视图更换前的一致性请求,***中的节点也将重新分组,执行步骤(9);
(9)领导人选举过程;
(9a)收到领导人选举信号的节点,计算自己在视图v下的TVv i值,每个组内TVv i值最高的节点将发送消息<RequestVote,v,t,TVv i>给分组内的其他节点;
(9b)组内其他节点收到RequestVote消息后,对其进行检查;
若检查通过,则领导人节点向组内其他节点发送包含yi,wii的消息<RequestVoteResponse,v,t,TVv i>yi,wii>;
否则,返回步骤(8a)重新发起视图更换请求;
(9c)节点收到超过t+1个RequestVoteResponse请求之后,将其合成一个聚合签名,并验证该签名;
若验证通过,则节点会将自己当选为领导人的消息<<Validate,v,t,i>y,w,σ>发送给客户端及其他分组领导人节点,完成领导人选举;
否则,返回步骤(8)。
2.根据权利要求1所述的方法,其特征在于,步骤(1)中第三方机构TTP产生私有随机数矩阵XX及其对应的公钥随机数矩阵YY,实现如下:
(1a)***建立:
定义G1,G2为两个乘法群,g1,g2为生成元,p为群G1的阶,e为G1×G1→G2的双线性映射,定义哈希函数H:{0,1}*→G1,公钥公开***参数params={G1,G2,e,y,H};
(1b)TTP产生一个供签名方私有的随机数矩阵XX,并根据1(a)中公钥的计算公式计算对应的公有随机数矩阵YY,其结构如下:
其中xxjk为私有随机数矩阵中第j行第k列的一个随机元素,其中j从1至u,k从1至v;为公有随机数矩阵中第j行第k列的一个元素,mod p为对矩阵中每个元素进行取余。
3.根据权利要求1所述的方法,其特征在于,步骤(1)中第三方机构TTP将私有随机数矩阵XX和公有随机数矩阵YY发给***中的N个节点,是根据秘密共享方案将随机数矩阵XX,YY内的每一个元素分为N份,并将它们秘密分发给网络中的每个节点,每个节点i获得的私有随机数矩阵XXi和公有随机数矩阵YYi,分别表示如下:
其中(xxjk)i为节点i的私有随机数矩阵中第j行第k列的一个随机元素,为节点i的公有随机数矩阵中第j行第k列的一个元素,mod p为对矩阵中每个元素进行取余。
4.根据权利要求1所述的方法,其特征在于,步骤(3)中组内其他节点对消息<<AppendEntries,v,n,d>,m>进行检查,其内容包括:检查m的摘要信息是否与d一致;检查视图编号v是否与自己所知的视图编号一致;检查消息编号n是否是有效编号。
5.根据权利要求1所述的方法,其特征在于,步骤(4)中计算签名σi,公钥yi以及用于验证签名的信息wi,实现如下:
(4a)节点根据其节点编号i,消息m,计算随机行数Rz
Rz=h(m)mod i
其中h(m)是对交易消息的哈希结果;
(4b)依次取出随机数矩阵XXi中第z列,第Rz行的随机数进行求和,得出节点i选择的随机数Ri
其中为随机数矩阵XXi中第z列,第Rz行的随机数,mod p为对求和的结果取余;
(4c)节点计算对消息的签名信息σi,验证签名的信息wi,公钥信息yi
其中xi为节点i对应的部分私钥,yi为节点i对应的部分公钥,g1为第一乘法群G1的生成元。
6.根据权利要求1所述的方法,其特征在于,步骤(6)中领导人节点对收到的超过t+1个Commit消息进行聚合,并对签名进行验证,其实现过程如下:
(6a)领导人节点根据收到的签名信息{σ12,...,σt},计算聚合签名σ,及用于验证签名的信息w,y:
其中,xi为节点的部分私钥,Ri为节点i选择的随机数,R为签名方最终选择的随机数,x为***私钥,h(m)是对交易信息的哈希结果,g1为第一乘法群G1的生成元,λi为拉格朗日系数;
(6b)领导人节点对聚合签名结果σ进行检验:
e(σ,g1)=e(h(m),yw)
其中e为指定的双线性映射;若等式左面与等式右面结果相等,则检验通过。
(6c)领导人节点对各部分签名σi进行检验:
e(σi,g1)=e(wiyi,h(m))
其中σi为收到的来自节点i的签名,g1为第一乘法群G1的生成元,若等式左面与等式右面结果相等,则检验通过。
7.根据权利要求1所述的方法,其特征在于,步骤(8a)中需要发起视图更换请求的节点计算签名σi,公钥yi以及用于验证签名的信息wi,实现如下:
(8a1)节点根据其节点编号i,消息m,计算随机行数Rz
Rz=h(m)mod i
其中h(m)是对交易消息的哈希结果;
(8a2)依次取出随机数矩阵XXi中第z列,第Rz行的随机数进行求和,得出节点i选择的随机数Ri
其中为随机数矩阵XXi中第z列,第Rz行的随机数,mod p为对求和的结果取余;
(8a3)节点计算对消息的签名信息σi,验证签名的信息wi,公钥信息yi
其中xi为节点i对应的部分私钥,yi为节点i对应的部分公钥,g1为第一乘法群G1的生成元。
8.根据权利要求1所述的方法,其特征在于,步骤(8b)中收到至少t+1个视图更换请求的节点对消息进行聚合签名并验证,过程如下:
(8b1)节点根据收到的签名信息{σ12,...,σt},计算聚合签名σ,及用于验证签名的信息w,y:
其中,xi为节点的部分私钥,Ri为节点i选择的随机数,R为签名方最终选择的随机数,x为***私钥,h(m)是对交易信息的哈希结果,g1为第一乘法群G1的生成元,λi为拉格朗日系数;
(8b2)节点对聚合签名结果σ进行检验:
e(σ,g1)=e(h(m),yw)
其中e为指定的双线性映射;若等式左面与等式右面结果相等,则检验通过。
9.根据权利要求1所述的方法,其特征在于,步骤(9a)中收到领导人选举信号的节点,计算自己在视图v下的TVv i值,公式如下:
其中a,b,c为分别为三个数值不同的调整因子,isLeader是一个0/1变量,用来表示该节点在视图v-1中是否是领导人节点,feekmessage表示该节点在视图v-1中收到的错误反馈信息数量,表示该节点与其他节点沟通反馈的平均时间。
10.根据权利要求1所述的方法,其特征在于,步骤(9b)中组内其他节点对消息<RequestVote,v,t,TVv i>进行检查,其检查内容如下:
(9b1)判断发送RequestVote消息节点的TVv i值是否比自己的大:
若是,则通过检查,执行步骤(9b2);
否则,不发送任何信息;
(9b2)判断RequestVote消息包含的视图编号是否与自己认为的视图编号一致:
若一致,则通过检查,向领导人节点及组内其他节点发送RequestVoteResponse信息;
否则,不发送任何信息。
CN202211623691.1A 2022-12-16 2022-12-16 基于门限签名的抗拜占庭错误节点共识方法 Pending CN116015674A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211623691.1A CN116015674A (zh) 2022-12-16 2022-12-16 基于门限签名的抗拜占庭错误节点共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211623691.1A CN116015674A (zh) 2022-12-16 2022-12-16 基于门限签名的抗拜占庭错误节点共识方法

Publications (1)

Publication Number Publication Date
CN116015674A true CN116015674A (zh) 2023-04-25

Family

ID=86029221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211623691.1A Pending CN116015674A (zh) 2022-12-16 2022-12-16 基于门限签名的抗拜占庭错误节点共识方法

Country Status (1)

Country Link
CN (1) CN116015674A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device
CN115051985A (zh) * 2022-04-01 2022-09-13 重庆邮电大学 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN115276999A (zh) * 2022-06-10 2022-11-01 大连理工大学 一种基于信任模型的自适应切换高效容错共识方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device
CN115051985A (zh) * 2022-04-01 2022-09-13 重庆邮电大学 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN115276999A (zh) * 2022-06-10 2022-11-01 大连理工大学 一种基于信任模型的自适应切换高效容错共识方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
THAI Q T 等: "Hierarchical Byzantine fault-tolerance protocol for permissioned blockchain systems", THE JOURNAL OF SUPERCOMPUTING, 31 December 2019 (2019-12-31) *
任畅 等: "一种量子安全拜占庭容错共识机制", 计算机科学, 7 September 2021 (2021-09-07) *
包振山;王凯旋;张文博;: "基于树形拓扑网络的实用拜占庭容错共识算法", 应用科学学报, no. 01, 30 January 2020 (2020-01-30) *

Similar Documents

Publication Publication Date Title
US20220385460A1 (en) Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
CN111371744B (zh) 一种基于分布式密钥的拜占庭容错共识方法
US11626993B2 (en) Network for improved verification speed with tamper resistant data
Douceur The sybil attack
Saxena et al. Admission control in peer-to-peer: design and performance evaluation
CN109685505B (zh) 基于关联环签名的拜占庭容错共识优化方法
CN113642019A (zh) 一种双层分组拜占庭容错共识方法及***
CN115378604B (zh) 一种基于信誉值机制的边缘计算终端设备的身份认证方法
CN110445795B (zh) 一种区块链认证唯一性确认方法
CN115051985B (zh) 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN110830244A (zh) 基于身份秘密共享和联盟链的抗量子计算车联网方法及***
CN114862397B (zh) 一种基于双链结构的双解耦区块链分布式方法
CN114463009B (zh) 一种用于提高大规模能源节点交易安全性的方法
Corman et al. A Secure Group Agreement (SGA) protocol for peer-to-peer applications
CN112039837A (zh) 一种基于区块链和秘密共享的电子证据保全方法
CN105956490B (zh) 一种在网络环境中生成、维护可信数据的方法
CN116015674A (zh) 基于门限签名的抗拜占庭错误节点共识方法
CN114826699B (zh) 基于区块链的去中心化联邦学习中拜占庭攻击抵御方法
CN116527275A (zh) 一种远程医疗代理签名验证方法及***
CN115065689A (zh) 一种基于历史评价的联盟链区块数据存储方法及***
Chen et al. Scalable byzantine fault tolerant public key authentication for peer-to-peer networks
Zhang et al. FortunChain: EC-VRF-based scalable blockchain system for realizing state sharding
CN113129001A (zh) 面向区块链跨链和资产托管的抗量子攻击门限签名方案
Kamel et al. Distributed data validation network in IoT: a decentralized validator selection model
Bonnaire et al. A scalable architecture for highly reliable certification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination