CN117745433B - 基于改进pbft共识机制的能源区块链节点共识方法 - Google Patents
基于改进pbft共识机制的能源区块链节点共识方法 Download PDFInfo
- Publication number
- CN117745433B CN117745433B CN202410182173.3A CN202410182173A CN117745433B CN 117745433 B CN117745433 B CN 117745433B CN 202410182173 A CN202410182173 A CN 202410182173A CN 117745433 B CN117745433 B CN 117745433B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- consensus
- energy
- message
- 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 46
- 230000007246 mechanism Effects 0.000 title claims abstract description 30
- 238000011156 evaluation Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 25
- 230000006854 communication Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 abstract 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 4
- 229910052799 carbon Inorganic materials 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 241001481828 Glyptocephalus cynoglossus Species 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于改进PBFT共识机制的能源区块链节点共识方法,包括根据信誉交叉评估机制,对能源区块链的节点进行信誉值初始化;将节点依据信誉值降序排序并从末尾取f个节点移入拜占庭节点集,将剩余节点分入可信节点集;从可信节点集中选取节点生成候选节点分组,并从候选节点分组中选出共识节点组成共识节点集;结合可验证随机函数和能源交易活跃度从共识节点集中随机选择主节点;共识节点执行CPBFT,完成本轮共识;更新所有节点的信誉值,并更新拜占庭节点集和可信节点集,确定候选节点分组,进行下一轮共识。本发明提高了能源区块链网络的弹性和安全性,同时提升了共识节点的效率,加快了用能权交易信息打包上链。
Description
技术领域
本发明涉及能源区块链技术领域,具体地讲,是涉及一种基于改进PBFT共识机制的能源区块链节点共识方法。
背景技术
能源区块链节点是指对水、电、风、潮汐、太阳能等清洁能源进行采集的物联网设备或者传统火力发电厂、钢铁厂、化工厂等碳排放量巨大的工业厂区,相互之间可进行用能权交易和碳排放交易。
能源权证量包括用能权拥有量和碳排放额度拥有量,能源交易活跃度是指本轮和上一轮能源交易开始时用能权拥有量差值的绝对值与碳排放额度拥有量差值绝对值之和。
传统的能源交易和管理系统通常由中央实体控制,这种集中式模型存在着多种问题,包括安全性风险、不透明性和低效率。随着区块链技术的不断发展,能源行业开始探索将其与区块链相结合,以构建更加分散、透明和高效的能源交易和管理系统。在能源区块链中,共识机制是确保交易的有效性和安全性的核心要素。不同的共识机制对于能源市场的不同需求可能更为适用。例如,Proof of Work(PoW)和Proofof Stake(PoS)等共识机制已经在区块链领域广泛使用,但它们的能源消耗和性能问题可能需要在能源行业中加以考虑。因此,选择适当的共识机制对于构建可持续、高效的能源区块链系统至关重要。
PBFT共识算法是一种拜占庭容错共识机制,它通过在节点之间建立信任,确保了能源区块链的安全性和高性能。然而,其中所有节点都参与了共识过程,并且存在三阶段过程中的高通信开销、主节点的选择过于简单可预测以及缺乏奖励和惩罚机制等问题。
发明内容
针对上述现有技术中的上述问题,本发明提供一种基于改进PBFT共识机制的能源区块链节点共识方法,采用信誉交叉评估机制为能源区块链节点赋予信誉值,根据信誉值和分拆数数列选取可参与共识的节点,缩减共识节点的数目,提升PBFT共识算法的吞吐量,降低通信开销。
为了实现上述目的,本发明采用的技术方案如下:
一种基于改进PBFT共识机制的能源区块链节点共识方法,包括以下步骤:
S10、根据基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,对能源区块链的节点进行信誉值初始化,确定每个节点初始状态的信誉值;
S20、将节点依据信誉值进行降序排序,从序列末尾依次向前取f个节点移入拜占庭节点集,将剩余已排序的节点分入可信节点集;
S30、按照分拆数数列从可信节点集中选取节点生成候选节点分组,并依次从候选节点分组中按设定比例选出共识节点,组成共识节点集;
S40、结合可验证随机函数和节点用能权拥有量从共识节点集中随机选择主节点;
S50、共识节点执行改进PBFT共识算法,在完成共识流程后,就本轮交易达成一致;
S60、更新所有节点的信誉值,并更新拜占庭节点集和可信节点集,再重复步骤S30-S60的过程。
具体地,所述步骤S10中基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,根据能源区块链中节点相互之间在一定时间内的数据包传输成功率和评分权重,以及节点在能源交易中的交易合作次数和交易竞争次数实现,实现过程包括:
将节点i对节点j的单个节点信誉评分定义为,其中/>和/>分别表示节点i对节点j的合理置信度和不确定性,且满足条件:;
合理置信度和不确定性通过以下公式计算获得:
,
其中表示节点j和节点i在能源交易中的交易竞争次数,/>表示节点j和节点i在能源交易中的交易合作次数,/>表示节点j和节点i之间的数据包传输成功率;
用N表示初始化阶段参与的节点总数,节点i的评分权重在数值上等于该节点的能源权证量,节点j通过以下公式计算得到自身的合理置信度/>和不确定性/>:
,
由此确定节点j初始状态的信誉值表示为/>。
具体地,所述步骤S20中移入拜占庭节点集的节点数目f和节点总数N的关系满足:。
具体地,所述步骤S20中按照分拆数数列从可信节点集中选取节点生成候选节点分组的实现过程为:
从数列第一项开始依次从可信节点集已排序的节点序列中选出对应数量的节点作为一个候选节点分组,分组号即为当前数列项的下标值,生成一个候选节点分组后则关注数列的下一项,进行相同的取节点操作,重复此数列项移动和取节点操作,最后当节点序列中剩余的节点数量小于当前的数列项时,将剩余的所有节点一同作为一个候选节点分组。
具体地,所述分拆数数列表示为{Pn},n为由数字0开始的整数,规定P0=1,且n≥1时,数列项满足以下公式:
,其中/>为广义五边形数,Z代表整数集合。
具体地,所述步骤S30中依次从候选节点分组中按设定比例选出共识节点的过程为:
能源区块链控制台根据区块链节点规模和交易的实际需求公布所需的共识节点数目H,根据所需的共识节点数目H和可信节点总数N-f的比例,在每个候选节点分组中选取分组内对应比例的节点作为共识节点加入共识节点集。
具体地,所述在每个候选节点分组中选取分组内对应比例的节点时,优先选取候选节点分组中信誉值高的节点。
具体地,所述步骤S40中结合可验证随机函数和节点的能源交易活跃度从共识节点集中随机选择主节点的过程为:
利用基于椭圆曲线的可验证随机函数,根据共识节点的私钥、链上最后一个区块的区块哈希、节点编号、信誉值产生随机值R和证明Proof,选出随机值和能源交易活跃度满足设定条件的节点作为主节点;其中,在主节点身份验证开始前,主节点编号不予公开。
具体地,所述步骤S50中改进PBFT共识算法的执行过程如下:
请求阶段:客户端向主节点发送请求消息,主节点验证消息的可靠性后,决定是否将向所有的副本节点广播预准备消息,其中验证消息的可靠性为判断区块高度和视图号是否与当前共识一致;
预准备阶段:主节点向所有副本节点广播预准备消息,并且将预准备消息添加到自己的日志中,副本节点接收到预准备消息后验证消息的可靠性;
准备阶段:在接收到主节点消息并验证其可靠性后,副本节点向其它副本节点广播准备消息;当日志内被写入2f条来自不同副本节点的准备消息时,代表准备阶段完成;
第一回复阶段:每个副本节点向主节点和客户端发送回复消息,当主节点收到2f+1条与预准备消息匹配的回复消息时,主节点进入第二回复阶段;
第二回复阶段:主节点向客户端发送回复消息,当客户端接收到包括主节点回复消息在内的f+1条相同的确认回复消息后,本轮共识结束。
具体地,所述步骤S60中更新所有节点的信誉值,并更新拜占庭节点集和可信节点集的过程为:
采用信誉迭代公式对所有节点进行信誉值更新,对于节点j,信誉迭代公式表示为:
,
其中,T表示第T轮,T≥1,rj(0)表示节点j初始状态的信誉值,表示节点j的迭代权值,/>表示节点j的评估函数,
,
,
表示拜占庭节点集中节点的最大信誉值,/>表示候选节点池中节点的最小信誉值,候选节点池由所有候选节点分组选出共识节点后的剩余节点组成,A(i,j)表示在时间阈值/>内节点j向节点i发送正确消息的次数,M(i,j)表示节点j向节点i发送错误消息或消息超时的次数,时间阈值/>由区块链根据实时通信情况确定;
在所有节点的信誉值更新完毕后,首先,从共识节点集中按照信誉值降序排列并依次选出后f/3个节点加入拜占庭节点集,将共识节点集中剩余的节点和候选节点池中的节点一同移入可信节点集;然后,将当前拜占庭节点集中的节点按信誉值降序排列并依次选出前f/3个节点加入可信节点集,对可信节点集中的节点按信誉值降序排列,完成对拜占庭节点集和可信节点集的更新。
与现有技术相比,本发明具有以下有益效果:
本发明在能源区块链中采用信誉交叉评估机制为能源区块链节点赋予信誉值,根据信誉值和分拆数数列选取可参与共识的节点,有效地缩减了共识节点的数目,从而有效地规避了传统PBFT共识算法在规模级节点数量面前吞吐量低、通信开销大的问题;并且在选取主节点时使用可验证随机函数,不仅能够杜绝主节点被预测从而遭遇攻击的情况,而且能防止女巫攻击;同时本发明在传统PBFT共识算法的基础上进行了改进,简化了共识的提交阶段,提高了共识的效率。
附图说明
图1为本发明-实施例的流程示意图。
图2为本发明-实施例中采用的椭圆曲线示意图。
图3为本发明-实施例中CPBFT共识算法的执行过程示意图。
图4为本发明-实施例中CPBFT共识算法与传统PBFT共识算法的节点通信开销对比图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
如图1所示,该基于改进PBFT共识机制的能源区块链节点共识方法,首先使用信誉交叉评估机制对能源区块链所有节点的信誉值进行初始化操作,分离出拜占庭节点集和可信节点集,再根据信誉值序列和分拆数数列对节点进行分组,然后从候选节点分组中按比例选出参与共识的共识节点集,结合随机可验证函数从共识节点集中随机选出节点作为当前轮次的共识主节点并进入共识流程,最后,在完成本轮共识后更新节点的信誉值,进行下一轮共识。
该方法具体包括以下步骤:
S10、根据基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,对能源区块链的节点进行信誉值初始化,确定每个节点初始状态的信誉值。
基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,根据能源区块链中节点相互之间在一定时间内的数据包传输成功率和评分权重,以及节点在能源交易中的交易合作次数和交易竞争次数实现,具体实现过程包括:
将节点i对节点j的单个节点信誉评分定义为,其中/>和/>分别表示节点i对节点j的合理置信度和不确定性,且满足条件:。
合理置信度和不确定性通过以下公式计算获得:
,
其中表示节点j和节点i在能源交易中的交易竞争次数,如用能权交易中竞争交易资格的次数,/>表示节点j和节点i在能源交易中的交易合作次数,如用能权交易中进行交易合作的次数,/>表示节点j和节点i之间的数据包传输成功率。
用N表示本次参与评估的节点总数(在初始化阶段,N也表示节点总数),节点j通过以下公式计算得到自身的合理置信度和不确定性/>:
,
其中表示节点i对节点j的评分权重,在数值上等于该节点i的能源权证量。
根据拜占庭环境的特点,即错误节点数目占不到总节点数目的1/3,可以认为未知节点有2/3的机会是值得信赖的,因此的系数为2/3;由此确定节点j初始状态的信誉值/>表示为/>。
每个节点按照上述过程获得自己初始状态的信誉值。节点的信誉值可以说明节点的可信度,该值越高就说明该节点信誉越高,在参与共识时作为拜占庭节点(可能转发错误消息或者接收消息后不做出响应)的可能性就越低。
S20、将节点依据信誉值进行降序(从高到低)排序,从序列末尾依次向前取f个节点移入拜占庭节点集,将剩余已排序的节点分入可信节点集。
具体地,根据各节点初始状态的信誉值高低以降序进行排序,生成一个节点序列。在该节点序列中,截取序列末端f个节点放入拜占庭节点集,放入拜占庭节点集的节点数目f和节点总数N的关系满足:,因此放入拜占庭节点集的节点数目f站不到总节点数N的1/3,拜占庭节点集存放的节点是可能为拜占庭节点的节点;剩余部分的节点以排序方式加入可信节点集中。
S30、按照分拆数数列从可信节点集中选取节点生成候选节点分组,并依次从候选节点分组中按设定比例选出共识节点,组成共识节点集。
具体地,按照分拆数数列从可信节点集中选取节点生成候选节点分组的实现过程为:
从数列第一项开始依次从可信节点集已排序的节点序列中选出对应数量的节点作为一个候选节点分组,分组号即为当前数列项的下标值,生成一个候选节点分组后则关注数列的下一项,进行相同的取节点操作,重复此数列项移动和取节点操作,最后当节点序列中剩余的节点数量小于当前的数列项时,将剩余的所有节点一同作为一个候选节点分组。所述分拆数数列表示为{Pn},n为由数字0开始的整数,规定P0=1,数列项的值是对应下标的分拆数,当n≥1时,数列项满足以下公式:,其中为广义五边形数,Z代表整数集合。所谓分拆数,即该整数能够被分成几种不同的非负整数的和的形式。例如,分拆数数列可以写成下列形式:,其中每一项数值则代表对应候选节点分组中的节点数,P0=1表示第一个候选节点分组中的节点数为1,P1=1表示第二个候选节点分组中的节点数为1,P2=2表示第三个候选节点分组中的节点数为2,P3=3表示第四个候选节点分组中的节点数为3,P4=5表示第五个候选节点分组中的节点数为5,P5=7表示第六个候选节点分组中的节点数为7,P6=15表示第七个候选节点分组中的节点数为15,以此类推。
具体地,为了尽可能减少共识所用的时间和缩小共识的规模,能源区块链控制台根据区块链节点规模和交易的实际需求公布所需的共识节点数目H,根据所需的共识节点数目H和可信节点总数N-f的比例,依次在每个候选节点分组中选取分组内对应比例的节点作为共识节点加入共识节点集,其中优先选取候选节点分组中信誉值高的节点。每个候选节点分组内的选取节点的数目为,若该数目不为整数则向上取整,直到取得的节点个数为H为止。这样选取共识节点,能够使得选出的节点具有较好的分散性以及较高的信誉值。
S40、结合可验证随机函数和节点的能源交易活跃度从共识节点集中随机选择主节点。
具体地,主节点的随机选择是利用基于椭圆曲线的可验证随机函数,根据共识节点的私钥、链上最后一个区块的区块哈希、节点编号、信誉值产生随机值R和证明Proof,选出随机值和能源交易活跃度满足设定条件的节点作为主节点。
如图2所示为本实施例采用的secp256k1椭圆曲线的示意图,曲线方程表示为:。在该椭圆曲线中,基准点为O,阶数为n,每个节点均有一对公私钥对,其中,节点i的私钥为随机数/>,公钥/>。使用SHA-256函数h1,将节点的编号i、信誉值ri和区块链上最后一个区块哈希hashlast作为输入,生成一个能代表节点特性的消息/>。使用基于椭圆曲线签名算法ECDSA的哈希函数h2将消息seedi映射到椭圆曲线上一点Qi,表示为/>。随后选择随机数/>,通过椭圆曲线多点压缩编码函数h3将/>和/>分别进行椭圆曲线点压缩,然后十进制化,再求和取模计算,从而得到整数/>作为应答参数。基于点Qi计算椭圆曲线上的关联点/>;计算整数/>作为证明因子,其中“mod”表示取模计算。由椭圆曲线单点压缩编码函数h4将点Vi进行椭圆曲线点压缩,十进制化并取模计算,获得随机值/>。根据上述运算过程,确定出证明/>。
共识节点集中的节点均按照上述方法获得自己的随机值和证明,当有节点满足下列不等式:,节点i便将自己的随机值Ri、证明Proofi、时间戳timestamp和信誉值ri附到消息中在共识网络中进行广播;其中,/>是选择阈值,C是该节点的能源交易活跃度。如果有多个节点满足条件,则按以下选择条件依次进行筛选直到选出最优的主节点:/>值大、时间戳小、信誉值高;其中,在主节点身份验证开始前,主节点编号不予公开。
共识节点集中除主节点之外的其它节点作为验证节点,根据主节点提供的证明Proof=(V,t,s) 的信息,计算如下公式:;/>;/>;上式中O表示椭圆曲线的基准点,Q表示主节点的消息seed映射到椭圆曲线上的点,Y表示主节点公钥,U1和U2表示中间过程运算值,/>表示可验证随机函数的校验值。如果/>,则该主节点的身份是有效的,所有共识节点进入下一步共识,此时,除主节点之外的其它共识节点被称为副本节点。否则,主节点身份无效,需要展开新一轮的主节点选举。
S50、共识节点执行改进PBFT共识算法,在完成共识流程后,就本轮交易达成一致;该改进PBFT共识算法可以称为CPBFT共识算法。
如图3所示,该CPBFT共识算法的执行过程如下:
请求阶段:客户端向主节点发送请求消息,主节点验证消息的可靠性后,决定是否将向所有的副本节点广播预准备消息,其中验证消息的可靠性为判断区块高度和视图号是否与当前共识一致;
预准备阶段:主节点向所有副本节点广播预准备消息,并且将预准备消息添加到自己的日志中,副本节点接收到预准备消息后验证消息的可靠性,其中验证消息的可靠性为判断区块高度和视图号是否与当前共识一致;
准备阶段:在接收到主节点消息并验证其可靠性后,副本节点向其它副本节点广播准备消息;当日志内被写入2f条来自不同副本节点的准备消息时,代表准备阶段完成;
第一回复阶段:每个副本节点向主节点和客户端发送回复消息,当主节点收到2f+1条与预准备消息匹配的回复消息时,主节点进入第二回复阶段;
第二回复阶段:主节点向客户端发送回复消息,当客户端接收到包括主节点回复消息在内的f+1条相同的确认回复消息后,本轮共识结束。
S60、更新所有节点的信誉值,并更新拜占庭节点集和可信节点集,再重复步骤S30-S60的过程。
具体地,在本轮共识结束后,根据历史信誉值、迭代权值以及评估函数等参数,采用信誉迭代公式对所有节点进行信誉值更新,对于节点j,信誉迭代公式表示为:
,
其中,T表示第T轮,T≥1,rj(0)表示节点j初始状态的信誉值,表示节点j的迭代权值,/>表示节点j的评估函数,通过以下方式计算得到:
,
,
表示拜占庭节点集中节点的最大信誉值,/>表示候选节点池中节点的最小信誉值,候选节点池由所有候选节点分组选出共识节点后的剩余节点组成;A(i,j)是指在参与共识时节点对共识的正向交互次数,在数值上等于时间阈值/>内节点j向节点i发送正确消息的次数,计数规则如下:在每个共识阶段中,从节点i接收到第一条正确的属于该阶段的消息(该发送节点的正向交互次数增加1)开始计时,若节点j在时间阈值/>内向节点i发送正确消息,则A(i,j)的数值增加1;M(i,j)是指在参与共识时节点对共识的反向交互次数,在数值上等于节点j向节点i发送错误消息或消息超时的次数,计数规则如下:在每个共识阶段中,从节点i接收到第一条正确的属于该阶段的消息(该发送节点的反向交互次数增加1)开始计时,若节点j超过时间阈值/>后仍未向节点i发送消息或者在时间阈值/>内发送错误消息,则M(i,j)的数值增加1;其中,时间阈值/>由区块链根据实时通信情况确定。
在所有节点的信誉值更新完毕后,首先,从共识节点集中按照信誉值降序排列并依次选出后f/3个节点加入拜占庭节点集,将共识节点集中剩余的节点和候选节点池中的节点一同移入可信节点集;然后,将当前拜占庭节点集中的节点按信誉值降序排列并依次选出前f/3个节点加入可信节点集,对可信节点集中的节点按信誉值降序排列,完成对拜占庭节点集和可信节点集的更新。
如图4所示为本发明CPBFT与传统PBFT的通信开销对比,随着参与共识的节点数目的增长,本发明的CPBFT共识的通信开销增长趋于平缓,而传统的PBFT共识算法得到的结果则是通信开销呈指数型增长。因此,本发明的CPBFT共识算法在共识规模较大时有很明显的优势,极大地提高了共识的效率,减轻了系统通信负担。
通过上述设计,本发明在能源区块链中引入信誉交叉评估机制,更紧密地结合了能源区块链的实际应用需求,通过该信誉交叉评估机制,能源区块链节点被赋予信誉值,该值基于节点在能源区块链交易中的行为和可信度;结合信誉值和分拆数数列的考虑,本发明有条件地选取参与共识的节点,从而有效地减少了共识节点的数量,有助于应对传统PBFT共识算法在规模庞大的节点网络中可能出现的低吞吐量和大通信开销的问题。同时,本发明通过引入可验证随机函数来选择主节点,有效地降低了共识算法中的视图切换频率,这意味着能源区块链系统在处理共识过程中的状态变更时,可以更稳定地维持其性能。最后,在共识流程的提交阶段,本发明的CPBFT对通信过程进行了简化,提高了共识的效率,这使得能源区块链系统更具可扩展性和高效性,为实现可持续的能源管理提供了更强大的基础。与现有技术相比,本发明具有突出的实质性特点和显著的进步。
上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。
Claims (6)
1.一种基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,包括以下步骤:
S10、根据基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,对能源区块链的节点进行信誉值初始化,确定每个节点初始状态的信誉值;其中基于节点间的数据包传输成功率、评分权重、交易合作次数、交易竞争次数的信誉交叉评估机制,根据能源区块链中节点相互之间在一定时间内的数据包传输成功率和评分权重,以及节点在能源交易中的交易合作次数和交易竞争次数实现,实现过程包括:
将节点i对节点j的单个节点信誉评分定义为,其中/>和分别表示节点i对节点j的合理置信度和不确定性,且满足条件:;
合理置信度和不确定性通过以下公式计算获得:
,
其中表示节点j和节点i在能源交易中的交易竞争次数,/>表示节点j和节点i在能源交易中的交易合作次数,/>表示节点j和节点i之间的数据包传输成功率;
用N表示初始化阶段参与的节点总数,节点i的评分权重在数值上等于该节点的能源权证量,节点j通过以下公式计算得到自身的合理置信度/>和不确定性/>:
,
由此确定节点j初始状态的信誉值表示为/>;
S20、将节点依据信誉值进行降序排序,从序列末尾依次向前取f个节点移入拜占庭节点集,将剩余已排序的节点分入可信节点集;
S30、按照分拆数数列从可信节点集中选取节点生成候选节点分组,并依次从候选节点分组中按设定比例选出共识节点,组成共识节点集;
S40、结合可验证随机函数和节点的能源交易活跃度从共识节点集中随机选择主节点,过程为:
利用基于椭圆曲线的可验证随机函数,根据共识节点的私钥、链上最后一个区块的区块哈希、节点编号、信誉值产生随机值R和证明Proof,选出随机值和能源交易活跃度满足设定条件的节点作为主节点;其中,在主节点身份验证开始前,主节点编号不予公开;
S50、共识节点执行改进PBFT共识算法,在完成共识流程后,就本轮交易达成一致;其中改进PBFT共识算法的执行过程如下:
请求阶段:客户端向主节点发送请求消息,主节点验证消息的可靠性后,决定是否将向所有的副本节点广播预准备消息,其中验证消息的可靠性为判断区块高度和视图号是否与当前共识一致;
预准备阶段:主节点向所有副本节点广播预准备消息,并且将预准备消息添加到自己的日志中,副本节点接收到预准备消息后验证消息的可靠性;
准备阶段:在接收到主节点消息并验证其可靠性后,副本节点向其它副本节点广播准备消息;当日志内被写入2f条来自不同副本节点的准备消息时,代表准备阶段完成;
第一回复阶段:每个副本节点向主节点和客户端发送回复消息,当主节点收到2f+1条与预准备消息匹配的回复消息时,主节点进入第二回复阶段;
第二回复阶段:主节点向客户端发送回复消息,当客户端接收到包括主节点回复消息在内的f+1条相同的确认回复消息后,本轮共识结束;
S60、更新所有节点的信誉值,并更新拜占庭节点集和可信节点集,再重复步骤S30-S60的过程;其中更新所有节点的信誉值,并更新拜占庭节点集和可信节点集的过程为:
采用信誉迭代公式对所有节点进行信誉值更新,对于节点j,信誉迭代公式表示为:
,
其中,T表示第T轮,T≥1,rj(0)表示节点j初始状态的信誉值,表示节点j的迭代权值,/>表示节点j的评估函数,
,
,
表示拜占庭节点集中节点的最大信誉值,/>表示候选节点池中节点的最小信誉值,N-f表示可信节点总数,H表示所需的共识节点数目,候选节点池由所有候选节点分组选出共识节点后的剩余节点组成,A(i,j)表示在时间阈值/>内节点j向节点i发送正确消息的次数,M(i,j)表示节点j向节点i发送错误消息或消息超时的次数,时间阈值/>由区块链根据实时通信情况确定;
在所有节点的信誉值更新完毕后,首先,从共识节点集中按照信誉值降序排列并依次选出后f/3个节点加入拜占庭节点集,将共识节点集中剩余的节点和候选节点池中的节点一同移入可信节点集;然后,将当前拜占庭节点集中的节点按信誉值降序排列并依次选出前f/3个节点加入可信节点集,对可信节点集中的节点按信誉值降序排列,完成对拜占庭节点集和可信节点集的更新。
2.根据权利要求1所述的基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,所述步骤S20中移入拜占庭节点集的节点数目f和节点总数N的关系满足:。
3.根据权利要求2所述的基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,所述步骤S30中按照分拆数数列从可信节点集中选取节点生成候选节点分组的实现过程为:
从数列第一项开始依次从可信节点集已排序的节点序列中选出对应数量的节点作为一个候选节点分组,分组号即为当前数列项的下标值,生成一个候选节点分组后则关注数列的下一项,进行相同的取节点操作,重复数列项移动和取节点操作,最后当节点序列中剩余的节点数量小于当前的数列项时,将剩余的所有节点一同作为一个候选节点分组。
4.根据权利要求3所述的基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,所述分拆数数列表示为{Pn},n为由数字0开始的整数,规定P0=1,且n≥1时,数列项满足以下公式:
,其中/>为广义五边形数,Z代表整数集合。
5.根据权利要求4所述的基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,所述步骤S30中依次从候选节点分组中按设定比例选出共识节点的过程为:
能源区块链控制台根据区块链节点规模和交易的实际需求公布所需的共识节点数目H,根据所需的共识节点数目H和可信节点总数N-f的比例,在每个候选节点分组中选取分组内对应比例的节点作为共识节点加入共识节点集。
6.根据权利要求5所述的基于改进PBFT共识机制的能源区块链节点共识方法,其特征在于,所述在每个候选节点分组中选取分组内对应比例的节点时,优先选取候选节点分组中信誉值高的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182173.3A CN117745433B (zh) | 2024-02-19 | 2024-02-19 | 基于改进pbft共识机制的能源区块链节点共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410182173.3A CN117745433B (zh) | 2024-02-19 | 2024-02-19 | 基于改进pbft共识机制的能源区块链节点共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117745433A CN117745433A (zh) | 2024-03-22 |
CN117745433B true CN117745433B (zh) | 2024-05-28 |
Family
ID=90279693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410182173.3A Active CN117745433B (zh) | 2024-02-19 | 2024-02-19 | 基于改进pbft共识机制的能源区块链节点共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117745433B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL199021A0 (en) * | 2009-05-27 | 2010-04-29 | Univ Ben Gurion | A method for sharing reputation knowledge across virtual communities |
WO2019137290A1 (zh) * | 2018-01-09 | 2019-07-18 | 论客科技(广州)有限公司 | 一种发信人的信誉值生成方法与过滤垃圾邮件的方法 |
CN110213038A (zh) * | 2019-06-03 | 2019-09-06 | 中城智慧科技有限公司 | 一种基于vrf的权益随机共识方法及系统 |
CN113438084A (zh) * | 2021-06-23 | 2021-09-24 | 国网北京市电力公司 | 一种基于r-pbft共识算法和时间戳的绿电溯源方法及系统 |
CN114003584A (zh) * | 2021-11-02 | 2022-02-01 | 贵州大学 | 一种基于演化博弈的拜占庭容错共识方法 |
CN114463009A (zh) * | 2022-04-13 | 2022-05-10 | 成都理工大学 | 一种用于提高大规模能源节点交易安全性的方法 |
WO2022115905A1 (en) * | 2020-12-01 | 2022-06-09 | Commonwealth Scientific And Industrial Research Organisation | "livestock monitoring" |
CN115277722A (zh) * | 2022-07-27 | 2022-11-01 | 长安大学 | 一种基于信誉值模型的dr-pbft改进算法 |
CN115633035A (zh) * | 2022-12-07 | 2023-01-20 | 长春大学 | 一种基于改进的pbft物联网区块链共识算法 |
CN115665170A (zh) * | 2022-10-17 | 2023-01-31 | 重庆邮电大学 | 基于信誉和节点压缩机制的区块链共识方法 |
CN116389149A (zh) * | 2023-04-24 | 2023-07-04 | 北方工业大学 | 一种基于声誉值的可扩展拜占庭容错共识方法 |
CN116862021A (zh) * | 2023-07-31 | 2023-10-10 | 山东省计算中心(国家超级计算济南中心) | 基于信誉评估的抗拜占庭攻击的去中心化学习方法及系统 |
CN117527834A (zh) * | 2024-01-04 | 2024-02-06 | 成都理工大学 | 一种基于信誉评分机制的改进pbft共识方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220029815A1 (en) * | 2017-10-24 | 2022-01-27 | 0Chain Corp. | Streaming content via blockchain technology |
-
2024
- 2024-02-19 CN CN202410182173.3A patent/CN117745433B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL199021A0 (en) * | 2009-05-27 | 2010-04-29 | Univ Ben Gurion | A method for sharing reputation knowledge across virtual communities |
WO2019137290A1 (zh) * | 2018-01-09 | 2019-07-18 | 论客科技(广州)有限公司 | 一种发信人的信誉值生成方法与过滤垃圾邮件的方法 |
CN110213038A (zh) * | 2019-06-03 | 2019-09-06 | 中城智慧科技有限公司 | 一种基于vrf的权益随机共识方法及系统 |
WO2022115905A1 (en) * | 2020-12-01 | 2022-06-09 | Commonwealth Scientific And Industrial Research Organisation | "livestock monitoring" |
CN113438084A (zh) * | 2021-06-23 | 2021-09-24 | 国网北京市电力公司 | 一种基于r-pbft共识算法和时间戳的绿电溯源方法及系统 |
CN114003584A (zh) * | 2021-11-02 | 2022-02-01 | 贵州大学 | 一种基于演化博弈的拜占庭容错共识方法 |
CN114463009A (zh) * | 2022-04-13 | 2022-05-10 | 成都理工大学 | 一种用于提高大规模能源节点交易安全性的方法 |
CN115277722A (zh) * | 2022-07-27 | 2022-11-01 | 长安大学 | 一种基于信誉值模型的dr-pbft改进算法 |
CN115665170A (zh) * | 2022-10-17 | 2023-01-31 | 重庆邮电大学 | 基于信誉和节点压缩机制的区块链共识方法 |
CN115633035A (zh) * | 2022-12-07 | 2023-01-20 | 长春大学 | 一种基于改进的pbft物联网区块链共识算法 |
CN116389149A (zh) * | 2023-04-24 | 2023-07-04 | 北方工业大学 | 一种基于声誉值的可扩展拜占庭容错共识方法 |
CN116862021A (zh) * | 2023-07-31 | 2023-10-10 | 山东省计算中心(国家超级计算济南中心) | 基于信誉评估的抗拜占庭攻击的去中心化学习方法及系统 |
CN117527834A (zh) * | 2024-01-04 | 2024-02-06 | 成都理工大学 | 一种基于信誉评分机制的改进pbft共识方法 |
Non-Patent Citations (1)
Title |
---|
基于信誉与共识的分布式智能入侵防御方案;季薇 等;《系统工程与电子技术》;20171013(第03期);182-187 * |
Also Published As
Publication number | Publication date |
---|---|
CN117745433A (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351067B (zh) | 针对主从多链的区块链共识方法 | |
CN113271204B (zh) | 一种基于量子密钥分发的拜占庭容错共识方法 | |
EP3685331A1 (en) | Smart contract execution using distributed coordination | |
CN113114496A (zh) | 一种基于分片技术的区块链可扩展性问题解决方法 | |
CN111090892A (zh) | 一种基于vrf和门限签名的区块链共识方法和装置 | |
CN112636905B (zh) | 基于多角色的可扩展共识机制的系统及方法 | |
CN109685505B (zh) | 基于关联环签名的拜占庭容错共识优化方法 | |
CN112468255B (zh) | 基于网络共识结合vrf算法的区块链节点时间同步方法 | |
CN117527834B (zh) | 一种基于信誉评分机制的改进pbft共识方法 | |
CN114463009B (zh) | 一种用于提高大规模能源节点交易安全性的方法 | |
CN114615281B (zh) | 基于小规模委员会的区块链出块方法及PoS协议确认方法 | |
CN112348518A (zh) | 一种区块链交易证明的方法及装置 | |
CN111800274A (zh) | 一种基于区块链的可验证计算能耗优化方法 | |
CN113626875A (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN114422146B (zh) | 一种区块链主节点匿名排序方法 | |
Wan et al. | AnonymousFox: An efficient and scalable blockchain consensus algorithm | |
CN114745131A (zh) | 一种区块链的pbft改进共识算法 | |
CN117745433B (zh) | 基于改进pbft共识机制的能源区块链节点共识方法 | |
CN113810507A (zh) | 一种基于ide的区块链可信节点划分方法 | |
CN113283892A (zh) | 一种基于投票机制的PoSearch与PBFT融合共识算法 | |
CN115378788B (zh) | 基于分层共识和强化学习的区块链性能自适应优化方法 | |
CN115883578A (zh) | 一种基于区块链技术的5g电力网络节点信任管理方法 | |
Li et al. | EBFT: A hierarchical and group-based byzantine fault tolerant consensus algorithm | |
CN114710514A (zh) | 一种基于后量子门限签名的区块链共识系统 | |
CN114362962A (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 | ||
GR01 | Patent grant |