一种节点共识方法及系统与流程

文档序号:16433819发布日期:2018-12-28 20:20阅读:219来源:国知局
一种节点共识方法及系统与流程

本发明涉及计算机技术领域,特别涉及一种节点共识方法及系统。

背景技术

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其中,共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

目前,对于区块链中的任一节点,该节点发生交易时,区块链中的每一个其他节点均对其进行共识。

由于区块链中的节点数目庞大,故现有实现方式的共识效率不高。



技术实现要素:

本发明提供了一种节点共识方法及系统,能够提高节点共识效率。

为了达到上述目的,本发明是通过如下技术方案实现的:

一方面,本发明提供了一种节点共识方法,针对区块链中的每一个可信节点均执行:根据时间基准,构建当前可信节点对应的小世界网络,所述当前可信节点对应的小世界网络包括含所述当前可信节点在内的至少三个所述可信节点,不同小世界网络间相同可信节点的数目为整数,所述可信节点在所述区块链中处于可信状态,还包括:

在监测到所述区块链所包括的各个所述可信节点中,任一目标可信节点发生交易时,针对包括有所述目标可信节点的每一个小世界网络均执行:

从当前小世界网络中确定出至少两个可信节点作为共识节点,其中,所述共识节点与所述目标可信节点不是同一个可信节点;

利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识。

进一步地,所述根据时间基准,构建当前可信节点对应的小世界网络,包括:在监测到满足所述当前可信节点的小世界网络构建条件时,触发所述当前可信节点以使其在所述区块链中广播可信挑战信息;以开始广播所述可信挑战信息时的时间为起点,确定在预设时间段内能够接收到所述可信挑战信息的每一个可信节点;构建所述当前可信节点对应的小世界网络,以使其包括所述当前可信节点和确定出的每一个可信节点,以及清除上一次构建的所述当前可信节点对应的小世界网络;

所述当前可信节点的小世界网络构建条件包括:达到针对所述当前可信节点的小世界网络定期更新时间,和/或,所述当前可信节点对应的小世界网络中的任一可信节点工作异常。

进一步地,所述从当前小世界网络中确定出至少两个可信节点作为共识节点,包括:利用dag(directedacyclicgraph,有向无环图),针对当前小世界网络中的起始可信节点和终止可信节点,从所述起始可信节点和所述终止可信节点间的至少一条路径中,确定出目标路径;确定所述目标路径上的每一个可信节点均作为共识节点;

所述目标路径包括:所述至少一条路径中的包含可信节点数最多的路径,或,包含的可信节点数与预设安全参数相匹配的路径。

进一步地,所述利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识,包括:基于拜占庭容错算法,从确定出的各个所述共识节点中挑选出至少一个可信节点,并根据挑选出的每一个可信节点,对所述目标可信节点发生的交易进行共识。

进一步地,该方法还包括:在监测到任一所述共识节点对所述目标可信节点发生的交易共识失败时,确定所述目标可信节点不可信。

另一方面,本发明提供了一种节点共识系统,包括:

小世界网络构建单元,用于针对区块链中的每一个可信节点均执行:根据时间基准,构建当前可信节点对应的小世界网络,所述当前可信节点对应的小世界网络包括含所述当前可信节点在内的至少三个所述可信节点,不同小世界网络间相同可信节点的数目为整数,所述可信节点在所述区块链中处于可信状态;

处理单元,用于在监测到所述区块链所包括的各个所述可信节点中,任一目标可信节点发生交易时,针对包括有所述目标可信节点的每一个小世界网络均执行:从当前小世界网络中确定出至少两个可信节点作为共识节点,其中,所述共识节点与所述目标可信节点不是同一个可信节点;利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识。

进一步地,所述小世界网络构建单元,用于在监测到满足所述当前可信节点的小世界网络构建条件时,触发所述当前可信节点以使其在所述区块链中广播可信挑战信息;以开始广播所述可信挑战信息时的时间为起点,确定在预设时间段内能够接收到所述可信挑战信息的每一个可信节点;构建所述当前可信节点对应的小世界网络,以使其包括所述当前可信节点和确定出的每一个可信节点,以及清除上一次构建的所述当前可信节点对应的小世界网络;

所述当前可信节点的小世界网络构建条件包括:达到针对所述当前可信节点的小世界网络定期更新时间,和/或,所述当前可信节点对应的小世界网络中的任一可信节点工作异常。

进一步地,所述处理单元,用于利用dag,针对当前小世界网络中的起始可信节点和终止可信节点,从所述起始可信节点和所述终止可信节点间的至少一条路径中,确定出目标路径;确定所述目标路径上的每一个可信节点均作为共识节点;

所述目标路径包括:所述至少一条路径中的包含可信节点数最多的路径,或,包含的可信节点数与预设安全参数相匹配的路径。

进一步地,所述处理单元,用于基于拜占庭容错算法,从确定出的各个所述共识节点中挑选出至少一个可信节点,并根据挑选出的每一个可信节点,对所述目标可信节点发生的交易进行共识。

进一步地,所述处理单元,还用于在监测到任一所述共识节点对所述目标可信节点发生的交易共识失败时,确定所述目标可信节点不可信。

本发明提供了一种节点共识方法及系统,该方法包括:针对区块链中的各可信节点:根据时间基准构建当前可信节点对应的小世界网络,该小世界网络包括含当前可信节点在内的至少三个可信节点,不同小世界网络间相同可信节点的数目为整数,可信节点在区块链中处于可信状态;在监测到区块链所包括的各个可信节点中,任一目标可信节点发生交易时,针对包括有目标可信节点的每一个小世界网络:从当前小世界网络中确定出至少两个非目标可信节点的可信节点作为共识节点;利用确定出的各个共识节点对目标可信节点发生的交易进行共识。可见,任一可信节点发生交易时无需区块链中的各个节点参与,故能够提高节点共识效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种节点共识方法的流程图;

图2是本发明一实施例提供的另一种节点共识方法的流程图;

图3是本发明一实施例提供的一种节点共识系统的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种节点共识方法,可以包括以下步骤:

步骤101:针对区块链中的每一个可信节点均执行:根据时间基准,构建当前可信节点对应的小世界网络,所述当前可信节点对应的小世界网络包括含所述当前可信节点在内的至少三个所述可信节点,不同小世界网络间相同可信节点的数目为整数,所述可信节点在所述区块链中处于可信状态。

步骤102:在监测到所述区块链所包括的各个所述可信节点中,任一目标可信节点发生交易时,针对包括有所述目标可信节点的每一个小世界网络均执行:从当前小世界网络中确定出至少两个可信节点作为共识节点,其中,所述共识节点与所述目标可信节点不是同一个可信节点;利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识。

本发明实施例提供了一种节点共识方法,针对区块链中的各可信节点:根据时间基准构建当前可信节点对应的小世界网络,该小世界网络包括含当前可信节点在内的至少三个可信节点,不同小世界网络间相同可信节点的数目为整数,可信节点在区块链中处于可信状态;在监测到区块链所包括的各个可信节点中,任一目标可信节点发生交易时,针对包括有目标可信节点的每一个小世界网络:从当前小世界网络中确定出至少两个非目标可信节点的可信节点作为共识节点;利用确定出的各个共识节点对目标可信节点发生的交易进行共识。可见,任一可信节点发生交易时无需区块链中的各个节点参与,故能够提高节点共识效率。

本发明实施例中,可信节点间进行共识时,可以基于可信计算得以实现,故即使共识操作仅在小世界网络中进行,而非在整个区块链中进行,仍能保证可达到所需的安全性。

本发明实施例中,可信节点在区块链中处于可信状态,只有处于可信状态的节点才可用于构建小世界网络,以保证小世界网络的可信性。

本发明实施例中,为保证后续共识操作的实现,一个小世界网络中,可以包括至少三个可信节点,当然,这至少三个可信节点中包含小世界网络对应的可信节点自身。

本发明实施例中,同一个可信节点可以存在于至少一个小世界网络中,故不同小世界网络间相同可信节点的数目为整数。比如,某两个小世界网络中,可以不包括相同的可信节点,也可以包括至少一个相同的可信节点。

本发明实施例中,可信节点的运行环境可以为tee(trustedexecutionenvironment,可信执行环境)运行环境。可信节点间可以互相背书互相证明,一旦有一个可信节点要撒谎,旁边所有的可信节点立刻就能指正它。

在本发明一个实施例中,所述根据时间基准,构建当前可信节点对应的小世界网络,包括:在监测到满足所述当前可信节点的小世界网络构建条件时,触发所述当前可信节点以使其在所述区块链中广播可信挑战信息;以开始广播所述可信挑战信息时的时间为起点,确定在预设时间段内能够接收到所述可信挑战信息的每一个可信节点;构建所述当前可信节点对应的小世界网络,以使其包括所述当前可信节点和确定出的每一个可信节点,以及清除上一次构建的所述当前可信节点对应的小世界网络;

所述当前可信节点的小世界网络构建条件包括:达到针对所述当前可信节点的小世界网络定期更新时间,和/或,所述当前可信节点对应的小世界网络中的任一可信节点工作异常。

详细地,对于区块链中的任一可信节点,该可信节点作为新增节点以加入到区块链中并确定为可信时,可针对该可信节点执行相应小世界网络的第一次构建。在此之后,对于定期更新来说,可以为,当达到预设的该小世界网络定期更新时间时,即可再次构建小世界网络,新构建的小世界网络可对上一次构建的小世界网络进行更新替换。除了定期更新,当任一小世界网络中存在异常工作的可信节点时,比如该可信节点宕机、该可信节点的状态变更为不可信等,也可再次构建小世界网络,以对原有的小世界网络进行更新替换。

在本发明一个实施例中,当区块链中加入以新增节点时,基于上述时间基准,该新增节点可以广播可信挑战信息,特定时间段内,比如2s、3s等,能接收到该可信挑战信息的可信节点即可对其进行可信度校验。通常情况下,对其校验的可信节点距离该新增节点较近,如此,当该新增节点校验通过而处于可信状态时,对于对其校验的各个可信节点,可以对该可信节点对应的小世界网络进行更新替换。如此,更新后的小世界网络即有可能包括该新增节点,如此可以基于区块链的实时变化,来保证小世界网络的实时性和准确度。

在本发明一个实施例中,所述从当前小世界网络中确定出至少两个可信节点作为共识节点,包括:利用dag,针对当前小世界网络中的起始可信节点和终止可信节点,从所述起始可信节点和所述终止可信节点间的至少一条路径中,确定出目标路径;确定所述目标路径上的每一个可信节点均作为共识节点;

所述目标路径包括:所述至少一条路径中的包含可信节点数最多的路径,或,包含的可信节点数与预设安全参数相匹配的路径。

详细地,经一次图计算,小世界网络中的一可信节点可作为起始可信节点,另一可信节点可作为终止可信节点,两者间可以存在多条路径,且不同路径上的节点个数可以不同。

由于只要有一个共识节点对交易共识失败,即可认为该交易共识失败,故用于共识交易的可信节点数目越多,即确定出的共识节点数目越多,共识安全性相对越高,故不同用户可以按需设置共识的安全参数,并基于此确定与该安全参数相匹配的路径。

目前,选择最高安全性的用户居多,故默认情况下可以确定待确定的目标路径,为包含可信节点数最多的路径。

本发明实施例中,点对点的信任传递机制,是图计算的一种。

本发明实施例中,基于dag技术,能够在节点间构建小世界网络,该小世界网络能够保证,即使90%及以上节点从网络上移除,网络依然联通,保证网络安全性。与传统区块链网络无法对抗51%攻击相比,本发明实施例能够对抗90%及以上的恶意算力攻击。

在本发明一个实施例中,所述利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识,包括:基于拜占庭容错算法,从确定出的各个所述共识节点中挑选出至少一个可信节点,并根据挑选出的每一个可信节点,对所述目标可信节点发生的交易进行共识。

详细地,基于不同的实际应用需求,可以在拜占庭容错算法的基础之上进行交易共识。比如,为降低运营方运行成本,且无需过高安全性的情况下,即可设置一较低的容错参数。比如,目标路径上有20个可信节点,若容错参数为50%,即可从中随机挑选出10个可信节点,从而将由该10可信节点对交易进行共识,而非由该20个可信节点对交易进行共识。

在本发明一个实施例中,该方法可以进一步包括:在监测到任一所述共识节点对所述目标可信节点发生的交易共识失败时,确定所述目标可信节点不可信。

如图2所示,本发明一个实施例提供了另一种节点共识方法,具体包括以下步骤:

步骤201:针对区块链中的每一个可信节点均执行:当达到针对当前可信节点的小世界网络定期更新时间时,或,在监测到当前可信节点对应的小世界网络中的任一可信节点工作异常时,触发当前可信节点以使其在区块链中广播可信挑战信息,其中,可信节点在区块链中处于可信状态。

本发明实施例中,无论达到周期性更新时间时,还是存在可信节点工作异常,如宕机时,均可执行小世界网络的构建操作。

步骤202:以开始广播可信挑战信息时的时间为起点,确定3s内能够接收到可信挑战信息的每一个可信节点。

本发明实施例中,时间基准的限定时长可以为3s。

步骤203:构建当前可信节点对应的小世界网络,以使其包括当前可信节点和确定出的每一个可信节点,以及清除上一次构建的当前可信节点对应的小世界网络,其中,当前可信节点对应的小世界网络包括含当前可信节点在内的至少三个可信节点,不同小世界网络间相同可信节点的数目为整数。

步骤204:在监测到区块链所包括的可信节点a发生交易时,针对包括有可信节点a的每一个小世界网络均执行:利用dag,针对当前小世界网络中的起始可信节点和终止可信节点,从起始可信节点和终止可信节点间的至少一条路径中,确定出包含可信节点数最多的路径,并确定该路径上的每一个可信节点均作为共识节点,其中,共识节点与可信节点a不是同一个可信节点。

假设,区块链中的可信节点a当前发生交易,故与可信节点a同在一小世界网络中的其他可信节点,即可对该交易进行共识。当然,这里的可信节点a可以为区块链中的任一可信节点。

步骤205:基于拜占庭容错算法,从确定出的各个共识节点中挑选出至少一个可信节点,并根据挑选出的每一个可信节点,对可信节点a发生的交易进行共识。

步骤206:在监测到任一共识节点对可信节点a发生的交易共识失败时,确定可信节点a不可信。

如图3所示,本发明一个实施例提供了一种节点共识系统,可以包括:

小世界网络构建单元301,用于针对区块链中的每一个可信节点均执行:根据时间基准,构建当前可信节点对应的小世界网络,所述当前可信节点对应的小世界网络包括含所述当前可信节点在内的至少三个所述可信节点,不同小世界网络间相同可信节点的数目为整数,所述可信节点在所述区块链中处于可信状态;

处理单元302,用于在监测到所述区块链所包括的各个所述可信节点中,任一目标可信节点发生交易时,针对包括有所述目标可信节点的每一个小世界网络均执行:从当前小世界网络中确定出至少两个可信节点作为共识节点,其中,所述共识节点与所述目标可信节点不是同一个可信节点;利用确定出的各个所述共识节点,对所述目标可信节点发生的交易进行共识。

在本发明一个实施例中,所述小世界网络构建单元301,用于在监测到满足所述当前可信节点的小世界网络构建条件时,触发所述当前可信节点以使其在所述区块链中广播可信挑战信息;以开始广播所述可信挑战信息时的时间为起点,确定在预设时间段内能够接收到所述可信挑战信息的每一个可信节点;构建所述当前可信节点对应的小世界网络,以使其包括所述当前可信节点和确定出的每一个可信节点,以及清除上一次构建的所述当前可信节点对应的小世界网络;

所述当前可信节点的小世界网络构建条件包括:达到针对所述当前可信节点的小世界网络定期更新时间,和/或,所述当前可信节点对应的小世界网络中的任一可信节点工作异常。

在本发明一个实施例中,所述处理单元302,用于利用dag,针对当前小世界网络中的起始可信节点和终止可信节点,从所述起始可信节点和所述终止可信节点间的至少一条路径中,确定出目标路径;确定所述目标路径上的每一个可信节点均作为共识节点;

所述目标路径包括:所述至少一条路径中的包含可信节点数最多的路径,或,包含的可信节点数与预设安全参数相匹配的路径。

在本发明一个实施例中,所述处理单元302,用于基于拜占庭容错算法,从确定出的各个所述共识节点中挑选出至少一个可信节点,并根据挑选出的每一个可信节点,对所述目标可信节点发生的交易进行共识。

在本发明一个实施例中,所述处理单元302,还用于在监测到任一所述共识节点对所述目标可信节点发生的交易共识失败时,确定所述目标可信节点不可信。

上述系统内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上所述,本发明的各个实施例至少具有如下有益效果:

1、本发明实施例中,针对区块链中的各可信节点:根据时间基准构建当前可信节点对应的小世界网络,该小世界网络包括含当前可信节点在内的至少三个可信节点,不同小世界网络间相同可信节点的数目为整数,可信节点在区块链中处于可信状态;在监测到区块链所包括的各个可信节点中,任一目标可信节点发生交易时,针对包括有目标可信节点的每一个小世界网络:从当前小世界网络中确定出至少两个非目标可信节点的可信节点作为共识节点;利用确定出的各个共识节点对目标可信节点发生的交易进行共识。可见,任一可信节点发生交易时无需区块链中的各个节点参与,故能够提高节点共识效率。

2、本发明实施例中,基于dag技术,能够在节点间构建小世界网络,该小世界网络能够保证,即使90%及以上节点从网络上移除,网络依然联通,保证网络安全性。与传统区块链网络无法对抗51%攻击相比,本发明实施例能够对抗90%及以上的恶意算力攻击。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1