CN117978547A - Trp-pbft共识方法、系统、存储介质及设备 - Google Patents

Trp-pbft共识方法、系统、存储介质及设备 Download PDF

Info

Publication number
CN117978547A
CN117978547A CN202410370730.4A CN202410370730A CN117978547A CN 117978547 A CN117978547 A CN 117978547A CN 202410370730 A CN202410370730 A CN 202410370730A CN 117978547 A CN117978547 A CN 117978547A
Authority
CN
China
Prior art keywords
nodes
node
master node
preparation
messages
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
CN202410370730.4A
Other languages
English (en)
Other versions
CN117978547B (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.)
East China Jiaotong University
Original Assignee
East China 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 East China Jiaotong University filed Critical East China Jiaotong University
Priority to CN202410370730.4A priority Critical patent/CN117978547B/zh
Publication of CN117978547A publication Critical patent/CN117978547A/zh
Application granted granted Critical
Publication of CN117978547B publication Critical patent/CN117978547B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/40Network security protocols
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

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)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种TRP‑PBFT共识方法、系统、存储介质及设备,涉及区块链技术领域,该方法在节点入网和动态调整过程中,引入信任评估机制,通过评估节点的信誉度,将更可靠的节点优先考虑为共识节点;在PBFT中引入多方签名机制,确保了交易在得到多个不同节点的认可后,再进行门限签名,提高了交易的安全性和可信度;在共识过程中,引入快速轮询方法加快节点间消息传递和共识达成,通过在节点中引入一个快速轮询计时器,提高PBFT算法的性能和响应速度;在任何阶段,如果系统检测到恶意节点入侵或数据异常,则采取容错交易重放机制。本发明与传统PBFT相比,在提高吞吐量和降低延迟的同时,提高了系统的安全性和鲁棒性。

Description

TRP-PBFT共识方法、系统、存储介质及设备
技术领域
本发明涉及区块链技术领域,具体涉及一种TRP-PBFT共识方法、系统、存储介质及设备。
背景技术
随着数字化时代的来临,区块链技术已成为一个备受关注的研究热点。区块链技术的出现,为许多传统行业带来了前所未有的变革机遇。作为一种分布式、去中心化的数据存储与传输技术,区块链能够确保数据的不可篡改性和透明性,从而极大地提高了数据的可信度。
在区块链技术中,共识机制是确保网络节点间数据一致性的核心组件。共识机制的目标是确保网络中的所有节点对于某个交易或状态更改达成一致,即使在存在恶意节点或网络故障的情况下也能保持系统的稳定性和安全性。目前,区块链中的共识算法主要包括工作量证明(Proof of Work, PoW)、股权证明(Proof of Stake, PoS)、授权股权证明(Delegated Proof of Stake, DPOS)和实用拜占庭容错(Practical Byzantine FaultTolerance, PBFT)等。其中,PBFT算法因其高效、安全的特点而受到广泛关注。
PBFT算法是一种基于投票的共识机制,旨在解决分布式系统中的拜占庭将军问题。该算法通过多轮投票和通信过程,确保在存在恶意节点的情况下,系统仍能达成正确的共识。PBFT算法的核心思想是将节点分为三类:主节点、备份节点和客户端节点。在每一轮共识过程中,主节点负责提出交易请求并收集备份节点的投票结果,备份节点则对交易进行验证并投票。当且仅当超过2/3的备份节点对交易达成一致时,该交易才能被确认并写入区块链。PBFT算法的优点在于其高效性和安全性。相比于PoW等算力竞赛型共识算法,PBFT算法在达成共识的过程中无需消耗大量的计算资源。此外,PBFT算法对恶意节点的容忍度较高,能够在恶意节点不超过总数1/3的情况下保证系统的安全性。
然而,随着区块链网络规模的扩大,PBFT算法面临着性能瓶颈和安全性挑战。首先,PBFT算法是一种部分同步模式共识算法,为了确保非故障节点按相同顺序执行客户端请求,采用三阶广播通信实现异步模式下的安全性,导致大量通信开销。此外,PBFT算法需要进行点对点通信来实现拜占庭容错共识,在N个节点的网络中,PBFT通信的时间复杂度为O(N2),并且经过三个阶段的共识后,消息传输次数为2N(N-1),当节点数量超过一定限制时,PBFT协议的性能会急剧下降。最后,PBFT算法中主节点的选取是随意的,导致选到恶意节点的概率较高,从而影响了系统的安全性和效率。
发明内容
针对现有技术的不足,本发明的目的在于提供一种TRP-PBFT共识方法、系统、存储介质及设备,旨在将更可靠的节点优先考虑为共识节点,以降低恶意节点入侵的可能性,有效减少节点间通信的资源损耗,从而显著提升系统的运行效率和安全性。
本发明的第一方面在于提供一种TRP-PBFT共识方法,所述方法包括:
在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点;
当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息;
当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证;
当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息;
按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交;
当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息;
按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行;
当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
根据上述技术方案的一方面,所述信誉值根据主节点、副本节点的性能得分与网络声誉得分评估得到。
根据上述技术方案的一方面,性能指标评估的过程包括:
对收集到的性能指标进行归一化处理,将不同指标的取值范围映射到[0,1]之间,归一化计算公式为:
式中,X为对应的原始性能指标值,计算得到归一化之后的响应时间、交易处理速度与数据传输速率;
并为每个性能指标分配预设权重,根据其重要性确定权重值,计算每个节点的加权平均性能得分;
加权平均性能得分计算公式为:
其中,为加权平均性能得分,/>为响应时间的权重参数,/>为交易处理速度的权重参数,/>为数据传输速率的权重参数,以表示每个指标的相对重要性。
根据上述技术方案的一方面,网络声誉评估的过程包括:
引入t、d、u共3个变量来描述节点的信任关系,变量由历史交易节点产生的评价计算所得,计算公式为:
式中,其中,t为对目标节点的信任度,d为对目标节点的不信任度,u为对目标节点的不确定程度,满足,取值范围为/>,p为对节点否定事件的惩罚因子,取值大于1,c为不确定因子,/>,r为关于目标节点的肯定事件数,s为否定事件数,E为节点的交易数;
基于节点的信任关系,计算节点i的声誉分数,计算公式为:
根据上述技术方案的一方面,综合信任评估的过程包括:
结合性能指标和网络声誉评价得分,最终的信任计算公式表示为:
;
上述信任计算公式考虑了节点的性能指标分数和网络声誉评价分数,通过来调整两者的权重,当/>时,只考虑性能指标分数,而当/>时,只考虑网络声誉信任分数。
根据上述技术方案的一方面,副本节点根据多方签名机制对预准备消息进行验证的过程,包括:
通过用户公钥解密对应的私钥加密的散列值;
获取多个用户的公钥,建立多方签名函数,并生成多方加密字符串;
基于多方加密字符串对交易信息进行共同加密。
根据上述技术方案的一方面,在任意阶段,若检测到恶意节点入侵或数据异常,重新执行受影响的交易,确保准确的交易结果被写入区块链;
其中,若发生恶意攻击则将恶意节点从节点组中踢出,同时引入副本普通节点替代恶意节点。
本发明的第二方面在于提供一种TRP-PBFT共识系统,应用于上述技术方案当中所述的共识方法,所述共识系统包括:
信任评估模块,用于在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,用于将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点;
请求预处理模块,用于当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息;
副本节点验证模块,用于当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证;
广播准备模块,用于当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息;
轮询验证准备模块,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交;
广播提交模块,用于当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息;
轮询验证提交模块,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行;
执行模块,用于当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
本发明的第三方面在于提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述技术方案当中所述的共识方法。
本发明的第四方面在于提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可实现所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述技术方案当中所述的共识方法。
与现有技术相比,采用本发明所示的TRP-PBFT共识方法、系统、存储介质及设备,有益效果在于:
通过优化PBFT的主节点选举机制和共识流程,引入信任评估机制,降低了恶意节点入侵的可能性,并提高系统对异常节点的识别能力;引入多方签名机制,提高了交易的安全性和可信度;引入快速轮询方法加快节点间消息传递和共识达成的过程,减少通信开销。则本实施例所示TRP-PBFT共识与传统PBFT相比,在提高吞吐量和降低延迟的同时,提高了系统的安全性和鲁棒性。
附图说明
本发明的上述与/或附加的方面与优点从结合下面附图对实施例的描述中将变得明显与容易理解,其中:
图1为本发明一实施例中TRP-PBFT共识方法的流程示意图;
图2为本发明一实施例中TRP-PBFT共识方法的共识过程图;
图3为本发明一实施例中TRP-PBFT共识方法的多方签名过程图;
图4为本发明一实施例中TRP-PBFT共识方法在不同节点下与传统PBFT的吞吐量对比图;
图5为本发明一实施例中TRP-PBFT共识方法在不同时间范围内与传统PBFT的延迟对比图;
图6为本发明第二实施例中TRP-PBFT共识系统的结构框图。
具体实施方式
为使本发明的目的、特征与优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1与图2,图1为本发明的第一实施例所示的一种TRP-PBFT共识方法的流程示意图,所述方法包括步骤S1-步骤S8:
步骤S1,在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点。
具体而言,步骤S1为初始化阶段。
在系统初始化阶段,设定主节点和副本节点的节点数量,并为每个节点计算信誉值。将副本节点按照信誉值从高到低进行排序,将信誉值较高的节点作为主备份节点,将除主备份节点以外其他信誉值较低的节点作为副本普通节点。
在本实施例当中,所述信誉值根据主节点、副本节点的性能得分与网络声誉得分评估得到。
其中,性能指标评估的过程包括:
对收集到的性能指标进行归一化处理,将不同指标的取值范围映射到[0,1]之间,归一化计算公式为:
式中,X为对应的原始性能指标值,计算得到归一化之后的响应时间、交易处理速度与数据传输速率;
并为每个性能指标分配预设权重,根据其重要性确定权重值,计算每个节点的加权平均性能得分;
加权平均性能得分计算公式为:
其中,为加权平均性能得分,/>为响应时间的权重参数,/>为交易处理速度的权重参数,/>为数据传输速率的权重参数,以表示每个指标的相对重要性。
进一步的,网络声誉评估的过程包括:
引入t、d、u共3个变量来描述节点的信任关系,变量由历史交易节点产生的评价计算所得,计算公式为:
式中,其中,t为对目标节点的信任度,d为对目标节点的不信任度,u为对目标节点的不确定程度,满足,取值范围为/>,p为对节点否定事件的惩罚因子,取值大于1,c为不确定因子,/>,r为关于目标节点的肯定事件数,s为否定事件数,E为节点的交易数;
基于节点的信任关系,计算节点i的声誉分数,计算公式为:
进一步的,综合信任评估的过程包括:
结合性能指标和网络声誉评价得分,最终的信任计算公式表示为:
上述信任计算公式考虑了节点的性能指标分数和网络声誉评价分数,通过来调整两者的权重,当/>时,只考虑性能指标分数,而当/>时,只考虑网络声誉信任分数。
进一步的,在进行声誉值计算时,还包括容忍度评估,容忍度评估过程包括:
设置信任度的阈值,只有信任度达到一定水平的节点才能参与共识过程,如果,则淘汰该节点。阈值的设定根据系统的安全性和性能需求进行平衡。
步骤S2,当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息。
具体而言,步骤S2为请求预准备阶段(Request Pre-prepare Phase)。
客户端将请求发送给主节点(Primary);
主节点收到请求后,将该请求预准备,并向其所在组的所有副本节点广播预准备消息(Pre-prepare),主节点设置一个快速轮询计时器,并开始等待足够数量的副本节点的预准备消息;
副本节点收到主节点的预准备消息后,也会设置快速轮询计时器,并开始等待其他副本节点的预准备消息。
步骤S3,当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证。
具体而言,步骤S3为副本节点验证预准备阶段(Backup Node Verify Pre-prepare Phase)。
副本节点收到来自主节点和其他副本节点的预准备消息,副本节点根据多方签名机制对预准备消息进行验证,确保消息的完整性和真实性。如果验证通过,副本节点继续准备阶段,否则忽略该消息。
请参阅图3,在本实施例当中,副本节点根据多方签名机制对预准备消息进行验证的过程,包括:
通过用户公钥解密对应的私钥加密的散列值;
获取多个用户的公钥,建立多方签名函数,并生成多方加密字符串;
基于多方加密字符串对交易信息进行共同加密。
具体而言,采用一个点和一个标量/>来代替两个标量/>,/>是椭圆曲线上的一个随机点,/>
其中,为随机数,/>为椭圆曲线中固定的基点,/>为私钥,/>为实际用于签名过程的私钥或私钥的一部分,而/>为公钥,/>为需要被签名的消息,通过检查可以验证这个签名。
其中,在签名过程中,消息被哈希处理,并用于计算签名的第二部分。签名应该能够证明消息的完整性和发送者的身份,而消息本身可以是任何形式的数据。另外,由于该方程是线性的,所以方程可互相加减,并且仍然有效。通过使用多方签名函数,可以将所有签名验证方程相加,由于验证方程是线性的,只要所有签名都有效,几个方程的和就有效。
例如,假设需要10个签名,则需验证:
进一步的,多方安全签名的过程包括:
客户端提交交易请求。客户端将交易请求发送给主节点进行处理。
Pre-prepare阶段。主节点收到交易请求后,首先生成一个全局唯一的消息序列号(Sequence Number),并向其他副本节点广播Pre-prepare消息,即Pre-prepare(view,seq,tx),其中包含交易请求、消息序列号等信息。其他副本节点收到Pre-prepare消息后,验证消息序列号的唯一性,并验证交易请求的有效性。
Prepare阶段。当备份节点收到Pre-prepare消息后,首先验证该消息的合法性,包括检查视图号是否正确,消息序列号是否唯一,以及交易请求的有效性。如果验证通过,则备份节点对该消息进行Prepare签名,并将Prepare消息,即Prepare(view,seq,hash(tx),sign_i)广播给其他节点。备份节点收集其他节点的Prepare签名,如果收集到了至少t个不同节点的Prepare签名,则认为该消息通过Prepare阶段验证,该节点可以进入commit阶段。
Commit阶段。当备份节点收集到至少t个不同节点的Prepare签名后,它会生成一个Commit消息,并将Commit消息,即Commit(view,seq,hash(tx),sign_i)广播给其他节点。备份节点收集其他节点的Commit签名,如果收集到了至少t个不同节点的Commit签名,则认为该消息通过Commit阶段验证。
多方签名。在Commit阶段,如果节点收集到了至少t个不同节点的Commit消息,说明交易已经得到足够多的认可,可以进行多方签名。节点将收集到的t个不同节点的Commit消息作为输入,使用多方签名算法生成一个全局的交易签名,比如将这些签名合并成一个(t,n)门限签名,用于认证交易。该全局签名,即Threshold_Signature(t,n,{Prepare_signatures},{Commit_signatures})会包含所有参与到交易验证的节点,确保了交易被足够多的节点认可。
交易完成。备份节点得到(t,n)门限签名后,将该签名附加到交易请求上,并广播Commit消息,通知其他节点该交易已经得到认可,并可以写入区块链。
通过以上过程,在PBFT中引入了多方签名机制,确保了交易在得到至少t个不同节点的认可后,再进行(t,n)门限签名,提高了交易的安全性和可信度。
步骤S4,当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息。
具体而言,步骤S4为准备阶段(Prepare Phase)。
一旦主节点收到足够数量的副本节点的预准备消息,它会广播一个准备消息(Prepare)给其所在组的所有节点,包括自己和副本节点。主节点和副本以及备份节点开始等待足够数量的准备消息。副本节点收到足够数量的准备消息后,它们会向所有节点广播准备消息。
步骤S5,按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交。
具体而言,步骤S5为快速轮询验证准备阶段(Fast Poll Verify PreparePhase)。
在快速轮询验证准备阶段,节点根据快速轮询计时器的设定,进行快速轮询。当节点在准备阶段需要进行快速轮询时,计时器开始计时。一旦收到足够数量的准备消息或达到计时器设定的阈值,节点可以立即进行提交阶段,而无需等待其他节点的响应。
步骤S6,当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息。
具体而言,步骤S6为提交阶段(Commit Phase)。
一旦主节点收到足够数量的准备消息,它会广播一个提交消息(Commit)给其所在组的所有节点,包括自己和副本节点。主节点和副本节点开始等待足够数量的提交消息。副本节点收到足够数量的提交消息后,它们会向其所在组的所有节点广播提交消息。
步骤S7,按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行。
具体而言,步骤S7为快速轮询验证提交阶段(Fast Poll Verify Commit Phase)。
在快速轮询验证提交阶段,节点根据快速轮询计时器的设定,进行快速轮询。当节点在提交阶段需要进行快速轮询时,计时器开始计时。一旦收到足够数量的提交消息或达到计时器设定的阈值,节点可以立即进行完成阶段,而无需等待其他节点的响应。
步骤S8,当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
具体而言,步骤S8为完成阶段(Finalization Phase)。
一旦主节点收到足够数量的提交消息,就确认交易的执行,并将结果广播给其所在组的所有节点,包括副本节点。主节点和副本节点根据结果更新本地状态。
本实施例当中所示方法还包括:
在任意阶段,若检测到恶意节点入侵或数据异常,重新执行受影响的交易,确保准确的交易结果被写入区块链;
其中,若发生恶意攻击则将恶意节点从节点组中踢出,同时引入副本普通节点替代恶意节点。
具体而言,在任何阶段,如果系统检测到恶意节点入侵或数据异常,则采取容错交易重放机制。即重新执行受影响的交易,确保正确的交易结果被写入区块链。若发生恶意攻击行为则将恶意节点从集群中踢出。同时,引入副本节点备份节点来替代被踢出的节点。
请参阅图4,吞吐量是衡量区块链系统效率和性能的一个重要指标,较高的吞吐量意味着系统能够更快速地处理更多的交易或区块,从而提高整体性能。
本实施例将交易数目设置为一个区块打包交易50个,测试共识时间(块时间)为5秒时,不同节点下TRP-PBFT与传统PBFT的吞吐量差异。
传统PBFT的吞吐量从初始的39.73增加到了170.9649,而TRP-PBFT的吞吐量从108.3784增加到了169.8357。随着节点数目的增加,无论是PBFT还是TRP-PBFT,吞吐量都呈递增趋势。因为更多的节点能够并行处理更多的交易,从而提高整体系统的吞吐量。然而,当节点数目达到一定阈值后,增加更多的节点可能不再显著提高吞吐量,形成一个饱和点。在这组实验条件下,TRP-PBFT算法相对于传统的PBFT算法在各个节点数目下都表现出很好的吞吐量性能,并且在节点数目较大时更为稳定。这是因为与PBFT相比,TRP-PBFT增加了信誉值计算和节点分组等机制,选择的主节点发生故障的概率较低,从而提高了系统的并行处理能力和容错性,在大规模节点网络中能够保持较高的吞吐量。
请参阅图5,区块链延迟是共识算法一个关键的性能指标,它是指从交易提交到最终在区块链上被确认的过程中所经过的时间。
本实施例分别在10-60s的时间范围内对TRP-PBFT与传统PBFT的延迟时间进行比较。
在给定的时间范围内,TRP-PBFT算法相对于PBFT算法表现出更低的延迟,且在延迟稳定性方面更具优势。TRP-PBFT算法的延迟上升趋势相对平缓,例如,在10秒到20秒的时间段内,延迟从325.00ms增加到330.02ms,增加幅度较小且平稳。在其他时间段内,TRP-PBFT算法的延迟也呈现类似的趋势,没有出现明显的跃升。而PBFT算法的延迟上升趋势则相对较为明显,在不同时间段内出现较大波动。因此,实验结果表明,TRP-PBFT算法在适当的节点范围内具有更好的稳定性和鲁棒性,在延迟方面表现更佳。
综上,与现有技术相比,本实施例所示的TRP-PBFT共识方法,有益效果在于:
通过优化PBFT的主节点选举机制和共识流程,引入信任评估机制,降低了恶意节点入侵的可能性,并提高系统对异常节点的识别能力;引入多方签名机制,提高了交易的安全性和可信度;引入快速轮询方法加快节点间消息传递和共识达成的过程,减少通信开销。则本实施例所示TRP-PBFT共识与传统PBFT相比,在提高吞吐量和降低延迟的同时,提高了系统的安全性和鲁棒性。
实施例二
请参阅图6,所示为本实施例所示一种TRP-PBFT共识系统的结构框图,该共识系统应用于实施例一所示的共识方法,所述共识系统包括:
信任评估模块10,用于在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点;
请求预处理模块20,用于当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息;
副本节点验证模块30,用于当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证;
广播准备模块40,用于当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息;
轮询验证准备模块50,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交;
广播提交模块60,用于当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息;
轮询验证提交模块70,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行;
执行模块80,用于当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
与现有技术相比,本实施例所示的TRP-PBFT共识系统,有益效果在于:
通过优化PBFT的主节点选举机制和共识流程,引入信任评估机制,降低了恶意节点入侵的可能性,并提高系统对异常节点的识别能力;引入多方签名机制,提高了交易的安全性和可信度;引入快速轮询方法加快节点间消息传递和共识达成的过程,减少通信开销。则本实施例所示TRP-PBFT共识与传统PBFT相比,在提高吞吐量和降低延迟的同时,提高了系统的安全性和鲁棒性。
实施例三
本发明的第三实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例当中所述的共识方法。
实施例四
本发明的第四实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可实现所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例当中所述的共识方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体与详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形与改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种TRP-PBFT共识方法,其特征在于,所述方法包括:
在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点;
当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息;
当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证;
当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息;
按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交;
当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息;
按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行;
当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
2.根据权利要求1所述的TRP-PBFT共识方法,其特征在于,所述信誉值根据主节点、副本节点的性能得分与网络声誉得分评估得到。
3.根据权利要求2所述的TRP-PBFT共识方法,其特征在于,性能指标评估的过程包括:
对收集到的性能指标进行归一化处理,将不同指标的取值范围映射到[0,1]之间,归一化计算公式为:
式中,X为对应的原始性能指标值,计算得到归一化之后的响应时间、交易处理速度与数据传输速率;
并为每个性能指标分配预设权重,根据其重要性确定权重值,计算每个节点的加权平均性能得分;
加权平均性能得分计算公式为:
其中,为加权平均性能得分,/>为响应时间的权重参数,/>为交易处理速度的权重参数,/>为数据传输速率的权重参数,以表示每个指标的相对重要性。
4.根据权利要求2所述的TRP-PBFT共识方法,其特征在于,网络声誉评估的过程包括:
引入t、d、u共3个变量来描述节点的信任关系,变量由历史交易节点产生的评价计算所得,计算公式为:
式中,其中,t为对目标节点的信任度,d为对目标节点的不信任度,u为对目标节点的不确定程度,满足,取值范围为/>,p为对节点否定事件的惩罚因子,取值大于1,c为不确定因子,/>,r为关于目标节点的肯定事件数,s为否定事件数,E为节点的交易数;
基于节点的信任关系,计算节点i的声誉分数,计算公式为:
5.根据权利要求2-4任一项所述的TRP-PBFT共识方法,其特征在于,综合信任评估的过程包括:
结合性能指标和网络声誉评价得分,最终的信任计算公式表示为:
上述信任计算公式考虑了节点的性能指标分数和网络声誉评价分数,通过来调整两者的权重,当/>时,只考虑性能指标分数,而当/>时,只考虑网络声誉信任分数。
6.根据权利要求1所述的TRP-PBFT共识方法,其特征在于,副本节点根据多方签名机制对预准备消息进行验证的过程,包括:
通过用户公钥解密对应的私钥加密的散列值;
获取多个用户的公钥,建立多方签名函数,并生成多方加密字符串;
基于多方加密字符串对交易信息进行共同加密。
7.根据权利要求1所述的TRP-PBFT共识方法,其特征在于,在任意阶段,若检测到恶意节点入侵或数据异常,重新执行受影响的交易,确保准确的交易结果被写入区块链;
其中,若发生恶意攻击则将恶意节点从节点组中踢出,同时引入副本普通节点替代恶意节点。
8.一种TRP-PBFT共识系统,应用于权利要求1-7任一项所述的共识方法,其特征在于,所述共识系统包括:
信任评估模块,用于在初始化过程中,分别设定主节点与副本节点的节点数量,并计算每个主节点与副本节点的信誉值,将副本节点按照信誉值从高到低进行排序,确定信誉值最高的副本节点为主备份节点,确定除主备份节点以外的副本节点为副本普通节点;
请求预处理模块,用于当主节点接收到由客户端提交的交易请求时,向预先分配于同组的所有副本节点广播一预准备消息,并设定轮询计时器,等待所有副本节点发送预准备消息,当副本节点接收到主节点广播的预准备消息时,设定轮询计时器,并开始等待由其它副本节点发送的预准备消息;
副本节点验证模块,用于当副本节点接收到主节点与其他副本节点发送的预准备消息,副本节点根据多方签名机制对预准备消息进行验证;
广播准备模块,用于当主节点接收到预设数量的预准备消息,主节点广播一准备消息给所在组的所有节点,主节点与副本节点开始等待预设数量的准备消息,当副本节点接收到预设数量的准备消息,向所有节点广播准备消息;
轮询验证准备模块,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的准备消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而提交;
广播提交模块,用于当主节点接收到预设数量的准备消息,控制主节点广播提交消息给所在组的所有节点,主节点与副本节点开始等待预设数量的提交消息,当副本节点接收到预设数量的准备消息,向所在组的所有节点广播提交消息;
轮询验证提交模块,用于按照轮询计时器的设定对节点进行快速轮询,当主节点接收到预设数量的提交消息或达到计时器设定的时间阈值,则主节点无需等待其它节点响应而确定执行;
执行模块,用于当主节点接收到预设数量的提交消息,确定客户端所提交交易的执行,并将执行结果广播至所在组的所有节点,并控制主节点与副本节点会根据执行结果更新本地状态。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述的共识方法。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可实现所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述的共识方法。
CN202410370730.4A 2024-03-29 2024-03-29 Trp-pbft共识方法、系统、存储介质及设备 Active CN117978547B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410370730.4A CN117978547B (zh) 2024-03-29 2024-03-29 Trp-pbft共识方法、系统、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410370730.4A CN117978547B (zh) 2024-03-29 2024-03-29 Trp-pbft共识方法、系统、存储介质及设备

Publications (2)

Publication Number Publication Date
CN117978547A true CN117978547A (zh) 2024-05-03
CN117978547B CN117978547B (zh) 2024-06-07

Family

ID=90859905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410370730.4A Active CN117978547B (zh) 2024-03-29 2024-03-29 Trp-pbft共识方法、系统、存储介质及设备

Country Status (1)

Country Link
CN (1) CN117978547B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493198A (zh) * 2019-07-26 2019-11-22 北京工业大学 一种基于改进PBFT算法防御区块链中Sybil攻击的方法
WO2019222993A1 (zh) * 2018-05-25 2019-11-28 北京大学深圳研究生院 一种基于信任关系的区块链共识方法
WO2020221292A1 (zh) * 2019-04-29 2020-11-05 互达控股有限公司 基于多个节点的网络交易验证方法及其系统和存储介质
CN112532581A (zh) * 2020-10-26 2021-03-19 南京辰阔网络科技有限公司 一种基于共识参与度和交易活跃度的改进pbft共识方法
CN112532396A (zh) * 2020-12-04 2021-03-19 广东工业大学 一种基于聚合签名的优化拜占庭容错方法及存储介质
CN115529614A (zh) * 2022-09-16 2022-12-27 国网河南省电力公司信息通信公司 Ad Hoc网络中基于PBFT共识算法的节点信任度评价方法
CN115665170A (zh) * 2022-10-17 2023-01-31 重庆邮电大学 基于信誉和节点压缩机制的区块链共识方法
CN116170155A (zh) * 2023-02-21 2023-05-26 西安理工大学 基于pbft改进的联盟区块链共识方法
CN116614516A (zh) * 2023-04-10 2023-08-18 河北大学 基于声誉改进的pbft共识方法
CN116633942A (zh) * 2023-04-26 2023-08-22 浙江大学 一种高速响应客户端的拜占庭容错共识方法
WO2023185045A1 (zh) * 2022-03-29 2023-10-05 蚂蚁区块链科技(上海)有限公司 一种区块链上产生随机数种子的方法、系统和共识节点
WO2023185051A1 (zh) * 2022-03-29 2023-10-05 蚂蚁区块链科技(上海)有限公司 一种区块链上产生随机数种子的方法、系统和共识节点
CN117527834A (zh) * 2024-01-04 2024-02-06 成都理工大学 一种基于信誉评分机制的改进pbft共识方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019222993A1 (zh) * 2018-05-25 2019-11-28 北京大学深圳研究生院 一种基于信任关系的区块链共识方法
WO2020221292A1 (zh) * 2019-04-29 2020-11-05 互达控股有限公司 基于多个节点的网络交易验证方法及其系统和存储介质
CN110493198A (zh) * 2019-07-26 2019-11-22 北京工业大学 一种基于改进PBFT算法防御区块链中Sybil攻击的方法
CN112532581A (zh) * 2020-10-26 2021-03-19 南京辰阔网络科技有限公司 一种基于共识参与度和交易活跃度的改进pbft共识方法
CN112532396A (zh) * 2020-12-04 2021-03-19 广东工业大学 一种基于聚合签名的优化拜占庭容错方法及存储介质
WO2023185045A1 (zh) * 2022-03-29 2023-10-05 蚂蚁区块链科技(上海)有限公司 一种区块链上产生随机数种子的方法、系统和共识节点
WO2023185051A1 (zh) * 2022-03-29 2023-10-05 蚂蚁区块链科技(上海)有限公司 一种区块链上产生随机数种子的方法、系统和共识节点
CN115529614A (zh) * 2022-09-16 2022-12-27 国网河南省电力公司信息通信公司 Ad Hoc网络中基于PBFT共识算法的节点信任度评价方法
CN115665170A (zh) * 2022-10-17 2023-01-31 重庆邮电大学 基于信誉和节点压缩机制的区块链共识方法
CN116170155A (zh) * 2023-02-21 2023-05-26 西安理工大学 基于pbft改进的联盟区块链共识方法
CN116614516A (zh) * 2023-04-10 2023-08-18 河北大学 基于声誉改进的pbft共识方法
CN116633942A (zh) * 2023-04-26 2023-08-22 浙江大学 一种高速响应客户端的拜占庭容错共识方法
CN117527834A (zh) * 2024-01-04 2024-02-06 成都理工大学 一种基于信誉评分机制的改进pbft共识方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
FEI TANG: "TP-PBFT: A Scalable PBFT Based on Threshold Proxy Signature for IoT-Blockchain Applications", 《 IEEE INTERNET OF THINGS JOURNAL 》, 25 December 2023 (2023-12-25) *
GUANGQUAN XU: "SG-PBFT: a Secure and Highly Efficient Blockchain PBFT Consensus Algorithm for Internet of Vehicles", 《COMPUTER SCIENCE SOFTWARE ENGINEERING》, 14 March 2021 (2021-03-14) *
冯了了: "区块链BFT共识算法研究进展", 《计算机科学》, 3 April 2022 (2022-04-03) *
沈学利: "基于节点动态评分机制的分组共识算法", 《计算机应用研究》, 2 November 2023 (2023-11-02) *
赖英旭;薄尊旭;刘静;: "基于改进PBFT算法防御区块链中sybil攻击的研究", 通信学报, no. 09, 25 September 2020 (2020-09-25) *
韩嗣诚;朱晓荣;张秀贤;: "优化可扩展的拜占庭容错共识算法", 物联网学报, no. 02, 18 May 2020 (2020-05-18) *
韩镇阳;宫宁生;任珈民;: "一种区块链实用拜占庭容错算法的改进", 计算机应用与软件, no. 02, 12 February 2020 (2020-02-12) *

Also Published As

Publication number Publication date
CN117978547B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
CN108667614B (zh) 一种拜占庭容错方法及其实现系统
CN109919760A (zh) 基于投票机制的拜占庭容错共识算法
Nie et al. NCLAS: a novel and efficient certificateless aggregate signature scheme
CN111682942A (zh) 一种应用于许可链的二元加权拜占庭容错共识方法
CN113837758A (zh) 一种区块链系统的共识方法及装置
CN112395113B (zh) 实用拜占庭容错共识方法及装置、可读存储介质
EP4004853A1 (en) Unity protocol consensus
CN112636905A (zh) 基于多角色的可扩展共识机制的系统及方法
CN112039837B (zh) 一种基于区块链和秘密共享的电子证据保全方法
CN115225639B (zh) 共识可信集群的变更方法、装置、计算机设备及介质
CN117527834B (zh) 一种基于信誉评分机制的改进pbft共识方法
CN113660125A (zh) 一种基于随机可信委员会的共识方法及装置
CN115022326B (zh) 基于协同过滤推荐的区块链拜占庭容错共识方法
CN113010872A (zh) 一种身份认证方法、装置、计算机设备及存储介质
CN110990790B (zh) 一种数据处理方法及设备
CN115834579A (zh) 一种区块链共识方法、装置、系统及电子设备
CN114422146B (zh) 一种区块链主节点匿名排序方法
CN117745433B (zh) 基于改进pbft共识机制的能源区块链节点共识方法
CN117251889B (zh) 区块链共识方法、相关装置和介质
CN114140233A (zh) 分片区块链安全跨片视图转换方法及装置
CN117978547B (zh) Trp-pbft共识方法、系统、存储介质及设备
CN115378788B (zh) 基于分层共识和强化学习的区块链性能自适应优化方法
CN114466034B (zh) 一种基于匿名主节点的区块链共识方法
Jiang et al. An efficient Byzantine fault-tolerant consensus mechanism based on threshold signature
CN112116461A (zh) 区块链及其共识方法

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