CN117408718B - 一种面向大规模医药溯源的pbft优化方法 - Google Patents
一种面向大规模医药溯源的pbft优化方法 Download PDFInfo
- Publication number
- CN117408718B CN117408718B CN202311715219.5A CN202311715219A CN117408718B CN 117408718 B CN117408718 B CN 117408718B CN 202311715219 A CN202311715219 A CN 202311715219A CN 117408718 B CN117408718 B CN 117408718B
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- message
- nodes
- signature
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 239000003814 drug Substances 0.000 title claims abstract description 26
- 238000005457 optimization Methods 0.000 title claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000002360 preparation method Methods 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000010354 integration Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 claims 1
- 229940079593 drug Drugs 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005284 excitation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 101150055297 SET1 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/018—Certifying business or products
- G06Q30/0185—Product, service or business identity fraud
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H70/00—ICT specially adapted for the handling or processing of medical references
- G16H70/40—ICT specially adapted for the handling or processing of medical references relating to drugs, e.g. their side effects or intended usage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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 DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Primary Health Care (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medicinal Chemistry (AREA)
- Pharmacology & Pharmacy (AREA)
- Toxicology (AREA)
- Epidemiology (AREA)
- Marketing (AREA)
- Medical Informatics (AREA)
- Finance (AREA)
- Public Health (AREA)
- Development Economics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链共识算法技术领域,公开了一种面向大规模医药溯源的PBFT优化方法,包括:步骤1、DSE‑PBFT算法初始化,设置超时时间,设置所有节点初始信誉积分;步骤2、将所有节点分为共识集和普通集,共识集参与共识,普通集不参与共识但接受共识结果;步骤3、选择主节点向共识网络发起共识请求;步骤4、DSE‑PBFT算法节点间采用一对多的网络通信,经过四个阶段,并在四阶段共识过程中使用阈值签名方案,实现全局共识;步骤5、根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程。本发明能够展现出更高的吞吐量、更低的时延、更小的通信开销以及更好的安全性,是一种面向大规模医药溯源的有效方法。
Description
技术领域
本发明属于区块链共识算法技术领域,具体的说是涉及一种面向大规模医药溯源的PBFT优化方法。
背景技术
近年来,医药安全问题不断增加。据世界卫生组织估计,全球大约有10%的药品是假药,一些发展中国家甚至高达30%。为了减少医药安全事故,监管和追溯医药生产流通信息变得至关重要。目前,一些医药供应链监管和追溯平台,如"阿里健康",采用集中存储方式,利用条形码、RFID等技术将药品数据上传至中心数据库。消费者通过扫描药品包装上的追溯码,可以辨别药品真伪。然而,集中存储数据的方式存在风险,例如服务器或内存故障可能导致严重后果。另外,医药供应链的可追溯性要求快速准确地识别药品关键数据,涵盖从生产到销售的全过程,需要各个供应链参与者的合作。但由于供应链涉及众多主体,存在数据篡改和利益冲突的风险,这意味着医药供应链可追溯性中信息传递的真实性和效率无法得到保证。
区块链早在2008年由Nakamoto提出,它是一种将区块按照一定顺序进行链接的链式数据结构,具有去中心化、不可篡改、可追溯等特性,这些特性增强了数据的可信性,促进了数据流通,提供了数据可追溯性。因此,区块链为医药追溯问题提供了新的途径,区块链可以用于改善医药供应链的追溯模式,可以为药品信息带来"可见、可控、可追溯"的特点。
近年来,区块链作为一种快速发展的新兴技术,在工业4.0中得到了大量的应用,比如车联网、物联网、数据存储、供应链、金融银行、医疗服务、智慧交通等领域。根据节点的接入机制以及不同的应用场景,区块链通常来说可以分为三类,分别是公有区块链、私有区块链、联盟区块链。联盟链由多个组织或机构共同管理,每个组织或机构控制一个或多个节点,共同记录交易数据,并且只有这些组织或机构能够对联盟链中的数据进行读写和发送交易。联盟链相较于公链来说节点更加可靠安全,相较于私链来说实用性更广泛。通过采用联盟链技术,研究人员可以开发分布式溯源平台,实现医药数据的防篡改和可追溯。
共识算法是区块链的核心,一个区块链系统性能的好坏很大程度上取决于它所设计的共识算法。共识算法可以确保在分布式系统中所有节点之间的数据一致性,从而保证系统的可靠性和安全性。在联盟链中,PBFT被认为是最具前景的共识算法,PBFT提高了原始BFT算法的效率,将算法复杂度从指数级降低到多项式级,这对于医药溯源应用平台非常重要,使得在实际系统中具有可行性。
当然,PBFT算法的缺点也是显而易见的,随着节点数的不断增加,整个网络的通信开销会迅速上升,尤其当系统中超过100个节点后性能退化极其显著,从而阻碍了区块链药品追溯系统的广泛采用。
发明内容
针对现有技术的不足,本发明提供了一种面向大规模医药溯源的PBFT优化方法,该方法通过动态更新共识节点集合以及设计基于阈值签名方案的PBFT优化共识协议,确保在共识节点众多的情况下维持良好的区块链网络性能,从而应对大规模场景下的医药追溯。
为了达到上述目的,本发明是通过以下技术方案实现的:
本发明是一种面向大规模医药溯源的PBFT优化方法,首先,改进了 PBFT 共识过程,将网状通信拓扑结构转化为线性拓扑结构,减少了节点间通信,将通信复杂度从降低到/>;其次,提出了基于信誉积分的激励机制,将所有节点分为共识集和普通集,根据节点共识行为进行奖励或惩罚,每一个共识周期后通过信誉积分对共识节点和普通节点进行升降级,提高了共识效率,增加了共识网络的动态性;最后,在优化的共识过程中引入了阈值签名技术,通过k-n重数字签名的方式加强抗攻击能力,提高了系统的安全性。
具体的,PBFT优化方法包括如下步骤:
步骤1、DSE-PBFT算法初始化,设置超时时间,设置所有节点初始信誉积分;
步骤2、将所有节点分为共识集和普通集,并且初始化时所有节点的顺序都是随机的,其中所述共识集参与共识,所述普通集不参与共识但接受共识结果;
步骤3、从参与共识过程的所有节点中选择主节点向共识网络发起共识请求;
步骤4、DSE-PBFT算法节点间采用一对多的网络通信,经过预准备、准备、预提交、提交四个阶段实现全局共识,并在四阶段共识过程中使用阈值签名方案,实现全局共识,得出的共识结果;
步骤5、根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程。
本发明的进一步改进在于:共识集和普通集的比例为1:1。
本发明的进一步改进在于:DSE-PBFT算法改进了PBFT的共识流程,将PBFT的网状通信拓扑结构变成线性通信拓扑结构,共识效率,具体的,所述DSE-PBFT算法包括如下步骤:
步骤1.1、请求阶段:客户端向主节点发送请求消息‹ REQUEST , o , t , c ›来请求执行操作/>,其中,/>表示请求的时间戳;
步骤1.2、预准备阶段:主节点收到请求消息后,为这个请求分配一个序列号,并向所有备份节点广播预准备消息‹‹PRE-PREPARE ,v ,seq, d ›, m ›,其中,m为请求消息,d为消息m的摘要;
步骤1.3、准备阶段:备份节点收到预准备消息之后进行验证,验证成功后备份节点通过私钥对预准备消息加密得到,然后将准备消息‹ PREPARE, v, seq, d, i, />›发送给主节点,其中i表示共识节点的id,/>表示节点i对消息加密之后的签名;
步骤1.4、预提交阶段:主节点收到准备消息之后对消息本身以及阈值签名进行验证,验证成功后将其写入日志,如果主节点收到了2f个来自不同节点的验证成功的准备消息,则向所有备份节点广播提交消息‹PRE-COMMIT, v, seq, d, i, S ›,其中S代表将多个签名聚合之后的签名;
步骤1.5、提交阶段:备份节点,收到预提交消息之后对消息本身以及聚合签名进行验证,验证成功后备份节点将提交消息‹COMMIT, v, seq, d, i, S›发送给主节点;
步骤1.6、答复阶段:如果主节点累计收到2f个验证成功的来自不同备份节点的提交消息,则执行请求的具体操作,并向客户端以及所有备份节点发送回复消息‹REPLY, v,c, i, r›,其中r表示执行请求操作的结果,客户端若收到f+1正确答复,则表示共识已经达成。
本发明的进一步改进在于:在所述步骤5中,每一轮共识结束后根据节点行为评分,每50个请求更新一次共识集和普通集,对评分较低的共识节点进行降级,评分较高的普通节点通过替换的方式被选为共识节点参与共识。
本发明的进一步改进在于:所述步骤5每一个节点信誉积分值的更新具体包括如下步骤:
步骤5.1、共识过程引入一个积分影响因子,积分影响因子/>用于评估节点在共识过程中的行为对信誉积分的影响,为后续信誉积分值的计算做铺垫,具体的,所述积分影响因子/>计算表示为:
,
其中,表示节点i在上一个视图/>的积分影响因子,/>是一个偏置因子,用来表示历史信誉值对当前信誉值的影响,/>表示节点i是否在视图v成功完成共识,如果成功达成共识则取一个正数,如果没有达成共识则取一个负数,/>是一个激励因子;
步骤5.2、所述信誉积分是根据节点在每一轮共识中的积分影响因子进行计算,在每一轮共识过程结束后,动态更新节点的信誉积分值,信誉积分值/>计算如下:
其中,表示节点i在视图v共识时的积分信誉值,根据积分影响因子/>数据特性和取值范围,通过信誉积分值/>将信用值转换到值域(0,1),便于信用数据的更新与维护,使得节点积分值由离散型变为相对平衡。
本发明的进一步改进在于:在所述步骤4的共识过程中引入阈值签名方案,其中,阈值签名采用基于BLS签名的(k , n)阈值签名方案,最大程度保护共识网络的安全性,BLS签名是基于椭圆曲线secp256r1实现,主要包括以下步骤:
步骤4.1、生成私钥, 计算对应的公钥,生成公私钥对;
具体包括如下步骤:
步骤4.1.1、在节点的初始化阶段,节点i使用随机数生成器生成私钥:
(1)
步骤4.1.2、通过步骤4.1.1中的公式计算对应的公钥,每个节点都有了公私钥对,表示为;
步骤4.1.3、每个节点广播自己的公钥,确保每个节点访问自己的私钥和其他节点的公钥;
步骤4.1.4、然后再根据下式(2)计算出个公钥的聚合公钥/>, 节点/>广播对的签名以证明/>是聚合公钥/>的一部分;
(2)
其中是椭圆曲线secp256r1的基点,基点是预定义的,并且对于每个椭圆曲线参数,基点是固定的。
步骤4.2、计算聚合签名函数;具体包括如下步骤:
步骤4.2.1、使用SHA-256 作为签名方案的哈希函数,节点i收到消息后,计算出消息/>的摘要/>,公式为:
(3)
步骤4.2.2、在摘要的基础上,节点根据私钥/>和公式(4)计算出签名/>:
(4)
步骤4.2.3、构建带有签名的消息发送给主节点,并将其加入到本地缓存中以便后续验证,当主节点收到足够多的签名后再根据公式(5)计算出聚合签名:
(5)
其中,为曲线哈希函数。
步骤4.3、验证步骤4.2的聚合签名函数,验证聚合签名的正确性需要验证公式(6)是否成立,若成立则验证通过,否则验证不通过,
(6)
其中,是k个节点的聚合公钥。
本发明的有益效果是:
本发明在优化了PBFT共识过程的基础上引入阈值签名方案,BLS阈值签名可以提供更高的安全性,因为BLS阈值签名方案采用了k-n重数字签名的形式,恶意节点需要控制多个签名者才能破坏共识过程,这可以增加对拜占庭攻击的抵抗力;
本发明在通信开销、交易时延、吞吐量三个性能指标上均有较大提升;
本发明公开的DSE-PBFT共识算法大大减少了传统PBFT共识网络的通信次数,降低了网络的交易时延,提高了共识算法的吞吐量,提高了系统的安全性,可以有效应对医药溯源在大规模场景下的挑战,确保高效安全可靠的追溯性能;
本发明公开的DSE-PBFT算法能够展现出更小的通信开销以及更好的安全性,是一种面向大规模医药溯源的有效方法。
附图说明
图1是本发明PBFT优化方法的流程示意图。
图2是本发明DSE-PBFT共识流程示意图。
图3是本发明PBFT优化方法共识集更新示意图。
图4是本发明通信开销对比图。
图5是本发明交易时延对比图。
图6是本发明吞吐量对比图。
具体实施方式
以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。
如图1所示,本发明是一种面向大规模医药溯源的PBFT优化方法,该优化方法包括如下步骤:
步骤1、DSE-PBFT算法初始化,设置超时时间为1000ms,将所有节点的初始信誉积分和初始影响因子设置为0.5。
步骤2、将所有节点按照1:1比例分为共识集和普通集,并且初始化时所有节点的顺序都是随机的,其中所述共识集参与共识,所述普通集不参与共识但接受共识结果。
步骤3、从参与共识过程的所有节点中选择主节点向共识网络发起共识请求,如图2所示。所有参与共识过程的节点构成了共识网络,本实施例中,节点0123组成的共识网络。
步骤4、DSE-PBFT算法节点间采用一对多的网络通信替换了多对多的网络通信,将三阶段共识优化改为四阶段共识,经过预准备、准备、预提交、提交四个阶段,并在四阶段共识过程中使用阈值签名方案,实现全局共识,得出的共识结果。
因共识超时继而发生视图切换,使用可验证随机函数VRF选举新的主节点,增加主节点的不可预测性,有效避免了主节点恶意攻击。
本实施例以8个节点为例,如附图2所示,在DSE-PBFT共识算法过程中,为客户端,0-3为共识节点,4-7为普通节点,一个完整的共识需要经过请求阶段(Request)预准备阶段(Pre-Prepare)、准备阶段(Prepare)、预提交阶段(Pre-Commit)、提交阶段(Commit)和回复阶段(Reply)。
在预准备(Pre-prepare)阶段中:主节点0对请求消息进行验证,如果验证通过的话广播给节点1-3;
在准备(Prepare)阶段:副本节点验证Pre-prepare消息是否有效,如果通过则对Prepare消息加密签名后将阈值签名发送给主节点0;
在预提交(Pre-Commit)阶段:主节点收到准备消息之后对消息本身以及阈值签名进行验证,如果主节点收到了2f个来自不同节点的验证成功的准备消息,将多个签名聚合后向节点1-3广播预提交消息;
在提交(Commit)阶段:备份节点收到预提交消息之后对消息本身以及聚合签名进行验证,验证成功后备份节点将提交消息发送给主节点0;
在回复(Reply)阶段:如果主节点0累计收到2f个验证成功的来自不同备份节点的提交消息,则执行请求的具体操作,并向客户端以及节点1-7发送回复消息,客户端/>若收到f+1正确答复,则表示共识已经达成。
在所述步骤4的共识过程中引入阈值签名方案,其中,阈值签名采用基于BLS签名的(k , n)阈值签名方案,最大程度保护共识网络的安全性,BLS签名是基于椭圆曲线secp256r1实现,主要包括以下步骤:
步骤4.1、密钥对生成函数
在节点的初始化阶段,节点使用随机数生成器生成私钥/>:
(1)
然后通过上述公式计算对应的公钥,这样每个节点都有了公私钥对,表示为;最后每个节点广播自己的公钥,确保每个节点访问自己的私钥和其他节点的公钥;然后再根据下式(2)计算出n个公钥的聚合公钥/>, 节点/>广播对/>的签名以证明/>是聚合公钥/>的一部分;
(2)
其中是椭圆曲线secp256r1的基点,基点是预定义的,并且对于每个椭圆曲线参数,基点是固定的。
步骤4.2、计算聚合签名函数
使用SHA-256 作为签名方案的哈希函数,节点i收到消息后,根据公式(3)计算出消息/>的摘要/>:
(3)
在摘要的基础上,节点根据私钥/>和公式(4)计算出签名/>:
(4)
然后构建带有签名的消息发送给主节点,并将其加入到本地缓存中以便后续验证,当主节点收到足够多的签名后再根据公式(5)计算出聚合签名:
(5)
其中,为曲线哈希函数。
步骤4.3、验证聚合签名函数
验证聚合签名的正确性需要验证公式(6)是否成立,若成立则验证通过,否则验证不通过,
(6)
其中,是k个节点的聚合公钥。
步骤5、根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程,如图3所示,本发明每50个请求更新一次共识集和普通集,对评分较低的共识节点进行降级,评分较高的普通节点通过替换的方式被选为共识节点参与共识。
节点信誉积分值的更新分为两步,
步骤5.1、共识过程引入一个积分影响因子,积分影响因子/>用于评估节点在共识过程中的行为对信誉积分的影响,为后续信誉积分值的计算做铺垫,具体的,所述积分影响因子/>计算表示为:
,
其中,表示节点i在上一个视图/>的积分影响因子,/>是一个偏置因子,用来表示历史信誉值对当前信誉值的影响,/>表示节点i是否在视图v成功完成共识,如果成功达成共识则取一个正数,如果没有达成共识则取一个负数,/>是一个激励因子;
步骤5.2、所述信誉积分是根据节点在每一轮共识中的积分影响因子进行计算,在每一轮共识过程结束后,动态更新节点的信誉积分值,信誉积分值/>计算如下:
其中,表示节点i在视图v共识时的积分信誉值,根据积分影响因子/>数据特性和取值范围,通过信誉积分值/>将信用值转换到值域(0,1),便于信用数据的更新与维护,使得节点积分值由离散型变为相对平衡。
以图2为例,设定为1/2,假设节点3没有输出正确的共识结果,此时节点3积分影响因子的具体取值为:/>取值为1,/>取值为-1;此时节点0的具体取值为:/>取值为2,取值为1;此时节点1、2的具体取值为:/>取值为1,/>取值为0.1。假设本次为第一次共识,那么,
节点0的信誉积分值为。
节点1、2的信誉积分值为。
节点3的信誉积分值为。
通过这种方式,可以将积分低的节点换出共识集,不仅如此,在主节点和副本节点之间设置一个激励因子,用于区别主节点与副本节点对整轮共识的贡献量,保证在成功共识后,主节点贡献值增长比副本节点大,从而保证它的积极性使得下一轮共识顺利进行,失败时贡献值减少量比副本节点大,对主节点的作恶行为进行严厉惩罚。
本发明在优化了PBFT共识过程的基础上引入阈值签名方案,并通过排序分数选择代表节点参与共识,通过附图4、图5以及图6可以清晰地看出,在不同节点数量下,本发明公开的DSE-PBFT共识算法大大减少了传统PBFT共识网络的通信次数,降低了网络的交易时延,提高了共识算法的吞吐量,提高了系统的安全性,可以有效应对医药溯源在大规模场景下的挑战,确保高效安全可靠的追溯性能。
以上所述为本发明的具体实施方式,但本发明保护范围不局限于以上,熟悉本技术领域的技术人员可轻易想到变化或替换。因此,本发明的保护范围以权利要求的保护范围为准。
Claims (3)
1.一种面向大规模医药溯源的PBFT优化方法,其特征在于:所述优化方法包括如下步骤:
步骤1、DSE-PBFT算法初始化,设置超时时间,将所有节点的初始信誉积分和初始影响因子设置为0.5;
步骤2、将所有节点分为共识集和普通集,并且初始化时所有节点的顺序都是随机的,其中所述共识集参与共识,所述普通集不参与共识但接受共识结果;
步骤3、从参与共识过程的所有节点中选择主节点向共识网络发起共识请求;
步骤4、DSE-PBFT算法节点间采用一对多的网络通信,经过预准备、准备、预提交、提交四个阶段实现全局共识,并在四阶段共识过程中使用阈值签名方案,实现全局共识,得出共识结果,因共识超时继而发生视图切换,使用可验证随机函数VRF选举新的主节点,增加主节点的不可预测性,有效避免了主节点恶意攻击;
步骤5、主节点收到确认消息后执行请求的具体操作,并向客户端和所有共识集和普通集广播共识结果,根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程;其中,
在所述步骤4的共识过程中引入阈值签名方案,其中,阈值签名采用基于BLS签名的(k,n)阈值签名方案,最大程度保护共识网络的安全性,BLS签名是基于椭圆曲线secp256r1实现,主要包括以下步骤:
步骤4.1、生成私钥priKi,计算对应的公钥,生成公私钥对;
步骤4.2、计算聚合签名函数;
步骤4.3、验证步骤4.2的聚合签名函数;
所述步骤4.1密钥对生成函数具体包括如下步骤:
步骤4.1.1、在节点的初始化阶段,节点i使用随机数生成器生成私钥priKi:
pubKi=priKi*G (1)
步骤4.1.2、通过步骤4.1.1中的公式计算对应的公钥,每个节点都有了公私钥对,表示为(pubKi,priKi);
步骤4.1.3、每个节点广播自己的公钥,确保每个节点访问自己的私钥和其他节点的公钥;
步骤4.1.4、然后再根据下式(2)计算出n个公钥的聚合公钥P,节点i广播对pubKi的签名以证明pubKi是聚合公钥P的一部分;
P=pubK1+pubK2+…+pubKn (2)
其中G是椭圆曲线secp256r1的基点,基点是预定义的,并且对于每个椭圆曲线参数,基点是固定的;
步骤4.2、计算聚合签名函数具体包括如下步骤:
步骤4.2.1、使用SHA-256作为签名方案的哈希函数,节点i收到消息m后,计算出消息m的摘要d,公式为:
d=hash(m) (3)
步骤4.2.2、在摘要d的基础上,节点根据私钥priKi和公式(4)计算出签名Si:
Si=priKi*H(d) (4)
步骤4.2.3、构建带有签名的消息发送给主节点,并将其加入到本地缓存中以便后续验证,当主节点收到足够多的签名后再根据公式(5)计算出聚合签名S:
其中,H()为曲线哈希函数;
步骤4.3中验证聚合签名S的正确性需要验证公式(6)是否成立,若成立则验证通过,否则验证不通过,
e(G,S)=e(P′,H(d)) (6)
其中,P′是k个节点的聚合公钥;
所述DSE-PBFT算法改进了PBFT的共识流程,将PBFT的网状通信拓扑结构变成线性通信拓扑结构,将通信复杂度从O(n2)降低到O(n),具体的,所述DSE-PBFT算法包括如下步骤:
步骤1.1、请求阶段:客户端c向主节点发送请求消息<REQUEST,o,t,c>来请求执行操作o,其中,t表示请求的时间戳;
步骤1.2、预准备阶段:主节点收到请求消息后,为这个请求分配一个序列号,并向所有备份节点广播预准备消息<<PRE-PREPARE,v,seq,d>,m>,其中,m为请求消息,d为消息m的摘要;
步骤1.3、准备阶段:备份节点收到预准备消息之后进行验证,验证成功后备份节点通过私钥对预准备消息加密得到Si,然后将准备消息<PREPARE,v,seq,d,i,Si>发送给主节点,其中i表示共识节点的id,Si表示节点i对消息加密之后的签名;
步骤1.4、预提交阶段:主节点收到准备消息之后对消息本身以及阈值签名Si进行验证,验证成功后将其写入日志,如果主节点收到了2f个来自不同节点的验证成功的准备消息,则向所有备份节点广播提交消息<PRE-COMMIT,v,seq,d,i,S>,其中S代表将多个签名聚合之后的签名;
步骤1.5、提交阶段:备份节点,收到预提交消息之后对消息本身以及聚合签名进行验证,验证成功后备份节点将提交消息<COMMIT,v,seq,d,i,S>发送给主节点;
步骤1.6、答复阶段:如果主节点累计收到2f个验证成功的来自不同备份节点的提交消息,则执行请求的具体操作,并向客户端以及所有备份节点发送回复消息<REPLY,v,c,i,r>,其中r表示执行请求操作的结果,客户端若收到f+1正确答复,则表示共识已经达成。
2.根据权利要求1所述的一种面向大规模医药溯源的PBFT优化方法,其特征在于:在所述步骤5中,每一轮共识结束后根据节点行为评分,每50个请求更新一次共识集和普通集,对评分较低的共识节点进行降级,评分较高的普通节点通过替换的方式被选为共识节点参与共识,通过基于信誉积分的激励机制,提高了共识效率,增加了共识的动态性。
3.根据权利要求1所述的一种面向大规模医药溯源的PBFT优化方法,其特征在于:所述步骤5每一个节点信誉积分值的更新具体包括如下步骤:
步骤5.1、共识过程引入一个积分影响因子积分影响因子/>用于评估节点在共识过程中的行为对信誉积分的影响,为后续信誉积分值的计算做铺垫,具体的,所述积分影响因子/>计算表示为:
其中,表示节点i在上一个视图v′的积分影响因子,λ是一个偏置因子,用来表示历史信誉值对当前信誉值的影响,Succv表示节点i是否在视图v成功完成共识,如果成功达成共识则取一个正数,如果没有达成共识则取一个负数,α是一个激励因子;
步骤5.2、所述信誉积分是根据节点在每一轮共识中的积分影响因子进行计算,在每一轮共识过程结束后,动态更新节点的信誉积分值,信誉积分值/>计算如下:
其中,表示节点i在视图v共识时的积分信誉值,根据积分影响因子/>数据特性和取值范围,通过信誉积分值/>将信用值转换到值域(0,1),便于信用数据的更新与维护,使得节点积分值由离散型变为相对平衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311715219.5A CN117408718B (zh) | 2023-12-14 | 2023-12-14 | 一种面向大规模医药溯源的pbft优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311715219.5A CN117408718B (zh) | 2023-12-14 | 2023-12-14 | 一种面向大规模医药溯源的pbft优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117408718A CN117408718A (zh) | 2024-01-16 |
CN117408718B true CN117408718B (zh) | 2024-03-08 |
Family
ID=89500310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311715219.5A Active CN117408718B (zh) | 2023-12-14 | 2023-12-14 | 一种面向大规模医药溯源的pbft优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117408718B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
CN113676541A (zh) * | 2021-08-23 | 2021-11-19 | 南昌航空大学 | 一种改进的pbft共识方法 |
CN114519198A (zh) * | 2022-01-27 | 2022-05-20 | 青岛海尔电冰箱有限公司 | 区块链共识方法及计算机可读存储介质 |
CN114785803A (zh) * | 2022-04-20 | 2022-07-22 | 浙江工业大学 | 一种适用于充电桩管理的区块链pbft共识优化方法 |
CN115065468A (zh) * | 2022-07-15 | 2022-09-16 | 辽宁工程技术大学 | 一种基于分组信誉值的pbft共识优化方法 |
CN116015672A (zh) * | 2022-12-15 | 2023-04-25 | 山西大学 | 一种基于信誉模型的pbft共识机制 |
CN116094721A (zh) * | 2022-11-30 | 2023-05-09 | 新疆大学 | 一种基于聚类的可扩展的分片共识算法 |
CN116389483A (zh) * | 2023-04-06 | 2023-07-04 | 山东省计算中心(国家超级计算济南中心) | 一种可监管的区块链动态分片设计方法及系统 |
CN116614516A (zh) * | 2023-04-10 | 2023-08-18 | 河北大学 | 基于声誉改进的pbft共识方法 |
WO2023185051A1 (zh) * | 2022-03-29 | 2023-10-05 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
WO2023185045A1 (zh) * | 2022-03-29 | 2023-10-05 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210026745A1 (en) * | 2019-07-24 | 2021-01-28 | The University Of North Carolina At Charlotte | Methods, systems, and computer readable media for providing byzantine fault tolerance |
-
2023
- 2023-12-14 CN CN202311715219.5A patent/CN117408718B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
CN113676541A (zh) * | 2021-08-23 | 2021-11-19 | 南昌航空大学 | 一种改进的pbft共识方法 |
CN114519198A (zh) * | 2022-01-27 | 2022-05-20 | 青岛海尔电冰箱有限公司 | 区块链共识方法及计算机可读存储介质 |
WO2023185051A1 (zh) * | 2022-03-29 | 2023-10-05 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
WO2023185045A1 (zh) * | 2022-03-29 | 2023-10-05 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
CN114785803A (zh) * | 2022-04-20 | 2022-07-22 | 浙江工业大学 | 一种适用于充电桩管理的区块链pbft共识优化方法 |
CN115065468A (zh) * | 2022-07-15 | 2022-09-16 | 辽宁工程技术大学 | 一种基于分组信誉值的pbft共识优化方法 |
CN116094721A (zh) * | 2022-11-30 | 2023-05-09 | 新疆大学 | 一种基于聚类的可扩展的分片共识算法 |
CN116015672A (zh) * | 2022-12-15 | 2023-04-25 | 山西大学 | 一种基于信誉模型的pbft共识机制 |
CN116389483A (zh) * | 2023-04-06 | 2023-07-04 | 山东省计算中心(国家超级计算济南中心) | 一种可监管的区块链动态分片设计方法及系统 |
CN116614516A (zh) * | 2023-04-10 | 2023-08-18 | 河北大学 | 基于声誉改进的pbft共识方法 |
Non-Patent Citations (3)
Title |
---|
Maofan Yin等.HotStuff: BFT Consensus in the Lens of Blockchain.arXiv.2019,1-23. * |
SBFT: a Scalable and Decentralized Trust Infrastructure;Guy Golan Gueta;2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks;20191231;568-580 * |
基于 PBFT 优化的联盟链共识算法研究;王飞龙;中国优秀硕士学位论文全文数据库信息科技辑;20231015(第10期);I138-143 * |
Also Published As
Publication number | Publication date |
---|---|
CN117408718A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108711052B (zh) | 一种基于区块链的信息验证系统 | |
CN109842606B (zh) | 基于一致性哈希算法的区块链共识算法和系统 | |
CN111445334B (zh) | 一种区块链系统的聚合签名方法、装置及存储介质 | |
CN112468302B (zh) | 基于可验证多方秘密分享的可编辑区块链 | |
CN111241114A (zh) | 一种结合交易与共识的智能服务交易区块链信誉管理方法和系统 | |
CN112968883B (zh) | 一种安全性高的区块链异构共识方法及终端 | |
JP7407925B2 (ja) | フローラインフレンドリーな署名と署名検証方法、設備および記憶媒体 | |
CN109583893A (zh) | 可追踪的基于区块链的数字货币交易系统 | |
CN109447634A (zh) | 一种锁定账户秘钥更新方法及采用该方法的区块链账户管理方法 | |
CN109981565A (zh) | 基于Meta-BFT共识机制的区块链平台及实现方法 | |
CN113783700B (zh) | 一种分片区块链下安全可监管的权益证明方法及系统 | |
CN117527834B (zh) | 一种基于信誉评分机制的改进pbft共识方法 | |
CN110445795B (zh) | 一种区块链认证唯一性确认方法 | |
CN112804272A (zh) | 变色龙哈希函数的碰撞计算方法及可裁剪区块链账本结构 | |
CN109979550A (zh) | 一种基于分布式属性签名的区块链医疗数据管理方法和系统 | |
CN109919760A (zh) | 基于投票机制的拜占庭容错共识算法 | |
CN116094721A (zh) | 一种基于聚类的可扩展的分片共识算法 | |
CN111865595B (zh) | 一种区块链的共识方法及装置 | |
CN116595094A (zh) | 基于区块链的联邦学习激励方法、装置、设备和存储介质 | |
CN112039837A (zh) | 一种基于区块链和秘密共享的电子证据保全方法 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
CN114745131A (zh) | 一种区块链的pbft改进共识算法 | |
CN117408718B (zh) | 一种面向大规模医药溯源的pbft优化方法 | |
CN113222601A (zh) | 一种许可区块链匿名交易背书系统及方法 | |
KR101829731B1 (ko) | 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버 |
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 |