一种基于区块链系统的权限管理系统及方法与流程



1.本发明涉及系统权限管理技术领域,具体是一种基于区块链系统的权限管理系统及方法。


背景技术:



2.随着区块链技术的普及,在现实应用场景中,区块链的引入没有降低对于权限管理的需求,反而进一步加深了对权限管理的实践,由于区块链技术的去中心化、集体维护、数据不可篡改和可追溯、支持智能合约的特点,有效的解决传统权限校验中存在的中心化管理、易被篡改、信息不透明问题。所以,通过智能合约自动完成权限管理,避免了第三方平台介入,所有人都不可随意篡改,且权限校验管理透明可信,具有重要的理论意义和实用价值。
3.目前,市面上大部分权限控制都是通过中心化的证书颁发机构(ca)服务器来负责权限的控制,降低了区块链自身具备分布式信任机制的优势。授权数据集中存储在中心化的数据库中,数据易被窜改,可信度比较低。如果数据库没有及时备份,存在部分数据丢失的风险。市面上大部分权限控制都是通过中心化的授权机构进行,授权数据集中存储在中心化的数据库中,数据易被窜改,可信度比较低。如果数据库没有及时备份,存在部分数据丢失的风险。没有充分发挥区块链本身具有的分布式信任机制的优势。而公有链完全放开,不符合组织间权限管控需求。
4.综上所述为了解决现有存在的问题,我们提出一种基于区块链系统的权限管理系统及方法。


技术实现要素:



5.本发明的目的在于提供一种基于区块链系统的权限管理系统及方法,主要基于statedb机制做了拓展;实现了由juice联盟链底层代码级别实现内置合约的方式直接操作statedb,即保留区块链本身的优势,同时在权限控制方便比一般智能合约的共识确认在性能上有较大的提升,同时支持可升级。
6.为实现上述目的,本发明提供如下技术方案:一种基于区块链系统的权限管理系统,包括:
7.用户管理合约模块:所述用户管理合约模块用于实现用户管理合约模块,用户管理合约模块主要实现用户的增删查改、用户角分配、用户鉴权功能;
8.节点管理合约模块:所述节点管理合约模块与所述用户管理合约模块连接,用于实现节点管理合约模块,主要节点的添加及管理;
9.参数管理合约模块:所述参数管理合约模块与所述节点管理合约模块,用于实现参数管理合约模块,主要对区块链进行系统参数配置。
10.作为本发明的一种优选技术方案,所述用户管理合约模块、节点管理合约模块和参数管理合约模块均设置有go代码和statedb。
11.一种区块链系统的权限管理方法,包括以下步骤:
12.步骤s1:初始化链创建者角,在创建联盟链时,在区块链中默认授予链创建者角,链创建者可以指定链管理员权限;
13.步骤s2:用户注册,对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中;
14.步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态;
15.步骤s4:用户角查询,用户申请完角后,可以通过sdk调用用户管理合约申请查询角,根据请求参数到statedb是获取指定用户对应权限信息;
16.步骤s5:节点管理员添加节点,按步骤s3的说明申请角,拥有节点管理员角后,通过节点管理合约模块将新增节点申请加入到联盟链中,节点管理合约模块收到添加节点申请后,调用用户管理合约模块检查拥有节点管理员的权限;
17.步骤s6:用户申请合约部署者权限,按步骤s3申请合约部署者权限,拥有对应权限后,通过sdk进行合约部署,区块链在接收到合约部署请求后,通过调用用户管理合约模块,验证用户是否有合约部署的权限;
18.步骤s7:链管理员修改系统参数,通过调用参数管理合约模块进行修改。
19.作为本发明的一种优选技术方案,所述步骤s1中,链管理员角通过sdk调用链,指定节点管理员、合约管理员、合约部署者,不同角拥有不同的权限。
20.作为本发明的一种优选技术方案,所述步骤s2对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中,对于验证不通过的数据进行丢弃处理。
21.作为本发明的一种优选技术方案,所述步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态,对于验证不通过的数据进行丢弃处理。
22.作为本发明的一种优选技术方案,所述步骤s5节点管理员添加节点中验证通过的完成节点添加,对于验证不通过的数据,则不能添加节点。
23.作为本发明的一种优选技术方案,步骤s6:用户申请合约部署者权限中验证用户是否有合约部署的权限,若有走合约部署流程,对于权限校验不通过用户,拒绝合约部署。
24.作为本发明的一种优选技术方案,所述步骤s7链管理员修改系统参数中修改的系统参数包括改链上每个块的最小gaslimit、最大gaslimit、开启或关闭交易消耗gas开关系统参数行为。
25.作为本发明的一种优选技术方案,所述步骤s7链管理员修改系统参数参数管理合约模块要通过用户管理合约模块检查当前用户是否拥有链管理员角,若具备则进行后续的修改操作,否则拒绝用户的申请请求。
26.与现有技术相比,本发明的有益效果是:本发明管理权限管理基于statedb和内置go语言的用户管理等相关合约进行的权限控制,提升了任务共识的效率,缩短了权限验证的执行周期;在执行效率、节点间共识流程上得到了很大的提升,缩短了权限管理过程中所
需要的时间,使联盟链实用性方便有很大的提升。
附图说明
27.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
28.图1为本发明的原理框图。
具体实施方式
29.为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
30.本发明提供一种基于区块链系统的权限管理系统,包括:
31.用户管理合约模块:所述用户管理合约模块用于实现用户管理合约模块,用户管理合约模块主要实现用户的增删查改、用户角分配、用户鉴权功能。
32.节点管理合约模块:所述节点管理合约模块与所述用户管理合约模块连接,用于实现节点管理合约模块,主要节点的添加及管理。
33.参数管理合约模块:所述参数管理合约模块与所述节点管理合约模块,用于实现参数管理合约模块,主要对区块链进行系统参数配置。
34.进一步的,所述用户管理合约模块、节点管理合约模块和参数管理合约模块均设置有go代码和statedb。
35.一种区块链系统的权限管理方法,包括以下步骤:
36.步骤s1:初始化链创建者角,在创建联盟链时,在区块链中默认授予链创建者角,链创建者可以指定链管理员权限;
37.步骤s2:用户注册,对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中;
38.步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态;
39.步骤s4:用户角查询,用户申请完角后,可以通过sdk调用用户管理合约申请查询角,根据请求参数到statedb是获取指定用户对应权限信息;
40.步骤s5:节点管理员添加节点,按步骤s3的说明申请角,拥有节点管理员角后,通过节点管理合约模块将新增节点申请加入到联盟链中,节点管理合约模块收到添加节点申请后,调用用户管理合约模块检查拥有节点管理员的权限;
41.步骤s6:用户申请合约部署者权限,按步骤s3申请合约部署者权限,拥有对应权限后,通过sdk进行合约部署,区块链在接收到合约部署请求后,通过调用用户管理合约模块,验证用户是否有合约部署的权限;
42.步骤s7:链管理员修改系统参数,通过调用参数管理合约模块进行修改。
43.进一步的,所述步骤s1中,链管理员角通过sdk调用链,指定节点管理员、合约管
理员、合约部署者,不同角拥有不同的权限。
44.进一步的,所述步骤s2对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中,对于验证不通过的数据进行丢弃处理。
45.进一步的,所述步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态,对于验证不通过的数据进行丢弃处理。
46.进一步的,所述步骤s5节点管理员添加节点中验证通过的完成节点添加,对于验证不通过的数据,则不能添加节点。
47.进一步的,步骤s6:用户申请合约部署者权限中验证用户是否有合约部署的权限,若有走合约部署流程,对于权限校验不通过用户,拒绝合约部署。
48.进一步的,所述步骤s7链管理员修改系统参数中修改的系统参数包括改链上每个块的最小gaslimit、最大gaslimit、开启或关闭交易消耗gas开关系统参数行为。
49.进一步的,所述步骤s7链管理员修改系统参数参数管理合约模块要通过用户管理合约模块检查当前用户是否拥有链管理员角,若具备则进行后续的修改操作,否则拒绝用户的申请请求。
50.实施例:
51.请参阅图1,一种基于区块链系统的权限管理系统,如图所示,在整个联盟链的权限体系中,主要的权限控制模块有:
52.用户管理合约模块(user_manager_contract):联盟链底层go代码实现用户管理合约模块,用户管理合约模块主要实现用户的增删查改、用户角分配、用户鉴权功能。
53.节点管理合约模块(node_manager_contract):联盟链底层go代码实现节点管理合约模块,主要节点的添加及管理。
54.参数管理合约模块(param_manager_contract):联盟链底层go代码实现参数管理合约模块,主要对区块链进行系统参数配置。
55.上述合约模块都是go代码实现的内置合约,比起一般的solidity及wasm等编写的脚本语言,其具有更高的执行效率;且共识速度更快;
56.请参阅图1,其中,statedb是以太坊中比较重要的概念(世界状态);以太坊区块中的所有交易的状态由statedb表;本发明涉及的go代码go(又称golang)是google的robert griesemer,rob pike及ken thompson开发的一种静态强类型、编译型语言。go语言语法与c相近,但功能上有:内存安全,gc(垃圾回收),结构形态及csp-style并发计算;图中所述sdk的外语全称是software development kit,中文为:软件开发工具包,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
57.一种基于区块链系统的权限管理方法包括如下步骤:
58.步骤s1:初始化链创建者角,在创建联盟链时,在区块链中默认授予链创建者角,链创建者可以指定链管理员权限,链管理员角通过sdk调用链,指定节点管理员、合约管理员、合约部署者,不同角拥有不同的权限;
59.步骤s2:用户注册,对用户管理合约模块发起申请,用户管理合约模块对请求数据
进行合法性校验,校验成功后通过共识后记录到statedb中,对于验证不通过的数据进行丢弃处理;
60.步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态,对于验证不通过的数据进行丢弃处理;
61.步骤s4:用户角查询,用户申请完角后,可以通过sdk调用用户管理合约申请查询角,根据请求参数到statedb是获取指定用户对应权限信息;
62.步骤s5:节点管理员添加节点,按步骤s3的说明申请角,拥有节点管理员角后,通过节点管理合约模块将新增节点申请加入到联盟链中,节点管理合约模块收到添加节点申请后,调用用户管理合约模块检查拥有节点管理员的权限,;
63.步骤s6:用户申请合约部署者权限,按步骤s3申请合约部署者权限,拥有对应权限后,通过sdk进行合约部署,区块链在接收到合约部署请求后,通过调用用户管理合约模块,验证用户是否有合约部署的权限,;
64.步骤s7:链管理员修改系统参数,通过调用参数管理合约模块进行修改,修改的系统参数包括改链上每个块的最小gaslimit、最大gaslimit、开启或关闭交易消耗gas开关系统参数行为;所述步骤s7链管理员修改系统参数参数管理合约模块要通过用户管理合约模块检查当前用户是否拥有链管理员角,若具备则进行后续的修改操作,否则拒绝用户的申请请求。
65.在本实施例中,联盟链中引入权限管理,使组织之间在透明可信的前提下,对于不同组织或组织内部不同用户之前需要隔离的数据提供了保护作用,对于数据隐私与安全提供了更好的保障,提高了基于联盟链项目的组织间合作的可能性;综上所述,本发明管理权限管理基于statedb和内置go语言的用户管理等相关合约进行的权限控制,提升了任务共识的效率,缩短了权限验证的执行周期。在执行效率、节点间共识流程上得到了很大的提升,缩短了权限管理过程中所需要的时间,使联盟链实用性方便有很大的提升。
66.示例性的,处理器从存储器中逐条取出指令、分析指令,然后根据指令要求完成相应操作,产生一系列控制命令,使计算机各部分自动、连续并协调动作,成为一个有机的整体,实现程序的输入、数据的输入以及运算并输出结果,这一过程中产生的算术运算或逻辑运算均由运算器完成;所述存储器包括只读存储器(read-only memory,rom),所述只读存储器用于存储计算机程序,所述存储器外部设有保护装置。
67.示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
68.本领域技术人员可以理解,上述服务设备的描述仅仅是示例,并不构成对终端设备的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。
69.所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,上述处理器是上述终端设备的控制中心,利用各种接口和线路连接整个用户终端的各个部分。
70.上述存储器可用于存储计算机程序和/或模块,上述处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现上述终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如信息采集模板展示功能、产品信息发布功能等)等;存储数据区可存储根据泊位状态显示系统的使用所创建的数据(比如不同产品种类对应的产品信息采集模板、不同产品提供方需要发布的产品信息等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
71.终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例系统中的全部或部分模块/单元,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个系统实施例的功能。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
72.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
73.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.一种基于区块链系统的权限管理系统,其特征在于,包括:用户管理合约模块:所述用户管理合约模块用于实现用户管理合约模块,用户管理合约模块主要实现用户的增删查改、用户角分配、用户鉴权功能;节点管理合约模块:所述节点管理合约模块与所述用户管理合约模块连接,用于实现节点管理合约模块,主要节点的添加及管理;参数管理合约模块:所述参数管理合约模块与所述节点管理合约模块,用于实现参数管理合约模块,主要对区块链进行系统参数配置。2.根据权利要求1所述的一种基于区块链系统的权限管理系统,其特征在于,所述用户管理合约模块、节点管理合约模块和参数管理合约模块均设置有go代码和statedb。3.一种基于权利要求1-2所述的区块链系统的权限管理方法,其特征在于,包括:步骤s1:初始化链创建者角,在创建联盟链时,在区块链中默认授予链创建者角,链创建者可以指定链管理员权限;步骤s2:用户注册,对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中;步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态;步骤s4:用户角查询,用户申请完角后,可以通过sdk调用用户管理合约申请查询角,根据请求参数到statedb是获取指定用户对应权限信息;步骤s5:节点管理员添加节点,按步骤s3的说明申请角,拥有节点管理员角后,通过节点管理合约模块将新增节点申请加入到联盟链中,节点管理合约模块收到添加节点申请后,调用用户管理合约模块检查拥有节点管理员的权限;步骤s6:用户申请合约部署者权限,按步骤s3申请合约部署者权限,拥有对应权限后,通过sdk进行合约部署,区块链在接收到合约部署请求后,通过调用用户管理合约模块,验证用户是否有合约部署的权限;步骤s7:链管理员修改系统参数,通过调用参数管理合约模块进行修改。4.根据权利要求3所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s1中,链管理员角通过sdk调用链,指定节点管理员、合约管理员、合约部署者,不同角拥有不同的权限。5.根据权利要求4所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s2对用户管理合约模块发起申请,用户管理合约模块对请求数据进行合法性校验,校验成功后通过共识后记录到statedb中,对于验证不通过的数据进行丢弃处理。6.根据权利要求5所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s3:确定用户申请对应角权限,已注册的用户通过sdk调用用户管理合约模块进行角申请,对应权限审核用户组审核请求参数,将对申请的数据做审核校验,校验通过更新statedb中审核状态,对于验证不通过的数据进行丢弃处理。7.根据权利要求6所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s5节点管理员添加节点中验证通过的完成节点添加,对于验证不通过的数据,则不能添加节点。
8.根据权利要求7所述的一种基于区块链系统的权限管理方法,其特征在于,步骤s6:用户申请合约部署者权限中验证用户是否有合约部署的权限,若有走合约部署流程,对于权限校验不通过用户,拒绝合约部署。9.根据权利要求8所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s7链管理员修改系统参数中修改的系统参数包括改链上每个块的最小gaslimit、最大gaslimit、开启或关闭交易消耗gas开关系统参数行为。10.根据权利要求9所述的一种基于区块链系统的权限管理方法,其特征在于,所述步骤s7链管理员修改系统参数参数管理合约模块要通过用户管理合约模块检查当前用户是否拥有链管理员角,若具备则进行后续的修改操作,否则拒绝用户的申请请求。

技术总结


本发明涉及系统权限管理技术领域,具体公开了一种基于区块链系统的权限管理系统及方法,包括:用户管理合约模块:所述用户管理合约模块用于实现用户管理合约模块,用户管理合约模块主要实现用户的增删查改、用户角分配、用户鉴权功能;节点管理合约模块:所述节点管理合约模块与所述用户管理合约模块连接,用于实现节点管理合约模块,主要节点的添加及管理;参数管理合约模块。本发明管理权限管理基于stateDB和内置go语言的用户管理等相关合约进行的权限控制,提升了任务共识的效率,缩短了权限验证的执行周期;在执行效率、节点间共识流程上得到了很大的提升,缩短了权限管理过程中所需要的时间,使联盟链实用性方便有很大的提升。的提升。的提升。


技术研发人员:

胡德年 袁文俊 李升林

受保护的技术使用者:

上海阵方科技有限公司

技术研发日:

2022.10.19

技术公布日:

2022/12/9

本文发布于:2024-09-22 15:37:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/32643.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:合约   模块   用户   节点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议