CN115664706A - 基于双链结构的非许可区块链节点检测和激励方法及系统 - Google Patents
基于双链结构的非许可区块链节点检测和激励方法及系统 Download PDFInfo
- Publication number
- CN115664706A CN115664706A CN202211125323.4A CN202211125323A CN115664706A CN 115664706 A CN115664706 A CN 115664706A CN 202211125323 A CN202211125323 A CN 202211125323A CN 115664706 A CN115664706 A CN 115664706A
- Authority
- CN
- China
- Prior art keywords
- chain
- node
- consensus
- nodes
- block
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于双链结构的非许可区块链节点检测和激励方法及系统,所述双链结构包括交易链和信誉链,所述方法中通过交易链共识形成本轮共识中各区块链节点的共识结果,再通过信誉链共识形成该区块链在本轮共识中的共识结果;根据所述区块链的共识结果对其中区块链节点进行分类;并基于所述区块链的共识结果,制定每一类区块链节点的出块奖励分配方式。本发明通过交易链共识维护基本的区块链交易,通过信誉链共识来检测区块链中的静默节点;并通过制定针对性的激励机制,来保证正确节点的出块奖励收益永远大于静默节点和错误节点;避免了对共识组内所有节点的信誉值同步调整,提高了对于错误节点和静默节点的奖惩精确度。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于双链结构的非许可区块链节点检测和激励方法及系统。
背景技术
区块链是一个去中心化的网络,用户以一个网络节点的形式,通过公式算法参与应用数据的处理,每个节点都有区块链中所有应用数据的完整备份,能够保证拜占庭环境下应用数据不会被恶意篡改。自从比特币。以太坊诞生以来,为了建立多个机构间的信任关系,区块链目前得到了广泛应用。
区块链中最重要的技术之一便是通过公式算法保证节点服务器之间数据的一致性:联盟链一般采用投票类共识算法,这类算法大多基于PBFT共识算法,该算法能够达到较高的吞吐量,但节点间通信复杂度为O(n2),只能用于节点数量较少的联盟网络,在节点数量较大时性能不佳,目前很多研究致力于在节点数量较多的公链中应用投票类共识。这类研究的思路包括通过VRF从所有节点中选举一部分作为共识组,再通过选举出的共识组进行投票类共识,还包括将节点随机分配至多个分片中,利用分片中的各节点进行投票类共识;这两种思路都可以保证投票类共识只在少数节点中进行,从而使网络节点的数量不会影响区块链中投票类共识的共识效率。当前区块链的投票类共识算法中都没有考虑到非许可环境下节点参与共识的激励问题,传统的投票类共识应用于联盟链时,节点接入网络的权限被严格控制,且不存在出块奖励,因此节点一般不会恶意破坏系统的可用性。但是在公链中,任何节点够可以接入网络,节点参与共识的主要目的就是为了获取出块奖励,而出块奖励一般是被所有节点平均分配,但是参与共识会消耗节点的自身资源,这就会是有某些节点为了节约自身硬件资源,不参与共识或在共识中只向部分节点发送协议消息,但是若整轮共识成功,这些节点仍可以获取出块奖励,这可能会影响到共识的可用性。
现有技术中一般通过记录节点信誉的方法来激励节点参与共识,根据不同的信誉值来源调整该信誉值的计算依据,并根据每个节点的信誉值来分配对应的出块奖励或调整选取主节点和共识组的概率。例如:基于众包的应用场景,多个区块链节点会计算同一个没有基准答案的问题的结果,信誉来源于其计算结果的准确度;此种信誉值计算函数可以设置为:初始信誉值为平均值,并按照节点共识正确率调整信誉值,并且在节点共识正确率相通的情况下,更近出现拜占庭行为的节点信誉值越低,出现拜占庭行为后该节点的信誉值恢复更慢;通过设计算法检测节点发送不一致消息的行为,信誉来源于检测到的节点发送消息不一致的情况;此种信誉值的计算函数可以设置为:被检测到发送消息不一致的拜占庭节点信誉值会直接被设置为0,而对于投票与多数节点不一致的节点,在信誉值高时,奖惩都更高;基于选举共识组的共识算法,共识来源于每轮共识整体的成功或失败,此种信誉值会根据每轮共识整体的成功或失败进行调整,节点在信誉值低时更容易提高,在信誉值高时更容易降低。目前对于拜占庭行为的检测问题,由于FLP不可能原理,区块链节点之间很难对其他节点是否参与共识达成一致,因为自私节点可以诬陷其他节点没有发送协议消息,而其他几点不能确定该节点是没有发送消息还是发送的消息还没有收到,因此上述采用信誉系统来建立的激励机制只能针对节点发送的不一致的消息来调整信誉值,却不能确定节点是否发送消息参与共识,因而不能根据节点是否参与共识来调整信誉值。
现有技术中采用故障检测器的方式可以记录本地节点接收到的信息及来源,并以此为依据设计了共识算法,但是在传统的研究中,检测静默节点的目的通常时保证共识算法的可用性,而不是确定静默节点具体是那些区块链节点,只能本地认为其他节点未发送消息而出现故障,但是却不能在所有节点间达成共识。因此本发明针对的技术问题就是如何在公链共识过程中检测静默节点,从而避免这些节点影响区块链系统的可用性。
发明内容
鉴于此,本发明实施例提供了一种基于双链结构的非许可区块链节点检测和激励方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷。
本发明的一个方面提供了一种基于双链结构的非许可区块链节点检测方法,其特征在于,包括交易链共识步骤和信誉链共识步骤;
所述交易链共识步骤包括:在交易链中,参与共识的区块链节点向该区块链中其他节点发送协议消息,并接受来自于其他节点的协议消息,从而完成对应的交易链共识,形成参与共识的各区块链节点的本地观测结果和对应的本地观测结果证明;
所述信誉链共识步骤包括:本轮交易链共识完成后,将该区块链中所有区块链节点生成的本地观测结果在本轮信誉链上进行广播,并在本轮信誉链中形成共识,生成区块链的观测结果矩阵,所述观测结果矩阵中每一行表示对应区块链节点的本地观测结果和本地观测结果证明,每一列表示对应区块链节点在其他节点处的观测结果和观测结果证明;
根据所述观测结果矩阵对本轮共识过程中各区块链节点的节点状态进行分类。
在本发明的一些实施例中,所述对本轮共识过程中各区块链节点的节点状态进行分类的步骤,包括:根据每一个区块链节点对应的观测结果矩阵中对应行中的本地观测结果和对应列中其他节点对该区块链节点的观测结果,将该区块链节点的节点状态分为正确节点、错误节点、交易链上的静默节点或信誉链上的静默节点。
在本发明的一些实施例中,所述交易链共识选用实用拜占庭容错算法对区块链中各区块链节点发送的协议消息进行共识。
在本发明的一些实施例中,所述信誉链共识选用异步共识算法对区块链中每个区块链节点在所述交易链中生成的本地观测结果进行共识;所述异步共识算法包括可靠广播协议阶段和二进制协议阶段;在所述可靠广播协议阶段对各区块链节点在所述交易链生成的本地观测结果进行广播交易,令各区块链节点就本地观测结果的数据信息达成共识;再通过所述二进制协议阶段根据各区块链节点的本地观测结果形成该区块链的观测结果矩阵。
本发明的另一方面提供了一种基于双链结构的非许可区块链节点激励方法,基于上述方法形成的所述区块链节点的分类结果,对各类型的区块链节点进行信誉值调整和出块奖励分配。
在本发明的一些实施例中,所述信誉值的调整依据为:
在本发明的一些实施例中,,所述出块奖励包括交易链奖励和信誉链奖励,所述交易链奖励包括基本奖励和额外奖励;所述基本奖励平均分配至参与交易链共识的区块链节点,所述额外奖励根据各区块链节点在交易链共识中的参与比例进行分配,所述信誉链奖励根据各区块链节点在信誉链共识中的参与比例进行分配。
在本发明的一些实施例中,所述出块奖励的分配原则为:
其中表示区块链节点i第r轮区块链共识获得的出块奖励,Wr表示第r轮区块链共识的总出块奖励,γ1表示基本奖励占总出块奖励的比例,γ2表示额外奖励占总出块奖励的比例,n1i表示根据观测结果矩阵Mr的第i列中其他节点对该区块链节点i的观测结果,得到的该区块链节点i能够获得额外奖励的份数,n2i表示根据观测结果矩阵Mr的第i行中区块链节点i的本地观测结果,获得的该区块链节点i能够获得的信誉链奖励的份数;correct表示正确节点的集合,false表示错误节点的集合,repMute表示信誉链上静默节点的集合,txMute表示交易链上静默节点的集合;|correct|和|repMute|分别表示正确节点和信誉链上的静默节点这两个集合中的节点数量。
本发明的另一方面提供了一种基于双链结构的非许可区块链节点检测和激励系统,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现上述方法的步骤。
本发明的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明所述的基于双链结构的非许可区块链节点检测和激励方法及系统,通过交易链共识维护基本的区块链交易,并通过信誉链对各区块链节点参与交易链共识的情况进行共识,根据区块链的共识结果解决静默节点的检测问题。同时针对清晰的区块链节点分类引入信誉系统和激励机制,通过博弈论分析各区块链节点的节点状态、各区块链节点的观测结果矩阵、区块链共识策略的收益,针对性的设计信誉调整策略和激励机制来保证区块链系统中足够多的节点最终收敛到诚实地记录本地观测结果。本发明除了能够检测发送错误消息的区块链节点,还可以实现对静默节点的检测与惩罚;同时对每一个区块链节点进行针对性的信誉和激励调整,改善了共识组内所有节点信誉值同步调整的方式,提高了对区块链节点的奖惩精确度。
附图说明
图1为实施例中双链结构示意图;
图2为实施例中基于双链结构的区块链共识系统架构图;
图3为实施例中的区块链节点检测和激励流程图;
图4是节点是否向其他节点发送消息与该节点获得收益的关系图;
图5是节点是否向其他全部节点发送消息与该节点获得的收益的关系图;
图6是节点是否在完成交易链共识后等待与该节点获得的收益的关系图;
图7是不同网络规模和消息大小的情况下本发明中双链结构共识算法与原PBFT共识算法之间的共识时间对比图;
图8是不同参数下正确节点与不向其他节点发送消息的节点之间的收益对比图;
图9是不同参数下正确节点与发送部分消息节点之间的收益对比图;
图10是不同参数下正确节点与不在完成交易链共识后等待其他节点消息的节点之间的收益对比图;
图11是多种非正确节点与正确节点之间的收益对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
由于区块链系统在共识成功后将出块奖励平均分到该区块链中的每一个节点中,这便会使区块链节点缺乏参与共识的必要性,从而造成参与共识的区块链节点的减少,最终影响区块链共识的可用性。针对此问题现有技术中通过将信誉系统引入区块链节点中,根据各区块链节点的信誉值调整该区块链中出块奖励的分配方法;但是由于FLP不可能原理,区块链节点中很难就其他节点是否参与共识达成一致,所以很难通过某一区块链节点是否参与共识来调整信誉值,则更不能实现出块奖励的调整。针对上述现有技术中的问题,本发明提出了一种基于双链结构的非许可区块链节点检测和激励方法,在交易链中对各区块链节点之间的消息传输过程进行共识,并通过信誉链对前述交易链中的共识结果进行共识,从而根据信誉链共识输出的该区块链的共识结果,对各区块链节点进行检测分类;本发明中还针对多种不同的区块链节点设置相应的出块奖励和信誉调整方式,从而使不参与共识的节点不能获得出块奖励,参与共识的节点也根据参与共识的实际情况分配出块奖励,保证共识算法的可靠性、公平性和准确性。
本发明所述的基于双链结构的非许可区块链节点检测方法,首先创建针对于区块链节点的共识架构如图1所示,包括交易链和信誉链,对应的包括交易链共识步骤和信誉链共识步骤。
所述交易链共识步骤包括:在交易链中,参与共识的区块链节点向该区域链中其他节点发送协议消息,并接受来自于其他节点的协议消息,从而完成所述交易链共识,形成参与共识的所述区块链节点的本地观测结果和对应的本地观测结果证明。
一个实施例中,交易链共识步骤包括:在交易链中,使用实用拜占庭容错算法(PBFT共识算法)构建针对区块链节点进行交易链共识,接收到客户端发出请求的区块链节点作为本轮共识过程中的主节点,在预准备阶段(pre-prepare阶段)由主节点将请求对应的pre-prepare消息发送至该区块链中的其他节点,作为本轮共识过程中的副节点;在准备阶段(prepare阶段)每一个副节点接收到来自于主节点的pre-prepare消息后,向该区块链中的其他节点中发送对应的prepare消息;最后在提交阶段(commit阶段)由区块链中的每个节点向其他节点广播对应的commit消息,每个区块链节点根据接收到的commit消息生成该区块链节点的本地观测结果和对应的本地观测结果证明。在所述本地观测结果中将接收commit消息的来源节点记为“1”,未接收到commit消息的来源节点记为“0”,所述本地观测结果证明为带有来源节点签名的协议消息;如图2所示。
所述信誉链共识步骤包括:本轮交易链共识完成后,将该区块链中所有区块链节点生成的本地观测结果在本轮信誉链上进行广播,并在本轮信誉链中形成共识,生成区块链的观测结果矩阵,所述观测结果矩阵中每一行表示对应区块链节点的本地观测结果和本地观测结果证明,每一列表示对应区块链节点在其他节点处的观测结果和观测结果证明。
一个实施例中,信誉链共识步骤包括:在信誉链中,使用异步共识算法(HoneyBadgerBFT共识算法)构建针对区块链节点的本地观测结果进行信誉链共识,在可靠广播协议(RBC)阶段通过广播阶段(val)、回响阶段(echo)和准备完成阶段(ready)对各区块链节点在所述交易链生成的本地观测结果进行广播交易,令各区块链节点就本地观测结果的数据信息达成共识;再通过二进制协议(BA)阶段通过二进制广播阶段(bval)和确认阶段(aux)根据各区块链节点的本地观测结果形成该区块链的观测结果矩阵,所述观测结果矩阵中每一行表示对应区块链节点的本地观测结果和本地观测结果证明,每一列表示对应区块链节点在其他节点处的观测结果和观测结果证明,如图2所示。
根据所述观测结果矩阵对本轮共识过程中各区块链节点的节点状态进行分类。
实施例中,根据每一个区块链节点对应的观测结果矩阵的对应行中的本地观测结果和对应列中其他节点对该区块链节点的观测结果,将该区块链节点的节点状态分为正确节点、错误节点、交易链上的静默节点或信誉链上的静默节点。其中,对于区块链节点的节点状态的分类原则包括:
正确节点,表示在交易链和信誉链上都参与了共识;在区块链共识结果中的观测结果矩阵中,若区块链节点确认接收到来自于其他区块链节点commit消息的数量大于或等于达成共识的最少数量,即在观测结果矩阵中的该区块链节点的本地观测结果中记为“1”的区块链节点的数量≥n-f1,且该区块链节点在其他区块链节点中的观测结果中未接受到来自于该区块链节点commit消息的数量小于或等于设定的将该区块链节点的判定结果为“0”的区块链节点的数量阈值,且该区块链节点在其他区块链节点中的观测结果中接受到来自于该区块链节点commit消息的数量大于或等于设定的将该区块链节点的判定结果为“1”的区块链节点的数量阈值;即在观测结果矩阵中该区块链节点对应的一列其他区块链节点对其的观测结果中“0”出现的数量≤tβ且“1”出现的数量≥tα;则将该区块链节点记为正确i节点;其中n表示区块链节点的总数量,f1表示拜占庭节点的数量,tα表示区块链上将该区块链节点的判定结果为非静默状态的区块链节点的数量阈值,tβ表示区块链上将该区块链节点的判定结果为静默状态的区块链节点的数量阈值;
错误节点,表示在本轮共识过程中出现了错误行为;在区块链共识结果中的观测结果矩阵中,一方面,若在区块链节点判定为接受到来自于其他区块链节点的commit消息,即在该区块链节点的本地观测结果中记为“1”的区块链节点,在对应的本地观测结果证明并无对应记载,则说明该区块链节点就接收其他节点的commit消息的情况撒谎,即将Mr[j][k]=1,且Dr[j][k]为空的节点j记为错误节点,并在该区块链节Rj的本地观测结果中将节点k记为“0”,其中Mr[j][k]=1表示节点j的本地观测结果中将节点k记为“1”,Dr[j][k]为空表示节点j的本地观测结果证明中,无来自于节点k的commit消息证明,另一方面,若区块链节点确认接收到来自于其他区块链节点commit消息的数量小于达成共识的最少数量,即在观测结果矩阵中的该区块链节点的本地观测结果中记为“1”的区块链节点的数量<n-f1,则表示该区块链节点在本地观测结果中一定恶意将收到commit消息的来源节点记为“0”,即将该区块链节点记为错误节点。
交易链上的静默节点,表示该区块链节点并未参与本轮共识中的交易链共识,但是在本轮共识中的观测结果矩阵中包含该区块链节点的本地观测结果;在区块链共识结果的观测结果矩阵中,包含该区块链节点对应的一行本地观测结果,但是该区块链节点对应的一列其他节点对该区块链节点的观测结果中“0”出现的数量>tβ,则说明该区块链节点并未满足完成交易链共识的要求,则将该区块链节点记为交易链上的静默节点。
信誉链上的静默节点,表示该区块链节点参加了本轮共识中的交易链共识,但是在本轮共识的观测结果矩阵中,不包含该区块链节点的本地观测结果;在区块链共识结果的观测结果矩阵中,该区块链节点对应的一列其他节点对该区块链节点的观测结果中“0”出现的数量≤tβ,但是该区块链节点对应的一行本地观测结果为空,则说明该区块链节点并未参与本轮信誉链共识,即将该区块链节点记为信誉连上的静默节点。
本发明所述的基于双链结构的非许可区块链节点激励方法,基于上述对于区块链节点的分类结果,对各类型的区块链节点进行信誉值调整和出块奖励分配。
与上述实施例相对应的,对各类型的区块链节点进行信誉值调整和出块奖励分配的步骤包括:
对于区块链节点的信誉值进行调整时,只需要对当前共识中的错误节点进行区分;对应的区块链节点的信誉值的调整依据为:
其中,表示区块链节点i第r轮交易链共识后的信誉值,α和β是增减信誉值的速率因子,fi和ci分别是区块链节点i在交易链共识轮次内该区块链节点被判定为错误节点和非错误节点的次数,false指示错误节点的集合。
对于区块链节点的出块奖励进行分配时,首先根据该区块链的共识结构将出块奖励分为交易链的出块奖励和信誉链的出块奖励,所述交易链的出块奖励又分为基本奖励和额外奖励;其中基本奖励平均分配至参与交易链共识的区块链节点,额外奖励根据各区块链节点在交易链共识中的参与比例进行分配,信誉链奖励根据各区块链节点在信誉链共识中的参与比例进行分配。根据各区块链节点的节点类型,各类型的区块链节点的出块奖励为:正确节点的出块奖励包括交易链中的基本奖励和额外奖励,还包括信誉链的出块奖励;错误奖励不分配任何出块奖励;交易链上的静默节点不分配交易链奖励;信誉链上的静默节点不分配信誉链奖励。对应的区块链节点的出块奖励的分配方式为:
其中表示区块链节点i第r轮区块链共识获得的出块奖励,Wr表示第r轮区块链共识的总出块奖励,γ1表示基本奖励占总出块奖励的比例,γ2表示额外奖励占总出块奖励的比例,n1i表示根据观测结果矩阵Mr的第i列中其他节点对该区块链节点i的观测结果,得到的该区块链节点i能够获得额外奖励的份数,即在观测结果矩阵Mr的第i列中,观测结果“0”出现的次数比tβ少的数量;n2i表示根据观测结果矩阵Mr的第i行中区块链节点i的本地观测结果,获得的该区块链节点i能够获得的信誉链奖励的份数,即在观测结果矩阵Mr的第i行中,本地观测结果“1”出现的次数比n-f1多的数量;correct表示正确节点的集合,false表示错误节点的集合,repMute表示信誉链上静默节点的集合,txMute表示交易链上静默节点的集合;|correct|和|repMute|分别表示正确节点和信誉链上的静默节点这两个集合中的节点数量。
基于上述针对区块链节点的具体的出块奖励的分配方式,区块链节点的交易链奖励与其在观测结果矩阵Mr的第i列中“0”比例的关系,如图3所示。
上述基于双链结构的非许可区块链区块链节点检测和激励方法中对于各区块链节点的类型划分和出块奖励划分;为了保证能够通过此激励方法促使各区块链节点遵照协议要求参与区块链共识,则需要使出块奖励经过上述方法分配后正确节点的收益大于错误节点的收益,区块链节点在交易链共识中的参与率越高收益越高,交易链共识中接收其他节点的commit消息越完整收益越高,信誉链共识中的参与率越高收益越高,基于此对上述区块链节点的分类和出块奖励进行分析。
1)对于区块链节点的分类原则为:需要保证完全正确的节点即向所有节点都发送commit消息的区块链节点一定不会被判断为静默节点,完全错误的节点,即不向任何节点发送commit消息或就接收其他节点的commit消息的情况撒谎的区块链节点,一定会被判断为交易链上的静默节点。基于此对区块链节点中静默节点的判断阈值进行分析:
在区块链共识中,拜占庭节点的数量要求为若其中错误节点的数量为f2,则在该区块链中最少有个区块链节点的本地观测结果时可信的,此时若要保证完全正确的区块链节点一定不会被判断为交易链上的静默节点,则要求设置区块链节点被判断为非静默节点时该区块链节点在其他节点中观测结果为“1”的数量阈值 若要保证完全错误的节点一定会被判断为交易链上的静默节点,因为即便是错误节点中记为“1”的没有对应的观测结果证据的节点,在该错误节点的本地观测结果中也会被修改为“0”,而如果错误节点将接收的commit消息的来源节点恶意的记为“0”,则会直接增加观测结果中“0”的数量,因此设置区块链节点被判断为静默节点时该区块链节点在其他节点中观测结果为“0”的数量阈值为了保证该区块链节点不会被同时判断为交易链上的静默节点和非静默节点,则要求保证tα+tβ>n,即因此上述区块链的共识算法在的情况下可以保证可靠性;并且其中数量阈值的需要满足的条件为:
2)在交易链共识中区块链节点可能通过不向其他节点发送commit消息或只向部分节点中发送commit消息,来增加其他节点的本地观测结果中“0”的数量,从而相对的提升自己的收益。
为了使交易链上的非静默节点的收益高于静默节点的收益,对存在不按照协议要求发送commit消息的区块链节点的区块链中各区块链节点的收益进行分析:因为这个节点自己的本地观测结果中,仍然可以记录自己为“1”,则每个不发送commit消息的节点都将在观测结果矩阵Mr中导致“1”的数量减少n-1个,若区块链中的交易链上的非静默节点的占比为a,在交易链上静默节点的占比为1-a;则在观测结果矩阵Mr中每一行多于的“1”的数量总和为不发送commit消息的节点的本地观测结果中多于的“1”的数量为因为不发送commit消息的节点被判断为交易链上的静默节点,无法获得交易链接奖励,所以此时不发送commit消息的节点的收益为信誉链收益为:
按照协议发送commit消息的区块链节点的收益为:
基于上述分析过程给出在交易链上的非静默节点的占比a不同的情况下,节点是否向其他节点发送commit消息获得收益的变化情况,如图4所示,选取的参数n=30,γ1=0.4,γ2=0.4,tβ=0.4。可以看出在大部分情况下诚实节点的收益高于不诚实节点。其中在α接近2/3时交易链上的静默节点的收益急剧上升,这是使交易链上的静默节点能够获得最大收益的最坏情况,对应恰好有个节点选择不发送消息的情况,这时,如果某个节点选择不发送消息,能够使自己获得最多的信誉链收益。为了避免这种情况发生则要设定来保证即使在最坏情况下,交易链上的静默节点的收益也低于交易链上的非静默节点,因此激励机制中γ1、γ2的选取需要满足这个条件。
为了使交易链共识参与率高的区块链节点的收益高于交易链共识参与率较低的收益,对存在只向区块链中部分节点发送commit消息的区块链节点的区块链中各区块链节点的收益进行分析:将该区块链节点不发送commit消息的节点比例为k,且不发送commit消息不会被判断为交易链上的静默节点,则只向区块链中部分节点发送commit消息的节点的收益为:
按照协议要求向区块链中所有其他节点发送commit消息的区块链节点的收益为:
基于上述分析过程给出在交易链上的非静默节点的占比a不同的情况下,节点是否只向区块链中部分节点发送commit消息获得收益的变化情况,如图5所示,选取的参数n=30,γ1=0.4,γ2=0.4,tβ=0.4,k=0.2,这种情况下,向所有节点都发送commit消息的区块链节点的收益是一定大于只向区块链中部分节点发送commit消息的区块链节点的。实际上,大约在γ2>0.05的情况下,都可以保证正确节点收益更高;对于非常小的n,例如n≤10,则需要将γ2调整到0.1至0.2。
3)在信誉链共识中,为了确保在信誉链共识中完全正确的区块链节点,即向所有其他节点发送该节点的本地观测结果,并接收所有节点的本地观测结果的节点的收益最高,针对区块链节点可能出现的不符合协议的行为进行分析:
对于区块链节点在信誉链共识中不发送自己的本地观测结果的行为,不会获得更多的交易链奖励并且舍弃了获得信誉链奖励的机会,所以此种行为得到的收益必然会小于符合协议的要求的区块链节点的收益。
对于在完成交易链共识之前,就将本地观测结果发送到信誉链共识中的行为,因为该区块链节点的本地观测结果中“1”的数量不足n-f1,则该节点会被判断为错误节点,则不会获得出块奖励,则此种行为得到的收益必然会小于符合协议的要求的区块链节点的收益。
对于将没有收到协议消息的节点记为“1”的区块链节点,因为在对应的本地观测结果证明中不能接收到该节点发送的commit消息,所以此区块链节点会被判断为错误节点,则不会获得出块奖励,则此种行为得到的收益必然会小于符合协议的要求的区块链节点的收益。
对于在完成交易链共识后等待一段时间,并将收到了协议消息的节点记为“0”的区块链节点,因为需要保证本地观测结果中至少有n-f1个“1”,所以需要多等待一段时间,还增加了自己的本地观测结果没有被包含到Mr中的可能性,因此则此种行为得到的收益必然会小于符合协议的要求的区块链节点的收益。
对于不在完成交易链共识后等待,只在本地观测结果中记录收到消息的前2/3个节点为“1”的区块链节点,此时还有没有接收到的其他节点发出的commit消息;对于此种将没有接收到commit消息的节点j在本地观测结果中记为“0”,直接进行信誉链共识的行为可能导致三种情况:
使本区块链节点没有接收到的commit消息的来源节点j在观测结果矩阵的对应列中其他节点对其的观测结果记为“0”的数量恰好超过tβ,则导致该来源节点j被判断为静默节点,那么本区块链节点的总收益为:
使本区块链节点没有接收到的commit消息的来源节点j在观测结果矩阵的对应列中其他节点对其的观测结果记为“0”的数量未超过tβ,但由于对其观测结果为“0”的数量变多,则导致该来源节点j的收益下降,进而使本区块链节点的收益相对上升,本区块链节点的总收益为:
若本区块链节点没有接收到的commit消息的来源节点j在观测结果矩阵的对应列中其他节点对其的观测结果记为“0”的数量已经超过tβ,则本区块链节点的行为不会获得更多交易链收益,总收益为:
基于上述三种情况下该区块链节点的收益,在该区块链中a比例的节点接收到该来来源节点j的commit消息,而其他的1-a比例的节点由于选择了不在完成PBFT共识后等待,所以并未接收到该来源节点的commit消息,则该来源节点j在其他节点的观测结果中有2/3比例的“1”和1/3比例的“0”,那么该来源节点j被记为“0”的概率为 那么Mr中第j列“0”的数量服从二项分布,即因此,若将三种出现的概率分别记为P1、P2、P3,那么 因此该区块链节点的收益为P1R1+P2R2+P3R3。
对于完全正确的区块链节点,即在交易链共识完成后等待,以使本区块链节点尽可能接收到所有节点发出的commit消息的区块链节点,则此区块链你节点的收益为
基于上述分析过程给出的占比a不同的情况下,节点是否在交易链共识完成后等待接收其他节点发出的commit消息获得收益的变化情况,如图6所示,选取的参数n=30,γ1=0.4,γ2=0.4,tβ=0.4,k=0.2,这种情况下,完全正确的区块链节点的收益是一定大于在交易链共识完成后不等待其他节点发出的commit消息的区块链节点的。根据计算在γ1+γ2<0.95的情况下,都可以保证完全正确的区块链节点的收益更高;对于非常小的n,例如n≤10,则需要将γ1+γ2调整到0.7至0.8。
4)为了证明区块链共识过程中的等待时间tw不会导致该区块链节点不能参与信誉链共识:
假设在某一轮交易链共识开始时,节点是同步的,记共识某个阶段的消息传输时延为DELAYphase,i,j,表示节点i向节点j发送消息的延迟,其中phase表示区块链共识过程中的pre-prepare、prepare、commit、val、echo、ready、bval或aux阶段;假设网络延迟X服从某一个分布f(x),记节点完成commit阶段即收到其他2/3比例节点的消息的时间为TIMEphase,i,那么对于相邻的共识阶段,TIMEphase,i具有递推关系,即:TIMEcommit,i等于集合{TIMEprepare,1+DELAYcommit,1,i,TIMEprepare,2+DELAYcommit,2,i,...}中第个节点的值。则对于HoneyBadgerBFT共识算法中在RBC阶段完成对n-f1以上节点的本地观测结果达成共识后,等待一定的时间段再进行BA阶段,此时对于节点i的等待时间tw能够选择的最大值为
MIN{TIMEaux,1,TIMEaux,2,...}-TIMEready,i。根据上述标准,在区块链共识过程中区块链节点i在交易链共识完成后通过一段等待时间tw收到了节点j的commit消息,此时等待时间tw满足:TIMEprepare,j+DELAYcommit,j,i-TIMEcommit,i<tw,则这个等待时间tw不会导致节点i的本地观测结果没有被包含到信誉链共识中。
实施例中对不同的f(x)进行了仿真,证明了存在一个等待时间tw不会导致节点不能参与信誉链共识,且可以收到几乎所有正确节点的commit消息:
X | 收到commit消息比例 |
正态分布,μ=1,σ=1 | 99.9% |
正态分布,μ=1,σ=0.5 | 100.0% |
正态分布,μ=1,σ=2 | 97.9% |
Weibull分布,λ=1,k=1 | 95.8% |
Weibull分布,λ=1,k=0.5 | 86.2% |
Weibull分布,λ=1,k=2 | 100.0% |
。
利用分别部署的4节点、7节点、10节点三个区块链网络对基于双链结构的共识算法与原始的PBFT共识算法进行性能测试,其中4节点网络的四个节点分别部署在4台云服务器上,7节点网络中2台云服务器部署了2个节点,其他3台云服务器部署了1个节点,10节点网络中5台云服务器都部署了2个节点。如图7所示,可以看到,由于额外加入了HoneyBadgerBFT算法对静默节点进行共识,对性能有一定影响,但HoneyBadgerBFT所占用的共识时间是不随消息大小而变化的,这是因为信誉链需要共识的消息只是本地观测结果,其大小不随交易链的业务消息大小而变化。因此,在消息大小达到64KB的情况下,HoneyBadgerBFT共识算法对性能的影响是可以忽略不计的。
在不同的实验条件中,使用10个节点运行1000轮共识,在不同的交易链与信誉链奖励比例下,观察选择不发送协议消息的节点与正确节点的收益情况,从而完成对上述基于双链结构的非许可区块链节点的激励机制测试,如图8所示,其中节点8、9是选择不发送协议消息的节点,其他节点是正确节点。可以看到,不发送协议消息的节点收益远低于正确节点,这是由于根据上述结论,选择了满足的参数,信誉链奖励较低,不发送协议消息的节点的收益与信誉链奖励比例正相关。如图9所示,其中节点5、6、7、8、9是选择发送部分协议消息的节点,这些节点发送协议消息的比例为80%,其他节点是正确节点。可以看到,发送部分协议消息的节点收益略低于正确节点,因为实验选择的这些节点发送协议消息的比例是80%,因此这些节点不会受到较大的惩罚。同时,发送部分协议消息的节点的收益与交易链基本奖励正相关,因为这些节点只会失去部分交易链额外奖励,但在发送协议消息比例较高的情况下,不会失去交易连基本奖励。如图10所示,其中节点5、6、7、8、9是选择不在完成PBFT后等待的节点,其他节点是正确节点。可以看到,不在完成PBFT后等待的节点的收益略低于正确节点。实验中,第一组γ1=0.4,γ2=0.4,tβ=0.4的参数为基准,分别调节了判断静默节点的阈值tβ、交易链与信誉链奖励比例γ1+γ2,交易链基本奖励与额外奖励比例γ1、γ2,其中主要对非诚实节点收益产生影响的参数是交易链与信誉链奖励比例。如图11所示,其中节点4、5是选择不发送协议消息的节点,节点6、7是选择发送部分协议消息的节点,这些节点发送协议消息的比例为80%,节点8、9是选择不在完成PBFT后等待的节点,其他节点是正确节点。可以看到,不发送协议消息的节点收益远低于正确节点;而发送部分协议消息的节点由于发送比例较高,略低于正确节点;不在完成PBFT后等待的节点收益接近正确节点,原因是在本实验的设置中,节点4、5、6、7都可能不发送协议消息,比例较高,因此即使选择等待,收到消息的数量也与不等待相近。
通过上述对激励机制的测试中可以看出,非完全正确节点的收益是永远低于完全正确节点的收益的,因此本发明提出的激励机制能够通过降低非正确节点的出块奖励来促进区块链节点按照协议要求完成共识过程。
本发明还提供了一种基于双链结构的非许可区块链节点检测和激励系统部署于五台阿里云服务器(Intel(R)Xeon(R)Platinum 8269CY CPU T 3.10GHz,64GB RAM)上,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现上述基于双链结构的非许可区块链节点检测和激励方法的步骤。
本实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述双链结构的非许可区块链节点检测和激励方法的步骤。
与上述方法相应地,本发明还提供了一种装置/系统,该装置/系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置/系统实现如前所述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于双链结构的非许可区块链节点检测方法,其特征在于,包括交易链共识步骤和信誉链共识步骤;
所述交易链共识步骤包括:在交易链中,参与共识的区块链节点向该区块链中其他节点发送协议消息,并接受来自于其他节点的协议消息,从而完成对应的交易链共识,形成参与共识的各区块链节点的本地观测结果和对应的本地观测结果证明;
所述信誉链共识步骤包括:本轮交易链共识完成后,将该区块链中所有区块链节点生成的本地观测结果在本轮信誉链上进行广播,并在本轮信誉链中形成共识,生成区块链的观测结果矩阵,所述观测结果矩阵中每一行表示对应区块链节点的本地观测结果和本地观测结果证明,每一列表示对应区块链节点在其他节点处的观测结果和观测结果证明;
根据所述观测结果矩阵对本轮共识过程中各区块链节点的节点状态进行分类。
2.根据权利要求1所述的方法,其特征在于,所述对本轮共识过程中各区块链节点的节点状态进行分类的步骤,包括:根据每一个区块链节点对应的观测结果矩阵中对应行中的本地观测结果和对应列中其他节点对该区块链节点的观测结果,将该区块链节点的节点状态分为正确节点、错误节点、交易链上的静默节点或信誉链上的静默节点。
3.根据权利要求1所述的方法,其特征在于,所述交易链共识选用实用拜占庭容错算法对区块链中发送的协议消息进行共识。
4.根据权利要求1所述的方法,其特征在于,所述信誉链共识选用异步共识算法对区块链中每个区块链节点在所述交易链中生成的本地观测结果进行共识;所述异步共识算法包括可靠广播协议阶段和二进制协议阶段;
在所述可靠广播协议阶段对各区块链节点在所述交易链生成的本地观测结果进行广播交易,令各区块链节点就本地观测结果的数据信息达成共识;再通过所述二进制协议阶段根据各区块链节点的本地观测结果形成该区块链的观测结果矩阵。
5.一种基于双链结构的非许可区块链节点激励方法,其特征在于,基于权利要求1-4任一所述方法形成的区块链节点的分类结果,对各类型的区块链节点进行信誉值调整和出块奖励分配。
7.根据权利要求5所述的方法,其特征在于,所述出块奖励包括交易链奖励和信誉链奖励,所述交易链奖励包括基本奖励和额外奖励;所述基本奖励平均分配至参与交易链共识的区块链节点,所述额外奖励根据各区块链节点在交易链共识中的参与比例进行分配,所述信誉链奖励根据各区块链节点在信誉链共识中的参与比例进行分配。
8.根据权利要求7所述的方法,其特征在于,所述出块奖励的分配原则为:
其中表示区块链节点i第r轮区块链共识获得的出块奖励,Wr表示第r轮区块链共识的总出块奖励,γ1表示基本奖励占总出块奖励的比例,γ2表示额外奖励占总出块奖励的比例,n1i表示根据观测结果矩阵Mr的第i列中其他节点对该区块链节点i的观测结果,得到的该区块链节点i能够获得额外奖励的份数,n2i表示根据观测结果矩阵Mr的第i行中区块链节点i的本地观测结果,获得的该区块链节点i能够获得的信誉链奖励的份数;correct表示正确节点的集合,false表示错误节点的集合,repMute表示信誉链上静默节点的集合,txMute表示交易链上静默节点的集合;|correct|和|repMute|分别表示正确节点和信誉链上的静默节点这两个集合中的节点数量。
9.一种基于双链结构的非许可区块链节点检测和激励系统,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如权利要求1至8中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125323.4A CN115664706A (zh) | 2022-09-14 | 2022-09-14 | 基于双链结构的非许可区块链节点检测和激励方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125323.4A CN115664706A (zh) | 2022-09-14 | 2022-09-14 | 基于双链结构的非许可区块链节点检测和激励方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115664706A true CN115664706A (zh) | 2023-01-31 |
Family
ID=84983902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211125323.4A Pending CN115664706A (zh) | 2022-09-14 | 2022-09-14 | 基于双链结构的非许可区块链节点检测和激励方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115664706A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233145A (zh) * | 2023-05-05 | 2023-06-06 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
-
2022
- 2022-09-14 CN CN202211125323.4A patent/CN115664706A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233145A (zh) * | 2023-05-05 | 2023-06-06 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
CN116233145B (zh) * | 2023-05-05 | 2023-08-01 | 北京邮电大学 | 一种基于分片策略的区块链异步共识方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN112039964B (zh) | 一种基于区块链的节点信誉共识方法 | |
Wang et al. | Study of blockchains’s consensus mechanism based on credit | |
CN108492103B (zh) | 一种联盟区块链共识方法 | |
CN110443614B (zh) | 节点设备删除方法、装置、计算机设备及存储介质 | |
Vassil et al. | The diffusion of internet voting. Usage patterns of internet voting in Estonia between 2005 and 2015 | |
CN112883114A (zh) | 应用于区块链的交易处理方法和装置 | |
CN109819022A (zh) | 一种基于信用评价的区块链共识方法 | |
US20050132154A1 (en) | Reliable leader election in storage area network | |
CN110505091B (zh) | 一种基于pbft改进的共识方法 | |
CN108848055A (zh) | 一种区块链共识方法、记账节点及节点 | |
CN108712468B (zh) | 一种区块链收益分配方法和分配系统 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链系统共识方法 | |
CN110581887B (zh) | 数据处理方法、装置、区块链节点及存储介质 | |
US11503036B2 (en) | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol | |
CN113407632A (zh) | 一种基于pbft的委托权益证明区块链共识算法 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
CN111683121B (zh) | 基于DPoS的云端数据溯源区块链共识机制改进方法 | |
CN115664706A (zh) | 基于双链结构的非许可区块链节点检测和激励方法及系统 | |
CN112020018B (zh) | 区块链记账组生成方法、共识方法及区块链系统 | |
CN115510152A (zh) | 一种预言机节点筛选方法、装置、存储介质及电子装置 | |
CN114844891B (zh) | 基于Raft算法的区块链共识方法及系统 | |
CN113612618B (zh) | 一种联盟链共识方法及装置 | |
CN110661656A (zh) | 一种区块链快速共识方法及装置 | |
CN115841382A (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 |