首页 / 专利库 / 资料储存系统 / 区块链 / 区块链权限控制方法、装置及节点设备

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

阅读:515发布:2023-05-28

专利汇可以提供链权限控制方法、装置及节点设备专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 区 块 链 权限控制方法、装置及 节点 设备,所述方法包括:接收节点设备发送的目标信息;获取所述节点设备所配置账户的账户地址;根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;根据所述账户权限,对所述目标信息进行相应的处理。本公开每个节点设备配置有相应的账户,通过对账户进行权限控制,可实现将不同的节点设备的权限进行限制,以保证区块链数据的安全性和隐私性。,下面是链权限控制方法、装置及节点设备专利的具体信息内容。

1.一种链权限控制方法,其特征在于,包括:
接收节点设备发送的目标信息;
获取所述节点设备所配置账户的账户地址;
根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;
根据所述账户权限,对所述目标信息进行相应的处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述节点设备发送的所配置账户的账户地址;
为所述所配置账户分配账户权限;
向区块链网络发布包括所述所配置账户的账户地址和账户权限的交易,所述交易用于将所述节点设备所配置账户的账户地址和账户权限存储到所述预设区块中。
3.根据权利要求1所述的方法,其特征在于,所述目标信息为网络连接请求,所述网络连接请求中包括:所述节点设备所配置账户的公钥;
所述获取所述节点设备所配置账户的账户地址的步骤包括:
根据所述公钥,获取所述所配置账户的所述账户地址。
4.根据权利要求3所述的方法,其特征在于,所述根据所述账户权限,对所述目标信息进行相应的处理的步骤包括:
当所述账户地址所对应的账户权限包括网络连接权限时,向所述节点设备发送认证请求,所述认证请求中至少包括:认证码;
接收所述节点设备使用所配置账户的所述账户地址所对应的私钥对所述认证码的签名;
根据所述账户地址对应的公钥验证所述签名;
当所述签名的验证通过时,与所述节点设备建立网络连接。
5.根据权利要求1所述的方法,其特征在于,所述目标信息为交易;
所述根据所述账户权限,对所述目标信息进行相应的处理的步骤包括:
当所述节点设备所配置账户的账户权限包括产生交易的权限时,对接收到的所述交易进行转发和存储。
6.根据权利要求1所述的方法,其特征在于,所述目标信息为转账交易,所述转账交易中至少包括:接收方账户的账户地址;
所述根据所述账户权限,对所述目标信息进行相应的处理的步骤包括:
当所述节点设备所配置账户的账户权限包括发起转账的权限时,根据所述接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块中获取所述接收方账户的账户地址所对应的账户权限;
当所述接收方账户的账户地址所对应的账户权限包括接收转账的权限时,对所述转账交易进行转发和存储。
7.根据权利要求1所述的方法,其特征在于,所述目标信息为所述节点设备创建的区块,所述区块的区块头中包括用于记录公钥和区块头部数据的签名的字段;
所述获取所述节点设备所配置账户的账户地址的步骤包括:
根据所述区块的区块头中的公钥,获取所述账户地址。
8.根据权利要求7所述的方法,其特征在于,所述根据所述账户权限,对所述目标信息进行相应的处理的步骤包括:
当所述节点设备所配置账户的账户权限包括产生区块的权限时,对接收到的区块进行转发和存储。
9.一种区块链权限控制方法,应用于区块链网络中的节点设备,其特征在于,包括:
接收到交易产生请求时,获取所配置账户的账户地址;
根据所述账户地址,从存储有账户地址和账户权限对应关系的区块中,获取所述账户地址对应的账户权限;
当所述账户权限包括产生交易的权限时,产生并发送交易。
10.根据权利要求9所述的方法,其特征在于,所述交易为转账交易;
所述方法还包括:
当所述账户权限包括产生交易的权限时,根据接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块获取所述接收方账户的账户地址的账户权限;
当所述接收方账户的账户权限包括接收转账的权限时,产生并发送所述转账交易。
11.一种区块链权限控制装置,其特征在于,包括:
信息接收模块,被配置为接收节点设备发送的目标信息;
账户地址获取模块,被配置为获取所述节点设备所配置账户的账户地址;
账户权限获取模块,被配置为根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;
处理模块,被配置为根据所述账户权限,对所述目标信息进行相应的处理。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
账户地址接收模块,被配置为接收所述节点设备发送的所配置账户的账户地址;
权限分配模块,被配置为为所述所配置账户分配账户权限;
交易发布模块,被配置为向区块链网络发布包括所述所配置账户的账户地址和账户权限的交易,所述交易用于将所述节点设备所配置账户的账户地址和账户权限存储到所述预设区块中。
13.根据权利要求11所述的装置,其特征在于,所述目标信息为网络连接请求,所述网络连接请求中包括:所述节点设备所配置账户的公钥;
所述账户地址获取模块,被配置为根据所述公钥,获取所述所配置账户的所述账户地址。
14.根据权利要求13所述的装置,其特征在于,所述处理模块包括:
认证请求发送子模块,被配置为在所述账户地址所对应的账户权限包括网络连接权限时,向所述节点设备发送认证请求,所述认证请求中至少包括:认证码;
签名子模块,被配置为接收所述节点设备使用所配置账户的所述账户地址所对应的私钥对所述认证码的签名;
验证子模块,被配置为根据所述账户地址对应的公钥验证所述签名;
连接建立子模块,被配置为在所述签名的验证通过时,与所述节点设备建立网络连接。
15.根据权利要求11所述的装置,其特征在于,所述目标信息为交易;
所述处理模块包括:
交易处理子模块,被配置为在所述节点设备所配置账户的账户权限包括产生交易的权限时,对接收到的所述交易进行转发和存储。
16.根据权利要求11所述的装置,其特征在于,所述目标信息为转账交易,所述转账交易中至少包括:接收方账户的账户地址;
所述处理模块包括:
接收方账户权限获取子模块,被配置为在所述节点设备所配置账户的账户权限包括发起转账的权限时,根据所述接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块中获取所述接收方账户的账户地址所对应的账户权限;
转账交易处理子模块,被配置为在所述接收方账户的账户地址所对应的账户权限包括接收转账的权限时,对所述转账交易进行转发和存储。
17.根据权利要求11所述的装置,其特征在于,所述目标信息为所述节点设备创建的区块,所述区块的区块头中包括用于记录公钥和区块头部数据的签名的字段;
所述账户地址获取模块,被配置为根据所述区块的区块头中的公钥,获取所述账户地址。
18.根据权利要求17所述的装置,其特征在于,所述处理模块包括:
区块处理子模块,被配置为在所述节点设备所配置账户的账户权限包括产生区块的权限时,对接收到的区块进行转发和存储。
19.一种区块链权限控制装置,应用于区块链网络中的节点设备,其特征在于,包括:
交易产生请求接收模块,被配置为接收到交易产生请求时,获取所配置账户的账户地址;
账户权限获取模块,被配置为根据所述账户地址,从存储有账户地址和账户权限对应关系的区块中,获取所述账户地址对应的账户权限;
交易产生模块,被配置为在所述账户权限包括产生交易的权限时,产生并发送交易。
20.根据权利要求19所述的方法,其特征在于,所述交易为转账交易;
所述装置还包括:
接收方转换权限获取模块,被配置为在所述账户权限包括产生交易的权限时,根据接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块获取所述接收方账户的账户地址的账户权限;
转账交易产生模块,被配置为在所述接收方账户的账户权限包括接收转账的权限时,产生并发送所述转账交易。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行权利要求
1至8中任一项所述的方法的代码部分。
22.一种非临时性计算机可读存储介质,其特征在于,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行权利要求1至8中任一项所述的方法。
23.一种节点设备,其特征在于,包括:
权利要求22中所述的非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
24.一种计算机程序产品,其特征在于,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行权利要求
9至10中任一项所述的方法的代码部分。
25.一种非临时性计算机可读存储介质,其特征在于,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行权利要求9至10中任一项所述的方法。
26.一种节点设备,其特征在于,包括:
权利要求25中所述的非临时性计算机可读存储介质;以及
一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

说明书全文

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

技术领域

[0001] 本发明涉及区块链技术领域,尤其涉及一种区块链权限控制方法、装置及节点设备。

背景技术

[0002] 区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。区块链有其特有的区块产生、交易产生和验证协议,具有不可篡改、不可伪造和完全可追溯等安全特性。
[0003] 区块链网络基于P2P网络,每个参与交易和区块存储、验证、转发的P2P网络节点都是一个区块链网络中的节点。区块链数据对每个节点是完全公开的,节点可以随意查看任何一个区块任意一笔交易的信息。
[0004] 由上,相关技术中的区块链,由于节点加入链不受限制,链上的数据完全开放,适合于一些公众化的、不涉及隐私的信息存储,但是并不适合于区块链上的数据具有隐私性的信息存储,不能实现对账户的区块链操作进行限制。

发明内容

[0005] 为克服相关技术中存在的问题,本发明提供一种区块链权限控制方法、装置及节点设备。
[0006] 其中,第一方面,提供一种区块链权限控制方法,包括:
[0007] 接收节点设备发送的目标信息;
[0008] 获取所述节点设备所配置账户的账户地址;
[0009] 根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;
[0010] 根据所述账户权限,对所述目标信息进行相应的处理。
[0011] 第二方面,提供一种区块链权限控制方法,应用于区块链网络中的节点设备,包括:
[0012] 接收到交易产生请求时,获取所配置账户的账户地址;
[0013] 根据所述账户地址,从存储有账户地址和账户权限对应关系的区块中,获取所述账户地址对应的账户权限;
[0014] 当所述账户权限包括产生交易的权限时,产生并发送交易。
[0015] 第三方面,提供一种区块链权限控制装置,包括:
[0016] 信息接收模块,被配置为接收节点设备发送的目标信息;
[0017] 账户地址获取模块,被配置为获取所述节点设备所配置账户的账户地址;
[0018] 账户权限获取模块,被配置为根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;
[0019] 处理模块,被配置为根据所述账户权限,对所述目标信息进行相应的处理。
[0020] 第四方面,提供一种区块链权限控制装置,应用于区块链网络中的节点设备,包括:
[0021] 交易产生请求接收模块,被配置为接收到交易产生请求时,获取所配置账户的账户地址;
[0022] 账户权限获取模块,被配置为根据所述账户地址,从存储有账户地址和账户权限对应关系的区块中,获取所述账户地址对应的账户权限;
[0023] 交易产生模块,被配置为在所述账户权限包括产生交易的权限时,产生并发送交易。
[0024] 第五方面,提供一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行上述第一方面的方法的代码部分。
[0025] 第六方面,提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述第一方面的方法。
[0026] 第七方面,提供一种节点设备,包括:
[0027] 上述第六方面的非临时性计算机可读存储介质;以及
[0028] 一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
[0029] 第八方面,提供一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行上述第二方面的方法的代码部分。
[0030] 第九方面,提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行上述第二方面的方法。
[0031] 第十方面,提供一种节点设备,包括:
[0032] 上述第九方面的非临时性计算机可读存储介质;以及
[0033] 一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。
[0034] 本公开中每个节点设备配置有相应的账户,通过对账户进行权限控制,可实现将不同的节点设备的权限进行限制,以保证区块链数据的安全性和隐私性;另一方面,通过对节点设备所配置账户的接入权限进行控制,可让区块链成为私有链网络,防止不相关节点接入网络,提高区块链的安全性;且通过具有账户管理权限的节点设备发送的交易,可实现对账户权限的设置,将各个账户对应的账户地址和权限记录到区块链中,使得每个账户的权限可在区块链中查询得到,可防止账户权限被篡改,保证区块链的安全性。
[0035] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
[0036] 本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明
[0037] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0038] 图1是本公开一实施例的区块链网络的示意图;
[0039] 图2是本公开一实施例的节点设备的结构示意图;
[0040] 图3是本公开一实施例的区块链权限控制方法的流程示意图;
[0041] 图4是本公开一实施例的账户地址和账户权限的对应关系写入区块的流程示意图;
[0042] 图5是本公开一实施例的节点设备间建立网络连接的示意图;
[0043] 图6是本公开一实施例的节点设备对交易进行验证的示意图;
[0044] 图7是本公开一实施例的区块的区块头的数据结构示意图;
[0045] 图8是本公开一实施例的节点设备对接收到的区块的验证流程示意图;
[0046] 图9是本公开一实施例的区块链权限控制装置的框图
[0047] 图10是本公开另一实施例的区块链权限控制装置的框图;
[0048] 图11是根据一示例性实施例示出的一种用于区块链权限控制方法的装置的框图。

具体实施方式

[0049] 以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
[0050] 在对本公开提供的区块链权限控制方法、装置及节点设备进行说明之前,先对本公开各个实施例所涉及的区块链进行介绍。
[0051] 区块链节点:区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。下面对区块链网络的一些概念进行介绍。
[0052] 区块链网络中的节点可以称为区块链节点,其中区块链网络基于P2P(Peer to Peer,对等网络)网络,每个参与交易和区块存储、验证、转发的P2P网络节点都是一个区块链网络中的节点。
[0053] 用户身份:区块链中的用户身份可以使用公钥或者是根据该公钥生成的账户地址表示,并且公钥和私钥是成对出现的,其中私钥由用户掌握而不发布到上述的区块链网络中,公钥或者上述的账户地址可随意发布在区块链网络中。其中,公钥可以通过特定的哈希和编码后成为上述的账户地址。值得一提的是,用户身份和区块链节点不存在一一对应关系,用户可以在任意一个区块链节点上使用自己的私钥。
[0054] 区块链数据写入:由区块链节点通过向区块链网络发布交易(Transaction)实现向区块链写入数据。该交易包括:区块链节点按照预设的交易数据格式对生成的交易数据包,以及利用该区块链节点自己的私钥对该交易数据包进行的数字签名,该数字签名用于证明该区块链节点的用户的身份;而后,该交易被发布到区块链网络后,被区块链网络中的“矿工”(即执行PoW(Proof Of Work,工作证明)共识竞争机制的区块链节点)记录入区块链中产生的新区块,并将该新区块发布到区块链网络中,在该新区块以及该新区块所记录的交易其他区块链节点验证通过和接受后,该新区块所记录的交易即被写入区块链。其中,区块链中的新区块是由上述的“矿工”通过执行PoW或PoS等共识竞争机制而定期产生的,因此产生新区块的时间间隔通常和上述的预设技术要求相关,通过设置不同的预设技术要求可以改变区块链产生新区块的时间间隔。
[0055] 参见图1为本公开一实施例的区块链网络的示意图。
[0056] 区块链网络100中包括:一个或多个节点设备,这些节点设备可以各种形式来实施,例如,可以包括诸如手机、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、服务器、矿机等。
[0057] 在本公开的实施例中,每个节点设备配置有相应的账户,通过对账户进行权限控制,可实现将不同的节点设备的权限进行限制,以保证区块链数据的安全性和隐私性。另一方面,通过对节点设备所配置账户的接入权限进行控制,可让区块链成为私有链网络,防止不相关节点接入网络,提高区块链的安全性。
[0058] 参见图2为本公开一实施例的节点设备的结构示意图。节点设备200包括:接收单元201、处理单元202、存储单元203和发送单元204等。
[0059] 接收单元201,被配置为通过一个或多个网络,经由一个或多个网络协议,进行信息接收。接收的信息可包括:交易、新区块等。
[0060] 处理单元202,被配置为进行信息处理,例如,当接收单元201接收到区块链交易时,确定交易中包含的数据,验证交易的合法性等。在一些实施例中,处理单元202,还被配置为生成账户地址,例如,利用包含在接收到的交易请求中的公钥,生成账户地址,或根据设定的规则生成账户地址。
[0061] 存储单元203,被配置为进行信息存储,例如,存储用于授权交易的规则和算法、存储区块链等。
[0062] 发送单元204,被配置为经由一个或多个网络,采用一个或多个网络协议,进行信息发送。发送的信息可包括:交易、新区块以及各种请求(例如,连接请求)等。
[0063] 参见图3,为本公开一实施例的区块链权限控制方法的流程示意图。该区块链权限控制方法包括以下步骤:
[0064] 在步骤301中,接收节点设备发送的目标信息。
[0065] 在本公开的实施例中,目标信息包括:网络连接请求,交易,以及区块等等。
[0066] 在步骤302中,获取节点设备所配置账户的账户地址。
[0067] 在步骤303中,根据账户地址,从存储有账户地址和账户地址对应的账户权限的预设区块中,获取账户地址对应的账户权限。
[0068] 在本公开的实施例中,账户地址和账户地址对应的账户权限,被存储到一预设区块中。在一个实施例中,可将账户地址和账户权限的对应关系存储到创始区块(即预设区块)中,使得节点设备在初始化,同步了创始区块后即可到创始区块中进行查询。在另一些实施例中,还可按照图4所示的流程将节点设备的账户权限和账户权限写入到预设区块中。
[0069] 在步骤304中,根据账户权限,对目标信息进行相应的处理。
[0070] 在本公开的实施例中,根据目标信息的不同,以及账户权限的不同,对目标信息的处理方式即不相同,例如,对于网络连接请求,根据账户权限对其进行的处理可包括响应网络连接请求,进行网络连接。
[0071] 账户地址和账户权限的对应关系写入区块
[0072] 参见图4,为本公开一实施例的账户地址和账户权限的对应关系写入区块的流程示意图。
[0073] 在步骤401中,目标节点设备接收待分配权限的节点设备发送的账户地址。
[0074] 在本公开的一实施例中,目标节点设备为配置了具有账户管理权限的账户的节点设备。在一个实施例中,为了保证区块链网络中有目标节点设备可执行账户权限分配的处理,在创世区块中,至少应记录一个具有账户管理权限的账户的信息,使得配置该账户的节点设备,可通过向区块链网络中发布交易,实现将各账户的账户权限写入到区块链中。
[0075] 账户地址,是由配置了待分配权限账户的节点设备生成并发送给目标节点设备的。在一个实施例中,配置了待分配权限账户的节点设备可根据公钥生成账户地址。
[0076] 在步骤402中,目标节点设备确定配置了待分配权限账户的节点设备的权限。
[0077] 在一个实施例中,账户的权限可为有账户管理权限的节点设备根据账户的色为账户分配的。或者,也可是在创始区块或一特定区块中将所有账户的权限设定好,由此,只需要根据账户地址到创始区块或特征区块进行查询,即可确定待分配权限账户的权限。
[0078] 在步骤403中,目标节点设备向区块链网络发布包括待分配权限账户的账户地址和权限的交易。
[0079] 在步骤404中,区块链网络中的节点设备,进行挖矿,将交易记录到区块链中。
[0080] 由此,使得账户的账户地址和权限以交易的形式记录在区块链的区块中,该区块即为上述步骤303中的预设区块。某个节点设备配置了已记录到区块链中的账户,则该节点设备就具有了所配置账户的权限,可以进行权限范围内的操作。参见表1,为本公开一实施例的节点设备可包括的账户权限。
[0081] 表1
[0082]
[0083] 通过上述步骤将账户的权限存储到区块链中的区块后,具有账户管理权限的节点设备,还可通过发布交易的方式,对账户的权限进行修改
[0084] 本公开实施例中,通过具有账户管理权限的节点设备发送的交易,可实现对账户权限的设置,将各个账户对应的账户地址和权限记录到区块链中,使得每个账户的权限可在区块链中查询得到,可防止账户权限被篡改,保证区块链的安全性。
[0085] 节点设备加入到区块链网络(即与区块链网络中的节点建立连接)
[0086] 在本公开的实施例中,若某个节点设备被配置了具有网络连接权限的账户,则这个节点设备可加入到区块链网络。在一个实施例中,未加入到区块链网络但被配置了具有网络连接权限的账户的节点设备可向区块链网络中的节点设备,发送连接请求以加入到区块链网络。当节点设备发送网络连接请求时,需向被连接的节点设备(即区块链网络中的一节点设备)提供其具有网络连接权限的证明。
[0087] 参见图5,在一个实施例中,上述步骤301中的目标信息为网络连接请求。在步骤501中,发起网络连接请求的节点设备向被连接节点设备发起网络连接请求,网络连接请求中包括:账户的账户地址所对应的公钥。
[0088] 在步骤502中,被连接节点设备收到连接请求后,根据公钥获取发起连接请求的节点设备的账户地址。
[0089] 在步骤503中,被连接节点设备根据账户地址,查询区块链中是否记录了该账户地址所对应的权限,并判断所记录权限中是否包括网络连接权限。
[0090] 如果该账户地址对应的权限包括网络连接权限,则继续执行步骤504;如果未查询到该账户地址对应的权限记录或该账户地址对应的权限不包括网络连接权限,则流程结束。
[0091] 在步骤504中,被连接节点设备向发起连接节点设备发送认证请求,认证请求中至少包括:认证码。认证码用于进一步确认发起连接节点设备的身份,认证码可为任意数字或包含数字的图片等。
[0092] 在步骤505中,发起连接节点设备使用账户地址所对应的私钥对认证码进行签名后,发送给被连接节点设备。
[0093] 在步骤506中,被连接节点设备验证签名的正确性,如果验证通过,则执行网络连接(P2P连接)过程;如果验证不通过,则流程结束,发送连接节点设备不能加入到区块链网络中。
[0094] 在一个实施例中,被连接节点设备使用公钥验证签名的正确性。
[0095] 在一个实施例中,网络连接(P2P连接)过程可为发起连接节点设备与被连接节点设备通过“握手”通信,建立P2P连接,以使发起连接节点设备加入到区块链网络中。
[0096] 由此,在本公开实施例中,具有网络连接权限的节点设备,才能接入到区块链网络中,可提高区块链的安全性。
[0097] 交易验证
[0098] 参见图6,在该实施例中,目标信息为交易。节点设备接收到其它节点设备发送的交易后,除进行该交易的签名是否正确、该交易的转账方是否具有足够的余额等验证外,还对交易的发送方节点设备的账户权限进行验证。
[0099] 在一个实施例中,节点设备的处理单元可从存储单元存储的区块链中,查询发送方节点设备的权限是否包括与接收到的交易相对应的权限,以对发送方节点设备的权限进行验证。当所有验证(包括交易签名是否正确、交易的转账方是否具有足够的余额、是否具有相应权限等等)通过,则节点设备转发并存储该交易,如果任一验证不通过,则节点设备丢弃该交易,不进行存储和转发工作。
[0100] 在一个实施例中,如果节点设备接收到的交易为转账交易,则除了上述的验证外,还需要对接收方账户的权限进行验证。节点设备的处理单元从存储单元存储的区块链中,查询接收方账户的权限是否包括接收转账,若接收方账户的权限包括接收转账,则转发并存储交易;如果任一验证不通过,则节点设备丢弃该交易,不进行存储和转发。
[0101] 在本公开实施例中,节点设备在接收到交易时,对账户权限进行验证,并根据验证结果进行交易转发和缓存,可过滤掉不具权限的账户所产生的交易,可提高网络效率。
[0102] 区块产生与验证
[0103] 在本公开的一实施例中,区块只能由配置了区块产生权限账户的节点设备产生。
[0104] 区块产生过程中,节点设备判断自身所配置的账户是否具有产生区块的权限,如果没有产生区块的权限,则不启动产生区块的工作。如果有产生区块的权限,则执行PoW或POS等算法,以产生新的区块,并将产生的区块发送到区块链网络中。
[0105] 参见图7,在一个实施例中,为了可对产生区块的账户权限进行验证,在区块的区块头中,增加一用于存储产生新区块的产生者信息的字段。产生者信息至少包括:产生新区块的节点设备所配置账户的账号地址所对应的公钥,以及新区块头部数据的签名。
[0106] 当任一节点设备成功挖矿后,将上述的产生者信息存储到新区块的新增字段中后,发送到区块链网络中。
[0107] 应理解,图7所示为一示例性实施例的区块头的数据结构示意图,区块头中除了一个或两个字段用于存储上述的产生者信息外,其它的字段可根据区块链实际进行选择设置。
[0108] 参见图8,在本公开的一实施例中,目标信息为区块,接收到区块的节点设备对区块的验证过程包括:
[0109] 在步骤801中,接收到新区块的节点设备,使用新区块的区块头中的公钥,获取账户地址。
[0110] 在步骤802中,查询区块链,验证该账户地址是否具有产生区块的权限;若具有产生区块的权限,则执行步骤803;若不具有产生区块的权限,则该新区块不合法。
[0111] 在步骤803中,根据公钥对新区块头的签名进行验证,若验证不通过,则确定该新区块为不合法区块;若验证通过,则执行步骤804。
[0112] 在步骤804中,验证新区块的PoW或PoS是否正确,以及验证新区块所记录的每个交易是否合法;若任一验证不通过,则确定该区块不合法;若验证均通过,则确定该新区块为合法区块。
[0113] 在本公开的实施例中,若新区块不合法,则将新区块丢弃,不进行存储和转发;若新区块合法,则进行存储和转发。
[0114] 应理解,上述步骤801-步骤803,以及步骤804的执行顺序可交换,即先执行步骤804,再执行步骤801-步骤803,或者上述步骤804,以及步骤801-步骤803可同时执行,本公开实施例对此不作限制。
[0115] 本公开实施例,通过在区块头中增加存储产生者信息的字段,可实现对区块产生者的验证,避免不合法区块的产生,提高安全性。
[0116] 交易产生
[0117] 在本公开的一实施例中,节点设备在接收到交易产生请求时,首先,会判断所配置的账户是否具有产生相应交易的权限,如果有,则产生交易并发送,如果没有则提示或报错后终止。
[0118] 在一个实施例中,节点设备的处理单元根据存储单元中存储的区块链,查询所配置的账户是否具有产生和发送相应交易的权限,这些相应交易可包括:账户管理、部署智能合约、调用智能合约、发起转账和数字货币发行等交易。在一个实施例中,如果交易为发起转账的交易,则节点设备还应验证转账交易的接收方账户,是否具有接收转账的权限。节点设备的处理单元根据存储单元中存储的区块链,根据交易的接收方账方的账户地址,验证接收方账户是否具有接收转账的权限。当交易发起方具有发起转账的权限,且接收方账户具有接收转账的权限时,节点设备发送转账交易。
[0119] 在本公开实施例中,具有发送交易权限的节点才可发送相关交易,可从交易产生的源头即确定交易发送权限,提高其它节点设备对交易处理效率和网络效率。
[0120] 在本公开的一实施例中,账户的角色包括:管理账户、货币发行账户、监管账户、行、储户。各个角色所对应的权限参见表2所示。
[0121] 表2
[0122]
[0123] 配置了管理账户的节点设备,接收到配置了待分配权限账户的节点设备发送的账户地址,则根据账户的角色,对待分配权限账户进行权限设置。
[0124] 在该实施例中,配置了管理账户的节点设备,具有的权限包括:网络连接、账户权限管理、区块产生等。配置了管理账户的节点设备接收到账户地址,可根据预设的分配规则,对其进行权限设置。例如,预设的分配规则可为账户地址与账户角色的对应关系,由此,根据账户地址,可确定账户角色,进一步可确定其对应的权限。
[0125] 账户的权限被确定后,配置了相应账户的节点设备,即具有相应的区块链权限。在一个实施例中,配置了具有数字货币发行权限的账户的节点设备,可通过发布交易的方式,进行数字货币的发行。发布的交易至少包括以下信息:发行的数字货币量、所发行数字货币的所有者账户。交易发布到区块链网络后,区块链网络中的节点设备对交易进行验证。验证的内容至少包括:交易的发布账户是否具有数字货币的发行权限、交易的签名是否正确。由此,通过上述区块链权限控制方法,可实现数字货币的发行,以及各个账户的权限设置;可建立用于进行数字货币发行的区块链,保证区块链数据的安全性。
[0126] 在本公开的另一实施例中,账户的角色包括:管理账户、身份证明发布账户、认证方用户账户、被认证方用户账户。各个角色所对应的权限参见表3所示。
[0127] 表3
[0128]账户角色 权限
管理账户 网络连接、账户权限管理、区块产生
身份证明发布账户 网络连接、区块产生、部署智能合约、调用智能合约
认证方用户账户 网络连接、调用智能合约、区块产生
被认证方用户账户 网络连接、调用智能合约、区块产生
[0129] 和上一实施例相同,配置了管理账户的节点设备,接收到配置了待分配权限账户的节点设备发送的账户地址,则根据账户的角色,对待分配权限账户进行权限设置。在该实施例中,配置了管理账户的节点设备,具有的权限包括:网络连接、账户权限管理、区块产生等。
[0130] 配置了管理账户的节点设备接收到账户地址,可根据预设的分配规则,对其进行权限设置。例如,预设的分配规则可为账户地址与账户角色的对应关系,由此,根据账户地址,可确定账户角色,进一步可确定其对应的权限。
[0131] 账户的权限被确定后,配置了相应账户的节点设备,即具有相应的区块链权限。配置了身份证明发布账户的节点设备,可发布用于记录用户账户身份信息的智能合约,并负责向该智能合约中写入用户账户的身份信息。配置了认证方用户账户的节点设备,可从智能合约中读取被认证方用户账户的身份信息,并基于此信息对被认证方进行认证。配置了被认证方用户账户的节点设备,可产生账户地址,把地址和公钥等身份信息告知身份证明发布账户,通过身份证明发布账户将身份信息记录到智能合约中。
[0132] 由此,该实施例可实现身份认证,建立用于进行身份认证的区块链,保证区块链数据的安全性。
[0133] 参见图9,相应的,本公开实施例还提供一种区块链权限控制装置。该区块链权限控制装置900包括:
[0134] 信息接收模块901,被配置为接收节点设备发送的目标信息;
[0135] 账户地址获取模块902,被配置为获取所述节点设备所配置账户的账户地址;
[0136] 账户权限获取模块903,被配置为根据所述账户地址,从存储有所述账户地址和所述账户地址对应的账户权限的预设区块中,获取所述账户地址对应的账户权限;
[0137] 处理模块904,被配置为根据所述账户权限,对所述目标信息进行相应的处理。
[0138] 在一个实施例中,装置900还包括:
[0139] 账户地址接收模块,被配置为接收所述节点设备发送的所配置账户的账户地址;
[0140] 权限分配模块,被配置为为所述所配置账户分配账户权限;
[0141] 交易发布模块,被配置为向区块链网络发布包括所述所配置账户的账户地址和账户权限的交易,所述交易用于将所述节点设备所配置账户的账户地址和账户权限存储到所述预设区块中。
[0142] 在一个实施例中,所述目标信息为网络连接请求,所述网络连接请求中包括:所述节点设备所配置账户的公钥;
[0143] 所述账户地址获取模块902,被配置为根据所述公钥,获取所述所配置账户的所述账户地址。
[0144] 在一个实施例中,处理模块904包括:
[0145] 认证请求发送子模块,被配置为在所述账户地址所对应的账户权限包括网络连接权限时,向所述节点设备发送认证请求,所述认证请求中至少包括:认证码;
[0146] 签名子模块,被配置为接收所述节点设备使用所配置账户的所述账户地址所对应的私钥对所述认证码的签名;
[0147] 验证子模块,被配置为根据所述账户地址对应的公钥验证所述签名;
[0148] 连接建立子模块,被配置为在所述签名的验证通过时,与所述节点设备建立网络连接。
[0149] 在一个实施例中,所述目标信息为交易;
[0150] 所述处理模块包括:
[0151] 交易处理子模块,被配置为在所述节点设备所配置账户的账户权限包括产生交易的权限时,对接收到的所述交易进行转发和存储。
[0152] 在一个实施例中,所述目标信息为转账交易,所述转账交易中至少包括:接收方账户的账户地址;
[0153] 所述处理模块包括:
[0154] 接收方账户权限获取子模块,被配置为在所述节点设备所配置账户的账户权限包括发起转账的权限时,根据所述接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块中获取所述接收方账户的账户地址所对应的账户权限;
[0155] 转账交易处理子模块,被配置为在所述接收方账户的账户地址所对应的账户权限包括接收转账的权限时,对所述转账交易进行转发和存储。
[0156] 在一个实施例中,所述目标信息为所述节点设备创建的区块,所述区块的区块头中包括用于记录公钥和区块头部数据的签名的字段;
[0157] 所述账户地址获取模块,被配置为根据所述区块的区块头中的公钥,获取所述账户地址。
[0158] 在一个实施例中,所述处理模块包括:
[0159] 区块处理子模块,被配置为在所述节点设备所配置账户的账户权限包括产生区块的权限时,对接收到的区块进行转发和存储。
[0160] 参见图10,相应的,本公开实施例还提供一种区块链权限控制装置。该区块链权限控制装置1000包括:
[0161] 交易产生请求接收模块1001,被配置为接收到交易产生请求时,获取所配置账户的账户地址;
[0162] 账户权限获取模块1002,被配置为根据所述账户地址,从存储有账户地址和账户权限对应关系的区块中,获取所述账户地址对应的账户权限;
[0163] 交易产生模块1003,被配置为在所述账户权限包括产生交易的权限时,产生并发送交易。
[0164] 在一个实施例中,所述交易为转账交易;所述装置还包括:
[0165] 接收方转换权限获取模块,被配置为在所述账户权限包括产生交易的权限时,根据接收方账户的账户地址,从存储有所述接收方账户的账户地址和账户权限对应关系的区块获取所述接收方账户的账户地址的账户权限;
[0166] 转账交易产生模块,被配置为在所述接收方账户的账户权限包括接收转账的权限时,产生并发送所述转账交易。
[0167] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0168] 图11是根据一示例性实施例示出的一种用于区块链权限控制方法的装置1100的框图,该装置1100可以是区块链中的节点设备。如图11所示,该装置1100可以包括:处理器1101,存储器1102,多媒体组件1103,输入/输出(I/O)接口1104,以及通信组件1105。
[0169] 其中,处理器1101用于控制该装置110的整体操作,以完成上述的区块链权限控制方法中的全部或部分步骤。存储器1102用于存储操作系统,各种类型的数据以支持在该装置1100的操作,这些数据的例如可以包括用于在该装置1100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器1102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(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),磁存储器,快闪存储器,磁盘或光盘。
[0170] 多媒体组件1103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1102或通过通信组件1105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口1104为处理器1101和其他接口模块之间提供接口,上述其他接口模块可以是键盘鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1105用于该装置110与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件1105可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
[0171] 在一示例性实施例中,装置1100可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程阵列(Field Programmable Gate Array,简称FPGA)、控制器微控制器微处理器或其他电子元件实现,用于执行上述的区块链权限控制方法。
[0172] 在另一示例性实施例中,还提供了一种计算机程序产品,所述计算机程序产品包含能够由可编程的装置执行的计算机程序,所述计算机程序具有当由所述可编程的装置执行时用于执行上述的区块链权限控制方法的代码部分。
[0173] 在另一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1102,上述指令可由装置1100的处理器1101执行以完成上述的区块链权限控制方法。示例地,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(Random Access Memory,简称RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0174] 流程图中或在本发明的实施例中以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所述技术领域的技术人员所理解。
[0175] 以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈