区块链节点权限控制方法、区块链系统及存储介质与流程

文档序号:15743900发布日期:2018-10-23 22:45阅读:259来源:国知局

本发明涉及区块链技术领域,尤其涉及一种区块链节点权限控制方法、区块链系统及存储介质。



背景技术:

区块链(Blockchain)技术具备去中心化、信息不可篡改性等特点,运用区块链技术可实现多方参与的交易事件(如转账交易、支付交易等)。例如,银行A与银行B在区块链上进行交易,那么该区块链上所有其他节点都会知晓这笔交易,其他参与方可以一起参与确认交易准确性,防止信息的篡改。进一步地,区块链本质上是一个基于智能合约的分布式的数据库,区块链上面的信息就会被P2P(Peer-to-peer,对等)网络分享到所有节点上去。

然而,现有的区块链数据交易系统架构中,区块链节点间没有有效的节点权限控制机制,无法有效区分非法区块链节点产生的区块数据并加以限制,交易数据的安全性得不到有效的保障。



技术实现要素:

有鉴于此,本发明提出一种区块链节点权限控制方法、区块链系统及存储介质,以解决如何保障区块链系统交易数据的安全性的问题。

首先,为实现上述目的,本发明提出一种区块链节点权限控制方法,应用于包括多个第一类型区块链节点、至少一个第二类型区块链节点及至少一个第三类型区块链节点的区块链系统,该方法包括步骤:

一个所述第一类型区块链节点在收到另一个其他区块链节点的接入请求后,根据保存的第一白名单中的第一标识和第二白名单中的第二标识,确定所述其他区块链节点的节点类型;

若所述其他区块链节点属于第一类型区块链节点,则利用所述第一白名单中的第一公钥验证接入的所述其他区块链节点的签名是否合法,若签名合法,则响应所述接入请求,与所述其他区块链节点建立通信连接;

若所述其他区块链节点属于第二类型区块链节点,则利用所述第二白名单中的第二公钥验证接入的所述其他区块链节点的签名是否合法,若签名合法,则响应所述接入请求,与所述其他区块链节点建立通信连接。

可选地,所述方法还包括步骤:

一个所述第一类型区块链节点在生成区块数据后,利用保存的私钥对产生的区块数据的区块头部进行签名,并将签名后的区块数据发送给通信连接的其他第一类型区块链节点和第二类型区块链节点。

可选地,所述方法还包括步骤:

若一个其他第一类型区块链节点接收到所述签名后的区块数据,则利用保存的第一白名单中的第一公钥对所述签名后的区块数据的区块头部签名进行合法验证,若区块头部签名合法,则保存所述签名后的区块数据;

若一个第二类型区块链节点接收到所述签名后的区块数据,则确定发送所述签名后的区块数据的第一类型区块链节点是否与保存的第三白名单中的一个第一标识对应,若与一个所述第一标识对应,则保存所述签名后的区块数据,并将所述签名后的区块数据发送给通信连接的第三类型区块链节点。

可选地,所述第三类型区块链节点包括轻量钱包节点和全量钱包节点,所述将该签名后的区块发送给通信连接的第三类型区块链节点的步骤包括:

若所述通信连接的第三类型区块链节点是轻量钱包节点,则将该签名后的区块数据的区块头发送给所述轻量钱包节点;

若所述通信连接的第三类型区块链节点是全量钱包节点,则将该签名后的区块数据整体发送给所述全量钱包节点。

可选地,所述第一类型区块链节点为矿机节点,所述第二类型区块链节点为接入节点。

此外,为实现上述目的,本发明还提供一种区块链系统,所述区块链系统包括多个第一类型区块链节点、至少一个第二类型区块链节点及至少一个第三类型区块链节点,其中:

各个所述第一类型区块链节点分别保存有第一白名单和第二白名单,所述第一白名单包括用于标识其他第一类型区块链节点的第一标识,所述第二白名单包括用于标识各个第二类型区块链节点的第二标识;

所述第一白名单中含有其他合法的第一类型区块链节点的第一公钥,所述第二白名单中含有各个合法的第二类型区块链节点的第二公钥;

所述第一公钥用于在对应的第一类型区块链节点请求接入时验证接入的第一类型区块链节点的签名是否合法;

所述第二公钥用于在对应的第二类型区块链节点请求接入时验证接入的第二类型区块链节点的签名是否合法。

可选地,各个所述第一类型区块链节点用于产生区块数据,各个所述第一类型区块链节点分别保存有一个私钥,所述私钥用于对产生的区块数据的区块头部进行签名。

可选地,各个所述第二类型区块链节点分别保存有第三白名单,所述第三白名单包括用于标识各个合法的第一类型区块链节点的第一标识;

各个所述第二类型区块链节点用于从各个合法的第一类型区块链节点同步所述区块数据,各个第三类型区块链节点用于从对应的第二类型区块链节点同步所述区块数据。

可选地,所述第一类型区块链节点为矿机节点,所述第二类型区块链节点为接入节点,所述第三类型区块链节点为钱包节点,所述钱包节点包括轻量钱包节点和全量钱包节点,所述全量钱包节点用于保存所述第一类型区块链节点产生的全部区块数据,所述轻量钱包节点用于保存区块头数据。

进一步地,为实现上述目的,本发明还提供一种存储介质,所述存储介质存储有区块链节点权限控制程序,所述区块链节点权限控制程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链节点权限控制方法的步骤。

相较于现有技术,本发明所提出的区块链节点权限控制方法、区块链系统及存储介质,可以保证区块链节点之间通信连接的合法性,并有效区分非法区块链节点产生的区块数据并加以限制,使交易数据的安全性得到有效的保障。

附图说明

图1是本发明第一实施例提出的一种区块链系统的架构示意图;

图2是所述区块链系统的一种可选的具体实施例的架构示意图;

图3是本发明第二实施例提出的一种区块链节点权限控制方法的流程示意图;

图4是本发明第三实施例提出的一种区块链节点权限控制方法的流程示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

第一实施例

参阅图1所示,本发明第一实施例提出一种基于节点权限控制的区块链系统。本实施例中,所述区块链系统2可包括,但不仅限于,可通过区块链网络相互通信连接的多个第一类型区块链节点22、至少一个第二类型区块链节点24及至少一个第三类型区块链节点26。需要指出的是,图1仅示出了具有节点22-26的区块链系统2,但是应理解的是,可以替代的实施更多或者更少的组件。

在本实施例中,所述第一类型区块链节点22可以是矿机(mining machine)节点,所述第二类型区块链节点24可以是接入节点,所述第三类型区块链节点26可以是钱包节点。所述钱包节点包括轻量钱包节点和全量钱包节点。如图2所示,为所述区块链系统2一种可选的具体实施例的架构示意图。

各个所述第一类型区块链节点22分别保存有第一白名单和第二白名单。所述第一白名单包括用于标识其他第一类型区块链节点22的第一标识。例如,若有四个第一类型区块链节点X1、X2、X3、X4,则第一类型区块链节点X1中的第一白名单包括用于标识第一类型区块链节点X2、X3、X4的第一标识。所述第二白名单包括用于标识各个第二类型区块链节点24的第二标识。所述第一白名单中含有其他合法的第一类型区块链节点22的第一公钥,所述第二白名单中含有各个合法的第二类型区块链节点24的第二公钥。所述第一公钥用于在对应的第一类型区块链节点22请求接入时验证接入的第一类型区块链节点22的签名是否合法。所述第二公钥用于在对应的第二类型区块链节点24请求接入时验证接入的第二类型区块链节点24的签名是否合法。

各个所述第一类型区块链节点22用于产生区块数据,各个所述第一类型区块链节点22分别保存有一个私钥,所述私钥用于对产生的区块数据的区块头部进行签名。所述第一类型区块链节点22将签名后的区块数据发送给通信连接的其他第一类型区块链节点22和第二类型区块链节点24。各个所述第二类型区块链节点24用于从各个合法的第一类型区块链节点22同步所述区块数据,各个第三类型区块链节点26用于从对应的第二类型区块链节点24同步所述区块数据。

若一个其他第一类型区块链节点22接收到所述签名后的区块数据,则利用保存的第一白名单中的第一公钥对所述签名后的区块数据的区块头部签名进行合法验证,若区块头部签名合法,则保存所述签名后的区块数据。

各个所述第二类型区块链节点24分别保存有第三白名单,所述第三白名单包括用于标识各个合法的第一类型区块链节点22的第一标识。若一个第二类型区块链节点24接收到所述签名后的区块数据,则确定发送所述签名后的区块数据的第一类型区块链节点22是否与保存的第三白名单中的一个第一标识对应,若与一个所述第一标识对应,则保存所述签名后的区块数据,并将所述签名后的区块数据发送给通信连接的第三类型区块链节点26。

在所述第三类型区块链节点26中,所述全量钱包节点用于保存所述第一类型区块链节点22产生的全部区块数据,所述轻量钱包节点用于保存区块头数据。因此,若所述第二类型区块链节点24通信连接的第三类型区块链节点26是轻量钱包节点,则将该签名后的区块数据的区块头发送给所述轻量钱包节点。若所述第二类型区块链节点24通信连接的第三类型区块链节点26是全量钱包节点,则将该签名后的区块数据整体发送给所述全量钱包节点。

第二实施例

参阅图3所示,本发明第二实施例提出一种区块链节点权限控制方法。在本实施例中,根据不同的需求,图3所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。该方法包括以下步骤:

步骤S100,一个第一类型区块链节点22接收另一个其他区块链节点的接入请求。

具体地,所述第一类型区块链节点22可以与其他第一类型区块链节点22或者第二类型区块链节点24通过区块链网络建立通信连接。当其他区块链节点需要与所述第一类型区块链节点22建立通信连接时,向所述第一类型区块链节点22发出接入请求。

步骤S102,所述第一类型区块链节点22根据保存的第一白名单中的第一标识和第二白名单中的第二标识,确定所述其他区块链节点的节点类型。若所述其他区块链节点属于第一类型区块链节点22,则执行步骤S104。若所述其他区块链节点属于第二类型区块链节点24,则执行步骤S108。

具体地,所述第一类型区块链节点22中保存有第一白名单和第二白名单,所述第一白名单包括用于标识其他第一类型区块链节点22的第一标识,所述第二白名单包括用于标识各个第二类型区块链节点24的第二标识。当所述第一类型区块链节点22接收到所述接入请求后,根据所述第一白名单中的第一标识和第二白名单中的第二标识,即可以确定所述其他区块链节点属于第一类型区块链节点22还是第二类型区块链节点24。

步骤S104,所述第一类型区块链节点22利用所述第一白名单中的第一公钥验证接入的其他第一类型区块链节点22的签名是否合法。若签名合法,则执行步骤S106。若签名不合法,则流程结束。

具体地,所述第一白名单中含有其他合法的第一类型区块链节点22的第一公钥。当所述其他区块链节点属于第一类型区块链节点22时,所述第一类型区块链节点22利用所述第一白名单中的第一公钥验证接入的其他第一类型区块链节点22的签名是否合法。

步骤S106,响应所述接入请求,与所述其他第一类型区块链节点22建立通信连接。

步骤S108,所述第一类型区块链节点22利用所述第二白名单中的第二公钥验证接入的所述其他第二类型区块链节点24的签名是否合法。若签名合法,则执行步骤S110。若签名不合法,则流程结束。

具体地,所述第二白名单中含有各个合法的第二类型区块链节点24的第二公钥。当所述其他区块链节点属于第二类型区块链节点24时,所述第一类型区块链节点22利用所述第二白名单中的第二公钥验证接入的所述其他第二类型区块链节点24的签名是否合法。

步骤S110,响应所述接入请求,与所述其他第二类型区块链节点24建立通信连接。

本实施例提供的区块链节点权限控制方法,当一个第一类型区块链节点22收到另一个其他区块链节点的接入请求时,可以根据第一白名单中的第一标识和第二白名单中的第二标识,确定所述其他区块链节点的节点类型,然后利用所述第一白名单中的第一公钥或者所述第二白名单中的第二公钥验证接入的所述其他区块链节点的签名是否合法,从而保证通信连接的合法性,以保障后续传递交易数据时的安全性。

第三实施例

参阅图4所示,本发明第三实施例提出一种区块链节点权限控制方法。本实施例中,所述区块链节点权限控制方法的步骤S200-S210与第二实施例的步骤S100-S110相类似,区别在于该方法还包括步骤S212-S224。

该方法包括以下步骤:

步骤S200,一个第一类型区块链节点22接收另一个其他区块链节点的接入请求。

步骤S202,所述第一类型区块链节点22根据保存的第一白名单中的第一标识和第二白名单中的第二标识,确定所述其他区块链节点的节点类型。若所述其他区块链节点属于第一类型区块链节点22,则执行步骤S204。若所述其他区块链节点属于第二类型区块链节点24,则执行步骤S208。

具体地,所述第一类型区块链节点22中保存有第一白名单和第二白名单,所述第一白名单包括用于标识其他第一类型区块链节点22的第一标识,所述第二白名单包括用于标识各个第二类型区块链节点24的第二标识。当所述第一类型区块链节点22接收到所述接入请求后,根据所述第一白名单中的第一标识和第二白名单中的第二标识,即可以确定所述其他区块链节点属于第一类型区块链节点22还是第二类型区块链节点24。

步骤S204,所述第一类型区块链节点22利用所述第一白名单中的第一公钥验证接入的其他第一类型区块链节点22的签名是否合法。若签名合法,则执行步骤S206。若签名不合法,则流程结束。

步骤S206,响应所述接入请求,与所述其他第一类型区块链节点22建立通信连接。

步骤S208,所述第一类型区块链节点22利用所述第二白名单中的第二公钥验证接入的所述其他第二类型区块链节点24的签名是否合法。若签名合法,则执行步骤S210。若签名不合法,则流程结束。

步骤S210,响应所述接入请求,与所述其他第二类型区块链节点建立通信连接。

步骤S212,所述第一类型区块链节点22生成区块数据。

步骤S214,所述第一类型区块链节点22利用保存的私钥对产生的区块数据的区块头部进行签名。

具体地,各个所述第一类型区块链节点22分别保存有一个私钥,所述私钥用于对产生的区块数据的区块头部进行签名。

步骤S216,所述第一类型区块链节点22将签名后的区块数据发送给通信连接的其他第一类型区块链节点22和第二类型区块链节点24。

步骤S218,所述其他第一类型区块链节点22接收到所述签名后的区块数据后,利用保存的第一白名单中的第一公钥对所述签名后的区块数据的区块头部签名进行合法验证。若区块头部签名合法,则执行步骤S220,所述其他第一类型区块链节点22保存所述签名后的区块数据。

步骤S222,所述第二类型区块链节点24接收到所述签名后的区块数据后,确定发送所述签名后的区块数据的第一类型区块链节点22是否与保存的第三白名单中的一个第一标识对应。若与一个所述第一标识对应,则执行步骤S224,所述第二类型区块链节点24保存所述签名后的区块数据,并将所述签名后的区块数据发送给通信连接的第三类型区块链节点26。

具体地,各个所述第二类型区块链节点24分别保存有第三白名单,所述第三白名单包括用于标识各个合法的第一类型区块链节点22的第一标识。所述第三类型区块链节点26包括全量钱包节点和轻量钱包节点,所述全量钱包节点用于保存所述第一类型区块链节点22产生的全部区块数据,所述轻量钱包节点用于保存区块头数据。因此,若所述第二类型区块链节点24通信连接的第三类型区块链节点26是轻量钱包节点,则将该签名后的区块数据的区块头发送给所述轻量钱包节点。若所述第二类型区块链节点24通信连接的第三类型区块链节点26是全量钱包节点,则将该签名后的区块数据整体发送给所述全量钱包节点。

下面以图2为例对所述区块链节点权限控制方法的流程步骤进行具体说明。

(1)一个矿机节点接收另一个其他区块链节点的接入请求。该矿机节点根据保存的第一白名单中的第一标识和第二白名单中的第二标识,确定所述其他区块链节点是矿机节点还是接入节点。

(2)若所述其他区块链节点也是矿机节点,利用所述第一白名单中的第一公钥验证接入的所述其他矿机节点的签名是否合法。若签名合法,则响应所述接入请求,与所述其他矿机节点建立通信连接。

(3)若所述其他区块链节点是接入节点,利用所述第二白名单中的第二公钥验证接入的所述接入节点的签名是否合法。若签名合法,则响应所述接入请求,与所述接入节点建立通信连接。

(4)所述矿机节点生成区块数据,利用保存的私钥对产生的区块数据的区块头部进行签名,然后将签名后的区块数据发送给通信连接的所述其他矿机节点和所述接入节点。

(5)所述其他矿机节点接收到所述签名后的区块数据后,利用保存的第一白名单中的第一公钥对所述签名后的区块数据的区块头部签名进行合法验证。若区块头部签名合法,则保存所述签名后的区块数据。

(6)所述接入节点接收到所述签名后的区块数据后,确定发送所述签名后的区块数据的矿机节点是否与保存的第三白名单中的一个第一标识对应。若与一个所述第一标识对应,则保存所述签名后的区块数据,并将所述签名后的区块数据发送给通信连接的钱包节点。

其中,若钱包节点是轻量钱包节点,则所述接入节点将该签名后的区块数据的区块头发送给所述轻量钱包节点。若钱包节点是全量钱包节点,则所述接入节点将该签名后的区块数据整体发送给所述全量钱包节点。

(7)所述轻量钱包节点保存所述区块头数据。所述全量钱包节点保存所述区块数据。

本实施例提供的区块链节点权限控制方法,可以通过第一类型区块链节点22中的私钥对产生的区块数据的区块头部进行签名,当其他第一类型区块链节点22接收到所述区块数据后,则可以利用第一白名单中的第一公钥对所述签名进行合法验证,当第二类型区块链节点24接收到所述区块数据后,则可以根据第三白名单中的第一标识对发送所述区块数据的第一类型区块链节点22进行合法验证,从而有效区分非法区块链节点产生的区块数据并加以限制,使交易数据的安全性得到有效的保障。

实施例四

本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有区块链节点权限控制程序,所述区块链节点权限控制程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链节点权限控制方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台客户端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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