CN115412263B - 一种基于双重盲化的拜占庭容错共识方法 - Google Patents

一种基于双重盲化的拜占庭容错共识方法 Download PDF

Info

Publication number
CN115412263B
CN115412263B CN202211083662.0A CN202211083662A CN115412263B CN 115412263 B CN115412263 B CN 115412263B CN 202211083662 A CN202211083662 A CN 202211083662A CN 115412263 B CN115412263 B CN 115412263B
Authority
CN
China
Prior art keywords
node
candidate
consensus
nodes
voting
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.)
Active
Application number
CN202211083662.0A
Other languages
English (en)
Other versions
CN115412263A (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.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong 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 Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN202211083662.0A priority Critical patent/CN115412263B/zh
Publication of CN115412263A publication Critical patent/CN115412263A/zh
Application granted granted Critical
Publication of CN115412263B publication Critical patent/CN115412263B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于双重盲化的拜占庭容错共识方法,包括以下步骤:对区块链系统初始化;生成用户公、私钥对;选出共识域、候选节点和普通共识节点,生成盲化选票;根据盲化选票进行投票并验证选票有效性,广播有效的投票的消息;公布第二次盲化对应的解盲因子,确认候选节点票数和投票结果排名;使候选节点担任主节点,将交易信息和首次对应解盲因子打包成提案区块并广播,各共识节点判断正确性,利用门限签名发送验证消息,任意共识节点合法验证消息后,合成提案区块投票结果消息,其余节点进行同步。本发明能够隐藏主节点身份;具有低时延、高鲁棒性、视图更换开销少和通信冗余度低的特点,提高了共识性能。

Description

一种基于双重盲化的拜占庭容错共识方法
技术领域
本发明涉及数据安全领域,具体涉及一种基于双重盲化的拜占庭容错共识方法。
背景技术
2008年,中本聪在密码学邮件组中发表了相关论文,并由此拉开区块链技 术研究的序幕。区块链可以看作是使用密码学技术所连接的分布式账本,每一 个区块都包含了上一个区块的哈希值、时间戳和交易数据等信息。区块链的特 点是数据的不可篡改性,因为一个区块数据的改动,将不可避免地导致后续所有区块都要发生改变;另一个特点是作为分布式账本,区块链节点通过点对点 网络通信协议来完成信息传递。综上所述,区块链是一种以永久保存、不可篡 改的方式来有效记录交易数据的分布式账本。
作为一项革命性的突破,区块链使用了包括共识算法、点对点通信、加密 算法和分布式存储在内的技术。近年来,区块链技术得到了快速发展,企业和 个人都可以开发自己的区块链应用。目前,区块链技术已被广泛应用于金融、 医疗、供应链和物联网等多个领域,而区块链3.0技术的成熟有望给社会发展带来更加深远的影响。
共识算法作为区块链底层的核心技术,能够在缺乏中心控制的对等通信网 络中,就交易数据的合法性达成共识,以此维护分布式账本的一致性。一个良 好的共识算法,能够对区块链系统的高效运行起到重要作用。工作量证明(POW) 共识算法的核心是通过算力竞争来获得记账权,但存在资源浪费、交易确认时间长、弱去中心化等问题,无法满足商业需求;由于POW造成大量的资源浪费, 权益证明(POS)被提出,但是随着时间的增长,POS容易产生马太效应,拉大贫 富差距,出现权益集中化的现象;委托股份证明(DPOS)通过投票选举出参与生 成区块的“董事会”,董事会按照既定的规则轮流生产区块。当一笔交易被提交 到共识网络中后,只需要得到当前董事会中记账人的确认后,这笔交易也就得 到了确认,从而大幅度减少了交易确认所需时间,然而DPOS也存在着投票节点积极性不高、权力集中化等问题。
1982年,Leslie Lamport等人中提出了经典的“拜占庭将军问题”。随着计 算机技术的发展,拜占庭将军问题逐渐成为分布式系统中的一个关键问题,因 为独立节点可能会由于宕机、遭受攻击等问题而对分布式系统的一致计算结果 产生影响,因此满足拜占庭容错性是设计分布式系统所需要考虑的问题。1999 年,Liskov提出了实用拜占庭容错算法,该算法在满足拜占庭容错性的前提下,将通信复杂度由BFT的指数级降低到了O(n2),也是第一个应用于实际生产中的 BFT类算法;在针对PBFT的改进算法中,Feng等人提出SDMA-PBFT共识算 法,利用切片技术将全网节点按照等级进行分组,并在组内选取领导节点,各小组分别负责不同的交易数据,有效减轻了单一主节点的数据处理负载;Gao 等人基于EigenTrust信用模型提出T-PBFT共识算法,通过综合评估选取高信用值节点构成共识群组,提升了算法运行稳定性,但共识群组内使用PBFT算法, 无法保证大量用户节点下的算法性能;Du等人提出MBFT共识算法,利用双层 共识群组记录处理交易,底层负责验证工作,上层负责记链工作,分层处理的 逻辑提高了系统吞吐量,但未提出上层节点替换方案,记账权仍然集中在部分 节点手中。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于双重盲化的拜占庭容错共识方法解决了当前共识方案效率低下、安全性不足的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于双重盲化的拜占庭容错共识方法,包括以下步骤:
S1、对区块链系统初始化,更新信用评价模型RoleTrust,生成系统参数;
S2、使用区块链系统生成用户公、私钥对;根据信用评价模型RoleTrust选出共识域、候选节点和普通共识节点,利用双重盲化机制生成盲化选票;
S3、通过共识域内投票节点根据盲化选票进行投票,通过候选节点验证选票有效性,并在共识域内广播有效的投票的消息;
S4、通过各候选节点分别公布第二次盲化对应的解盲因子,对投票结果进行部分解盲,确认候选节点自身的票数和投票结果排名;
S5、根据投票结果使候选节点依次担任主节点,将交易信息和首次盲化对应解盲因子打包作为提案区块,并将提案区块广播至共识域内;通过各共识节点利用首次盲化对应的解盲因子验证当前主节点身份是否和投票结果一致以及交易数据的正确性,并利用门限签名发送验证消息;当任意共识节点在收到超过门限值数量的合法验证消息后,合成提案区块投票结果消息,使其余共识节点在收到提案区块投票结果消息后对提案区块进行同步。
进一步地,步骤S1的具体实现方式如下:
S1-1、根据公式:
得到对各个节点使用信用评价模型RoleTrust的评价结果credit(i);其中, CALt(j)表示节点在担任候选节点的时候是否良好地参与共识进程,如是则取值为2,否则取值为0;CALf(j)表示该节点在担任候选节点时是否有作恶行为,若是则取值为-2,否则取值为0;CAFt(j)表示节点作为普通共识节点的时候是否良好地参与共识进程,若是则取值为1,否则取值为0;CAFf(j)表示节点作为普通共识节点时是否良好地参与共识进程,若是则取值为-1,否则取值为0;PMl是候选节点恶意行为的惩罚因子;e为自然常数;cur1表示节点作为候选节点的总次数,cur2表示节点作为普通共识节点的次数;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例小于1/4时,PMl为1;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例在1/4到1/2时,PMl为1.5;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例大于等于1/2时,PMl为2;
PMf是普通共识节点恶意行为的惩罚因子,当其恶意行为次数和总参与次数的比值小于1/2时为1,否则为2;
countl和countf分别表示节点作为候选节点和普通共识节点参与共识进程的总次数;α和β为权重,α+β=1;
S1-2、设置节点的信用上限,当节点的信用值累计达到信用上限时自动重置节点的信用值,恢复初值,即上限值的1/4。
进一步地,步骤S2的具体实现方式如下:
S2-1、使用区块链系统为每个用户节点生成唯一的身份标识IDi及其公私钥对(pki,ski);其中,i=1,2,…,N;
S2-2、通过区块链系统根据信用评价模型RoleTrust对各个节点信用值降序排名;将共识域内信用值排名前40%的共识节点作为候选节点;使从共识节点中选取的候选节点数量占候选节点总数的2/3,使剩下的1/3的候选节点在全网其余节点内随机选择;其中候选节点向系统提交一定数额的保证金Deposit;
S2-3、根据公式:
得到对第m个候选节点的身份标识IDm首次盲化后的结果IDbm;其中,skm为第m个候选节点的私钥;rm为第m个候选节点的选取的首次盲化因子; FirstBlindFunc为盲化函数;
S2-4、根据公式:
得到使用算关联环签名签名法LRSig对第n个候选节点的身份标识进行首次盲化后的结果IDbn进行签名的结果其中,/>为第n个候选节点的关联环签名标签,CandidatePkSet为所有候选节点的公钥集合;
S2-5、将第n个节点的发送至混淆地址进行验证;
S2-6、通过区块链系统采用签名验证算法LRSigVerif判断混淆地址接收到的 IDbn是否由符合要求的候选节点所生成,若是,则保留并进入步骤S2-7;否则去掉IDbn,并通过关联性验证算法LableVerif检查关联环签名标签关联性,判断同一候选节点是否生成了多个关联环签名标签,若发现该候选节点发送多个关联环签名标签参与选举,系统将扣除其保证金Deposit并取消该候选节点的候选资格,进入步骤S2-7;否则,进入步骤S2-7;
S2-7、在成功对所有候选节点的首次盲化后的结果完成验证后,通过混淆地址将首次盲化后的结果保留作为票据以便后续查验;通过区块链系统将所有的首次盲化后的结果乱序发送给各候选节点,打乱各候选节点的持有选票;
S2-8、根据公式:
得到第y个候选节点对发回的盲化ID第二次盲化得到的盲化选票IDx *;其中,IDbx表示第x个候选节点的盲化ID;skx表示x个候选节点的私钥;rx *为第 x个候选节点所选择的二次盲化因子;SecBlindFunc为重盲化函数。
进一步地,步骤S3的具体实现方式如下:
S3-1、通过候选节点将对应的盲化选票发送给混淆地址;通过区块链系统记录候选节点和盲化选票的对应关系,生成选票持有列表VoteHolder,并将其在共识域内广播;
S3-2、通过普通共识节点根据该列表进行投票:通过普通共识节点z发送格式为<VoteSiga(IDz *,o,VoteMsg)>的投票消息VoteSiga给候选节点a,对a投票;其中,o为当前投票轮数;VoteMsg为投票消息;IDz *为节点z的盲化选票;
S3-3、通过候选节点a对收到的共识节点z的投票消息VoteSigz检查,确认无误后,向共识域广播投票确认消息VotoConfirmed,格式如下:
VoteConfirmed=<Siga(Hash(Sigz(IDa *,o,VoteMsg)),Sigz(IDa *,o,VoteMsg))
共识域内其余节点收到候选节点a的确认消息VotoConfirmed后也对VoteSigz进行检查,并将投票消息添加至消息缓存列表VoteMsgSet中。
进一步地,步骤S4的具体实现方式如下:
S4-1、当共识域内所有节点投票完毕或投票倒计时归零后,通过各个候选节点发送UnblindSig(m)消息广播公布持有选票的二次盲化对应解盲因子;
S4-2、候选节点d在收到持有选票的对应的解盲因子(rd *)(-1)后,根据公式:
得到利用解盲函数SecUnBlindFunc对所持盲化选票解盲后的结果其中,候选节点e*自身的票数,IDd *为候选节点d的盲化选票;(pkd,skd)为候选节点d的公私钥对;rd *为第二次盲化对应的盲化因子;
S4-3、通过各个候选节点根据自身对盲化选票解盲后的结果获取自身的票数,若票数相等,按照信用值大小决定候选节点排名的前后次序,否则按照票数从大到小对候选节点排名;根据候选结果排名确定各个候选节点作为记账节点的前后次序;并将当前记账节点作为主记账节点。
进一步地,步骤S5的具体实现方式如下:
S5-1、将候选节点组成候选委员会Committee;将工作中的交易信息和首次盲化对应解盲因子打包作为提案区块;
S5-2、通过当前主记账节点对提案区块进行备份,使用视图编号进行记录,并将提案区块在委员会Committee内部广播;通过委员会Committee其余成员对提案区块进行验证,验证通过后使用相同的视图编号记录提案区块;否则放弃该提案区块,并且广播主节点恶意行为的消息;
S5-3、通过主记账节点g的在共识域内广播预准备消息,消息格式为:
<Sigg(First-UBfactor,h,o*,v,Hash(Block),Block)>
其中,Block为提案区块;First-UBfactor为主记账节点g的首次解盲因子, h为提案区块高度、o*为视图编号;
S5-4、除主记账节点的其余节点收到预准备消息后,检查提案区块Block中的交易内容;
S5-5、根据公式:
通过除主记账节点的其余节点对当前主记账节点g的身份信息进行验证,得到主节点的真实身份信息IDg;若主节点身份信息IDg和解盲后的投票结果不符,所有节点摒弃该提案区块,广播切换主节点,并发送消息ChangeLeaderMsg,否则进入步骤S5-6;其中,FirstBlindFunc为首次盲化解盲函数;skg为主记账节点的公钥;(rg)-1为主记账节点g首次盲化对应的解盲因子;rg为主记账节点 g首次盲化因子;
S5-6、通过除主记账节点的其余节点对主记账节点发送的提案区块的信息进行验证,验证通过后通过除主记账节点的其余节点广播基于门限签名的提案区块确认消息Part-ThSig(m);否则,不发送确认消息;若共识域中有一个除主记账节点的其余节点u收到代表投票意愿的Part-ThSig(m)消息数量超过门限值 t-1(t=2f+1),则通过节点u合成合法门限签名消息ThresholdSig(m),并将合法的门限签名消息在节点u的共识域内广播;否则,将该主记账节点视为恶意节点并广播切换主节点消息;
S5-7、当除节点u的其余节点收到基于门限签名的消息后,检查门限签名ThresholdSig(m)是否合法,若合法则将提案区块Block同步到本地账本中,完成当前共识;否则将消息丢弃;
S5-8、通过主节点获得记账奖励,并将其中半数奖励平分给在选举阶段为其投票的所有节点,通过区块链系统根据该轮共识进程中各节点的表现更新其普通行为集和记账行为集,并计算最新RoleTrust信用评价值。
本发明的有益效果为:(1)在隐藏主节点身份的情况下,调动节点进行随机投票,在已经确认的投票结果进行部分公开之后,候选节点并根据投票结果依次担任主节点,秘密完成交易的验证和打包工作,达到以前隐藏主节点身份的设计目标;
(2)通过选取高信用值节点组成委员会,委员会成员共享同一视图号,在保持低时延、高鲁棒性的条件下减少视图更换等开销;
(3)通过使用门限签名算法,减少提案区块验证过程中节点之间的通信冗余度,提高共识性能。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,一种基于双重盲化的拜占庭容错共识方法,包括以下步骤:
S1、对区块链系统初始化,更新信用评价模型RoleTrust,生成系统参数;
S2、使用区块链系统生成用户公、私钥对;根据信用评价模型RoleTrust选出共识域、候选节点和普通共识节点,利用双重盲化机制生成盲化选票;
S3、通过共识域内投票节点根据盲化选票进行投票,通过候选节点验证选票有效性,并在共识域内广播有效的投票的消息;
S4、通过各候选节点分别公布第二次盲化对应的解盲因子,对投票结果进行部分解盲,确认候选节点自身的票数和投票结果排名;
S5、根据投票结果使候选节点依次担任主节点,将交易信息和首次盲化对应解盲因子打包作为提案区块,并将提案区块广播至共识域内;通过各共识节点利用首次盲化对应的解盲因子验证当前主节点身份是否和投票结果一致以及交易数据的正确性,并利用门限签名发送验证消息;当任意共识节点在收到超过门限值数量的合法验证消息后,合成提案区块投票结果消息,使其余共识节点在收到提案区块投票结果消息后对提案区块进行同步。
步骤S1的具体实现方式如下:
S1-1、根据公式:
得到对各个节点使用信用评价模型RoleTrust的评价结果credit(i);其中, CALt(j)表示节点在担任候选节点的时候是否良好地参与共识进程,如是则取值为2,否则取值为0;CALf(j)表示该节点在担任候选节点时是否有作恶行为,若是则取值为-2,否则取值为0;CAFt(j)表示节点作为普通共识节点的时候是否良好地参与共识进程,若是则取值为1,否则取值为0;CAFf(j)表示节点作为普通共识节点时是否良好地参与共识进程,若是则取值为-1,否则取值为0;PMl是候选节点恶意行为的惩罚因子;e为自然常数;cur1表示节点作为候选节点的总次数,cur2表示节点作为普通共识节点的次数;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例小于1/4时,PMl为1;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例在1/4到1/2时,PMl为1.5;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例大于等于1/2时,PMl为2;
PMf是普通共识节点恶意行为的惩罚因子,当其恶意行为次数和总参与次数的比值小于1/2时为1,否则为2;
countl和countf分别表示节点作为候选节点和普通共识节点参与共识进程的总次数;α和β为权重,α+β=1;
S1-2、设置节点的信用上限,当节点的信用值累计达到信用上限时自动重置节点的信用值,恢复初值,即上限值的1/4。
步骤S2的具体实现方式如下:
S2-1、使用区块链系统为每个用户节点生成唯一的身份标识IDi及其公私钥对(pki,ski);其中,i=1,2,…,N;
S2-2、通过区块链系统根据信用评价模型RoleTrust对各个节点信用值降序排名;将共识域内信用值排名前40%的共识节点作为候选节点;使从共识节点中选取的候选节点数量占候选节点总数的2/3,使剩下的1/3的候选节点在全网其余节点内随机选择;其中候选节点向系统提交一定数额的保证金Deposit;
S2-3、根据公式:
得到对第m个候选节点的身份标识IDm首次盲化后的结果IDbm;其中,skm为第m个候选节点的私钥;rm为第m个候选节点的选取的首次盲化因子; FirstBlindFunc为盲化函数;
S2-4、根据公式:
得到使用算关联环签名签名法LRSig对第n个候选节点的身份标识进行首次盲化后的结果IDbn进行签名的结果其中,/>为第n个候选节点的关联环签名标签,CandidatePkSet为所有候选节点的公钥集合;
S2-5、将第n个节点的发送至混淆地址进行验证;
S2-6、通过区块链系统采用签名验证算法LRSigVerif判断混淆地址接收到的 IDbn是否由符合要求的候选节点所生成,若是,则保留并进入步骤S2-7;否则去掉IDbn,并通过关联性验证算法LableVerif检查关联环签名标签关联性,判断同一候选节点是否生成了多个关联环签名标签,若发现该候选节点发送多个关联环签名标签参与选举,系统将扣除其保证金Deposit并取消该候选节点的候选资格,进入步骤S2-7;否则,进入步骤S2-7;
S2-7、在成功对所有候选节点的首次盲化后的结果完成验证后,通过混淆地址将首次盲化后的结果保留作为票据以便后续查验;通过区块链系统将所有的首次盲化后的结果乱序发送给各候选节点,打乱各候选节点的持有选票;
S2-8、根据公式:
得到第y个候选节点对发回的盲化ID第二次盲化得到的盲化选票IDx *;其中,IDbx表示第x个候选节点的盲化ID;skx表示x个候选节点的私钥;rx *为第 x个候选节点所选择的二次盲化因子;SecBlindFunc为重盲化函数。
步骤S3的具体实现方式如下:
S3-1、通过候选节点将对应的盲化选票发送给混淆地址;通过区块链系统记录候选节点和盲化选票的对应关系,生成选票持有列表VoteHolder,并将其在共识域内广播;
S3-2、通过普通共识节点根据该列表进行投票:通过普通共识节点z发送格式为<VoteSiga(IDz *,o,VoteMsg)>的投票消息VoteSiga给候选节点a,对a投票;其中,o为当前投票轮数;VoteMsg为投票消息;IDz *为节点z的盲化选票;
S3-3、通过候选节点a对收到的共识节点z的投票消息VoteSigz检查,确认无误后,向共识域广播投票确认消息VotoConfirmed,格式如下:
VoteConfirmed=<Siga(Hash(Sigz(IDa *,o,VoteMsg)),Sigz(IDa *,o,VoteMsg))
共识域内其余节点收到候选节点a的确认消息VotoConfirmed后也对VoteSigz进行检查,并将投票消息添加至消息缓存列表VoteMsgSet中。
步骤S4的具体实现方式如下:
S4-1、当共识域内所有节点投票完毕或投票倒计时归零后,通过各个候选节点发送UnblindSig(m)消息广播公布持有选票的二次盲化对应解盲因子;
S4-2、候选节点d在收到持有选票的对应的解盲因子(rd *)(-1)后,根据公式:
得到利用解盲函数SecUnBlindFunc对所持盲化选票解盲后的结果IDbe*,其中,候选节点e*自身的票数,IDd *为候选节点d的盲化选票;(pkd,skd)为候选节点d的公私钥对;rd *为第二次盲化对应的盲化因子;
S4-3、通过各个候选节点根据自身对盲化选票解盲后的结果获取自身的票数,若票数相等,按照信用值大小决定候选节点排名的前后次序,否则按照票数从大到小对候选节点排名;根据候选结果排名确定各个候选节点作为记账节点的前后次序;并将当前记账节点作为主记账节点。
步骤S5的具体实现方式如下:
S5-1、将候选节点组成候选委员会Committee;将工作中的交易信息和首次盲化对应解盲因子打包作为提案区块;
S5-2、通过当前主记账节点对提案区块进行备份,使用视图编号进行记录,并将提案区块在委员会Committee内部广播;通过委员会Committee其余成员对提案区块进行验证,验证通过后使用相同的视图编号记录提案区块;否则放弃该提案区块,并且广播主节点恶意行为的消息;
S5-3、通过主记账节点g的在共识域内广播预准备消息,消息格式为:
<Sigg(First-UBfactor,h,o*,v,Hash(Block),Block)>
其中,Block为提案区块;First-UBfactor为主记账节点g的首次解盲因子, h为提案区块高度、o*为视图编号;
S5-4、除主记账节点的其余节点收到预准备消息后,检查提案区块Block中的交易内容;
S5-5、根据公式:
通过除主记账节点的其余节点对当前主记账节点g的身份信息进行验证,得到主节点的真实身份信息IDg;若主节点身份信息IDg和解盲后的投票结果不符,所有节点摒弃该提案区块,广播切换主节点,并发送消息ChangeLeaderMsg,否则进入步骤S5-6;其中,FirstBlindFunc为首次盲化解盲函数;skg为主记账节点的公钥;(rg)-1为主记账节点g首次盲化对应的解盲因子;rg为主记账节点 g首次盲化因子;
S5-6、通过除主记账节点的其余节点对主记账节点发送的提案区块的信息进行验证,验证通过后通过除主记账节点的其余节点广播基于门限签名的提案区块确认消息Part-ThSig(m);否则,不发送确认消息;若共识域中有一个除主记账节点的其余节点u收到代表投票意愿的Part-ThSig(m)消息数量超过门限值 t-1(t=2f+1),则通过节点u合成合法门限签名消息ThresholdSig(m),并将合法的门限签名消息在节点u的共识域内广播;否则,将该主记账节点视为恶意节点并广播切换主节点消息;
S5-7、当除节点u的其余节点收到基于门限签名的消息后,检查门限签名ThresholdSig(m)是否合法,若合法则将提案区块Block同步到本地账本中,完成当前共识;否则将消息丢弃;
S5-8、通过主节点获得记账奖励,并将其中半数奖励平分给在选举阶段为其投票的所有节点,通过区块链系统根据该轮共识进程中各节点的表现更新其普通行为集和记账行为集,并计算最新RoleTrust信用评价值。
在本发明的一个实施例中,如表1所示,本发明在拜占庭容错性、通信复杂度、DDOS抵抗性与时延等方面有较大改进。
表1
在上表中,PBFT是由Liskov在1999年提出的共识算法,而DBFT则是由区块链社区NEO在2016年提出,但它们都采用了三段式的共识流程,因此通信复杂度是O(n2),虽然T-PBFT引入共识群组的概念,但是其通信复杂度在最坏的情况下仍为O(n2);M-BFT通过引入多层共识结构,使得通信复杂度取决于底层共识群组数量k;HoneyBadgerBFT通过分割交易并配合门限加密来提升共识效率,而DB-PBFT使用门限签名来进行提案区块的验证工作,两者都弱化了 PBFT中的双“2f+1”门槛,使得算法通信复杂度降低到了O(n),但是HoneyBadgerBFT和其它一些BFT类方案没有考虑主节点的身份隐私性,致使区块链系统容易遭受到分布式拒绝服务攻击,而DB-PBFT通过隐藏投票结果,有效保护了主节点的身份隐私。
本发明在隐藏主节点身份的情况下,调动节点进行随机投票,在已经确认的投票结果进行部分公开之后,候选节点并根据投票结果依次担任主节点,秘密完成交易的验证和打包工作,达到隐藏主节点身份的设计目标;通过选取高信用值节点组成委员会,委员会成员共享同一视图号,在保持低时延、高鲁棒性的条件下减少视图更换等开销;通过使用门限签名算法,减少提案区块验证过程中节点之间的通信冗余度,提高共识性能。

Claims (5)

1.一种基于双重盲化的拜占庭容错共识方法,其特征在于,包括以下步骤:
S1、对区块链系统初始化,更新信用评价模型RoleTrust,生成系统参数;
S2、使用区块链系统生成用户公、私钥对;根据信用评价模型RoleTrust选出共识域、候选节点和普通共识节点,利用双重盲化机制生成盲化选票;具体包括以下步骤:
S2-1、使用区块链系统为每个用户节点生成唯一的身份标识IDi及其公私钥对(pki,ski);其中,i=1,2,…,N;
S2-2、通过区块链系统根据信用评价模型RoleTrust对各个节点信用值降序排名;将共识域内信用值排名前40%的共识节点作为候选节点;使从共识节点中选取的候选节点数量占候选节点总数的2/3,使剩下的1/3的候选节点在全网其余节点内随机选择;其中候选节点向系统提交一定数额的保证金Deposit;
S2-3、根据公式:
得到对第m个候选节点的身份标识IDm首次盲化后的结果IDbm;其中,skm为第m个候选节点的私钥;rm为第m个候选节点的选取的首次盲化因子;FirstBlindFunc为盲化函数;
S2-4、根据公式:
得到使用算关联环签名签名法LRSig对第n个候选节点的身份标识进行首次盲化后的结果IDbn进行签名的结果其中,/>为第n个候选节点的关联环签名标签,CandidatePkSet为所有候选节点的公钥集合;
S2-5、将第n个节点的发送至混淆地址进行验证;
S2-6、通过区块链系统采用签名验证算法LRSigVerif判断混淆地址接收到的IDbn是否由符合要求的候选节点所生成,若是,则保留并进入步骤S2-7;否则去掉IDbn,并通过关联性验证算法LableVerif检查关联环签名标签关联性,判断同一候选节点是否生成了多个关联环签名标签,若发现该候选节点发送多个关联环签名标签参与选举,系统将扣除其保证金Deposit并取消该候选节点的候选资格,进入步骤S2-7;否则,进入步骤S2-7;
S2-7、在成功对所有候选节点的首次盲化后的结果完成验证后,通过混淆地址将首次盲化后的结果保留作为票据以便后续查验;通过区块链系统将所有的首次盲化后的结果乱序发送给各候选节点,打乱各候选节点的持有选票;
S2-8、根据公式:
得到第y个候选节点对发回的盲化ID第二次盲化得到的盲化选票IDx *;其中,IDbx表示第x个候选节点的盲化ID;skx表示x个候选节点的私钥;rx *为第x个候选节点所选择的二次盲化因子;SecBlindFunc为重盲化函数;
S3、通过共识域内投票节点根据盲化选票进行投票,通过候选节点验证选票有效性,并在共识域内广播有效的投票的消息;
S4、通过各候选节点分别公布第二次盲化对应的解盲因子,对投票结果进行部分解盲,确认候选节点自身的票数和投票结果排名;
S5、根据投票结果使候选节点依次担任主节点,将交易信息和首次盲化对应解盲因子打包作为提案区块,并将提案区块广播至共识域内;通过各共识节点利用首次盲化对应的解盲因子验证当前主节点身份是否和投票结果一致以及交易数据的正确性,并利用门限签名发送验证消息;当任意共识节点在收到超过门限值数量的合法验证消息后,合成提案区块投票结果消息,使其余共识节点在收到提案区块投票结果消息后对提案区块进行同步。
2.根据权利要求1所述的一种基于双重盲化的拜占庭容错共识方法,其特征在于,步骤S1的具体实现方式如下:
S1-1、根据公式:
得到对各个节点使用信用评价模型RoleTrust的评价结果credit(i);其中,CALt(j)表示节点在担任候选节点的时候是否良好地参与共识进程,如是则取值为2,否则取值为0;CALf(j)表示该节点在担任候选节点时是否有作恶行为,若是则取值为-2,否则取值为0;CAFt(j)表示节点作为普通共识节点的时候是否良好地参与共识进程,若是则取值为1,否则取值为0;CAFf(j)表示节点作为普通共识节点时是否良好地参与共识进程,若是则取值为-1,否则取值为0;PMl是候选节点恶意行为的惩罚因子;e为自然常数;cur1表示节点作为候选节点的总次数,cur2表示节点作为普通共识节点的次数;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例小于1/4时,PMl为1;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例在1/4到1/2时,PMl为1.5;
当节点担任候选节点时产生恶意行为的次数和其担任主节点总次数的时产生恶意行为的次数的比例大于等于1/2时,PMl为2;
PMf是普通共识节点恶意行为的惩罚因子,当其恶意行为次数和总参与次数的比值小于1/2时为1,否则为2;
countl和countf分别表示节点作为候选节点和普通共识节点参与共识进程的总次数;α和β为权重,α+β=1;
S1-2、设置节点的信用上限,当节点的信用值累计达到信用上限时自动重置节点的信用值,恢复初值,即上限值的1/4。
3.根据权利要求1所述的一种基于双重盲化的拜占庭容错共识方法,其特征在于,步骤S3的具体实现方式如下:
S3-1、通过候选节点将对应的盲化选票发送给混淆地址;通过区块链系统记录候选节点和盲化选票的对应关系,生成选票持有列表VoteHolder,并将其在共识域内广播;
S3-2、通过普通共识节点根据该列表进行投票:通过普通共识节点z发送格式为<VoteSiga(IDz *,o,VoteMsg)>的投票消息VoteSiga给候选节点a,对a投票;其中,o为当前投票轮数;VoteMsg为投票消息;IDz *为节点z的盲化选票;
S3-3、通过候选节点a对收到的共识节点z的投票消息VoteSigz检查,确认无误后,向共识域广播投票确认消息VotoConfirmed,格式如下:
VoteConfirmed=<Siga(Hash(Sigz(IDa *,o,VoteMsg)),Sigz(IDa *,o,VoteMsg))
共识域内其余节点收到候选节点a的确认消息VotoConfirmed后也对VoteSigz进行检查,并将投票消息添加至消息缓存列表VoteMsgSet中。
4.根据权利要求3所述的一种基于双重盲化的拜占庭容错共识方法,其特征在于,步骤S4的具体实现方式如下:
S4-1、当共识域内所有节点投票完毕或投票倒计时归零后,通过各个候选节点发送UnblindSig(m)消息广播公布持有选票的二次盲化对应解盲因子;
S4-2、候选节点d在收到持有选票的对应的解盲因子(rd *)(-1)后,根据公式:
得到利用解盲函数SecUnBlindFunc对所持盲化选票解盲后的结果其中,候选节点e*自身的票数,IDd *为候选节点d的盲化选票;(pkd,skd)为候选节点d的公私钥对;rd *为第二次盲化对应的盲化因子;
S4-3、通过各个候选节点根据自身对盲化选票解盲后的结果获取自身的票数,若票数相等,按照信用值大小决定候选节点排名的前后次序,否则按照票数从大到小对候选节点排名;根据候选结果排名确定各个候选节点作为记账节点的前后次序;并将当前记账节点作为主记账节点。
5.根据权利要求4所述的一种基于双重盲化的拜占庭容错共识方法,其特征在于,步骤S5的具体实现方式如下:
S5-1、将候选节点组成候选委员会Committee;将工作中的交易信息和首次盲化对应解盲因子打包作为提案区块;
S5-2、通过当前主记账节点对提案区块进行备份,使用视图编号进行记录,并将提案区块在委员会Committee内部广播;通过委员会Committee其余成员对提案区块进行验证,验证通过后使用相同的视图编号记录提案区块;否则放弃该提案区块,并且广播主节点恶意行为的消息;
S5-3、通过主记账节点g的在共识域内广播预准备消息,消息格式为:
<Sigg(First-UBfactor,h,o*,v,Hash(Block),Block)>
其中,Block为提案区块;First-UBfactor为主记账节点g的首次解盲因子,h为提案区块高度、o*为视图编号;
S5-4、除主记账节点的其余节点收到预准备消息后,检查提案区块Block中的交易内容;
S5-5、根据公式:
通过除主记账节点的其余节点对当前主记账节点g的身份信息进行验证,得到主节点的真实身份信息IDg;若主节点身份信息IDg和解盲后的投票结果不符,所有节点摒弃该提案区块,广播切换主节点,并发送消息ChangeLeaderMsg,否则进入步骤S5-6;其中,FirstBlindFunc为首次盲化解盲函数;skg为主记账节点的公钥;(rg)-1为主记账节点g首次盲化对应的解盲因子;rg为主记账节点g首次盲化因子;
S5-6、通过除主记账节点的其余节点对主记账节点发送的提案区块的信息进行验证,验证通过后通过除主记账节点的其余节点广播基于门限签名的提案区块确认消息Part-ThSig(m);否则,不发送确认消息;若共识域中有一个除主记账节点的其余节点u收到代表投票意愿的Part-ThSig(m)消息数量超过门限值t-1(t=2f+1),则通过节点u合成合法门限签名消息ThresholdSig(m),并将合法的门限签名消息在节点u的共识域内广播;否则,将该主记账节点视为恶意节点并广播切换主节点消息;
S5-7、当除节点u的其余节点收到基于门限签名的消息后,检查门限签名ThresholdSig(m)是否合法,若合法则将提案区块Block同步到本地账本中,完成当前共识;否则将消息丢弃;
S5-8、通过主节点获得记账奖励,并将其中半数奖励平分给在选举阶段为其投票的所有节点,通过区块链系统根据该轮共识进程中各节点的表现更新其普通行为集和记账行为集,并计算最新RoleTrust信用评价值。
CN202211083662.0A 2022-09-06 2022-09-06 一种基于双重盲化的拜占庭容错共识方法 Active CN115412263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211083662.0A CN115412263B (zh) 2022-09-06 2022-09-06 一种基于双重盲化的拜占庭容错共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211083662.0A CN115412263B (zh) 2022-09-06 2022-09-06 一种基于双重盲化的拜占庭容错共识方法

Publications (2)

Publication Number Publication Date
CN115412263A CN115412263A (zh) 2022-11-29
CN115412263B true CN115412263B (zh) 2024-06-11

Family

ID=84163252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211083662.0A Active CN115412263B (zh) 2022-09-06 2022-09-06 一种基于双重盲化的拜占庭容错共识方法

Country Status (1)

Country Link
CN (1) CN115412263B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115549931B (zh) * 2022-12-02 2023-04-14 佛山赛思禅科技有限公司 一种基于拟态防御的拜占庭容错实现方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294727A (zh) * 2017-05-22 2017-10-24 联动优势科技有限公司 一种电子投票方法、终端设备以及区块链网络
CN109347804A (zh) * 2018-09-19 2019-02-15 电子科技大学 一种用于区块链的拜占庭容错共识优化方法
CN110391911A (zh) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 区块链匿名投票系统及方法
CN110401540A (zh) * 2019-07-25 2019-11-01 郑州师范学院 一种基于区块链可公开校验的门限群签名方法
CN110912705A (zh) * 2019-11-14 2020-03-24 山东师范大学 一种基于区块链的分布式电子投票方法及系统
CN111106942A (zh) * 2019-12-13 2020-05-05 南京邮电大学 一种基于ap-pbft算法的区块链信用机制
CN111817855A (zh) * 2020-06-10 2020-10-23 北京航空航天大学 基于以太坊区块链的电子投票方法及系统
CN111865968A (zh) * 2020-07-16 2020-10-30 南京工业大学 一种实用于区块链的优化拜占庭容错算法
CN113301047A (zh) * 2021-05-25 2021-08-24 浙江树人学院(浙江树人大学) 一种基于恶意节点攻击检测的车联网节点一致性共识方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201706132D0 (en) * 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
PL3745637T3 (pl) * 2018-11-27 2021-11-02 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294727A (zh) * 2017-05-22 2017-10-24 联动优势科技有限公司 一种电子投票方法、终端设备以及区块链网络
CN109347804A (zh) * 2018-09-19 2019-02-15 电子科技大学 一种用于区块链的拜占庭容错共识优化方法
CN110391911A (zh) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 区块链匿名投票系统及方法
CN110401540A (zh) * 2019-07-25 2019-11-01 郑州师范学院 一种基于区块链可公开校验的门限群签名方法
CN110912705A (zh) * 2019-11-14 2020-03-24 山东师范大学 一种基于区块链的分布式电子投票方法及系统
CN111106942A (zh) * 2019-12-13 2020-05-05 南京邮电大学 一种基于ap-pbft算法的区块链信用机制
CN111817855A (zh) * 2020-06-10 2020-10-23 北京航空航天大学 基于以太坊区块链的电子投票方法及系统
CN111865968A (zh) * 2020-07-16 2020-10-30 南京工业大学 一种实用于区块链的优化拜占庭容错算法
CN113301047A (zh) * 2021-05-25 2021-08-24 浙江树人学院(浙江树人大学) 一种基于恶意节点攻击检测的车联网节点一致性共识方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Blockchain-based system for e-voting using Blind Signature Protocol;Julio César Perez Carcia等;2021 IEEE Global Communications Conference (GLOBECOM);20220202;全文 *
一个基于盲签名技术的智能合约模型;杨茜;黄晓芳;;西南科技大学学报;20180630(第02期);全文 *
分布式无中心授权的属性基可变门限环签名;刘旭东等;软件学报;20180416;全文 *
基于区块链的安全电子投票系统的设计与实现;董友康;中国优秀硕士学位论文全文数据库;20200115;全文 *

Also Published As

Publication number Publication date
CN115412263A (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN109842606B (zh) 基于一致性哈希算法的区块链共识算法和系统
Zhang et al. Security and privacy on blockchain
Nguyen et al. A survey about consensus algorithms used in blockchain.
CN111090892B (zh) 一种基于vrf和门限签名的区块链共识方法和装置
CN110289966B (zh) 基于拜占庭容错的抗自适应攻击联盟链共识方法
CN109792437B (zh) 一种用于去中心化域名系统的共识方法
Ruffing et al. Liar, liar, coins on fire! Penalizing equivocation by loss of bitcoins
Altarawneh et al. Buterin's scalability trilemma viewed through a state-change-based classification for common consensus algorithms
Xu et al. K-time modifiable and epoch-based redactable blockchain
Cruz et al. E-voting system based on the bitcoin protocol and blind signatures
Yadav et al. A comparative study on consensus mechanism with security threats and future scopes: Blockchain
CN101193103B (zh) 一种分配和验证身份标识的方法及系统
CN111416708B (zh) 一种区块链拜占庭容错共识方法及系统
Abbade et al. Blockchain applied to vehicular odometers
CN115412263B (zh) 一种基于双重盲化的拜占庭容错共识方法
CN116527684B (zh) 基于1+1+n中继共识委员会的多链信息交互方法
CN112116349B (zh) 面向高吞吐率的图式账本的随机化共识方法和装置
CN111416705A (zh) 基于身份密码学的抗量子计算联盟链投票系统和方法
Li et al. Silentdelivery: Practical timed-delivery of private information using smart contracts
TWM586416U (zh) 基於區塊鏈技術實現交易的多中心分散驗證系統
Liu et al. A blockchain-based cross-domain authentication management system for IoT devices
Rana et al. Optimal bootstrapping of pow blockchains
Zhai et al. BPKI: A secure and scalable blockchain-based public key infrastructure system for web services
Panduro-Ramirez et al. Blockchain approach for implementing access control in IOT
Team TomoChain: Masternodes design technical white paper version 1.0

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