CN116582243B - 基于森林拓扑结构的区块链系统分层跨链共识方法 - Google Patents

基于森林拓扑结构的区块链系统分层跨链共识方法 Download PDF

Info

Publication number
CN116582243B
CN116582243B CN202310431246.3A CN202310431246A CN116582243B CN 116582243 B CN116582243 B CN 116582243B CN 202310431246 A CN202310431246 A CN 202310431246A CN 116582243 B CN116582243 B CN 116582243B
Authority
CN
China
Prior art keywords
node
consensus
nodes
chain
cross
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
CN202310431246.3A
Other languages
English (en)
Other versions
CN116582243A (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.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
Filing date
Publication date
Application filed by Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202310431246.3A priority Critical patent/CN116582243B/zh
Publication of CN116582243A publication Critical patent/CN116582243A/zh
Application granted granted Critical
Publication of CN116582243B publication Critical patent/CN116582243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及区块链跨链共识技术领域,特别涉及一种基于森林拓扑结构的区块链系统分层跨链共识方法,从每条区块链中选出委托节点,所有区块链的委托节点组成跨链共识节点集合,并为集合中每个共识节点分配唯一编号;依据共识节点集合中共识节点在跨链事务中的贡献值并基于k叉树构建共识森林,在每次共识过程中,节点只在兄弟节点间进行共识,将共识结果通过聚合签名后上传至上一层中的父节点,直至到达树根节点达成共识,根据共识节点在跨链系统中的贡献值进行森林拓扑排序,采用聚合签名对来自孩子节点的共识结果进行验证。本发明能够避免父节点对孩子节点共识结果的篡改,降低跨链共识通信开销和复杂度,可保证跨链、跨系统溯源数据的安全性、一致性。

Description

基于森林拓扑结构的区块链系统分层跨链共识方法
技术领域
本发明涉及区块链跨链共识技术领域,特别涉及一种基于森林拓扑结构的区块链系统分层跨链共识方法。
背景技术
自区块链诞生以来,其技术发展在社会各界引起了广泛关注。区块链技术作为一种全新的底层架构与分布式计算方式,涉及到密码学、数学、计算机科学等多个学科领域,深度融合了点对点网络、加密算法、共识机制、智能合约及分布式存储等多种技术的应用模式,具有去中心化、防篡改、可追溯等特性,目前广泛应用于智能合约、医疗、金融、物联网、交通等多个领域,区块链技术的发展进入了新的阶段。
共识机制作为区块链核心技术,具有维护区块链系统稳定运行的作用,可有效解决分布式环境下节点间的一致性问题。区块链网络通过共识机制,即节点间的共识协议,实现了在节点之间建立“信任”网络,体现了区块链去中心化特性。共识机制的优劣,将直接影响区块链系统应用中的安全和性能。伴随着区块链项目的井喷式发展,供应链、物流及金融等领域建立各自区块链平台。数据的跨系统、跨链的流转共享使得数据溯源变得更加复杂,在跨链数据溯源过程中,不同区块链间共识的一致性成为保证溯源数据安全的一个重要环节。一次简单的网上购物,至少需要银行系统、购物平台、商品供应链系统及物流系统之间进行数据交互。而在不同系统之间进行数据溯源时,如何保证跨链、跨系统溯源数据的安全性、一致性是溯源结果可信性的关键。目前区块链共识机制多种多样,其中PBFT共识算法因能够解决拜占庭问题而得到广泛应用,但PBFT共识机制也存在主节点选取随意、通信复杂度高、共识效率低等问题。
发明内容
为此,本发明提供一种基于森林拓扑结构的区块链系统分层跨链共识方法,解决现有区块链共识机制中主节点可信度低进而影响共识结果的问题。
按照本发明所提供的设计方案,提供一种基于森林拓扑结构的区块链系统分层跨链共识方法,包含:
从每条区块链中选出委托节点,所有区块链的委托节点组成跨链共识节点集合,并为集合中每个共识节点分配唯一编号;
依据共识节点集合中共识节点在跨链事务中的贡献值并基于k叉树构建共识森林,在共识森林中全部共识节点组成森林中的叶子节点,森林中所有树的分支节点均包含k个孩子节点,除叶子节点外每个父节点由孩子节点中的主节点担任,孩子节点中的主节点由同一层中兄弟节点随机选取;
针对跨链共识事务请求,从共识森林中各树根节点开始,向孩子节点广播共识事务请求,直至共识事务请求广播到叶子节点,叶子节点层级的兄弟节点之间对跨链共识事务进行一致共识并将共识结果聚合签名后向上传递至各父节点,通过递归来进行共识森林中节点层级的一致共识,直至共识森林中所有树的共识结果聚合签名传递至根节点,并依据所有树根节点对跨链共识事务的共同决策权重值来判定是否达成共识,并依据共识节点贡献值更新各区块链中的委托节点。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,从每条区块链中选出委托节点,包含:每个区块链中,将信誉分值最高的若干节点作为所在链的委托节点,并将信誉分值仅次于委托节点的若干个节点作为所在链的候补委托节点,以在跨链共识过程中利用各区块链中候补委托节点来替补共识节点贡献值低于预设阈值的对应区块链委托节点。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,针对区块链各节点信誉值,首先将节点在链内历史表现中的成功率、处理效率及在线率作为节点信誉值初值评价指标,然后,为区块链中所有节点设置投票权重参数,并在共识过程中更新节点信誉值,并利用链内节点最低信誉值和最高信誉值对节点信誉值进行百分制映射来最终获取各区块链用于选取委托节点的信誉分值。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,在共识过程中更新节点信誉值的过程表示为:其中,PR(j)表示节点j的PR值;Q表示系统中的节点集合;wj,i表示节点j为节点i的投票权重参数,PR0(i)表示节点信誉值初值,且PR0(i)=Si+Ei+Oi,Si表示节点i历史表现中成功率得分,Ei表示节点i在历史事务处理中的效率得分,Oi表示节点i在线时长得分。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,共识节点贡献值的计算过程表示为:其中,Numi表示节点i参与跨链共识的总次数;Rni表示节点i在参加跨链共识事务中正确进行提案的次数;Eni表示节点i在跨链共识事务中的错误提案次数;l表示错误提案惩罚参数。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,构建共识森林中,依据共识节点贡献值来设置共识节点所在共识森林层次,将贡献值较高的共识节点置于较高的共识森林层次上,将贡献值较低的共识节点置于较低的共识森林层次上。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,针对跨链共识事务,兄弟节点一致共识过程包含:
首先,父节点验证来自上层节点的跨链共识事务请求,主节点将父节点验证通过的跨链共识事务进行消息封装并转发至同层兄弟节点;
接着,参与共识的各兄弟节点将各自共识验证结果经过签名后发送到主节点;
然后,主节点收集兄弟节点签名信息,当主节点收集到超过2/3兄弟节点权重分值的相同共识结果后,对共识结果进行聚合签名。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,共识结果聚合签名过程包含:
首先,初始化参与共识的兄弟节点群体私钥及系统公钥;并依据兄弟节点之间共享群体私钥并利用拉格朗日多项式构造的门限函数来生成兄弟节点密钥;
然后,各兄弟节点分别选择随机数并利用加密公钥参数及节点私钥生成共识消息签名信息,并将加密公钥参数发送到父节点;父节点解密并验证消息是否遭受篡改,并接收未遭受篡改的消息,直至收到预设数目的相同结果后,父节点保存共识记录;且父节点在同层兄弟节点之间共识时,将孩子节点的共识结果作为输入,其余同层兄弟节点验证该父节点是否诚实传递孩子节点的共识结果。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,节点层级的一致共识向上传递至父节点,还包含:若同层级主节点未在预设时间段内向上层父节点反馈共识结果或向上层父节点反馈错误结果时,则触发视图切换协议,利用视图切换协议更新视图并在同层级中选举新的主节点。
作为本发明基于森林拓扑结构的区块链系统分层跨链共识方法,进一步地,利用视图切换协议更新视图并在同层级中选举新的主节点,包含:
首先,触发视图切换协议时,同层兄弟节点的上层叔节点或祖父节点广播视图切换消息;同层兄弟节点收到上层叔节点或祖父节点广播的视图切换消息后,启动视图切换,依据当前视图编号、随机选取的新主节点、节点编号和节点签名生成视图切换消息数据并将数据发送给其他节点;
然后,节点收到视图切换消息数据并验证无误后,向新主节点发送确认消息,兄弟节点中有超过预设数值的节点向新主节点发送确认消息,则新主节点切换成功,并向其与兄弟节点及上层叔节点广播新视图消息,其中,新视图消息中包含新视图编号、新主节点收到的视图切换消息集合及新主节点签名。
本发明的有益效果:
本发明针对不同区块链的跨链共识需求,在各区块链内通过对各节点进行信誉计算,将排名靠前的节点作为所在链的委托节点来参与跨链共识;并构建共识森林,在每次共识过程中,节点只在兄弟节点间进行共识,将共识结果通过聚合签名后上传至上一层中的父节点,直至到达树根节点达成共识,根据共识节点在跨链系统中的贡献值进行森林拓扑排序,采用聚合签名对来自孩子节点的共识结果进行快速验证,避免父节点对孩子节点共识结果的篡改,能够保证跨链、跨系统溯源数据的安全性、一致性,便于不同区块链系统之间的数据溯源。
附图说明
图1为实施例中跨链结构示意;
图2为实施例中跨链共识节点链间通信流程示意;
图3为实施例中共识森林结构示意;
图4为实施例中同层兄弟节点间共识流程示意;
图5为实施例中视图切换流程示意。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
共识机制作为区块链技术的核心,具有维护区块链系统安全稳定运行的作用。针对区块链跨链共识需求,本发明实施例中,提供一种基于森林拓扑结构的区块链系统分层跨链共识方法,从每条区块链中选出委托节点,所有区块链的委托节点组成跨链共识节点集合,并为集合中每个共识节点分配唯一编号;依据共识节点集合中共识节点在跨链事务中的贡献值并基于k叉树构建共识森林,在共识森林中全部共识节点组成森林中的叶子节点,森林中所有树的分支节点均包含k个孩子节点,除叶子节点外每个父节点由孩子节点中的主节点担任,孩子节点中的主节点由同一层中兄弟节点随机选取;并针对跨链共识事务请求,从共识森林中各树根节点开始,向孩子节点广播共识事务请求,直至共识事务请求广播到叶子节点,叶子节点层级的兄弟节点之间对跨链共识事务进行一致共识并将共识结果聚合签名后向上传递至各父节点,通过递归来进行共识森林中节点层级的一致共识,直至共识森林中所有树的共识结果聚合签名传递至根节点,并依据所有树根节点对跨链共识事务的共同决策权重值来判定是否达成共识,并依据共识节点贡献值更新各区块链中的委托节点。
为实现多条区块链之间的跨链共识,首先从每条区块链中选出委托节点作为所在区块链代表,负责跨链交易事务的共识转发,所有区块链的委托节点组成跨链共识节点集合。不同区块链实现跨链共识结构如图1所示,共识过程可分为链内委托节点选举及链间节点共识两部分组成。
针对区块链中委托节点选取,本案实施例中,进一步地,每个区块链中,将信誉分值最高的若干节点作为所在链的委托节点,并将信誉分值仅次于委托节点的若干个节点作为所在链的候补委托节点,以在跨链共识过程中利用各区块链中候补委托节点来替补共识节点贡献值低于预设阈值的对应区块链委托节点。
通过对同一区块链中的节点进行排序,按照节点分值的高低,将节点分为普通节点、候补委托节点及委托节点三种类型。其中委托节点是链内选出的分值最高的一组节点集合,相当于是所在链的“董事会”成员,能够维护系统安全,委托节点可参加跨链事务中的共识,即为跨链系统的共识节点。候补委托节点分值仅次于委托节点,正常情况下候补委托节点没有直接参与跨链共识的能力。当委托节点在参与跨链共识过程中进行错误共识提案导致共识贡献值低于阈值时,系统将其剔出跨链共识节点集合。同时将其所在链中分值最高的候补委托节点加入所在链委托节点集合,成为跨链交易中的共识节点。来自不同区块链间的委托节点组成共识节点集合,并为共识节点分配唯一编号。
不同区块链的共识节点链间通信流程如图2所示,具体可包含如下步骤:
Step1:来自源链上的发送者向所在链DAPP接口发送跨链消息,消息格式为其中nodei表示发送消息的节点编号,TarNode表示接收消息的节点编号,TarChain表示目标节点所在的区块链编号,m表示加密后的通信消息,为节点对消息的签名。
Step2:接口将收到的跨链通信消息打包,并将打包后的消息发送到区块链验证信息模块。消息格式为<nodei,SChain,TarChain,TarNode,m>,其中SChain为源链编号。
Step3:接口将消息发送请求者的编号nodei发送到中继。其中Step2和Step3可并行执行。
Step4:中继根据消息发送者的编号nodei,从源链中获取节点获得委托参与跨链共识的证明proof(nodei)。
Step5:源链对消息验证无误后,将消息通过路由网络发送至目标链验证模块。消息格式为<<nodei,SChain,TarChain,TarNode,m>,σSChain>,其中SChain为源链验证模块签名。
Step6:目标链验证模块根据发送者的编号nodei向中继申请委托节点证明。证明消息为<<proof(nodei),TarChain,nodei,timestamp>,σTarChain>,其中proof(nodei)表示寻求证明的标志,TarChain为目标链编号,nodei为待证明节点编号。
Step7:中继将Step4步骤中获得的节点在源链内获得的委托参与共识证明proof(nodei)发送给目标链验证模块。消息格式为<<nodej,TarChain,proof(nodei),timestamp>,σ>,其中nodej表示目标节点编号,σ为中继签名,timestamp为时间戳,用于表示证明消息的时间,当时间超过某一数值时,证明消息失效。
Step8:验证模块将通过验证的消息发送至DAPP接口处。消息格式为<<nodej,m,proof(nodei)>,σTarChain>。
其中,节点分值的计算,具体可设计为,针对区块链各节点信誉值,首先将节点在链内历史表现中的成功率、处理效率及在线率作为节点信誉值初值评价指标,然后,为区块链中所有节点设置投票权重参数,并在共识过程中更新节点信誉值,并利用链内节点最低信誉值和最高信誉值对节点信誉值进行百分制映射来最终获取各区块链用于选取委托节点的信誉分值。
在同一区块链中,区块链节点的初值代表着节点在区块链中历史表现,初值的高低将直接影响节点的最终信誉值。可将节点在链内历史表现中的成功率、处理效率及在线率作为节点初值评价指标。
利用成功率代表节点处理交易过程中的诚实度,可作为判断节点忠诚与否的关键指标。节点成功率由节点参与事务处理的总次数和成功参与事务处理次数决定,节点成功率得分如公式(1)所示。
其中ws表示节点成功率在初始分值中的权重,满足ws∈(0,1);Txi表示节点i参与链内事务的成功次数;Txsi表示节点i参与链内事务的总次数;Si表示节点i历史表现中成功率得分。
利用处理效率代表节点处理事务的能力,可作为判断节点响应速度及执行能力的关键指标。节点处理效率由节点的平均事务处理时间和所有节点中最短事务处理时间决定,节点效率分值如公式(2)所示。
其中,we表示节点事务处理效率在初始分值中的权重,满足we∈(0,1);MinTime表示系统节点完成事务的最短时间记录;AveTimei表示节点i参与的所有成功事务中的平均用时;Ei表示节点i在历史事务处理中的效率得分。
利用在线率代表节点参与链内事务的时常比例,可作为判断节点稳定性的关键指标。节点在线率由节点加入系统时间和在线时间决定,节点在线率得分计算公式如公式(3)所示。
其中,wo表示节点在线率在初始分值中的权重,满足wo∈(0,1);olti表示节点i在线时长,ti表示节点i加入系统总时长。Oi表示节点i在线时长得分。
为实现节点初始分值的百分制转化,规定各权重系数之间满足ws+we+wo=1。链内节点i的初值PR0(i)计算方式如公式(4)所示。
PR0(i)=Si+Ei+Oi (4)
当前基于信誉值的PBFT共识机制研究仍存在两方面的问题。一是系统中节点的信誉值均由本地计算产生,缺少统一的验证手段,其可信度难以得到保证。二是利用信誉值选取节点时,未考虑节点信誉值持续过高且保持不变容易造成系统中心化问题。针对这些问题,本案实施例中,可采用改进的PageRank算法实现节点信誉评估。
PageRank算法又称为网页排名算法,是在构建搜索系统原型时提出的链接分析算法。PageRank基于数量假和质量两个假设,根据网页的入链数量和入链网页的质量对网页的重要程度进行初值计算,然后依据网页重要性初值递归计算最终稳定的重要程度值。递归计算过程如公式(5)
其中d表示阻尼系数,其取值通常为0.85;Pj表示链接到页面j的页面集合;PR(i)表示代表页面i的重要程度的PR值;L(i)表示页面i的出链数量。
传统的PageRank算法主要用来对网页的重要性进行排序,但将其直接用于区块链节点排序还存在一定的问题,具体表现为:①算法平均地将节点的PR值分配给其他节点,无法体现节点之间的质量差别,影响节点排序质量;②算法中节点重要程度仅通过其他节点投票计算,没有充分考虑节点初始分值。
针对传统PageRank存在的问题,为充分适用于区块链节点排序,本案实施例方案中做出如下改进:①为进一步区分节点投票意愿颗粒度,为所有节点设置投票权重参数,由投票节点自由地按比例为其他节点进行投票;②为充分利用节点初始分值,将节点的初始分值加入迭代计算公式。改进后的节点信誉值计算如(6)所示。
其中PR(j)表示节点j的PR值;Q表示系统中的节点集合;wj,i表示节点j为节点i的投票权重,对于诚实节点权重参数为正,对于恶意节点投票时权重参数可为负。投票权重表示如公式(7)所示。
同时考虑到链内节点投票过程中恶意节点的存在,恶意节点可能通过共谋攻击为某一节点投票,使恶意节点最终以较高的PR值成为跨链共识节点。通过在迭代计算过程中引入节点的初值PR0(i)增加恶意节点共谋攻击的成本。同时为进一步保证恶意节点无法发起共谋攻击,此处对节点的投票权重做出限制,可规定在权重值矩阵中,单个权重值满足wi,j<0.33。
为避免节点信誉值持续过高且保持不变容易造成系统中心化问题,对信誉值进行百分制映射,其映射过程如式(8).
其中MinPR为链内最低信誉值,MaxPR链内节点的最高信誉值,PR(i)为节点最终信誉值。
根据公式(6)的迭代计算结果,按照跨链共识节点需求,各区块链中得分最高的若干个节点成为所在链的委托节点,参加跨链系统共识事务,同时将分值仅次于委托节点的若干个节点设为所在链的候补委托节点。当委托节点在跨链共识过程中发生作恶行为导致贡献值低于共识节点阈值时,将该共识节点剔出跨链共识节点集合,同时由所在链中分值最高的候补委托节点加入跨链共识集合,以满足跨链系统共识节点数量的稳定性。
各区块链中委托节点构成跨链系统共识节点集合,不同共识节点根据其在跨链事务中的贡献值,进行共识森林的构建。共识节点贡献值计算方式可如公式()所示。
其中,Numi表示节点i参与跨链共识的总次数;Rni表示节点i在参加跨链共识事务中正确进行提案的次数;Eni表示节点i在跨链共识事务中的错误提案次数;l表示错误提案惩罚参数,为体现节点贡献值易失去而不易积累的特点,规定参数满足l∈(1,5]。
其中,共识森林的拓扑结构可描述如下:在森林拓扑结构中,共识节点集合中的全部节点组成森林中的叶子节点。k叉树森林指除叶子节点之外,森林中所有树的分支节点均包含k个孩子节点。除叶子节点外,每个父节点由其孩子节点中的主节点担任。共识过程中,每个节点只在兄弟节点之间进行共识,若节点i在m层的兄弟节点中当选主节点,则节点i成为m层兄弟节点的父节点,同时存在与m层和m+1层。同时节点i需要将其在m层兄弟节点之间的共识结果作为第m+1层共识的输入,并参与m+1层兄弟节点之间的共识。森林中不同树根节点在共识中的权重不同。对于一颗m层高的k叉树,树根节点权重为km
如图3所示,节点中的序号为共识节点的贡献值计算排名。每次共识过程中,共识节点首先与其所在子树中处于同一层的兄弟节点进行一致性共识,并将共识结果经聚合签名后发送到父节点。父节点按照同样的方式进行递归共识,直至到达树根节点最终由各树根节点达成一致共识。由于各共识节点由不同区块链选举而来,可认为这些节点相对可靠性较高,但也不排除个别恶意节点的存在。根据共识森林的结构特点可知,共识森林的可靠性将直接影响节点之间的共识效率,同时恶意节点在共识森林中所在层次越高,对共识结果的影响也将越大。因此,可应尽可能将贡献值较高的可靠节点置于较高的共识森林层次上。
在跨链共识事务中,首先从森林中各子树根节点开始,向孩子节点广播共识事务,直至共识事务传播到叶子节点。随后各层级节点与其兄弟节点之间进行一致性共识,并将共识结果经聚合签名传递给父节点,以此递归直至森林中所有树的共识结果经聚集签名后送达根节点。设共识节点总数为n,k叉树形成的共识森林中,m层高的树根节点权重值为km,当森林中所有子树根节点对某一事务的共同决策权重值超过2n/3,即为达成共识。
当n个共识节点构建k叉树共识森林时,首先对共识节点进行分组,使得每组共识节点个数满足km,也即是每组共识节点都可以构建一颗完全k叉树。共识森林构建过程可如算法1所示。
算法1共识森林构建算法
输入:已排序的n个共识节点,森林树叉数k
输出:n个节点组成的k叉树森林fTree
作为优选实施例,进一步地,共识结果聚合签名过程可设计为包含如下内容:
首先,初始化参与共识的兄弟节点群体私钥及系统公钥;并依据兄弟节点之间共享群体私钥并利用拉格朗日多项式构造的门限函数来生成兄弟节点密钥;
然后,各兄弟节点分别选择随机数并利用加密公钥参数及节点私钥生成共识消息签名信息,并将加密公钥参数发送到父节点;父节点解密并验证消息是否遭受篡改,并接收未遭受篡改的消息,直至收到预设数目的相同结果后,父节点保存共识记录;且父节点在同层兄弟节点之间共识时,将孩子节点的共识结果作为输入,其余同层兄弟节点验证该父节点是否诚实传递孩子节点的共识结果。
在共识过程中,每个节点只与其所在子树中的k-1个兄弟节点之间进行共识,并将签名后的共识结果发送给父节点。父节点对子节点中的签名信息进行聚合验证,并将聚合验证后的共识结果作为兄弟节点共识过程的输入。通过节点之间的聚合签名,将防篡改的共识结果集中在树根,最后计算森林中所有树根节点的共识结果,通过权重值计算,判断共识是否达成。通过Schnorr聚合签名,实现共识结果的不可篡改及高效验证。聚合签名算法可设计为包含如下步骤:
1)初始化。选择大素数p,q及任意整数z,同时满足p-1≡0(modq)和zq=1(modp),设参与共识的k个兄弟节点群体的私钥为sk={sk1,sk2,...,skk},系统公钥为系统将参数{z,p,q,pk}公开。
2)密钥生成。本部分采用拉格朗日多项式构造门限函数。群体大小为k,门限值为t且满足t=(2k+1)/3。多项式构造如公式(10)所示,其中各项系数均为随机数。
f(x)=a0+a1x+a2x2+...+at-1xt-1(modq) (10)
k个兄弟节点之间共享群体私钥sk0=a0,对于节点i的私钥可表示为ski=f(xi),公钥为同时为方便系统内节点私钥的门限重构,将求解节点私钥的xi对外公开。根据门限密码思想,由t个节点提供参数(xi,f(xi))即可实现系统内全部节点私钥的恢复。
3)签名。首先各节点分别选择随机数ri,并计算以及e=H(m|x),最后求出节点i对共识消息m的签名信息si如公式()所示。
节点最后将Ri和pki发送到父节点{Ri,pki,m,si,i},然后父节点计算 若e=H(m|x')成立说明消息未遭受篡改则接受消息。待收到t个相同结果后,计算/>同时父节点保存共识记录数据{s,e,m,AS,DAS},以便孩子节点中发生视图切换后无法判断当前数据是否已完成共识。其中AS表示同意共识消息m的孩子节点集合,DAS表示反对共识消息m的孩子节点集合。
4)验证。父节点在同层兄弟节点之间共识时,将孩子节点的共识结果作为输入,其余兄弟节点只需验证zspke=R是否成立即可获得该节点是否诚实传递孩子节点的共识结果。
作为优选实施例,进一步地,针对跨链共识事务,兄弟节点一致共识过程,可设计为包含内容:
首先,父节点验证来自上层节点的跨链共识事务请求,主节点将父节点验证通过的跨链共识事务进行消息封装并转发至同层兄弟节点;
接着,参与共识的各兄弟节点将各自共识验证结果经过签名后发送到主节点;
然后,主节点收集兄弟节点签名信息,当主节点收集到超过2/3兄弟节点权重分值的相同共识结果后,对共识结果进行聚合签名。
在森林拓扑结构中,同一层级的k个兄弟节点共识过程的主节点由父节点担任。当某一层级的父节点发生作恶时,则从其孩子节点中重新选取节点充当父节点,也即是重新选取兄弟节点共识过程中的主节点。目前,主节点选取方式越来越多,总结来看主要包括以下几种类型:
(1)通过算力证明等机制选择主节点。在这种机制中,众多节点高强度的运算造成资源浪费,对跨链共识性能无益。
(2)按照系统约定的顺序,共识节点轮流作为主节点负责出块。这种机制下每轮的主节点均可提前被预知,增加了攻击者对特定节点攻击的概率。
(3)区块链中所有的共识节点都是记账节点,但其只负责对自己发出的交易或自己所在链的交易进行打包,这种机制大多用在基于DAG数据结构的区块链系统中。
(4)通过随机数随机生成下一阶段主节点,这中方式避免了系统资源的浪费,同时也降低了主节点被提前预测攻击的风险。
本案实施例中,共识节点由各区块链上节点经过投票选出,因此可认为这些共识节点相对可信。为避免主节点选举过程中系统资源的浪费,同时降低主节点因可预测而被针对性攻击的风险,可采用随机的方式在同一层次的k个兄弟节点中选取共识的主节点。主节点选取可如公式(12)所示。
M=StrtoInt(Hash(H,timestamp))modk (12)
其中M既为同层兄弟节点之间的主节点又是同层兄弟节点的父节点;H是上一共识事务数据的哈希值;timestamp是新节点选择的时间戳;k是同层参与共识的兄弟节点个数;StrtoInt()函数将字符串类型转化为整型。
兄弟节点间共识算法流程如图4所示,共包含接收事务(Receive)、广播事务(Broadcast)、共识结果收集(Collect)、提交共识(Commit)四个阶段,各阶段内容如下:
(1)接收事务阶段(Receive)。父节点验证来自上层节点的共识事务请求消息,验证通过后为共识事务消息封装做准备。由于同一层中共识节点之间的主节点同时担任父节点角色,故该阶段为主节点(父节点)对共识事务的验证过程,不存在实际的消息转发。
(2)广播事务阶段(Broadcast)。该阶段主节点将父节点验证通过的共识事务进行封装转发到同层的k个兄弟节点。其消息格式为<<Broadcast,v,data,H(data),timestamp>,σnode-0>。其中v表示当前兄弟节点中共识的视图编号;data表示待共识事务数据;H(data)表示待共识事务数据哈希值;timestamp为时间戳;σnode-0表示主节点的签名信息。
(3)共识结果收集阶段(Collect)。该阶段参与共识的各兄弟节点将其共识验证结果过经签名后发送到主节点。消息格式为<<Collect,v,result,H(data),timestamp>,σnode-i>。其中result表示同层兄弟节点中节点node-i对共识事务的返回结果;σnode-i为共识节点node-i的签名信息。
(4)共识结果提交阶段(Commit)。主节收集来自兄弟节点的签名信息,当主节点收集到超过2/3权重分值的相同共识结果后,进行聚集签名,并将聚集签名验证所需信息提交给父节点。由于主节点和父节点通常为同一节点,因此该阶段也不存在消息转发,只是父节点(主节点)共识事务处理的一个阶段。同时在该阶段父节点在本地保存同意共识消息的孩子节点集合AS,以及反对共识消息的孩子节点集合DAS。
进一步地,本案实施例中,针对节点层级的一致共识向上传递至父节点的步骤,还包含如下内容:若同层级主节点未在预设时间段内向上层父节点反馈共识结果或向上层父节点反馈错误结果时,则触发视图切换协议,利用视图切换协议更新视图并在同层级中选举新的主节点。
具体地,利用视图切换协议更新视图并在同层级中选举新的主节点,可设计为:
首先,触发视图切换协议时,同层兄弟节点的上层叔节点或祖父节点广播视图切换消息;同层兄弟节点收到上层叔节点或祖父节点广播的视图切换消息后,启动视图切换,依据当前视图编号、随机选取的新主节点、节点编号和节点签名生成视图切换消息数据并将数据发送给其他节点;
然后,节点收到视图切换消息数据并验证无误后,向新主节点发送确认消息,兄弟节点中有超过预设数值的节点向新主节点发送确认消息,则新主节点切换成功,并向其与兄弟节点及上层叔节点广播新视图消息,其中,新视图消息中包含新视图编号、新主节点收到的视图切换消息集合及新主节点签名。
当主节点长期未及时向上层节点反馈共识结果或向上层节点反馈错误结果时,触发试图切换协议。此时将更换新的视图并选举新的主节点,由此保证系统发生故障情况下的可用性及稳定性。该过程共分为视图切换广播、视图更改、视图更改确认及新视图四个阶段,其过程如图5所示,每个阶段内容如下:
(1)视图切换广播阶段(broadcast)。上层节点多次未收到该层主节点发送的共识结果或收到错误的共识结果时触发视图切换,由该层共识节点的叔节点或祖父节点广播消息,消息格式为<<broadcast,v,i,timestamp>,σi>。其中v表示当前视图编号;i为广播消息的节点编号;σi为节点签名。
(2)视图更改阶段(view change)。节点收到上层叔节点或祖父节点广播消息后,启动视图切换并向其他节点发送视图切换消息,消息格式为<<viewChange,v+1,M,i,timestamp>,σi>。其中v表示当前视图编号;M为按照公式(8)选举的新的主节点;i为发送消息的节点编号;σi为节点签名。
(3)视图确认阶段(view change ack)。节点收到视图切换消息并验证无误后,向新的主节点发送确认消息。
(4)新视图阶段(new view)。若k个兄弟节点中有超过(2k+1)/3的节点向新的主节点发送确认消息,则新的主节点切换成功,并向其余兄弟节点及上层叔节点广播消息。消息格式为<<newView,v+1,V>,σM>。其中V是新主节点M收到的切换为v+1视图的消息集合。
通过以上的共识流程,能够降低跨链共识通信开销,实现共识通信复杂度从O(n2)降低到O(k*n)的通信效果,在提升区块链跨链溯源可信的同时,便于不同系统之间数据交互的应用,具有较好的应用前景。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (6)

1.一种基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,包含:
从每条区块链中选出委托节点,所有区块链的委托节点组成跨链共识节点集合,并为集合中每个共识节点分配唯一编号;其中,从每条区块链中选出委托节点,包含:每个区块链中,将信誉分值最高的若干节点作为所在链的委托节点,并将信誉分值仅次于委托节点的若干个节点作为所在链的候补委托节点,以在跨链共识过程中利用各区块链中候补委托节点来替补共识节点贡献值低于预设阈值的对应区块链委托节点;针对区块链各节点信誉值,首先将节点在链内历史表现中的成功率、处理效率及在线率作为节点信誉值初值评价指标,然后,为区块链中所有节点设置投票权重参数,并在共识过程中更新节点信誉值,并利用链内节点最低信誉值和最高信誉值对节点信誉值进行百分制映射来最终获取各区块链用于选取委托节点的信誉分值;在共识过程中更新节点信誉值的过程表示为:其中,PR(j)表示节点j的PR值;Q表示系统中的节点集合;wj,i表示节点j为节点i的投票权重参数,PR0(i)表示节点信誉值初值,且PR0(i)=Si+Ei+Oi,Si表示节点i历史表现中成功率得分,Ei表示节点i在历史事务处理中的效率得分,Oi表示节点i在线时长得分;
依据共识节点集合中共识节点在跨链事务中的贡献值并基于k叉树构建共识森林,在共识森林中全部共识节点组成森林中的叶子节点,森林中所有树的分支节点均包含k个孩子节点,除叶子节点外每个父节点由孩子节点中的主节点担任,孩子节点中的主节点由同一层中兄弟节点随机选取;其中,共识节点贡献值的计算过程表示为:其中,Numi表示节点i参与跨链共识的总次数;Rni表示节点i在参加跨链共识事务中正确进行提案的次数;Eni表示节点i在跨链共识事务中的错误提案次数;l表示错误提案惩罚参数;
针对跨链共识事务请求,从共识森林中各树根节点开始,向孩子节点广播共识事务请求,直至共识事务请求广播到叶子节点,叶子节点层级的兄弟节点之间对跨链共识事务进行一致共识并将共识结果聚合签名后向上传递至各父节点,通过递归来进行共识森林中节点层级的一致共识,直至共识森林中所有树的共识结果聚合签名传递至根节点,并依据所有树根节点对跨链共识事务的共同决策权重值来判定是否达成共识,并依据共识节点贡献值更新各区块链中的委托节点。
2.根据权利要求1所述的基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,构建共识森林中,依据共识节点贡献值来设置共识节点所在共识森林层次,将贡献值较高的共识节点置于较高的共识森林层次上,将贡献值较低的共识节点置于较低的共识森林层次上。
3.根据权利要求1所述的基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,针对跨链共识事务,兄弟节点一致共识过程包含:
首先,父节点验证来自上层节点的跨链共识事务请求,主节点将父节点验证通过的跨链共识事务进行消息封装并转发至同层兄弟节点;
接着,参与共识的各兄弟节点将各自共识验证结果经过签名后发送到主节点;
然后,主节点收集兄弟节点签名信息,当主节点收集到超过2/3兄弟节点权重分值的相同共识结果后,对共识结果进行聚合签名。
4.根据权利要求1或3所述的基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,共识结果聚合签名过程包含:
首先,初始化参与共识的兄弟节点群体私钥及系统公钥;并依据兄弟节点之间共享群体私钥并利用拉格朗日多项式构造的门限函数来生成兄弟节点密钥;
然后,各兄弟节点分别选择随机数并利用加密公钥参数及节点私钥生成共识消息签名信息,并将加密公钥参数发送到父节点;父节点解密并验证消息是否遭受篡改,并接收未遭受篡改的消息,直至收到预设数目的相同结果后,父节点保存共识记录;且父节点在同层兄弟节点之间共识时,将孩子节点的共识结果作为输入,其余同层兄弟节点验证该父节点是否诚实传递孩子节点的共识结果。
5.根据权利要求1所述的基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,节点层级的一致共识向上传递至父节点,还包含:若同层级主节点未在预设时间段内向上层父节点反馈共识结果或向上层父节点反馈错误结果时,则触发视图切换协议,利用视图切换协议更新视图并在同层级中选举新的主节点。
6.根据权利要求5所述的基于森林拓扑结构的区块链系统分层跨链共识方法,其特征在于,利用视图切换协议更新视图并在同层级中选举新的主节点,包含:
首先,触发视图切换协议时,同层兄弟节点的上层叔节点或祖父节点广播视图切换消息;同层兄弟节点收到上层叔节点或祖父节点广播的视图切换消息后,启动视图切换,依据当前视图编号、随机选取的新主节点、节点编号和节点签名生成视图切换消息数据并将数据发送给其他节点;
然后,节点收到视图切换消息数据并验证无误后,向新主节点发送确认消息,兄弟节点中有超过预设数值的节点向新主节点发送确认消息,则新主节点切换成功,并向其与兄弟节点及上层叔节点广播新视图消息,其中,新视图消息中包含新视图编号、新主节点收到的视图切换消息集合及新主节点签名。
CN202310431246.3A 2023-04-20 基于森林拓扑结构的区块链系统分层跨链共识方法 Active CN116582243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310431246.3A CN116582243B (zh) 2023-04-20 基于森林拓扑结构的区块链系统分层跨链共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310431246.3A CN116582243B (zh) 2023-04-20 基于森林拓扑结构的区块链系统分层跨链共识方法

Publications (2)

Publication Number Publication Date
CN116582243A CN116582243A (zh) 2023-08-11
CN116582243B true CN116582243B (zh) 2024-06-07

Family

ID=

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107909369A (zh) * 2017-10-13 2018-04-13 布比(北京)网络技术有限公司 基于跨链交易的共识方法、装置和存储介质
CN110784346A (zh) * 2019-10-18 2020-02-11 深圳供电局有限公司 一种基于信誉值的pbft共识系统及方法
CN112769580A (zh) * 2020-12-31 2021-05-07 阳江市链点创新科技发展有限公司 一种区块链分层激励共识算法
CN113098694A (zh) * 2021-04-09 2021-07-09 杭州链网科技有限公司 一种混合跨链共识方法
CN113098689A (zh) * 2021-02-25 2021-07-09 西安电子科技大学 一种信任建立的跨链共识方法、系统、存储介质及应用
CN113327112A (zh) * 2021-06-01 2021-08-31 华北电力大学 一种基于跨链互操作的综合能源微网群高信誉度分布式交易方法
CN114328718A (zh) * 2021-11-29 2022-04-12 之江实验室 一种基于Hyperledger Fabric的跨区块链共识方法
CN114363352A (zh) * 2022-01-05 2022-04-15 青岛理工大学 基于区块链的物联网系统跨链交互方法
CN114615286A (zh) * 2022-03-15 2022-06-10 上海万向区块链股份公司 基于跨链技术的碳普惠业务数据流转方法和系统
CN114629654A (zh) * 2022-03-09 2022-06-14 东北大学 一种面向信任管理机制的双链区块链及其共识方法
CN115499129A (zh) * 2022-06-14 2022-12-20 广州链融信息技术有限公司 一种多模信任跨链共识方法、系统、介质、设备及终端
CN115599794A (zh) * 2022-09-29 2023-01-13 中国人民解放军战略支援部队信息工程大学(Cn) 跨区块链的联合溯源方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107909369A (zh) * 2017-10-13 2018-04-13 布比(北京)网络技术有限公司 基于跨链交易的共识方法、装置和存储介质
CN110784346A (zh) * 2019-10-18 2020-02-11 深圳供电局有限公司 一种基于信誉值的pbft共识系统及方法
CN112769580A (zh) * 2020-12-31 2021-05-07 阳江市链点创新科技发展有限公司 一种区块链分层激励共识算法
CN113098689A (zh) * 2021-02-25 2021-07-09 西安电子科技大学 一种信任建立的跨链共识方法、系统、存储介质及应用
CN113098694A (zh) * 2021-04-09 2021-07-09 杭州链网科技有限公司 一种混合跨链共识方法
CN113327112A (zh) * 2021-06-01 2021-08-31 华北电力大学 一种基于跨链互操作的综合能源微网群高信誉度分布式交易方法
CN114328718A (zh) * 2021-11-29 2022-04-12 之江实验室 一种基于Hyperledger Fabric的跨区块链共识方法
CN114363352A (zh) * 2022-01-05 2022-04-15 青岛理工大学 基于区块链的物联网系统跨链交互方法
CN114629654A (zh) * 2022-03-09 2022-06-14 东北大学 一种面向信任管理机制的双链区块链及其共识方法
CN114615286A (zh) * 2022-03-15 2022-06-10 上海万向区块链股份公司 基于跨链技术的碳普惠业务数据流转方法和系统
CN115499129A (zh) * 2022-06-14 2022-12-20 广州链融信息技术有限公司 一种多模信任跨链共识方法、系统、介质、设备及终端
CN115599794A (zh) * 2022-09-29 2023-01-13 中国人民解放军战略支援部队信息工程大学(Cn) 跨区块链的联合溯源方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Lifeng Cao,Shoucai Zhao,ZhenSheng Gao,Xuehui Du.Cross-chain data traceability mechanism for cross-domain access.The Journal of Supercomputing.2022,全文. *
Partha Mukherjee ; Gondy Leroy ; David Kauchak.Using Lexical Chains to Identify Text Difficulty: A Corpus Statistics and Classification Study.IEEE.2018,全文. *
乔蕊 ; 刘敖迪 ; 陈迪 ; 王清贤.复杂物联网联盟链系统通信机制研究.自动化学报.2020,全文. *
基于信任委托的区块链分层共识优化;段靓;吕鑫;刘凡;;计算机工程;20201015(第10期);全文 *

Similar Documents

Publication Publication Date Title
CN108711052B (zh) 一种基于区块链的信息验证系统
WO2019227457A1 (en) Method and apparatus for decentralized trust evaluation in a distributed network
CN111131209B (zh) 一种改进的高效共识方法、系统、计算机设备及存储介质
CN114003584B (zh) 一种基于演化博弈的拜占庭容错共识方法
CN111090892A (zh) 一种基于vrf和门限签名的区块链共识方法和装置
CN115378604B (zh) 一种基于信誉值机制的边缘计算终端设备的身份认证方法
US20040107346A1 (en) Efficient authenticated dictionaries with skip lists and commutative hashing
Wang et al. Beh-Raft-Chain: a behavior-based fast blockchain protocol for complex networks
Zheng et al. Lightweight blockchain consensus protocols for vehicular social networks
CN113407632A (zh) 一种基于pbft的委托权益证明区块链共识算法
CN101193103A (zh) 一种分配和验证身份标识的方法及系统
CN112395113B (zh) 实用拜占庭容错共识方法及装置、可读存储介质
CN111414420A (zh) 一种改进的pbft区块链共识方法
Islam et al. A light-weight blockchain architecture for v2v knowledge sharing at vehicular edges
CN114862397B (zh) 一种基于双链结构的双解耦区块链分布式方法
Li et al. ISCP: An Improved Blockchain Consensus Protocol.
Xu et al. Adaptchain: Adaptive scaling blockchain with transaction deduplication
CN116582243B (zh) 基于森林拓扑结构的区块链系统分层跨链共识方法
Asayag et al. Helix: A scalable and fair consensus algorithm resistant to ordering manipulation
Jalalzai et al. Fast-hotstuff: A fast and robust bft protocol for blockchains
CN116582243A (zh) 基于森林拓扑结构的区块链系统分层跨链共识方法
US20230291656A1 (en) Operation of a distributed deterministic network
Sabir et al. BIoVN: A novel blockchain-based system for securing internet of vehicles over ndn using bioinspired HoneyGuide
Hao et al. BitFT: An Understandable, Performant and Resource-Efficient Blockchain Consensus
Janarthanan et al. Cycle‐Consistent Generative Adversarial Network and Crypto Hash Signature Token‐based Block chain Technology for Data Aggregation with Secured Routing in Wireless Sensor Networks

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant