CN115033853A - 一种基于智能合约的函数访问权限控制方法及装置 - Google Patents
一种基于智能合约的函数访问权限控制方法及装置 Download PDFInfo
- Publication number
- CN115033853A CN115033853A CN202210669712.7A CN202210669712A CN115033853A CN 115033853 A CN115033853 A CN 115033853A CN 202210669712 A CN202210669712 A CN 202210669712A CN 115033853 A CN115033853 A CN 115033853A
- Authority
- CN
- China
- Prior art keywords
- contract
- function
- configuration information
- role
- intelligent contract
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Abstract
本申请公开了一种基于智能合约的函数访问权限控制方法,包括:获取角色配置信息,角色配置信息包括角色和角色状态,进一步地,获取合约函数配置信息,合约函数配置信息包括为角色配置的、角色具备访问权限的至少一个合约函数、以及至少一个合约函数对应的合约地址,至少一个合约函数,为对区块链数据进行处理的函数。获取角色配置信息和合约函数配置信息之后,可以基于角色配置信息和合约函数配置信息,生成针对角色的函数访问权限控制智能合约。由此可见,本方案通过对角色进行权限配置,控制了该角色对区块链数据的访问权限,从而实现了对区块链数据进行有效隔离,提高了区块链数据访问的可控性,保证了区块链数据的安全。
Description
技术领域
本申请涉及区块链领域,特别是涉及一种基于智能合约的函数访问权限控制方法及装置。
背景技术
随着区块链技术的发展,智能合约广受青睐。智能合约是一种自我验证、无需中介、自动执行合约条款的计算机交易协议。智能合约具有去中心化、去信任、可编程、不可篡改等特性,可以灵活地嵌入到各种数据和资产中,从而实现安全高效地交换信息、转移价值和管理资产。
目前,在基于区块链的应用系统中,开发者可通过编写各个业务对应的智能合约。但是,随着区块链技术在互联网应用中的推广使用,保证区块链数据的安全尤为重要。
如何保证区块链数据的安全,是目前尚待解决的问题。
发明内容
本申请所要解决的技术问题是如何保证区块链数据的安全,提供一种基于智能合约的函数访问权限控制方法及装置。
第一方面,本申请实施例提供了一种基于智能合约的函数访问权限控制方法,所述方法包括:
获取角色配置信息,所述角色配置信息包括角色和角色状态;
获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数;
基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
可选的,所述至少一个合约函数,为目标智能合约中的合约函数,所述至少一个合约函数对应的合约地址,为所述目标智能合约的合约地址。
可选的,所述基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约,包括:
对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称;
基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
可选的,所述获取角色配置信息,包括:
获取用户输入的所述角色配置信息。
可选的,所述获取合约函数配置信息,包括:
获取用户输入的所述至少一个合约函数的标识信息,以及,
获取预先存储的所述目标智能合约对应的合约地址。
第二方面,本申请实施例提供了一种基于智能合约的函数访问权限控制装置,所述装置包括:
第一获取单元,用于获取角色配置信息,所述角色配置信息包括角色和角色状态;
第二获取单元,用于获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数;
生成单元,用于基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
可选的,所述至少一个合约函数,为目标智能合约中的合约函数,所述至少一个合约函数对应的合约地址,为所述目标智能合约的合约地址。
可选的,所述生成单元,用于:
对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称;
基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
可选的,所述第一获取单元,用于:
获取用户输入的所述角色配置信息。
可选的,所述第二获取单元,用于:
获取用户输入的所述至少一个合约函数的标识信息,以及,
获取预先存储的所述目标智能合约对应的合约地址。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种基于智能合约的函数访问权限控制方法,包括:获取角色配置信息,所述角色配置信息包括角色和角色状态,进一步地,获取合约函数配置信息,所述合约函数配置信息包括为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数。获取所述角色配置信息和所述合约函数配置信息之后,可以基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。由此可见,在本申请实施例中,可以为角色配置其可以访问的、对区块链数据进行处理的至少一个合约函数。通过对所述角色进行权限配置,控制了该角色对区块链数据的访问权限,从而实现了对区块链数据进行有效隔离,提高了区块链数据访问的可控性,保证了区块链数据的安全。另外,本方案还可以实现区块链数据与具体业务逻辑解耦,提升了智能合约的研发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于智能合约的函数访问权限控制方法的流程示意图;
图2为本申请实施例提供的一种生成针对所述角色的函数访问权限控制智能合约的方法的流程示意图;
图3为本申请实施例提供的一种基于智能合约的函数访问权限控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图1,该图为本申请实施例提供的一种基于智能合约的函数访问权限控制方法的流程示意图。在本实施例中,图1所示的方法可以由终端设备执行,也可以由服务器执行,本申请实施例不做具体限定。
在一个示例中,所述方法例如可以包括以下步骤:S101-S103。
S101:获取角色配置信息,所述角色配置信息包括角色和角色状态。
在一个示例中,所述角色配置信息可以是用户输入的,换言之,S101在具体实现时,可以获取用户输入的所述角色配置信息。例如,所述用户可以在显示界面中输入角色和该角色状态。
关于此处提及的角色,可以是具有一定权限的集合,是权限的载体。在一个示例中,所述角色可以是管理员,在又一个示例中,所述角色可以是普通用户。
关于所述角色状态,需要说明的是,所述角色状态可以是为该角色配置的权限的生效状态。所述角色状态例如可以包括:生效、禁用等等。
S102:获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数。
在本申请实施例的一种实现方式中,为了实现区块链数据和业务对应的智能合约的解耦,可以开发与处理区块链数据对应的目标智能合约,该目标智能合约中可以包括多个对区块链数据进行处理的合约函数。例如,目标智能合约中包括对区块链数据进行增加操作对应的合约函数、对区块链数据进行删除操作对应的合约函数、对区块链数据进行修改操作对应的合约函数、以及对区块链数据进行查询操作对应的合约函数。
相应的,可以从所述目标智能合约中确定前述角色具备访问权限的至少一个合约函数。
在一个示例中,可以预先获取所述目标智能合约的信息。例如,获取所述目标智能合约的地址、所述目标智能合约所包括的合约函数的标识信息(例如名称)。相应的,可以在显示界面上显示所述目标智能合约所包括的合约函数的标识信息,例如,以下拉菜单的方式,显示所述目标智能合约所包括的合约函数的标识信息。
当用户为所述角色配置其具备访问权限的合约函数时,用户可以从所述下拉菜单中选择所述至少一个合约函数的标识信息,从而实现为所述角色配置所述角色具备访问权限的至少一个合约函数。另外,由于预先存储了所述目标智能合约的地址,因此,可以读取预先存储的所述目标智能合约对应的合约地址,从而得到所述合约函数配置信息。换言之,S102的其中一种实现方式可以为:获取用户输入的所述至少一个合约函数的标识信息,以及,获取预先存储的所述目标智能合约对应的合约地址。
S103:基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
在一个示例中,获取所述角色配置信息和所述合约函数配置信息之后,可以对所述角色配置信息和所述合约函数配置信息进行验证,在所述角色配置信息和所述合约函数配置信息通过验证的情况下,基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
在一个示例中,对所述角色配置信息进行验证,例如可以利用预先确定的角色配置信息约束规则对所述角色配置信息进行验证,本申请实施例不具体限定所述角色配置信息约束规则,所述角色配置信息约束规则可以根据实际情况确定,此处不做详细描述。
在又一个示例中,对所述合约函数配置信息进行验证,例如可以利用预先确定的合约函数配置信息约束规则对所述合约函数配置信息进行验证,本申请实施例不具体限定所述合约函数配置信息约束规则,所述合约函数配置信息约束规则可以根据实际情况确定,此处不做详细描述。
在一个示例中,S103在具体实现时,例如可以基于所述角色配置信息和所述合约函数配置信息,自动生成针对所述角色的函数访问权限控制智能合约对应的软件代码。在一个示例中,可以将所述角色配置信息和所述合约函数配置信息填写至控制智能合约对应的软件代码模板中,从而得到针对所述角色的函数访问权限控制智能合约对应的软件代码。
在一个示例中,为了区分“针对所述角色的函数访问权限控制智能合约”和目标智能合约,S103在具体实现时,可以包括图2所示的S201-S202。图2为本申请实施例提供的一种生成针对所述角色的函数访问权限控制智能合约的方法的流程示意图。
S201:对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称。
本申请实施例不具体限定所述预设类型的变化,所述预设类型的变换,例如可以是在初始函数名称的基础上添加后缀信息,此处提及的后缀信息,例如可以是所述角色的名称,又如可以是其它信息,本申请实施例不做具体限定。
S202:基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
S202在具体实现时,可以所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成针对所述角色的函数访问权限控制智能合约对应的软件代码。在一个示例中,可以将所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,填写至控制智能合约对应的软件代码模板中,从而得到针对所述角色的函数访问权限控制智能合约对应的软件代码。
通过以上描述可知,利用本申请实施例的方案,可以为角色配置其可以访问的、对区块链数据进行处理的至少一个合约函数。通过对所述角色配置对所述至少一个合约函数的访问权限,控制了该角色对区块链数据的访问权限,从而实现了对区块链数据进行有效隔离,提高了区块链数据访问的可控性,保证了区块链数据的安全。另外,本方案还可以实现区块链数据与具体业务逻辑解耦,提升了智能合约的研发效率。
示例性设备
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图3,该图为本申请实施例提供的一种基于智能合约的函数访问权限控制装置的结构示意图。所述装置300例如可以具体包括:第一获取单元301、第二获取单元302和生成单元303。
第一获取单元301,用于获取角色配置信息,所述角色配置信息包括角色和角色状态;
第二获取单元302,用于获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数;
生成单元303,用于基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
可选的,所述至少一个合约函数,为目标智能合约中的合约函数,所述至少一个合约函数对应的合约地址,为所述目标智能合约的合约地址。
可选的,所述生成单元303,用于:
对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称;
基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
可选的,所述第一获取单元301,用于:
获取用户输入的所述角色配置信息。
可选的,所述第二获取单元302,用于:
获取用户输入的所述至少一个合约函数的标识信息,以及,
获取预先存储的所述目标智能合约对应的合约地址。
由于所述装置300是与以上方法实施例提供的方法对应的装置,所述装置300的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置300的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于智能合约的函数访问权限控制方法,其特征在于,所述方法包括:
获取角色配置信息,所述角色配置信息包括角色和角色状态;
获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数;
基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
2.根据权利要求1所述的方法,其特征在于,所述至少一个合约函数,为目标智能合约中的合约函数,所述至少一个合约函数对应的合约地址,为所述目标智能合约的合约地址。
3.根据权利要求2所述的方法,其特征在于,所述基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约,包括:
对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称;
基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
4.根据权利要求1所述的方法,其特征在于,所述获取角色配置信息,包括:
获取用户输入的所述角色配置信息。
5.根据权利要求2所述的方法,其特征在于,所述获取合约函数配置信息,包括:
获取用户输入的所述至少一个合约函数的标识信息,以及,
获取预先存储的所述目标智能合约对应的合约地址。
6.一种基于智能合约的函数访问权限控制装置,其特征在于,所述装置包括:
第一获取单元,用于获取角色配置信息,所述角色配置信息包括角色和角色状态;
第二获取单元,用于获取合约函数配置信息,所述合约函数配置信息包括:为所述角色配置的、所述角色具备访问权限的至少一个合约函数、以及所述至少一个合约函数对应的合约地址,所述至少一个合约函数,为对区块链数据进行处理的函数;
生成单元,用于基于所述角色配置信息和所述合约函数配置信息,生成针对所述角色的函数访问权限控制智能合约。
7.根据权利要求6所述的装置,其特征在于,所述至少一个合约函数,为目标智能合约中的合约函数,所述至少一个合约函数对应的合约地址,为所述目标智能合约的合约地址。
8.根据权利要求7所述的装置,其特征在于,所述生成单元,用于:
对所述至少一个合约函数的初始函数名称进行预设类型的变换,得到所述至少一个合约函数的目标函数名称,所述至少一个合约函数的初始函数名称,为所述至少一个合约函数在所述目标智能合约中的函数名称;
基于所述角色配置信息、所述至少一个合约函数的目标函数名称、以及所述至少一个合约函数对应的合约地址,生成所述函数访问权限控制智能合约。
9.根据权利要求6所述的装置,其特征在于,所述第一获取单元,用于:
获取用户输入的所述角色配置信息。
10.根据权利要求7所述的装置,其特征在于,所述第二获取单元,用于:
获取用户输入的所述至少一个合约函数的标识信息,以及,
获取预先存储的所述目标智能合约对应的合约地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669712.7A CN115033853A (zh) | 2022-06-14 | 2022-06-14 | 一种基于智能合约的函数访问权限控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669712.7A CN115033853A (zh) | 2022-06-14 | 2022-06-14 | 一种基于智能合约的函数访问权限控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033853A true CN115033853A (zh) | 2022-09-09 |
Family
ID=83124030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210669712.7A Pending CN115033853A (zh) | 2022-06-14 | 2022-06-14 | 一种基于智能合约的函数访问权限控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033853A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117540356A (zh) * | 2024-01-10 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
-
2022
- 2022-06-14 CN CN202210669712.7A patent/CN115033853A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117540356A (zh) * | 2024-01-10 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN117540356B (zh) * | 2024-01-10 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109214197B (zh) | 基于区块链来处理隐私数据的方法、装置及存储介质 | |
CN109325729B (zh) | 一种生成电子合同的方法及服务器 | |
US11599663B2 (en) | Computer-implemented methods, systems comprising computer-readable media, and electronic devices for completing queries propagated across a plurality of datasources | |
CN103826215B (zh) | 一种在终端设备上进行Root权限管理的方法和装置 | |
CN108305072A (zh) | 部署区块链网络的方法、设备和计算机存储介质 | |
US9954819B2 (en) | System and method for compliance based automation | |
CN111181975B (zh) | 一种账号管理方法、装置、设备及存储介质 | |
CN111274045B (zh) | 一种多平台对接方法、装置、计算机设备及可读存储介质 | |
CN107480554A (zh) | 一种权限管理方法、权限管理装置及智能终端 | |
CN104011698A (zh) | 基于从相应的主应用程序数据导出的标识符来访问补充数据 | |
CN115033853A (zh) | 一种基于智能合约的函数访问权限控制方法及装置 | |
CN110070360B (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
CN103595573A (zh) | 一种策略规则的下发方法及装置 | |
CN111324645B (zh) | 区块链的数据处理方法及装置 | |
US10129213B2 (en) | System and method for compliance based automation | |
CN114296651B (zh) | 一种用于存储自定义数据信息的方法与设备 | |
EP3038394A1 (en) | Method of restoring a secure element to a factory state | |
CN113094048A (zh) | 数据显示规则确定方法、显示方法、装置、设备及介质 | |
CN111382121B (zh) | 一种信息管理系统及存储介质 | |
CN114006819A (zh) | 一种检测策略生成及装置、数据传输方法及装置 | |
CN109189378B (zh) | 一种数据处理方法及相关装置 | |
CN111858497A (zh) | 一种存储类型转换方法、装置及设备 | |
CN114785533B (zh) | 通讯录数据的安全控制方法、装置、电子设备和存储介质 | |
CN112953996B (zh) | 服务方法及其系统 | |
JP4523196B2 (ja) | Icカードとデータの授受を行う管理サーバ及び管理サーバが実行する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |