首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块链的权限控制方法、装置、系统及节点设备

链的权限控制方法、装置、系统及节点设备

阅读:542发布:2023-05-26

专利汇可以提供链的权限控制方法、装置、系统及节点设备专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 区 块 链 的权限控制方法、装置、系统及 节点 设备,所述方法包括:将预置的账号 角 色和权限的对应关系写入到区块链的一区块中;确定要加入到区块链中的用户节点所配置的目标账号的角色;根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。本公开通过设置区块链账号的角色和权限,配置了不同账号的用户节点按照自己的角色和权限进行相应的操作,使得只有相应权限的账号才能接入区块链网络,同步区块链上的数据和获取权限范围内的数据;实现对区块链数据的保护,保证区块链数据的安全性和隐私性。,下面是链的权限控制方法、装置、系统及节点设备专利的具体信息内容。

1.一种链的权限控制方法,其特征在于,包括:
将预置的账号色和权限的对应关系写入到区块链的一区块中;
确定要加入到区块链中的用户节点所配置的目标账号的角色;
根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
2.根据权利要求1所述的方法,其特征在于,将预置的账号角色和权限的对应关系写入到区块链的一区块中的步骤包括:
将所述对应关系作为一特殊账号的账号属性写入到创始区块中,所述特殊账号的账号地址为预设地址,所述账号属性至少包括:包括所述对应关系的权限信息字段。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述预置的账号角色和权限的对应关系进行变更;
将变更后的账号角色和权限的对应关系发布到区块链网络中,以将变更后的账号角色和权限的对应关系存储到区块链的一新建区块中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述用户节点发送的请求信息,所述请求信息中至少包括所述目标账号的账号地址和用户标识信息;
根据所述请求信息中的所述用户标识信息,确定所述目标账号的角色;
向区块链网络中发布包括所述目标账号的账号地址和角色的信息,所述包括所述目标账号的账号地址和角色的信息用于将所述目标账号角色写入到与所述目标账号的账号地址相对应的账号属性中,所述账号属性至少包括:包括所述目标账号的角色的权限信息字段。
5.根据权利要求4所述的方法,其特征在于,根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制的步骤包括:
接收到配置了所述目标账号的所述用户节点发送的P2P连接建立请求时,获取所述目标账号的账号地址;
根据所述目标账号的账号地址,从区块链中获取所述目标账号的账号地址对应的账号属性;
从区块链的区块中,获取预置的账号角色和权限的对应关系;
根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号的权限;
当所述目标账号的权限包括接入区块链网络时,与所述用户节点建立P2P连接。
6.根据权利要求5所述的方法,其特征在于,根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制的步骤包括:
当所述用户节点接入到区块链网络中后,根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号是否具有同步区块链数据的权限;
当所述目标账号的权限包括同步区块链数据时,则向所述用户节点发送包含区块链中区块的哈希值的列表消息,所述列表消息指示所述用户节点对区块链数据进行同步。
7.根据权利要求4所述的方法,其特征在于,根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制的步骤包括:
当需要向所述用户节点发送新区块或交易时,根据所述目标账号的权限,确定是否向所述用户节点发送新区块或交易。
8.根据权利要求4所述的方法,其特征在于,根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制的步骤包括:
当接收到所述用户节点发送的新区块或交易时,根据所述目标账号的权限,确定是否对所述用户节点发送的新区块或交易进行处理。
9.根据权利要求1所述的方法,其特征在于,根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制的步骤包括:
根据所述对应关系和所述目标账号的角色,确定所述目标账号对区块链数据的访问权限,所述访问权限包括:访问区块链全部数据的权限、访问本群组数据的权限以及访问本账号相关数据的权限。
10.一种区块链的权限控制装置,其特征在于,包括:
对应关系写入模块,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;
节点角色确定模块,被配置为确定要加入到区块链中的用户节点所配置的目标账号的角色;
权限控制模块,被配置为根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
11.根据权利要求10所述的装置,其特征在于,所述对应关系写入模块,被配置为将所述对应关系作为一特殊账号的账号属性写入到创始区块中,所述特殊账号的账号地址为预设地址,所述账号属性至少包括:包括所述对应关系的权限信息字段。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
变更模块,被配置为对所述预置的账号角色和权限的对应关系进行变更;
变更对应关系存储模块,被配置为将变更后的账号角色和权限的对应关系发布到区块链网络中,以将变更后的账号角色和权限的对应关系存储到区块链的一新建区块中。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
请求信息接收模块,被配置为接收所述用户节点发送的请求信息,所述请求信息中至少包括所述目标账号的账号地址和用户标识信息;
确定模块,被配置为根据所述请求信息中的所述用户标识信息,确定所述目标账号的角色;
角色信息写入模块,被配置为向区块链网络中发布包括所述目标账号的账号地址和角色的交易信息,所述包括所述目标账号的账号地址和角色的信息用于将所述目标账号的角色写入到与所述目标账号的账号地址相对应的账号属性中,所述账号属性至少包括:包括所述目标账号的角色的权限信息字段。
14.根据权利要求13所述的装置,其特征在于,所述权限控制模块包括:
连接建立请求接收子模块,被配置为接收到配置了所述目标账号的所述用户节点发送的P2P连接建立请求时,获取所述目标账号的账号地址;
账号属性获取子模块,被配置为根据所述目标账号的账号地址,从区块链中获取所述目标账号的账号地址对应的账号属性;
对应关系获取子模块,被配置为从区块链的区块中,获取预置的账号角色和权限的对应关系;
第一权限确定子模块,被配置为根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号的权限;
连接建立子模块,被配置为在所述目标账号的权限包括接入区块链网络时,与所述用户节点建立P2P连接。
15.根据权利要求14所述的装置,其特征在于,所述权限控制模块包括:
第二权限确定子模块,被配置为在所述用户节点接入到区块链网络中后,根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号是否具有同步区块链数据的权限;
列表消息发送子模块,被配置为在所述目标账号的权限包括同步区块链数据时,则向所述用户节点发送包含区块链中区块的哈希值的列表消息,所述列表消息指示所述用户节点对区块链数据进行同步。
16.根据权利要求13所述的装置,其特征在于,所述权限控制模块包括:
第三权限确定子模块,被配置为当需要向所述用户节点发送新区块或交易时,根据所述目标账号的权限,确定是否向所述用户节点发送新区块或交易。
17.根据权利要求13所述的装置,其特征在于,所述权限控制模块包括:
第四权限确定子模块,被配置为当接收到所述用户节点发送的新区块或交易时,根据所述目标账号的权限,确定是否对所述用户节点发送的新区块或交易进行处理。
18.根据权利要求10所述的装置,其特征在于,所述权限控制模块包括:
第五权限确定子模块,被配置为根据所述对应关系和所述目标账号的角色,确定所述目标账号对区块链数据的访问权限,所述访问权限包括:访问区块链全部数据的权限、访问本群组数据的权限以及访问本账号相关数据的权限。
19.一种区块链的权限控制系统,其特征在于,包括:
管理员节点和用户节点,其中,所述管理员节点为区块链网络中配置了管理员账号的节点;
所述管理员节点,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;确定要加入到区块链中的所述用户节点所配置的目标账号的角色;以及根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行权利要求
1至9中任一项所述的方法的代码部分。
21.一种非临时性计算机可读存储介质,其特征在于,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行权利要求1至9中任一项所述的方法。
22.一种节点设备,其特征在于,包括:
权利要求21中所述的非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

说明书全文

链的权限控制方法、装置、系统及节点设备

技术领域

[0001] 本公开涉及信息技术领域,尤其涉及一种区块链的权限控制方法、装置、系统及节点设备。

背景技术

[0002] 区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。区块链有其特有的区块产生、交易产生和验证协议,具有不可更改、不可伪造和完全可追溯等安全特性。
[0003] 相关技术中的区块链各节点间通过P2P对等网络建立连接,每一个新加入的节点将会同步当前链上所有的数据。区块链数据对每个节点是完全公开的,节点可以随意查看任何一个区块任意一笔交易的信息。
[0004] 由上,相关技术中的区块链,由于节点加入链不受限制,链上的数据完全开放,适合于一些公众化的、不涉及隐私的信息存储,但是并不适合于区块链上的数据具有隐私性的信息存储。发明内容
[0005] 本公开提供一种区块链的权限控制方法、装置、系统及节点设备,主要用于克服相关技术中存在的问题。
[0006] 本公开的第一方面,提供一种区块链的权限控制方法,包括:
[0007] 将预置的账号色和权限的对应关系写入到区块链的一区块中;
[0008] 确定要加入到区块链中的用户节点所配置的目标账号的角色;
[0009] 根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
[0010] 第二方面,提供一种区块链的权限控制装置,包括:
[0011] 对应关系写入模块,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;
[0012] 节点角色确定模块,被配置为确定要加入到区块链中的目标账号的角色;
[0013] 权限控制模块,被配置为根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
[0014] 第三方面,提供一种区块链节点的权限控制系统,括:
[0015] 管理员节点和用户节点,其中,所述管理员节点为区块链网络中配置了管理员账号的节点;
[0016] 所述管理员节点,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;确定要加入到区块链中的所述用户节点所配置的目标账号的角色;以及根据所述对应关系和所述目标账号的角色,对配置了所述目标账号的所述用户节点的权限进行控制。
[0017] 第四方面,提供一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行上述区块链节点的权限控制方法的代码部分。
[0018] 第五方面,提供一种非临时性计算机可读存储介质所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述区块链节点的权限控制方法。
[0019] 第六方面,提供一种节点设备,包括:
[0020] 上述的非临时性计算机可读存储介质;以及
[0021] 一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
[0022] 本公开实施例通过设置区块链账号的角色和权限,各个配置了不同账号的用户节点按照自己的角色和权限进行相应的操作,使得只有相应权限的账号才能接入区块链网络,同步区块链上的数据和获取权限范围内的数据;实现对区块链数据的保护,保证区块链数据的安全性和隐私性。
[0023] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
[0024] 本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明
[0025] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0026] 图1为相关技术中的区块链网络的示意图;
[0027] 图2为本公开一实施例的区块链网络的示意图;
[0028] 图3为本公开一实施例的区块链的权限控制方法的流程示意图;
[0029] 图4为本公开一实施例的区块头的数据结构示意图;
[0030] 图5为本公开一实施例中角色和权限对应关系变更示意图;
[0031] 图6为本公开一实施例的为账号分配角色的流程示意图;
[0032] 图7为本公开一实施例的用户节点间建立P2P连接的流程示意图;
[0033] 图8为本公开一实施例的区块链同步的流程示意图;
[0034] 图9为本公开一实施例的新区块或交易处理示意图;
[0035] 图10为本公开一实施例的新区块或交易的转发示意图;
[0036] 图11为本公开一实施例的区块链的权限控制装置的框图
[0037] 图12为根据一示例性实施例示出的一种用于区块链的权限控制方法的装置的框图;
[0038] 图13为本公开一实施例的操作系统的分层示意图。

具体实施方式

[0039] 以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
[0040] 参见图1为相关技术中的区块链网络的示意图。区块链网络中的各个节点,通过P2P对等网络建立连接,每个加入到区块链网络中的节点,都可以同步当前区块链上的所有数据,使得区块链数据的若干副本数据被保存到区块链上的多个节点。
[0041] 本公开实施例中,为了对区块链中的数据进行保护,对配置了不同账号的不同用户节点进行角色区分和权限设置,使得配置了不同账号的用户节点在接入区块链、同步区块链上的数据、访问区块链中的数据等方面的权限是不相同的。
[0042] 参见图2,为本公开一实施例的区块链网络的示意图。区块链网络中的每个用户节点配置有一账号,不同的账号具有不同的角色和权限,由此,使得区块链网络的用户节点具有与账号相对应的角色和权限。
[0043] 区块链数据写入:由区块链节点通过向区块链网络发布交易(Transaction)实现向区块链写入数据。该交易包括:区块链节点按照预设的交易数据格式对生成的交易数据包,以及利用该区块链节点自己的私钥对该交易数据包进行的数字签名,该数字签名用于证明该区块链节点的用户的身份;而后,该交易被发布到区块链网络后,被区块链网络中的“矿工”(即执行PoW(Proof Of Work,工作证明)共识竞争机制的区块链节点)记录入区块链中产生的新区块,并将该新区块发布到区块链网络中,在该新区块以及该新区块所记录的交易其他区块链节点验证通过和接受后,该新区块所记录的交易即被写入区块链。其中,区块链中的新区块是由上述的“矿工”通过执行PoW或PoS等共识竞争机制而定期产生的,因此产生新区块的时间间隔通常和上述的预设技术要求相关,通过设置不同的预设技术要求可以改变区块链产生新区块的时间间隔。
[0044] 在本公开的一实施例中,可将配置了相同角色和权限的账号的用户节点划分为一个群组,例如,图2中所示的群组1、群组2、群组3……。每个群组中的用户节点数可为一个或多个。
[0045] 在本公开的一实施例中,账号角色与其对应的权限信息如表1所示。
[0046] 表1
[0047]
[0048] 在本公开的实施例中,管理员节点为区块链网络中配置有管理员账号的用户节点,其至少可执行以下操作中的一者或多者:确定账号的角色,对各账号的权限信息进行更改,进行区块的创建等。参见表1,管理员的权限包括:接入区块链网络、同步区块链数据、访问全部数据、访问本群组数据和访问本账号相关数据。
[0049] 群组1、群组2……中分别包括一个或多个配置相应用户账号的用户节点,这些用户节点可参与区块的创建等同一群组中的用户节点具有相同的权限,这些权限包括以下权限中的一者或多者:接入区块链网络、同步区块链数据、访问全部数据、访问本群组数据和访问本账号相关数据。
[0050] 表1中的接入区块链网络,是指配置了相应账号的用户节点可被允许接入到区块链网络中。同步区块链数据,是指配置了相应账号的用户节点可对区块链进行同步,以将区块链的数据副本保存到本地。访问全部数据,是指配置了相应账号的用户节点可访问(读取)区块链的区块中的全部数据。访问本群组数据,是指配置了相应账号的用户节点可访问本群组内其它用户节点的相关数据。访问本账号相关数据,是指配置了相应账号的用户节点可访问与自己账号相关的数据。
[0051] 在本公开的实施例中,账号对应的角色和权限可根据实际进行设置和变更。
[0052] 参见图3,为本公开一实施例的区块链节点的权限控制方法的流程示意图。该方法包括以下步骤:
[0053] 在步骤301中,将预置的账号角色和权限的对应关系写入到区块链的一区块中。
[0054] 在步骤302中,确定要加入到区块链中的用户节点所配置的目标账号的角色。
[0055] 在步骤303中,根据对应关系和所述目标账号的角色,对配置了目标账号的所述用户节点的权限进行控制。
[0056] 在本公开的实施例中,每个账号都由一对钥匙定义,一个私钥和一个公钥。账号以地址为索引,地址由公钥衍生而来,对公钥用单向加密算法计算出20个字节的地址作为账号地址。其中私钥由用户掌握而不发布到区块链网络中,公钥和账号地址可以随意发布到区块链网络中。应理解,账号和区块链中的用户节点不存在一一对应关系,一个账号所对应的私钥,可以在任意一个区块链的用户节点上被使用。例如,对于管理员账号,任何一个用户节点只要配置了管理员账号的私钥,其即是管理员节点,而管理员账号的公钥或账号地址已发布到区块链网络中。
[0057] 在本公开的实施例中,每个账号的账号属性(状态)包括以下属性字段:权限信息、账号余额、计数器、账号的合约代码(如果有的话)、账号的存储(默认为空)。其中,权限信息字段用于标识账号的角色和/或对应的权限。计数器,用于确定每笔交易只能被处理一次。账号余额为区块链作为数字货币存储账号的余额。若账号为合约账号,则账号的属性包括账号的合约代码,每当合约账号收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或创建合约。
[0058] 参见图4,本公开的实施例中,将账号的账号属性通过默克尔树进行保存。默克尔树的树根保存于区块头中。区块头的数据结构至少包括:上一区块头的哈希值、默克尔树根、时间戳和区块号等。默克尔树根下面,每一个标号为M开头的叶节点都代表一个账号。
[0059] 在本公开的一实施例中,将上述表1中的账号角色和权限的对应关系写入到区块链的一区块的账号属性的权限信息中,以及将每个账号的角色写入到一区块(例如,与写账号角色和权限的对应关系不同的一区块)的账号属性的权限信息中。应理解,也可将每个账号的角色和权限一起写入到区块中,则根据该存储账号的角色和权限的区块即可得到账号的权限。本公开一实施例中,为了节省存储空间以及便于对账户的权限进行管理,将账号的角色写入到区块中,而由于账号角色和权限的对应关系已存储到区块中,因此,根据区块中的账号角色和对应关系,即可得到账号的权限。
[0060] 在一个实施例中,步骤301中,将表1中的账号角色和权限的对应关系写入到区块链的区块至少可通过以下三种方式:
[0061] 方式1,角色为管理员的用户节点将表1中的信息直接写入到创始区块(即第一个区块)中,而无需通过挖矿的过程。
[0062] 在一个实施例中,角色为管理员的用户节点即该用户节点配置有管理员账号。管理员账号可为预置的,即按照预设规则,产生一公钥或账号地址,作为管理员账号。
[0063] 方式2,在其它实施例中,将表1中的账号角色和权限的对应关系作为系统的固定配置信息,即已经预先写入到用户节点所运行的客户端系统中,当用户节点启动系统时,即可获取到包括表1所示信息的创始区块。
[0064] 方式3,区块链网络中的任一用户节点或指定用户节点,发布“交易”,该交易中包括表1所示的信息;区块链网络中的用户节点竞争区块创建权后,将表1所示的信息写入到区块的区块头的权限信息字段中。
[0065] 当采用上述方式1和方式2时,上述表1的信息作为一个特殊账号的账号属性写入区块。该特殊账号的账号地址可为全0,例如,全0的20字节的地址。由此,创始区块的区块头中,包括一特殊账号,该账号的账号属性中的权限信息中包括上述表1所示的信息。
[0066] 在本公开的一实施例中,表1中的信息写入到区块中后,可作为接入到区块链中的用户节点的默认权限。管理员节点可对该默认权限进行变更,变更过程将在后续详细介绍。
[0067] 在本公开的实施例中,由于不同的账号的角色和权限不相同,在配置了相应账号的用户节点接入区块链,配置了相应账号的用户节点同步数据,以及配置了相应账号的用户节点访问数据等过程中,将对用户节点所配置的账号的权限进行确认,使用户节点被受控接入、读取等,对区块链中的数据进行保护。
[0068] 本公开实施例通过改变区块头的数据结构,在区块头的账号属性中增加对不同账号的角色和权限进行区分的字段,易于实现,使得区块链节点对账号权限的识别过程更加高效,实现对区块链数据的保护,保证区块链数据的安全性和隐私性。
[0069] 账号对应的角色和权限的变更
[0070] 参见图5,管理员节点可对表1中的角色和权限的对应关系进行变更,以及对每个账号的角色进行变更。管理员节点进行变更时,发布“交易”到区块链网络中,该“交易”中包括变更后的信息,例如,变更后的角色和权限的对应关系,变更后的账号的角色等。区块链网络中的矿工节点进行挖矿,以将变更后的信息存储到区块链的一新建的目标区块中。若表1中的对应关系,经变更后被存储到目标区块中,则后续过程中,需要查询权限与角色的对应关系时,通过特殊账号到该目标区块进行查询。
[0071] 账号的角色分配及配置了相应账号的用户节点接入区块链
[0072] 基于上述的区块头数据结构,参见图6,本公开实施例中,加入到区块链中的用户节点,需要配置了已被分配角色的账号,且将其角色按照上述的区块头数据结构存储到区块中。
[0073] 初始时,区块链网络中可预置预设个数的管理员节点。这里的预置,是指为用户节点分配管理员账号,使其成为管理员节点。该预设个数的管理员节点之间建立P2P连接,组成初始的区块链网络。按照上述实施例所述,该预设个数的管理员节点至少存储有一区块,该区块中包括了上述表1所示的信息。应理解,预设个数的管理员节点可为一个或多个。
[0074] 在步骤601中,当一用户节点需要加入到区块链网络时,向任一管理员节点发送请求信息。请求信息中至少包括用户节点所配置账号的账号地址和用户标识信息。在一个实施例中,该账号地址由用户节点生成。用户标识信息可为以下信息中的一者或多者:用户名称、用户编号和用户代码等。
[0075] 在步骤602中,接收到请求信息的管理员节点,根据请求信息中的用户标识信息,确定用户节点所配置的账号的角色。在一个实施例中,管理员节点根据账号和/或用户标识信息,确定用户节点的合法性,并在确定用户合法后确定用户节点所配置的账号的角色。管理员节点在确定用户节点所配置的账号的角色时,可根据预设规则进行确定,例如,该预设规则可为,用户标识信息与角色的对应关系。
[0076] 在步骤603中,管理员节点确定了用户节点所配置的账号的角色后,向区块链网络中发布“交易”,该交易中包括请求接入区块链网络的用用户节点所配置的账号的账号地址和角色。
[0077] 在步骤604中,区块链网络中竞争到新区块创建权的用户节点,将交易中的信息写入到新区块后,向区块链网络发布新区块。其中,将角色写入到区块头的权限信息字段。
[0078] 在步骤605中,区块链网络的节点接收到新区块,并确认区块合法后,将其写入到区块链中。
[0079] 本公开实施例,可实现在接入区块链前,对用户节点所配置的账号的角色的分配,而由于角色与权限的对应关系已存储到一区块中,因此,根据存储角色与权限对应关系的区块以及存储用户节点所配置账号的账号角色的区块,即可确定用户节点所配置账号的权限。
[0080] 应理解,管理员节点可为发送请求信息的用户节点所配置的账号分配角色,若接收到请求信息的节点不是管理员节点,则其不对请求信息进行处理,而将请求信息发送给与自己相连接的节点,使得请求信息最终被一管理员节点接收到。
[0081] 由上述步骤601-步骤605,用户节点所配置的账号被分配了角色后,可向区块链网络中的用户节点发起P2P连接建立请求。
[0082] 参见图7,为本公开一实施例的用户节点建立P2P连接的流程示意图。
[0083] 在步骤701中,区块链网络中的用户节点B接收到一经管理员节点分配了角色的用户节点A发送的连接建立请求时,识别出发起连接建立请求的用户节点A所配置的账号的账号信息。应理解,用户节点B可为管理员节点或加入到区块链网络中的任一用户节点。
[0084] 在步骤702中,用户节点B从区块链中获取该账号对应的区块的区块头的权限信息字段,并获取存储账号角色与权限的对应关系的区块的区块头的权限信息字段(权限信息字段中存储了账号的角色),以确定该发起连接建立请求的用户节点A所配置的账号是否有接入区块链网络的权限。
[0085] 在一个实施例中,若未查询到用户节点A所配置的账号的账号信息,或用户节点A所配置的账号的权限不包括接入区块链网络,则用户节点B不与用户节点A建立P2P连接。若该用户节点所配置的账号有接入区块链网络的权限则与其建立P2P连接。
[0086] 当用户节点接入到区块链网络中后,可根据自己所配置的账号的权限进行区块链的同步、数据访问等操作。
[0087] 用户节点对区块链的同步
[0088] 参见图8,在本公开的实施例中,一个用户节点与区块链节点建立连接,即接入区块链网络后,需要进行区块链的同步。同步区块链的过程包括:
[0089] 在步骤801中,对等节点查询该用户节点所配置的账号是否具有同步区块链数据的权限,若有同步区块链的权限,则向其发送包含区块链中区块的哈希值的列表(inventor)消息。
[0090] 在一个实施例中,根据用户节点所配置账号的账号地址对应的账号属性中的权限信息字段,以及账号角色和权限的对应关系,确定用户节点所配置的账号是否具有同步区块链数据的权限。
[0091] 在步骤802中,用户节点接收到列表消息,则向与之相连的对等节点请求区块,以对区块链进行同步。
[0092] 配置了具有同步区块链数据权限的账号的用户节点可将区块链同步到本地,但对同步到本地的区块的访问是受限的。
[0093] 参见图9,在本公开的一实施例中,为了进一步保证区块建立的安全性,当区块链网络中的用户节点C接收到用户节点D发送的新区块或交易时,用户节点C不仅要验证新区块和交易的合法性,还根据用户节点D所配置的账号的账号信息,查询其权限信息。应理解,权限信息的查询和上述实施例相同,即获取账号对应的区块的区块头的权限信息字段以及存储账号角色和权限对应关系的区块后,确定其对应的权限信息。用户节点C根据用户节点D所配置的账号的权限信息,确定是否对接收到的新区块或交易进行处理。例如,若用户节点D所配置的账号不具有接入区块链网络的权限,或用户节点D所配置的账号已被管理员节点删除等情况,则不对用户节点D发送的新区块或交易进行处理,避免用户节点D为“无权限节点”的情况下,所带来的安全隐患。应理解,用户节点C可为管理员节点或加入到区块链网络中的任一用户节点。
[0094] 参见图10,在本公开的一实施例中,为了避免“无权限节点”带来的安全隐患,当用户节点产生新区块或收到交易时,检查与本用户节点相连接的所有其它节点所配置的账号的权限信息,以确定是否向其发送新区块或交易。由此,可避免向“无权限节点”发送新区块或交易。且当用户节点所配置的账号的权限发生变化,例如,管理员节点删除用户节点所配置的账号、更新用户节点所配置的账号权限等时,对于一些被删除的用户节点,不再向其发送区块和交易,保证区块链数据的安全性。
[0095] 用户节点对区块链数据的访问
[0096] 在一个实施例中,用户节点对同步到本地的数据进行访问时,需要通过相应的访问接口。该访问接口用于根据用户节点所配置的账号的权限对数据进行过滤。访问接口对数据的过滤规则可为预置的,以实现根据用户节点所配置的账号的角色和权限,为其提供相应数据的访问权限。访问接口还可设置为根据区块链中的权限信息,调整过滤规则,以为用户节点提供相应数据的访问权限。
[0097] 由此,当一个用户节点需要访问区块链的全部数据时,访问接口可根据用户节点所配置的账号的权限信息判断其是否具有相应的权限。在该用户节点所配置的账号具有相应的权限时,向用户节点提供全部数据。
[0098] 当用户节点需要访问本群组数据时,访问接口可根据用户节点所配置的账号的权限信息判断其是否具有访问本群组数据的权限。在该用户节点所配置的账号具有访问本群组数据的权限时,向其提供本群组数据。
[0099] 当用户节点需要访问本账号相关数据时,访问接口可根据用户节点所配置的账号的权限信息判断其是否具有访问本账号相关数据的权限。在该用户节点所配置的账号具有访问本账号相关数据的权限时,向其提供本账号相关数据。
[0100] 参见图11,本公开实施例还提供一种区块链的权限控制装置。该装置1100包括:
[0101] 对应关系写入模块1101,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;
[0102] 节点角色确定模块1102,被配置为确定要加入到区块链中的用户节点所配置的目标账号的角色;
[0103] 权限控制模块1103,被配置为根据所述对应关系和所述目标账号的角色,对配置了所述目标账号所述用户节点的权限进行控制。
[0104] 在一个实施例中,所述对应关系写入模块1101,被配置为将所述对应关系作为一特殊账号的账号属性写入到创始区块中,所述特殊账号的账号地址为预设地址,所述账号属性至少包括:包括所述对应关系的权限信息字段。
[0105] 在一个实施例中,装置1100还包括:
[0106] 变更模块1104,被配置为对所述预置的账号角色和权限的对应关系进行变更;
[0107] 变更对应关系存储模块1105,被配置为将变更后的账号角色和权限的对应关系发布到区块链网络中,以将变更后的角色和权限的对应关系存储到区块链的一新建区块中。
[0108] 在一个实施例中,装置1100还包括:
[0109] 请求信息接收模块,被配置为接收所述用户节点发送的请求信息,所述请求信息中至少包括所述用户节点所配置的目标账号的账号地址和用户标识信息;
[0110] 确定模块,被配置为根据所述请求信息中的所述用户标识信息,确定所述目标账号的角色;
[0111] 角色信息写入模块,被配置为向区块链网络中发布包括所述目标账号的账号地址和角色的交易信息,所述包括所述目标账号的账号地址和角色的信息用于将以将所述目标账号用户节点的角色写入到与所述目标账号用户节点的账号地址相对应的账号属性中,所述账号属性至少包括:包括所述目标账号用户节点的角色的权限信息字段。
[0112] 在一个实施例中,权限控制模块1103包括:
[0113] 连接建立请求接收子模块,被配置为接收到配置了所述目标账号的所述用户节点发送的P2P连接建立请求时,获取所述目标账号的账号地址;
[0114] 账号属性获取子模块,被配置为根据所述目标账号的账号地址,从区块链中获取所述目标账号的账号地址对应的账号属性;
[0115] 对应关系获取子模块,被配置为从区块链的区块中,获取预置的角色和权限信息的对应关系;
[0116] 第一权限确定子模块,被配置为根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号的权限;
[0117] 连接建立子模块,被配置为在所述目标账号的权限包括接入区块链网络时,与所述用户节点建立P2P连接。
[0118] 在一个实施例中,权限控制模块1103包括:
[0119] 第二权限确定子模块,被配置为在所述用户节点接入到区块链网络中后,根据所述目标账号的账号地址对应的账号属性中的权限信息字段,以及所述对应关系,确定所述目标账号是否具有同步区块链数据的权限;
[0120] 列表消息发送子模块,被配置为在所述目标账号的权限包括同步区块链数据时,则向所述用户节点发送包含区块链中区块的哈希值的列表消息,所述列表消息指示所述用户节点对区块链数据进行同步。
[0121] 在一个实施例中,权限控制模块1103包括:
[0122] 第三权限确定子模块,被配置为当需要向所述用户节点发送新区块或交易时,根据所述目标账号的权限,确定是否向所述用户节点发送新区块或交易。
[0123] 在一个实施例中,权限控制模块1103包括:
[0124] 第四权限确定子模块,被配置为当接收到所述用户节点发送的新区块或交易时,根据所述目标账号的权限,确定是否对所述用户节点发送的新区块或交易进行处理。
[0125] 在一个实施例中,权限控制模块1103包括:
[0126] 第五权限确定子模块,被配置为根据所述对应关系和所述目标账号的角色,确定所述目标账号对区块链数据的访问权限,所述访问权限包括:访问区块链全部数据的权限、访问本群组数据的权限以及访问本账号相关数据的权限。
[0127] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0128] 相应的,在本公开的一实施例中,还提供一种区块链节点的权限控制系统,该系统中包括:管理员节点和用户节点,其中,管理员节点为区块链网络中配置了管理员账号的节点,用户节点为配置有相应账号的节点。
[0129] 管理员节点,被配置为将预置的账号角色和权限的对应关系写入到区块链的一区块中;确定要加入到区块链中的用户节点所配置的目标账号的角色;以及根据对应关系和目标账号的角色,对配置了目标账号的用户节点的权限进行控制。
[0130] 本公开实施例的系统可适用于区块链数据需要受控读取的各领域,例如,金融交易系统、医院病历系统等。通过对用户节点的权限控制,提高区块链数据的安全性和隐私性;且本公开实施例,既能利用区块链无中心、防篡改的特性,又能够解决目前区块链信息完全开放的问题,提高区块链数据的安全性。
[0131] 图12是根据一示例性实施例示出的一种用于区块链的权限控制方法的装置1200的框图,该装置1200可以是节点设备。如图所示,该装置1200可以包括:处理器1201,存储器1202,多媒体组件1203,输入/输出(I/O)接口1204,以及通信组件1205。
[0132] 其中,处理器1201用于控制该装置1200的整体操作,以完成上述的区块链的权限控制方法中的全部或部分步骤。存储器1202用于存储操作系统,各种类型的数据以支持在该装置1200的操作,这些数据的例如可以包括用于在该装置1200上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器1202可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
[0133] 在本公开的一实施例中,存储器1202中存储的操作系统可采用图13所示的架构,即包括:存储层、业务层和会话层。其中,存储层采用加入了节点权限控制的区块链架构,达到信息分等级和对用户分权限开放的目的。
[0134] 多媒体组件1203可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1202或通过通信组件1205发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口1204为处理器1201和其他接口模块之间提供接口,上述其他接口模块可以是键盘鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1205用于该装置1200与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件1205可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
[0135] 在一示例性实施例中,装置1200可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程阵列(Field Programmable Gate Array,简称FPGA)、控制器微控制器微处理器或其他电子元件实现,用于执行上述的区块链的权限控制方法。
[0136] 在另一示例性实施例中,还提供了一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行上述的区块链的权限控制方法的代码部分。
[0137] 在另一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1202,上述指令可由装置1200的处理器1201执行以完成上述的区块链的权限控制方法。示例地,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(Random Access Memory,简称RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0138] 流程图中或在本公开的实施例中以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所述技术领域的技术人员所理解。
[0139] 本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0140] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈