CN111371744A - 一种基于分布式密钥的拜占庭容错共识方法 - Google Patents

一种基于分布式密钥的拜占庭容错共识方法 Download PDF

Info

Publication number
CN111371744A
CN111371744A CN202010107971.1A CN202010107971A CN111371744A CN 111371744 A CN111371744 A CN 111371744A CN 202010107971 A CN202010107971 A CN 202010107971A CN 111371744 A CN111371744 A CN 111371744A
Authority
CN
China
Prior art keywords
node
nodes
super
consensus
proposal
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.)
Granted
Application number
CN202010107971.1A
Other languages
English (en)
Other versions
CN111371744B (zh
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.)
Yami Technology Guangzhou Co ltd
Original Assignee
Chongqing University of Post and Telecommunications
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 Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN202010107971.1A priority Critical patent/CN111371744B/zh
Publication of CN111371744A publication Critical patent/CN111371744A/zh
Application granted granted Critical
Publication of CN111371744B publication Critical patent/CN111371744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明属于网络空间安全学科中的安全认证领域,涉及一种基于分布式密钥的拜占庭容错共识方法;所述方法包括选择出参与共识的超级节点,并生成系统公共参数;根据系统发送的公共参数,通过相互交互认证的方式产生系统公私密钥对以及候选节点的公私密钥;从超级节点中选择出主节点发起提案请求,开始新一轮共识;副节点对提案请求进行个体验证和聚合验证,最终确定是否同意发送块;普通节点接收到块后,完成时间触发继续下一轮的共识,在这个过程中,若副节点等待主节点的提案请求超时或提案响应超时,那么都将使得广播视图更改请求并更换主节点;本发明能够极大的提高达成共识过程中效率。

Description

一种基于分布式密钥的拜占庭容错共识方法
技术领域
本发明属于网络空间安全学科中的安全认证领域,更具体地说,涉及一种基于分布式密钥的拜占庭容错共识方法。
背景技术
随着区块链技术的快速发展,区块链的应用也相应的越来越多,在利用区块链技术保证数据安全的同时,在联盟链环境下如何提高节点间达成共识的效率,成为了亟待解决的问题。
由于联盟链的节点是由各个相关机构或单位组成的,存在利益关系的各节点间无法相互信任的。因此各个节点在达成共识的过程中,需要利用对方公钥来对其发送的消息进行验证。但是密钥由谁生成,生成的密钥又如何进行分发授权是亟待解决的问题。
另外,在授权拜占庭容错共识算法中,参与共识过程的超级节点识又分为主节点与副节点两类节点。主节点将决策整理签名后广播给各副节点,副节点接收到决策后,需要对主节点的签名进行验证并签名。各副节点也要将自己签名的消息广播给其他副节点。在这个过程中,副节点将进行多轮验证及签名,随着节点的增多,会浪费大量的时间与算力进行这些操作。因此,从实际情况来看,还需提高联盟链节点达成共识过程的效率。
发明内容
为了克服上述现有技术的不足,本发明提供了一种基于分布式密钥生成与聚合签名的授权拜占庭容错共识算法。其主要的目的是解决在联盟链环境下多中心密钥授权问题,以及在此基础上提高节点间达成共识时进行验证签名的效率问题。
本发明解决上述技术问题所采用的技术方案包括:
在本方面的第一方面,本发明提供了一种基于分布式密钥的拜占庭容错共识方法,所述方法包括:
S1、对联盟链服务器中各个非记账的普通节点进行投票,选择出候选节点;从候选节点中选择出能够记账且参与共识的超级节点;联盟链服务器根据安全参数生成系统公共参数;
S2、各个超级节点根据系统发送的公共参数,通过相互交互和认证来生成各自的公/私钥对,并作为系统的公/私钥对,使候选节点通过系统的公/私钥对生成其公/私钥;
S3、根据当前块高度和超级节点的数量,从超级节点中选择出一个主节点,并向其他超级节点即副节点发送提案请求,即发起新一轮共识;
S4、副节点收到提案请求后,验证主节点的签名,通过验证则广播提案响应信息,副节点使用基于身份的聚合签名对接收到的提案响应信息进行签名验证;主节点及副节点接收到超过三分之二的其他副节点发送的提案响应信息,则广播提交信息,副节点接收提交信息,若超过三分之二的副节点同意则发送块;
S5、普通节点接收到块,完成事件触发后,返回步骤S3,重新进行初始化。
在本方面的第二方面,本发明还提供了另一种基于分布式密钥的拜占庭容错共识方法,所述方法在本发明第一方面的基础上,还包括当步骤S3-S5中任意一个步骤中副节点等待主节点的提案请求超时或等待提案响应超时,则触发步骤S6,使得广播视图更改请求更换主节点;所述步骤S6具体包括:
S61、将主节点的超时时间设置为2v+2*Tblock;令视图递增编号k=1,
S62、令v_k=v+k;副节点向其他副节点发出第v_k个视图更改请求;
S63、广播视图更改请求信息,并检查已收到的视图更改请求数目:若收到超过n-f个超级节点发出的视图更改请求,即更改视图达成共识,则改变本地视图,初始化本地共识信息,并根据新的视图编号确认下一轮共识的主节点;
S64、如果在经过时间间隔后,视图更改仍未达成共识,则令k=k+1并返回到步骤S62;
其中,v表示当前视图的编号。
本发明的有益效果:
本发明提出了一个能够实现在在联盟链环境下进行多中心密钥授权及提高共识效率的拜占庭容错共识方法,在联盟链中,各节点的密钥也不再由密钥生成中心来负责管理,而是由联盟链中选举出的超级节点共同生成。每个超级节点在得到自己的密钥的同时,也为候选节点生成他的部分密钥并发送给候选节点,由候选节点合成自己的私钥。由于每个超级节点只知道候选节点的部分私钥,因此,如果不是所有超级节点共同合谋就无法获取候选节点的私钥,即可以抵抗来自N-1个超级节点的合谋攻击。
另外,在共识过程中,副节点在需要对自己收到的主节点及其他副节点发送的消息进行验证签名,以及主节点需要对收到的副节点发送的消息进行验证签名时,无需再进行多次交互,通过利用聚合签名,参与共识的节点能够将多条需要验证签名的消息进行聚合,进行批量验证及签名,极大地提高了签名和验证的效率,在此基础上提高了共识达成的效率。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明所述系统模型示意图;
图2为本发明的一种基于分布式密钥的拜占庭容错共识方法流程框图;
图3为本发明的另一种基于分布式密钥的拜占庭容错共识方法流程框图;
图4为本发明的广播视图更改请求更换主节点触发条件图;
图5为本发明系统初始化流程框图;
图6为本发明超级节点与密钥生成流程框图;
图7为本发明候选节点与私钥生成流程框图;
图8为本发明超级节点验证签名流程框图;
图9为本发明视图更改流程框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明的系统模型如图1所示,该模型由四层组成,分别为普通节点层、候选节点层、超级节点层和议长与议员层,首先普通节点通过各自持有的权利,通过投票选出候选节点。接下来再从候选节点中选择出参与共识的超级节点,超级节点通过协议进行交互,协商出该系统的密钥以及他们各自的密钥。参与共识的超级节点又分为主节点与副节点,主节点负责整理并提出决策,副节点对决策进行验证投票。
本发明提供的一种基于分布式密钥的拜占庭容错共识方法参见图2,包括以下步骤:
S1、对联盟链服务器中各个非记账的普通节点进行投票,选择出候选节点;从候选节点中选择出能够记账且参与共识的超级节点;联盟链服务器根据安全参数生成系统公共参数;
S2、各个超级节点根据系统发送的公共参数,通过相互交互和认证来生成各自的公/私钥对,并作为系统的公/私钥对,使候选节点通过系统的公/私钥对生成其公/私钥;
S3、根据当前块高度和超级节点的数量,从超级节点中选择出一个主节点,并向其他超级节点即副节点发送提案请求,即发起新一轮共识;
S4、副节点收到提案请求后,验证主节点的签名,通过验证则广播提案响应信息,副节点使用基于身份的聚合签名对接收到的提案响应信息进行签名验证;主节点及副节点接收到超过三分之二的其他副节点发送的提案响应信息,则广播提交信息,副节点接收提交信息,若超过三分之二的副节点同意则发送块;
S5、普通节点接收到块,完成事件触发后,返回步骤S3,重新进行初始化。
可以理解的是,本发明需要确定系统中各节点角色。将其划分为非记账人和记账人节点,非记账人为普通节点,记账人为超级节点。超级节点参与共识流程。普通节点可以看到共识过程并同步账本信息,但是不参与记账。被提名有权参与共识节点竞选的账户为候选人节点。N个超级节点分为1个主节点和N-1个副节点,主节点会轮流当选,每次记账时,先由主节点发起区块提案,也就是拟账的区块内容。一旦有2/3以上的副节点同意了这个提案,那么这个提案就会成为最终发布的区块,并且这个区块是不可逆的,里面所有的交易都是百分之百确认的。
在一个优选实施例中,本发明提供的另一种基于分布式密钥的拜占庭容错共识方法参见图3,包括以下步骤:
S1、对联盟链服务器中各个非记账的普通节点进行投票,选择出候选节点;从候选节点中选择出能够记账且参与共识的超级节点;联盟链服务器根据安全参数生成系统公共参数;
S2、各个超级节点根据系统发送的公共参数,通过相互交互和认证来生成各自的公/私钥对,并作为系统的公/私钥对,使候选节点通过系统的公/私钥对生成其公/私钥;
S3、根据当前块高度和超级节点的数量,从超级节点中选择出一个主节点,并向其他超级节点即副节点发送提案请求,即发起新一轮共识;
S4、副节点收到提案请求后,验证主节点的签名,通过验证则广播提案响应信息,副节点使用基于身份的聚合签名对接收到的提案响应信息进行签名验证;主节点及副节点接收到超过三分之二的其他副节点发送的提案响应信息,则广播提交信息,副节点接收提交信息,若超过三分之二的副节点同意则发送块;
S5、普通节点接收到块,完成事件触发后,返回步骤S3,重新进行初始化。
S6、其他副节点等待主节点的提案请求超时或等待提案响应超时,则广播视图更改请求更换主节点。
其中,如图4所示,触发步骤S6的条件包括:
1)主节点的提案请求没有通过验证;
2)副节点没有接收到超过2/3个副节点发送的提案响应信息;
3)副节点所接到的提案响应信息没有通过验证;
4)主节点没有接收到超过2/3个副节点发送的提交信息;
5)主节点的提交信息没有通过验证。
在一个实施例中,针对步骤S1的系统初始化,本实施例给出了系统初始化的过程,包括:
联盟链服务器随机选择一个素数p作为安全参数,联盟链服务器公开系统公共参数params={G,GT,p,g,e,t,n,Ai,k,Bj};其中,G和GT是两个阶为q的乘法循环群,g是G的生成元,双线性映射e:G×G→GT;其中t为门限值,n为超级节点个数;Ai,k表示第i个超级节点在第k个门限的公钥;i=[1,n],k=[0,t-1];Bj表示第j个超级节点的公钥,Bj=gyj;y表示超级节点的共享秘密份额;j=[1,n];并为主节点和副节点设置初始超时时间;主节点的初始超时时间设置为Tblock,副节点的初始超时时间设置为2v+1*Tblock;Tblock表示区块周期,v表示当前视图编号。
在一个实施例中,如图5所示,对于步骤S2密钥生成的流程,包括:
输入安全参数;
生成系统公共参数;
输出系统公共参数。
具体的,还可以包括:
S21、接收系统发送的公共参数后,联盟链服务器中的超级节点生成多项式;
S22、各个超级节点根据该多项式计算其自身的私钥,计算其自身的公钥,并广播;
S23、各个超级节点验证接受到的秘密值的有效性,若无效,则要求错误的超级节点重新发送秘密值;否则进入步骤S24;
S24、超级节点通过任意多个秘密值份额恢复出联合生成的随机秘密值;
S25、候选节点从超级节点中申请部分密钥,通过验证等式验证其有效性;
S26、如果部分密钥无效,候选节点公开部分密钥请求其他超级节点认证,否则候选节点计算其自身的密钥。
关于分布式密钥生成(由系统中的超级节点作为弱中心进行联合决定并生成随机的共享秘密值),包括:
S211、超级节点Pi选择一个t-1次多项式
Figure BDA0002388993380000081
Figure BDA0002388993380000082
其中,ai,j表示第i个超级节点在第k个门限的私钥;i=1,2,…,n,且Pi选择的随机值为Si=fi(0)。
S212、Pi广播其公钥Ai,k=gai,k mod p,其中k=0,1,…,t-1。同时,Pi计算第i个超级节点所共享的秘密份额yi,j=fi(j),随后将其安全地发送给超级节点Pj
S213、Pj收到Pi发给他的yi,j后,可以验证其有效性:判断
Figure BDA0002388993380000083
是否成立。如果都有效,则计算第j个超级节点最终的共享份额yj=y1,j+y2,j+…+yn,j mod p。
S214、最终,通过y1,y2,…,yn中的任意t个秘密份额便可恢复出联合生成的随机秘密值s=s1+s2+…+sn
关于候选节点密钥生成:候选节点在进入共识时需要向超级节点申请部分密钥来生成其私钥。
S221、候选节点id从第i个超级节点申请部分密钥pskid,i=H(id)yi后,可以通过验证等式e(pskid,i,g)=e(H(id),Bi)是否成立验证其有效性。
S222、如果部分密钥无效,候选节点可以公开部分密钥请求其他弱中心认证;否则,候选节点计算其自身的密钥
Figure BDA0002388993380000084
在一个实施例中,关于系统的密钥生成流程还可以采用如图6所示的流程。
在一个实施例中,关于候选节点的密钥生成流程可以采用如图7所示的流程。
在一个实施例中,步骤S3中选择主节点的过程包括:
S31、设置编号为(h-v)mod N的超级节点为本轮共识的主节点,其他超级节点设置为副节点;其中,h为区块高度,v为当前视图编号,N为超级节点数目;
S32、当出块条件满足后,主节点向其他副节点发送提案请求。
具体的,所述步骤S31包括:
S331、在经过主节点的超时时间后,按照共识策略从内存池中选取交易,取哈希打包为提案请求并广播,发起新一轮共识;
S332、将主节点的超时时间设置为(2(v+1)-k(v))*T_block。
S333、副节点在超时时间范围内未能广播则进入步骤S6进行视图更改。
在一个实施例中,对于步骤S4,如图8所示,对于超级节点进行验证签名的过程主要包括:
节点获得其自身的密钥;计算各个个体的签名,若签名通过验证,则计算聚合签名认证,继续判断是否能够通过验证;否则认证失败。
其具体包括:
S41、其他副节点验证主节点发送的提案请求的合法性,以及是否符合本地共识状态;若验证通过,则广播提案响应信息;
S42、任意一个副节点收到其他副节点发送的提案响应信息,利用基于身份的聚合签名算法验证消息合法性;
S43、将副节点的超时时间延长;
S44、更新本地共识状态;
S45、对于交易消息包含的交易哈希,从内存池或未确认的交易中获取相应交易,并添加至共识模块;
S46、向副节点查询步骤S44中未在本地找到的交易信息,若未在超时前接收到主节点发出的提案请求,则进入步骤S6,改变视图。
对于所述步骤S41中的验证,其主要包括:
S411、计算出超级节点的公钥为
Figure BDA0002388993380000091
其私钥为Si=ai,0;ai,k表示第i个超级节点在第k个门限的私钥;
S412、计算出主节点对副节点的验证签名:
Figure BDA0002388993380000101
H(M)表示对消息M进行哈希运算;
S413、副节点接收区块消息M与其签名δ;验证等式e(δ,g)=e(H(M),Ai,0)是否成立,即验证主节点发送的消息和签名是否正确;如果等式成立,则认为认证成立,否则认证失败;
S414、副节点签名并广播提案响应信息。
对于所述步骤S42中的聚合验证,所述步骤S42主要包括:
S421、副节点收到超过三分之二个其他副节点发送的提议响应信息时,则进行基于身份的聚合签名认证;对于超级节点集合子集,在消息m j上提供一个签名;聚合签名当需要批量验证n条来自于n个签名者id1,id2,…,idn的签名时,这n条签名δj=(Aj,k,Sj)对应于n个消息m j,其中j=1,…,n,k=0,1,…,t-1;
S422、验证等式
Figure BDA0002388993380000102
是否成立;即其他副节点对收到的提案响应信息进行验证;如果等式成立,则认为认证成立,否则认证失败。
S423、若在主节点的超时时间前,主节点收集到至少M个副节点的提案响应信息,包括:验证每一条提案响应信息中消息的合法性、是否符合本地共识状态,若通过验证,则将本节点的超时时间延长以及广播提交信息;
S424、若步骤S423出现验证错误时进入步骤S6,进行视图更改。
其中,H(M)表示对消息M进行哈希运算;y表示多项式值;Sj表示第j个节点选择的随机值。
所述步骤S5包括:
S51、每个已收集齐提案请求中交易信息的超级节点,若超级节点在超时时间范围前收集到至少M个超级节点的提交信息,包括:验证消息的合法性,以及是否符合本地共识状态,若通过验证,则将本节点的超时时间延长以及生成并广播新块;
S52、若步骤S51出现错误,则广播警告信息,并将超时时间设置为2*Tblock,重新返回步骤S3。
在一个优选实施例中,当副节点认为主节点发生错误,副节点向其他副节点广播视图更改请求信息;具体的:可以参考图9所示,步骤S6的具体操作可以包括:
S61、将主节点的超时时间设置为2v+2*Tblock;令视图递增编号k=1;
S62、令v_k=v+k;副节点向其他副节点发出第v_k个视图更改请求<ChangeView,h,v,i,v_k>;
S63、广播视图更改请求信息,并检查已收到的视图更改请求数目:若收到超过n-f个超级节点发出的视图更改请求,即更改视图达成共识,则改变本地视图,初始化本地共识信息,并根据新的视图编号确认下一轮共识的主节点;
S64、如果在经过时间间隔后,视图更改仍未达成共识,则令k=k+1并返回到步骤S62;
对于本发明中的超时时间设置,可以参考以下步骤:
1)系统初始化时为主节点和副节点设置初始超时时间;主节点的初始超时时间为Tblock,副节点的初始超时时间为2v+1*Tblock;Tblock表示区块周期;
2)主节点一旦成功广播提案请求,根据系统初始化时的设置,将主节点的超时时间设置为(2^(v+1)-k(v))*T_block;
3)副节点在成功接收到主节点或副节点发送的提案请求或提案响应信息后,进入验证签名过程时,根据系统初始化时的设置,将超时时间延长;
4)若主节点与副节点在原超时时间前未能接收到相应信息,超时时间不再延长,进入视图更改(S6)步骤。
当然,可以理解的是,本发明中由哪种节点进行的操作,就遵守其对应的超时时间,即主节点进行操作时,则进行主节点的超时时间,副节点进行操作时,则进行副节点的超时时间。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述方法包括:
S1、对联盟链服务器中各个非记账的普通节点进行投票,选择出候选节点;从候选节点中选择出能够记账且参与共识的超级节点;联盟链服务器根据安全参数生成系统公共参数;
S2、各个超级节点根据系统发送的公共参数,通过相互交互和认证来生成各自的公/私钥对,并作为系统的公/私钥对,使候选节点通过系统的公/私钥对生成其公/私钥;
S3、根据当前块高度和超级节点的数量,从超级节点中选择出一个主节点,并向其他超级节点即副节点发送提案请求,即发起新一轮共识;
S4、副节点收到提案请求后,验证主节点的签名,通过验证则广播提案响应信息,副节点使用基于身份的聚合签名对接收到的提案响应信息进行签名验证;主节点及副节点接收到超过三分之二的其他副节点发送的提案响应信息,则广播提交信息,副节点接收提交信息,若超过三分之二的副节点同意则发送块;
S5、普通节点接收到块,完成事件触发后,返回步骤S3,重新进行初始化。
2.根据权利要求1所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述方法还包括当步骤S3-S5中任意一个步骤中副节点等待主节点的提案请求超时或等待提案响应超时,则触发步骤S6,使得广播视图更改请求更换主节点;所述步骤S6具体包括:
S61、将主节点的超时时间设置为2v+2*Tblock;令视图递增编号k=1,
S62、v_k=v+k;副节点向其他副节点发出第v_k个视图更改请求;
S63、广播视图更改请求信息,并检查已收到的视图更改请求数目:若收到超过n-f个超级节点发出的视图更改请求,即更改视图达成共识,则改变本地视图,初始化本地共识信息,并根据新的视图编号确认下一轮共识的主节点;
S64、如果在经过时间间隔后,视图更改仍未达成共识,则令k=k+1并返回到步骤S62;
其中,v表示当前视图的编号。
3.根据权利要求2所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S1中根据所选参数生成系统公共参数包括联盟链服务器随机选择一个素数p作为安全参数,联盟链服务器公开系统公共参数params={G,GT,p,g,e,t,n,Ai,k,Bj};其中,G和GT是两个阶为q的乘法循环群,g是G的生成元,双线性映射e:G×G→GT;其中t为门限值,n为超级节点个数;Ai,k表示第i个超级节点在第k个门限的公钥;i=[1,n],k=[0,t-1];Bj表示第j个超级节点的公钥,Bj=gyj;y表示超级节点的共享秘密份额;j=[1,n];并为主节点和副节点设置初始超时时间;主节点的初始超时时间设置为Tblock,副节点的初始超时时间设置为2v+1*Tblock;Tblock表示区块周期,v表示当前视图编号。
4.根据权利要求2所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S2包括:
S21、接收系统发送的公共参数后,联盟链服务器中的超级节点生成多项式;
S22、各个超级节点根据该多项式计算其自身的私钥以及公钥,并广播;
S23、各个超级节点验证接受到的秘密值的有效性,若无效,则要求无效的超级节点重新发送秘密值;否则进入步骤S24;
S24、超级节点通过任意多个秘密值份额恢复出联合生成的随机秘密值;
S25、候选节点从超级节点中申请部分密钥,通过验证等式验证其有效性;
S26、如果部分密钥无效,候选节点公开部分密钥请求其他超级节点认证,否则候选节点计算其自身的密钥。
5.根据权利要求2所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S3包括:
S31、设置编号为(h-v)mod N的超级节点为本轮共识的主节点,其他超级节点设置为副节点;其中,h为区块高度,v为当前视图编号,N为超级节点数目;
S32、当出块条件满足后,主节点向其他副节点发送提案请求。
6.根据权利要求5所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S31包括:
S331、在经过主节点的超时时间后,按照共识策略从内存池中选取交易,将交易哈希打包为准备要求,并广播提案请求,发起新一轮共识;
S332、将主节点的超时时间设置为(2(v+1)-k(v))*T_block;
S333、副节点在超时时间范围内未能广播则进入步骤S6进行视图更改。
7.根据权利要求2所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S4包括:
S41、其他副节点验证主节点发送的提案请求的合法性,以及是否符合本地共识状态;若验证通过,则广播提案响应信息;
S42、任意一个副节点收到其他副节点发送的提案响应信息,利用基于身份的聚合签名算法验证消息合法性;
S43、将副节点的超时时间延长;
S44、更新本地共识状态,包括本地交易信息;
S45、对于交易消息包含的交易哈希,从内存池或未确认的交易中获取相应交易,并添加至共识模块;
S46、向副节点查询步骤S44中未在本地找到的交易信息,若未在其超时时间前接收到主节点发出的提案请求,则进入步骤S6,改变视图。
8.根据权利要求7所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S41包括:
S411、计算出超级节点的公钥为
Figure FDA0002388993370000031
k=0,1,…,t-1;其私钥为Si=ai,0;ai,k表示第i个超级节点在第k个门限的私钥;
S412、计算出主节点对副节点的验证签名:
Figure FDA0002388993370000041
H(M)表示对消息M进行哈希运算;
S413、副节点接收区块消息M与其签名δ;验证等式e(δ,g)=e(H(M),Ai,0)是否成立,即验证主节点发送的消息和签名是否正确;如果等式成立,则认为认证成立,否则认证失败;
S414、副节点签名并广播提案响应信息。
9.根据权利要求7所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S42包括:
S421、副节点收到超过三分之二个其他副节点发送的提议响应信息时,则进行基于身份的聚合签名认证;对于超级节点集合子集,在消息mj上提供一个签名;聚合签名当需要批量验证n条来自于n个签名者id1,id2,…,idn的签名时,这n条签名δj=(Ajk,Sj)对应于n个消息mj,其中j=1,…,n,k=0,1,…,t-1;
S422、验证等式
Figure FDA0002388993370000042
是否成立;即其他副节点对收到的提案响应信息进行验证;如果等式成立,则认为认证成立,否则认证失败;
S423、若在主节点的超时时间前,主节点收集到至少M个副节点的提案响应信息,包括:验证每一条提案响应信息中消息的合法性、是否符合本地共识状态,若通过验证,则将本节点的超时时间延长以及广播提交信息;
S424、若步骤S423出现验证错误时进入步骤S6,进行视图更改;
其中,H(M)表示对消息M进行哈希运算;y表示节点最终所共享的值;Sj表示第j个节点选择的随机值。
10.根据权利要求1所述的一种基于分布式密钥的拜占庭容错共识方法,其特征在于,所述步骤S5包括:
S51、每个已收集齐提案请求中交易信息的超级节点,若超级节点在超时时间范围前收集到至少M个超级节点的提交信息,包括:验证消息的合法性,以及是否符合本地共识状态,若通过验证,则将本节点的超时时间延长以及生成并广播新块;
S52、若超时时间范围内未收集到足够的提交信息,即未完成普通节点接收块的事件触发,则广播警告信息,并将超时时间设置为2*Tblock,重新返回步骤S3。
CN202010107971.1A 2020-02-21 2020-02-21 一种基于分布式密钥的拜占庭容错共识方法 Active CN111371744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010107971.1A CN111371744B (zh) 2020-02-21 2020-02-21 一种基于分布式密钥的拜占庭容错共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010107971.1A CN111371744B (zh) 2020-02-21 2020-02-21 一种基于分布式密钥的拜占庭容错共识方法

Publications (2)

Publication Number Publication Date
CN111371744A true CN111371744A (zh) 2020-07-03
CN111371744B CN111371744B (zh) 2022-06-03

Family

ID=71210097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010107971.1A Active CN111371744B (zh) 2020-02-21 2020-02-21 一种基于分布式密钥的拜占庭容错共识方法

Country Status (1)

Country Link
CN (1) CN111371744B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866106A (zh) * 2020-07-09 2020-10-30 中汇信息技术(上海)有限公司 共识方法、装置、电子设备和可读存储介质
CN112564896A (zh) * 2020-11-26 2021-03-26 中国船舶工业系统工程研究院 可变共识区块链的多主体决策确认方法、系统及存储介质
CN112636905A (zh) * 2020-12-11 2021-04-09 北京航空航天大学 基于多角色的可扩展共识机制的系统及方法
CN113642019A (zh) * 2021-08-16 2021-11-12 中国人民解放军国防科技大学 一种双层分组拜占庭容错共识方法及系统
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114640450A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统
CN114650132A (zh) * 2022-03-29 2022-06-21 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114745140A (zh) * 2022-06-13 2022-07-12 天津市城市规划设计研究总院有限公司 基于聚合加密的城市规划领域区块链共识验证方法及系统
CN115002120A (zh) * 2022-08-02 2022-09-02 蒲惠智造科技股份有限公司 一种基于数据同步的集群网络中主节点的确定方法
CN115051985A (zh) * 2022-04-01 2022-09-13 重庆邮电大学 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN116668024A (zh) * 2023-07-28 2023-08-29 杭州趣链科技有限公司 一种分布式密钥的生成方法、装置、电子设备和存储介质
CN117176346A (zh) * 2023-11-01 2023-12-05 中电信量子科技有限公司 分布式量子密钥链路控制方法及密钥管理系统
CN117560229A (zh) * 2024-01-11 2024-02-13 吉林大学 一种联邦非介入式负荷监测用户验证方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
CN109167661A (zh) * 2018-09-27 2019-01-08 福建福链科技有限公司 一种应用于联盟链的拜占庭容错共识方法及终端
CN109194472A (zh) * 2018-09-19 2019-01-11 广东微链科技有限公司 基于双线性映射和集合签名算法的游戏区块链共识方法
CN109360100A (zh) * 2018-11-13 2019-02-19 北京航空航天大学 基于区块链技术的交易快速确认方法及装置
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
US10536537B1 (en) * 2019-06-13 2020-01-14 Accenture Global Solutions Limited Multi-source deterministic oracle management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
CN109194472A (zh) * 2018-09-19 2019-01-11 广东微链科技有限公司 基于双线性映射和集合签名算法的游戏区块链共识方法
CN109167661A (zh) * 2018-09-27 2019-01-08 福建福链科技有限公司 一种应用于联盟链的拜占庭容错共识方法及终端
CN109360100A (zh) * 2018-11-13 2019-02-19 北京航空航天大学 基于区块链技术的交易快速确认方法及装置
US10536537B1 (en) * 2019-06-13 2020-01-14 Accenture Global Solutions Limited Multi-source deterministic oracle management
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
王日宏等: "一种结合BLS签名的可拜占庭容错Raft算法", 《应用科学学报》 *
罗文俊等: "基于区块链的电子医疗病历共享方案", 《计算机应用》 *
苑超等: "基于聚合签名的共识算法优化方案", 《计算机科学》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866106A (zh) * 2020-07-09 2020-10-30 中汇信息技术(上海)有限公司 共识方法、装置、电子设备和可读存储介质
CN112564896A (zh) * 2020-11-26 2021-03-26 中国船舶工业系统工程研究院 可变共识区块链的多主体决策确认方法、系统及存储介质
CN112636905A (zh) * 2020-12-11 2021-04-09 北京航空航天大学 基于多角色的可扩展共识机制的系统及方法
CN113642019A (zh) * 2021-08-16 2021-11-12 中国人民解放军国防科技大学 一种双层分组拜占庭容错共识方法及系统
CN113642019B (zh) * 2021-08-16 2023-07-25 中国人民解放军国防科技大学 一种双层分组拜占庭容错共识方法及系统
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114640450A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统
CN114650132A (zh) * 2022-03-29 2022-06-21 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114640450B (zh) * 2022-03-29 2024-06-14 蚂蚁区块链科技(上海)有限公司 区块链上实现重传秘密份额与确定失败节点的方法、系统
CN115051985A (zh) * 2022-04-01 2022-09-13 重庆邮电大学 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN115051985B (zh) * 2022-04-01 2024-01-12 深圳瑞泰信资讯有限公司 一种基于动态节点的拜占庭容错共识协议的数据共识方法
CN114745140B (zh) * 2022-06-13 2022-08-23 天津市城市规划设计研究总院有限公司 基于聚合加密的城市规划领域区块链共识验证方法及系统
CN114745140A (zh) * 2022-06-13 2022-07-12 天津市城市规划设计研究总院有限公司 基于聚合加密的城市规划领域区块链共识验证方法及系统
CN115002120A (zh) * 2022-08-02 2022-09-02 蒲惠智造科技股份有限公司 一种基于数据同步的集群网络中主节点的确定方法
CN116668024A (zh) * 2023-07-28 2023-08-29 杭州趣链科技有限公司 一种分布式密钥的生成方法、装置、电子设备和存储介质
CN116668024B (zh) * 2023-07-28 2023-10-31 武汉趣链数字科技有限公司 一种分布式密钥的生成方法、装置、电子设备和存储介质
CN117176346A (zh) * 2023-11-01 2023-12-05 中电信量子科技有限公司 分布式量子密钥链路控制方法及密钥管理系统
CN117176346B (zh) * 2023-11-01 2024-03-08 中电信量子科技有限公司 分布式量子密钥链路控制方法及密钥管理系统
CN117560229A (zh) * 2024-01-11 2024-02-13 吉林大学 一种联邦非介入式负荷监测用户验证方法
CN117560229B (zh) * 2024-01-11 2024-04-05 吉林大学 一种联邦非介入式负荷监测用户验证方法

Also Published As

Publication number Publication date
CN111371744B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
CN111371744B (zh) 一种基于分布式密钥的拜占庭容错共识方法
CN111682938B (zh) 面向中心化移动定位系统的三方可认证密钥协商方法
CN109698754B (zh) 基于环签名的车队安全管理系统及方法、车辆管理平台
CN109802956B (zh) 基于环签名的车载网匿名认证系统和方法、车辆通信平台
JP2004129303A (ja) 復元型電子署名方法、付加型電子署名方法、鍵交換方法、復元型公衆電子署名方法およびブラインド電子署名方法
CN111294202B (zh) 一种面向联盟链的身份认证方法
CN104079412B (zh) 基于智能电网身份安全的无可信pkg的门限代理签名方法
CN110830244A (zh) 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统
CN101873328A (zh) 基于聚合签名的多方合同签署方法
CN111917550A (zh) 基于无证书聚类签名无双线性对的认证方法及系统
CN115174570A (zh) 一种基于动态委员会的跨链共识方法及系统
CN113609499B (zh) 基于去中心化多方安全计算和多重签名的电子公证文书签署方法及系统
Yang et al. A group key agreement protocol based on ecdh and short signature
CN116318736A (zh) 一种用于分级管理的二级门限签名方法及装置
CN110740034A (zh) 基于联盟链的qkd网络认证密钥生成方法及系统
CN108449174B (zh) 云计算应用中智能终端的可撤销加密方法及装置
Le et al. Multisignatures as secure as the Diffie-Hellman problem in the plain public-key model
CN112187459B (zh) 一种智能网联车中模块间的可信认证方法及系统
Cao et al. Provable efficient certificateless group key exchange protocol
CN107171807B (zh) 一种基于椭圆曲线的签名认证方法及系统
CN115580401B (zh) 一种基于可验证秘密共享的无证书sm2密钥生成方法
Nenadic et al. A secure and fair DSA-based signature exchange protocol
CN116132118B (zh) 一种基于区块链技术的加密通讯方法和系统
CN115242388B (zh) 一种基于动态属性权限的群组密钥协商方法
Hanzlik et al. Local self-organization with strong privacy protection

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230804

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Yami Technology (Guangzhou) Co.,Ltd.

Address before: 400065 Chongwen Road, Nanshan Street, Nanan District, Chongqing

Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS