掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的角色与权限管理方法

文献发布时间:2023-06-19 11:32:36


一种基于区块链的角色与权限管理方法

技术领域

本发明涉及计算机区块链技术领域,具体为一种一种基于区块链的角色与权限管理方法。

背景技术

UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。

在比特币之后,以太坊(Ethereum)是一个开源且有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的以太虚拟机(EthereumVirtual Machine)来处理点对点合约。

传统的区块链上,所有用户都是匿名且无权限控制,任何人都可以随时加入与退出,任何人都可以随意访问区块链并取得区块链上的全部数据。在企业级应用的区块链中,涉及很多隐私与机密数据,这些数据无法公开,只能限定在一定的角色与权限范围内可见或使用。

发明内容

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种基于区块链的角色与权限管理方法,解决了传统区块链无法设置与验证权限、所有信息公开等缺陷,并为多区块链用户提供了一致的多角色、多权限特性,提高了区块链的安全性并保护了用户的隐私。

(二)技术方案

为实现以上目的,本发明通过以下技术方案予以实现:一种基于区块链的角色与权限管理方法,包括:

步骤一、区块链中角色与权限约定:

步骤二、角色的初始化:

步骤三、赋予角色新权限:

步骤四、收回角色的权限:

步骤五、提取角色的权限集合:

步骤六、权限验证:

优选的,所述区块链,是指基于UTXO并扩展了染色字段的区块链;所述权限通常是指对资源的一种保护访问,在UTXO模型中,权限可储存于UTXO的染色数据中,一个UTXO可以在染色数据中存储多个权限定义值,但不能重复;每多一个权限染色值,UTXO未花费的面值加1;所述角色是拥有一系列权限的集合,一个角色对应一个区块链地址(ADDR_ROLE),ADDR_ROLE可通过权限分配,获得一个或多个UTXO。

优选的,所述角色的初始化具体包括以下步骤:首先管理员用户创建一个角色,代码为ROLE_A,命名为角色A;然后管理员用户再通过区块链角色管理模块(ROLE_PERMISSION_MOD)创建一个区块链地址ADDR_A;ROLE_PERMISSION_MOD将ROLE_A与ADDR_A记录为对应关系,并保管地址ADDR_A的密钥。

优选的,所述赋予角色新权限具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着将赋予角色A的新权限的染色值为COL_A;然后查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1);当LIST_1未包含COL_A时,通过染色发币中心(基于UTXO区块链的发币中心),给ADDR_A发放一个带有COL_A染色信息的UTXO,面值为1;当LIST_1包含了COL_A时,则不再发放UTXO;如果一次赋予角色A多个权限,染色值分别为COL_A,COL_B,定义为集合2(LIST_2);则查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合3(LIST_3),再计算LIST_2与LIST_3的差集(LIST_4),当LIST_4不为空时(假设包含COL_A,COL_B),则通过染色发币中心,给ADDR_A发放一个带有COL_A与COL_B染色信息的UTXO,面值为2。

优选的,所述收回角色的权限具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着将收回角色A的新权限的染色值为COL_A;然后查看ADDR_A地址中的所有UTXO,查询出包含了COL_A染色数据的UTXO(UTXO_A),如果面值VALUE_A大于1,则提取出UTXO_A中所有的染色数据,产生集合5(LIST_5);接下来,花费UTXO_A;再接下来,通过染色发币中心发放一个带有LIST_5中染色数据的UTXO(UTXO_B),面值为VALUE_A–1。

优选的,所述提取角色的权限集合具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1),LIST_1就是角色拥有的权限集合。

优选的,所述权限验证具体包括以下步骤:首先通过外部系统(OUT_SYS)提供需要查询用户的角色列表(LIST_ROLE),接着继续通过外部系统(OUT_SYS)提供需要验证的权限列表(LIST_COL),然后通过区块链角色管理模块(ROLE_PERMISSION_MOD),依次查询出所有角色的权限集合(LIST_COL_1,LIST_COL_2,LIST_COL_3…),去重后产生集合LIST_COL_4,再然后通过计算LIST_COL与LIST_COL_4的交集,返回给外部系统(OUT_SYS)。

有益效果

本发明提供了一种基于区块链的角色与权限管理方法。具备以下有益效果:

(1)、该基于区块链的角色与权限管理方法,在分布式环境下,数据的所有权应不再属于平台,而属于数据的真正拥有者。本发明公开了一种基于UTXO与染色技术的角色与权限管理方法,允许用户在分布式生态中,获取不同的角色,从而充分保护数据拥有者的隐私和权益。

(2)、该基于区块链的角色与权限管理方法,通过单个区块链中不同类型的账号地址(ADDR_IN_A),多个区块链之间用于信息交换的地址(ADDR_CROS_A),通过统一的验证中心,对目标操作角色信息进行验证。采用国密数字签名算法对提出角色验证请求的地址(ADDR_ANY)进行有效性验证,提取出ADDR_ANY包含的角色信息,并通过存储角色权限的区块链(BLOCK_ROLE)查询到访问地址(ADDR_ANY)拥有的所有操作角色权限。

附图说明

图1为本发明赋予角色新权限的流程示意图;

图2为本发明收回角色权限的流程示意图;

图3为本发明权限验证流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-3,本发明提供一种技术方案:一种基于区块链的角色与权限管理方法,包括:

步骤一、区块链中角色与权限约定:

步骤二、角色的初始化:

步骤三、赋予角色新权限:

步骤四、收回角色的权限:

步骤五、提取角色的权限集合:

步骤六、权限验证:

本实施例中,区块链,是指基于UTXO并扩展了染色字段的区块链;权限通常是指对资源的一种保护访问,在UTXO模型中,权限可储存于UTXO的染色数据中,一个UTXO可以在染色数据中存储多个权限定义值,但不能重复;每多一个权限染色值,UTXO未花费的面值加1;角色是拥有一系列权限的集合,一个角色对应一个区块链地址(ADDR_ROLE),ADDR_ROLE可通过权限分配,获得一个或多个UTXO。区块链角色管理模块(ROLE_PERMISSION_MOD)负责权限染色数值的定义,例如(COL_A,COL_B,COL_C),以及查询一个地址(ADDR_ROLE)拥有的UTXO。

本实施例中,角色的初始化具体包括以下步骤:首先管理员用户创建一个角色,代码为ROLE_A,命名为角色A;然后管理员用户再通过区块链角色管理模块(ROLE_PERMISSION_MOD)创建一个区块链地址ADDR_A;ROLE_PERMISSION_MOD将ROLE_A与ADDR_A记录为对应关系,并保管地址ADDR_A的密钥。

本实施例中,赋予角色新权限具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着将赋予角色A的新权限的染色值为COL_A;然后查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1);当LIST_1未包含COL_A时,通过染色发币中心(基于UTXO区块链的发币中心),给ADDR_A发放一个带有COL_A染色信息的UTXO,面值为1;当LIST_1包含了COL_A时,则不再发放UTXO;如果一次赋予角色A多个权限,染色值分别为COL_A,COL_B,定义为集合2(LIST_2);则查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合3(LIST_3),再计算LIST_2与LIST_3的差集(LIST_4),当LIST_4不为空时(假设包含COL_A,COL_B),则通过染色发币中心,给ADDR_A发放一个带有COL_A与COL_B染色信息的UTXO,面值为2。给予角色赋予了新权限后,使用ROLE_PERMISSION_MOD的区块链中属于该角色的所有用户,都将因此获得新的权限。

本实施例中,收回角色的权限具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着将收回角色A的新权限的染色值为COL_A;然后查看ADDR_A地址中的所有UTXO,查询出包含了COL_A染色数据的UTXO(UTXO_A),如果面值VALUE_A大于1,则提取出UTXO_A中所有的染色数据,产生集合5(LIST_5);接下来,花费UTXO_A;再接下来,通过染色发币中心发放一个带有LIST_5中染色数据的UTXO(UTXO_B),面值为VALUE_A–1。以此收回了角色的权限后,使用ROLE_PERMISSION_MOD的区块链中属于该角色的所有用户,都将因此失去收回的权限,

本实施例中,提取角色的权限集合具体包括以下步骤:首先通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1),LIST_1就是角色拥有的权限集合。

本实施例中,权限验证具体包括以下步骤:首先通过外部系统(OUT_SYS)提供需要查询用户的角色列表(LIST_ROLE),接着继续通过外部系统(OUT_SYS)提供需要验证的权限列表(LIST_COL),然后通过区块链角色管理模块(ROLE_PERMISSION_MOD),依次查询出所有角色的权限集合(LIST_COL_1,LIST_COL_2,LIST_COL_3…),去重后产生集合LIST_COL_4,再然后通过计算LIST_COL与LIST_COL_4的交集,返回给外部系统(OUT_SYS)。

工作时,首先通过管理员用户创建一个角色,代码为ROLE_A,命名为角色A;然后管理员用户再通过区块链角色管理模块(ROLE_PERMISSION_MOD)创建一个区块链地址ADDR_A,ROLE_PERMISSION_MOD将ROLE_A与ADDR_A记录为对应关系,并保管地址ADDR_A的密钥;接着通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;并赋予角色A的新权限的染色值为COL_A,然后查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1),当LIST_1未包含COL_A时,通过染色发币中心(基于UTXO区块链的发币中心),给ADDR_A发放一个带有COL_A染色信息的UTXO,面值为1,当LIST_1包含了COL_A时,则不再发放UTXO;如果一次赋予角色A多个权限,染色值分别为COL_A,COL_B,定义为集合2(LIST_2),则继续查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合3(LIST_3),再计算LIST_2与LIST_3的差集(LIST_4),当LIST_4不为空时(假设包含COL_A,COL_B),则通过染色发币中心,给ADDR_A发放一个带有COL_A与COL_B染色信息的UTXO,面值为2;然后通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;赋予收回角色A的新权限染色值为COL_A;然后查看ADDR_A地址中的所有UTXO,查询出包含了COL_A染色数据的UTXO(UTXO_A),如果面值VALUE_A大于1,则提取出UTXO_A中所有的染色数据,产生集合5(LIST_5);接下来,花费UTXO_A;再接下来,通过染色发币中心发放一个带有LIST_5中染色数据的UTXO(UTXO_B),面值为VALUE_A–1;再然后通过区块链角色管理模块(ROLE_PERMISSION_MOD)查询到角色A在区块链上的地址ADDR_A;接着查看ADDR_A地址中的所有UTXO,合并所有权限染色数据并去重,产生集合1(LIST_1),LIST_1就是角色拥有的权限集合;最后通过外部系统(OUT_SYS)提供需要查询用户的角色列表(LIST_ROLE),接着继续通过外部系统(OUT_SYS)提供需要验证的权限列表(LIST_COL),然后通过区块链角色管理模块(ROLE_PERMISSION_MOD),依次查询出所有角色的权限集合(LIST_COL_1,LIST_COL_2,LIST_COL_3…),去重后产生集合LIST_COL_4,再然后通过计算LIST_COL与LIST_COL_4的交集,返回给外部系统(OUT_SYS),以此完成验证。

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

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种基于区块链的角色与权限管理方法
  • 一种基于权限管理的用户角色管理方法及装置
技术分类

06120112965572