基于区块链的角色权限管理智能合约升级方法及系统技术方案

技术编号:35542154 阅读:20 留言:0更新日期:2022-11-09 15:11
本发明专利技术公开基于区块链的角色权限管理智能合约升级方法及系统,属于区块链的技术领域。至少包括以下步骤:创建角色管理逻辑智能合约、创建数据逻辑智能合约、创建业务逻辑智能合约、按照节点部署到区块链以及创建第三方业务智能合约;引入至少四种角色账户,对每个角色赋予对应的职责和权限,并将每个角色的授权和管理操作以代码的方式编程到智能合约中提供接口给第三方智能合约外部调用,从而保证了区块链上数据存储和查询安全可控、可信共享。解决了区块链上的数据风险,保护了联盟链机构不受攻击。机构不受攻击。机构不受攻击。

【技术实现步骤摘要】
基于区块链的角色权限管理智能合约升级方法及系统


[0001]本专利技术属于区块链的
,特别是涉及基于区块链的角色权限管理智能合约升级方法及系统。

技术介绍

[0002]智能合约是以一套以计算机编程语言编写的可执行的承诺,包括合约参与方可以在上面执行这些承诺的协议,用计算机语言取代了合同语言记录条款运行于区块链中,程序自动执行的合约。由于区块链的去中心化、不可篡改、透明可追溯等特性,它实现了用户从信任第三方机构到信任合同本身,从信任参与方到信任代码的转变和自动执行。区块链智能合约的运作过程为智能合约编写

编译

部署到区块链

执行。
[0003]区块链借助智能合约来实现分布式数据源间数据的流通、共享、校验,由此必然会打破原有中心化数据管理的安全边界,增加了数据在共享过程中所面临的安全风险。数据的非授权共享不单会影响了链上用户自身的数据安全,更会对联盟链的机构造成严重的安全威。那么通过智能合约实现安全、可控的数据资源流通与共享,如果缺乏一个角色权限和操作可控的智能合约机制,那么数据很容易被链上非法的账户或者机构账户窃取和篡改。
[0004]此外,智能合约一旦部署后,将运行于区块链网络中的多个节点中,无法直接更改智能合约源码,无法灵活地实现类似中心化应用程序那样开发人员经常对程序进行更新,修复bug或引入新功能。

技术实现思路

[0005]本专利技术为解决上述
技术介绍
中存在的技术问题,提供了基于区块链的角色权限管理智能合约升级方法及系统。
[0006]本专利技术采用以下技术方案来实现:基于区块链的角色权限管理智能合约升级方法,至少包括以下步骤:创建角色管理逻辑智能合约:基于业务需求创建角色账户最小集,同时建立角色账户最小集内部元素相互之间的权限关系;将所述角色管理逻辑智能合约采用分层式设计,分为业务逻辑层合约和数据处理层合约;所述业务逻辑层合约为第三方智能合约的业务需求的处理接口,基于所述业务需求生成合约调用函数,对指定角色账户赋予对应的权限、以及账户地址;将合约调用函数以编译代码的形式编译到处理接口上,得到对应的链上合约地址;所述数据处理层合约基于合约调用函数定义数据结构,所述数据结构用于存储、查询合约调用函数;当业务需求发生变更时,处理接口基于变更后的供业务需求更新合约调用函数,基于更新合约调用函数以编译代码的形式再次编译到对应处理接口上,获取更新后的链上合约地址;第三方智能合约传入更新后的链上合约地址。
[0007]在进一步的实施例中,生成合约调用函数时还包括:创建权限检查函数;所述权限检查函数基于账户地址和所需的操作项目常量判断账户地址是否具有执行对应操作项目
的操作权限;如果具备权限,则允许合约调用函数继续执行,如果不具备权限,则禁止合约调用函数执行,并产生合约调用函数非法调用事件广播;其中所述账户地址为原始用户地址,表示为tx.origin。
[0008]在进一步的实施例中,所述角色账户最小集内至少包括:超级管理员账户、机构委员会账户、授权机构账户和普通账户;所述权限关系如下:超级管理员账户具有最高权限,被设置为基于业务需求指定主体机构和对应的授权机构,并定义为机构委员会账户和授权机构账户;对机构委员会账户和授权机构账户赋予操作权限的赋予、修改链上合约地址;机构委员会账户的权限为:对其名下的主体机构、与主体机构相对应的授权机构账户赋予操作权限、启动/禁用;授权机构账户的权限为:对其名下的授权机构赋予操作权限、启动/禁用。
[0009]在进一步的实施例中,所述合约调用函数由超级管理员账户生成,所述合约调用函数至少包括:对角色账户最小集内的角色赋予角色操作函数,对非角色账户最小集的角色赋予增加/删除角色函数,并配置对应的角色权限函数。
[0010]在进一步的实施例中,所述角色操作函数至少包括:关于机构委员会账户的操作函数、关于授权机构账户的操作函数;所述机构委员会账户的操作函数至少包括:判断是否为机构委员会账户函数、删除机构委员会账户函数、添加机构委员会账户函数、以及获取机构委员会账户数据数组长度函数和获取机构委员会账户地址索引函数。
[0011]在进一步的实施例中,所述授权机构账户的操作函数至少包括:判断是否为授权机构账户函数、添加授权机账户函数、删除授权机构账户函数以及获取授权机构账户数据长度函数、返回授权机构数据数组长度。
[0012]在进一步的实施例中,若业务所需的账户不属于当前的角色账户集,则超级管理员账户生成添加角色函数,使业务所需的账户以角色的形式添加到角色账户集;并输入相对应的账户地址、赋予角色权限常量;若当前的角色账户集中存在业务所需以外的账户,则超级管理员账户生成删除角色函数,使业务所需以外的账户、对应的账户地址和角色权限常量从当前的角色账户集中删除。
[0013]在进一步的实施例中,所述普通账户为区块链上的普通外部账户,由公钥私钥对组成。
[0014]基于区块链的角色权限管理智能合约升级系统,用于实现如上所述的智能合约升级方法,包括:第一模块,被设置为创建角色管理逻辑智能合约:基于业务需求创建角色账户最小集,同时建立角色账户最小集内部元素相互之间的权限关系;第二模块,被设置为将所述角色管理逻辑智能合约采用分层式设计,分为业务逻辑层合约和数据处理层合约;所述业务逻辑层合约为第三方智能合约的业务需求的处理接口,基于所述业务需求生成合约调用函数,对指定角色账户赋予对应的权限、以及账户地址;将合约调用函数以编译代码的形式编译到处理接口上,得到对应的链上合约地址;所述
数据处理层合约基于合约调用函数定义数据结构,所述数据结构用于存储、查询合约调用函数;第三模块,被设置为当业务需求发生变更时,处理接口基于变更后的供业务需求更新合约调用函数,基于更新合约调用函数以编译代码的形式再次编译到对应处理接口上,获取更新后的链上合约地址;第三方智能合约传入更新后的链上合约地址。
[0015]本专利技术的有益效果:本专利技术通过增设超级管理员账户、机构委员会账户、授权机构账户、以及普通账户的角色操作二元组,对每个角色赋予对应的职责和权限,并将每个角色的授权和管理操作以代码的方式编程到智能合约中提供接口给第三方智能合约外部调用,从而保证了区块链上数据存储和查询安全可控、可信共享。解决了区块链上的数据风险,保护了联盟链机构不受攻击。
[0016]将角色权限管理智能合约按照分层的思想,分为业务逻辑智能合约和数据逻辑智能合约,当遇到业务变更时只需要将调用地址更换为重新部署的业务逻辑智能合约链上地址,而不用更新数据逻辑智能合约,从而保证了数据操作的原子性,大大降低了智能合约在线更新迭代部署的成本和难度。解决了合约升级难的问题,并且具备很强的普适性和可升级性。
附图说明
[0017]图1为角色权限管理智能合约之间的各个依赖关系图。
[0018]图2为角色权限智能合约的部署和调用逻辑关系图。
[0019]图3为角色管理逻辑智能合约分层逻辑。
具体实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于区块链的角色权限管理智能合约升级方法,其特征在于,至少包括以下步骤:创建角色管理逻辑智能合约:基于业务需求创建角色账户最小集,同时建立角色账户最小集内部元素相互之间的权限关系;将所述角色管理逻辑智能合约采用分层式设计,分为业务逻辑层合约和数据处理层合约;所述业务逻辑层合约为第三方智能合约的业务需求的处理接口,基于所述业务需求生成合约调用函数,对指定角色账户赋予对应的权限、以及账户地址;将合约调用函数以编译代码的形式编译到处理接口上,得到对应的链上合约地址;所述数据处理层合约基于合约调用函数定义数据结构,所述数据结构用于存储、查询合约调用函数;当业务需求发生变更时,处理接口基于变更后的供业务需求更新合约调用函数,基于更新合约调用函数以编译代码的形式再次编译到对应处理接口上,获取更新后的链上合约地址;第三方智能合约传入更新后的链上合约地址。2.根据权利要求1所述的基于区块链的角色权限管理智能合约升级方法,其特征在于,生成合约调用函数时还包括:创建权限检查函数;所述权限检查函数基于账户地址和所需的操作项目常量判断账户地址是否具有执行对应操作项目的操作权限;如果具备权限,则允许合约调用函数继续执行,如果不具备权限,则禁止合约调用函数执行,并产生合约调用函数非法调用事件广播;其中所述账户地址为原始用户地址,表示为tx.origin。3.根据权利要求1所述的基于区块链的角色权限管理智能合约升级方法,其特征在于,所述角色账户最小集内至少包括:超级管理员账户、机构委员会账户、授权机构账户和普通账户;所述权限关系如下:超级管理员账户具有最高权限,被设置为基于业务需求指定主体机构和对应的授权机构,并定义为机构委员会账户和授权机构账户;对机构委员会账户和授权机构账户赋予操作权限的赋予、修改链上合约地址;机构委员会账户的权限为:对其名下的主体机构、与主体机构相对应的授权机构账户赋予操作权限、启动/禁用;授权机构账户的权限为:对其名下的授权机构赋予操作权限、启动/禁用。4.根据权利要求1所述的基于区块链的角色权限管理智能合约升级方法,其特征在于,所述合约调用函数由超级管理员账户生成,所述合约调用函数至少包括:对角色账户最小集内的角色赋予角色操作函数,对非角色账户最小集的角色赋予增加/删除角色函数,并配置对应的角色权限函数。5.根据权利要求4所述的基于区块...

【专利技术属性】
技术研发人员:高瑞芳罗昌焕周晓阳吕明刘旭包岩俞璐璐
申请(专利权)人:江苏移动信息系统集成有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1