一种区块链权限多重控制方法及系统与流程

文档序号:26057184发布日期:2021-07-27 15:35阅读:117来源:国知局
一种区块链权限多重控制方法及系统与流程

本发明涉及区块链领域,具体而言,涉及一种区块链权限多重控制方法及系统。



背景技术:

区块链本质上是一个分布式的数据库,区块链上面的信息就会被p2p(peer-to-peer,对等)网络分享到所有节点上去。区块链的这种信息分享特性的问题在于:如果参与方a想要发布一个产品指定给参与方b和参与方c,那么区块链上的其他参与方是无权知道这个产品的任何信息,在不做改进时,作为分布式的数据库的区块链难以实现该功能。

现有技术中一个较简单的解决方案是在智能合约上对数据调用加上权限控制,比如当参与方d想通过api(applicationprogramminginterface,应用程序编程接口)读取参与方a发布的产品信息时,智能合约发现d没有指定的权限并驳回申请,然而,这个解决方案存在的问题是:如果参与方d拥有相关节点,可以直接读取节点数据库里处于非加密状态的信息,这样参与方d仍可以读取参与方a发布的产品信息,除非采用防篡改硬件保护或对节点实施中心管理(如云管理),不然很难通过授权方式实施信息保护。

因此,如何在去中心化的区块链网络中实现事务处理的有效权限控制已经成为一个亟待解决的技术问题。



技术实现要素:

本发明的目的在于提供一种区块链权限多重控制方法,其能够对区块链网络中事务处理的权限进行有效的多重控制。

本发明的另一目的在于提供一种区块链权限多重控制系统,其能够运行一种区块链权限多重控制方法。

本发明的实施例是这样实现的:

第一方面,本申请实施例提供一种区块链权限多重控制方法,其包括接收数据权限方发起的关于权限加密数据的数据控制请求;执行数据控制请求,以对数据权限方的控制权限进行验证;将权限控制信息通过智能合约向区块链网络的各个节点发布,授权方对应的授权节点在通过智能合约接收到权限控制信息后,利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密;基于解密后的秘钥与公共加解密参数解密权限控制信息,以将权限控制信息对授权节点进行解密授权。

在本发明的一些实施例中,上述接收数据权限方发起的关于权限加密数据的数据控制请求包括:接收数据权限方发起的关于权限加密数据的数据上传请求,其中,数据上传请求中携带数据权限方的身份信息。

在本发明的一些实施例中,上述还包括:执行数据上传请求,以将权限加密数据和数据权限方的身份信息上链存储。

在本发明的一些实施例中,上述执行数据控制请求,以对数据权限方的控制权限进行验证包括:执行数据控制请求,以基于区块链网络中存储的加密数据的访问授权记录和数据控制请求中携带的权限方身份信息,确定数据权限方是否被授权。

在本发明的一些实施例中,上述还包括:若数据权限方授权,则从区块链网络中获取数据权限方的授权公钥,利用授权公钥,验证数据控制请求中携带的私钥签名。

在本发明的一些实施例中,上述基于解密后的秘钥与公共加解密参数解密权限控制信息,以将权限控制信息对授权节点进行解密授权包括:在授权节点生成解密后的权限控制信息对应的回馈信息后,基于加密协议及秘钥对回馈信息进行加密,并利用智能合约将加密后的回馈信息述区块链网络的各个节点进行广播。

在本发明的一些实施例中,上述还包括:若无授权节点的智能合约针对加密的权限控制信息向发布节点发送携带身份认证信息的解密授权请求,则发布节点的权限处理基于身份认证信息进行用户身份认证。

第二方面,本申请实施例提供一种区块链权限多重控制系统,其包括接收请求模块,用于接收数据权限方发起的关于权限加密数据的数据控制请求;执行模块,用于执行数据控制请求,以对数据权限方的控制权限进行验证;解密模块,用于将权限控制信息通过智能合约向区块链网络的各个节点发布,授权方对应的授权节点在通过智能合约接收到权限控制信息后,利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密;授权模块,用于基于解密后的秘钥与公共加解密参数解密权限控制信息,以将权限控制信息对授权节点进行解密授权。

在本发明的一些实施例中,上述包括:用于存储计算机指令的至少一个存储器;与上述存储器通讯的至少一个处理器,其中当上述至少一个处理器执行上述计算机指令时,上述至少一个处理器使上述系统执行:接收请求模块、执行模块、解密模块以及授权模块。

第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如一种区块链权限多重控制方法中任一项的方法。

相对于现有技术,本发明的实施例至少具有如下优点或有益效果:

在区块链网络的各个节点构建权限处理系统及部署智能合约,由各个节点的权限处理系统处理权限控制及由智能合约进行信息共享,若一发布方有加密的权限控制信息对至少一个授权方进行解密授权,则发布节点利用授权方对应的保密参数加密权限控制信息的秘钥,然后通过智能合约发布公共加解密参数及保密参数,授权节点利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密,最终可以通过秘钥与共加解密参数解密权限控制信息,实现将权限控制信息从发布节点向至少一个授权节点进行解密授权,授权节点能够得到读取权限控制信息并可执行后续的控制的权限,除授权节点外的其他节点没有相关的权限,能够对区块链网络中事务处理的权限进行有效控制,提高系统可靠性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种区块链权限多重控制方法步骤示意图;

图2为本发明实施例提供的一种区块链权限多重控制方法详细步骤示意图;

图3为本发明实施例提供的一种区块链权限多重控制系统模块示意图;

图4为本发明实施例提供的一种电子设备。

图标:10-接收请求模块;20-执行模块;30-解密模块;40-授权模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

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

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。

实施例1

请参阅图1,图1为本发明实施例提供的一种区块链权限多重控制方法步骤示意图,其如下所示:

步骤s100,接收数据权限方发起的关于权限加密数据的数据控制请求;

在一些实施方式中,为了保证区块链网络中存储的数据不被任一数据权限方随意访问,提高数据的存储安全性,因此,各个数据权限方均可以对所其所关联的数据进行加密处理,设置数据的访问权限,然后再将加密数据和对应的访问权限进行上链存储,若有数据权限方想访问数据权限方的加密数据,需通过该加密数据的数据权限方对该加密数据进行解密,方可进行访问。

在区块链网络中,存储的数据的具体信息是非公开的,除数据权限方之外的其他数据权限方只能在区块链中看到所有数据的基础信息;其中,基础信息包括数据对应的描述信息以及数据对应的解密服务访问地址。数据的描述信息可以为数据的属性信息,例如数据的所属类型或者数据的具体功能等;数据的解密服务访问地址是该数据在区块链网络中的存储地址,数据权限方可以通过调用解密服务地址对所要访问的加密数据进行查看。

步骤s110,执行数据控制请求,以对数据权限方的控制权限进行验证;

在一些实施方式中,由于目前的区块链网络中,只要数据权限方加入该网络,就可以对区块链网络中存储的所有数据直接进行访问,极大降低了数据的存储安全性;为了保证数据被访问时的安全性,需对数据权限方的访问权限进行验证,以确保数据权限方的身份是合法的,该数据权限方具有访问加密数据的权限。

如果数据权限方的访问权限验证通过,则标明该数据权限方的身份合法,可以进行访问;如果数据权限方的访问权限验证未通过,表明该数据权限方的身份不合法,不具有访问加密数据的权限,则拒绝该数据权限方访问该加密数据。

步骤s120,将权限控制信息通过智能合约向区块链网络的各个节点发布,授权方对应的授权节点在通过智能合约接收到权限控制信息后,利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密;

在一些实施方式中,授权节点解密权限控制信息后,即表明授权节点已经得到该权限控制信息的相关权限(例如读取权等),并且就该相关权限确定是否进行控制,这时授权节点生成对应的回馈信息。为了将该回馈信息仅向发布节点及各个授权节点公开,以便发布节点及其他各个授权节点能够获知哪些节点拥有权限控制信息的相关权限,该授权节点的权限处理系统基于公共加解密参数中的加密协议及秘钥对回馈信息进行加密,加密协议例如是与上述的des解密协议、aes解密协议、rsa解密协议对应的des加密协议、aes加密协议、rsa加密协议等。然后利用智能合约将加密后的回馈信息向区块链网络的各个节点进行广播,以供发布节点及其他各个授权节点读取并解密回馈信息。

步骤s130,基于解密后的秘钥与公共加解密参数解密权限控制信息,以将权限控制信息对授权节点进行解密授权。

在一些实施方式中,如果回馈信息为权限控制信息对应的确认控制信息,则发布节点执行与授权节点控制权限控制信息对应的控制事务;如果回馈信息为权限控制信息对应的拒绝控制信息,则发布节点拒绝执行与授权节点控制权限控制信息对应的控制事务。

实施例2

请参阅图2,图2为本发明实施例提供的一种区块链权限多重控制方法详细步骤示意图,其如下所示:

步骤s200,接收数据权限方发起的关于权限加密数据的数据上传请求,其中,数据上传请求中携带数据权限方的身份信息。

步骤s210,执行数据上传请求,以将权限加密数据和数据权限方的身份信息上链存储。

步骤s220,执行数据控制请求,以基于区块链网络中存储的加密数据的访问授权记录和数据控制请求中携带的权限方身份信息,确定数据权限方是否被授权。

步骤s230,若数据权限方授权,则从区块链网络中获取数据权限方的授权公钥,利用授权公钥,验证数据控制请求中携带的私钥签名。

步骤s240,在授权节点生成解密后的权限控制信息对应的回馈信息后,基于加密协议及秘钥对回馈信息进行加密,并利用智能合约将加密后的回馈信息述区块链网络的各个节点进行广播。

步骤s250,若无授权节点的智能合约针对加密的权限控制信息向发布节点发送携带身份认证信息的解密授权请求,则发布节点的权限处理基于身份认证信息进行用户身份认证。

在一些实施方式中,智能合约是区块链网络与用户交互的媒介,是以太坊平台上所有交易执行的基础,链码指编写的智能合约代码,可以实现系统级功能和应用级功能。因此,基于角色的访问控制方法可以通过智能合约设计链码逻辑来实现。在设计访问控制模块之前,首先定义以下概念:(1)c是可以运行在以太坊平台上的智能合约;(2)ucser是以太坊网络中被授权的合法用户,是合约c的部署者;(3)uiser是合约c的调用者。

智能合约成功部署后,ucser将拥有对合约数据的控制权限,可根据交易提案内容将交易发送方与接收方长度为20位的账户地址添加到合约c的访问权限列表。智能合约被ucser调用时,系统首先检索预置的访问权限列表,如果ucser位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果ucser不满足列表的设定条件,则合约调用失败。通过上述方法能够实现角色与权限的逻辑分离。

但是,这种方法存在一定的缺陷,即合约部署者ucser能够修改预置的访问权限列表。创建新交易时,需要ucser亲自将交易双方的账户地址写入列表,长久以往不便于对系统的运行与维护。同时,当交易数量达到一定高峰值,访问权限列表的存储与查询会出现效率降低、灵活性不高的现象。

实施例3

请参阅图3,图3为本发明实施例提供的一种区块链权限多重控制系统模块示意图,其如下所示:

接收请求模块10,用于接收数据权限方发起的关于权限加密数据的数据控制请求;

执行模块20,用于执行数据控制请求,以对数据权限方的控制权限进行验证;

解密模块30,用于将权限控制信息通过智能合约向区块链网络的各个节点发布,授权方对应的授权节点在通过智能合约接收到权限控制信息后,利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密;

授权模块40,用于基于解密后的秘钥与公共加解密参数解密权限控制信息,以将权限控制信息对授权节点进行解密授权。

如图4所示,本申请实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。

还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。

其中,存储器101可以是但不限于,随机存取存储器101(randomaccessmemory,ram),只读存储器101(readonlymemory,rom),可编程只读存储器101(programmableread-onlymemory,prom),可擦除只读存储器101(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器101(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(centralprocessingunit,cpu)、网络处理器102(networkprocessor,np)等;还可以是数字信号处理器102(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请所提供的实施例中,应该理解到,所揭露的方法及系统和方法,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

另一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器101(rom,read-onlymemory)、随机存取存储器101(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本申请实施例提供的一种区块链权限多重控制方法及系统,在区块链网络的各个节点构建权限处理系统及部署智能合约,由各个节点的权限处理系统处理权限控制及由智能合约进行信息共享,若一发布方有加密的权限控制信息对至少一个授权方进行解密授权,则发布节点利用授权方对应的保密参数加密权限控制信息的秘钥,然后通过智能合约发布公共加解密参数及保密参数,授权节点利用与保密参数对应的解密参数对权限控制信息的秘钥进行解密,最终可以通过秘钥与共加解密参数解密权限控制信息,实现将权限控制信息从发布节点向至少一个授权节点进行解密授权,授权节点能够得到读取权限控制信息并可执行后续的控制的权限,除授权节点外的其他节点没有相关的权限,能够对区块链网络中事务处理的权限进行有效控制,提高系统可靠性。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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