一种基于智能合约的区块链账户属性管理方法及系统与流程

文档序号:18706622发布日期:2019-09-17 23:48阅读:484来源:国知局
一种基于智能合约的区块链账户属性管理方法及系统与流程

本发明涉及计算机技术领域,特别涉及一种基于智能合约的区块链账户属性管理方法及系统。



背景技术:

现有的区块链技术通常只会给账户赋予基本的属性,即链资产余额,而在实际的商业应用过程中,不可避免的需要为账户赋予更多的属性,例如性别、地址、通讯方式等,不同的商业应用场景也会有不同的需求,若在链层增加数据库实现存储功能,会影响区块链的兼容性和拓展性。同时,由于智能合约对区块链网络的依赖性,其访问链外数据存在安全风险,因此账户不易通过访问链外数据获得账户属性,从而导致账户之间无法得知各自的属性信息,存在属性不一致的风险。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种基于智能合约的区块链账户属性管理方法及系统。所述技术方案如下:

一方面,提供了一种基于智能合约的区块链账户属性管理方法,该方法通过账户属性合约管理所述账户属性,所述方法包括:

根据账户发出的账户属性合约地址查找所述账户属性合约;

根据接收到的所述账户的属性管理请求,审核所述账户的权限;

若审核通过,则允许所述账户通过操作账户属性合约管理所述账户属性。

进一步地,所述根据账户发出的账户属性合约地址查找所述账户属性合约包括:根据账户通过智能合约接口发出的账户属性合约地址查找所述账户属性合约,所述智能合约管理接口包括:执行接口和查询接口。

进一步地,所述通过操作账户属性合约管理所述账户属性包括:添加、删除、更新、修改、查询所述账户属性合约中的所述账户属性。

进一步地,所述账户属性合约在所述区块链初始化时创建,包括:

创建所述账户属性合约,将区块链上账户的属性信息存入所述账户属性合约中,生成并广播所述账户属性合约地址;

给所述区块链上的账户配置管理所述账户属性合约的权限。

进一步地,所述属性信息包括:属性对应的合约函数名、链账户地址、属性名、属性值。

另一方面,提供了一种区块链账户属性管理系统,所述系统包括:

通信模块,用于接收根据账户发出的账户属性合约地址查找账户属性合约,以及接收属性管理请求;

权限管理模块,用于审核发起所述属性管理请求的账户的权限;

账户属性管理模块,用于通过操作账户属性合约管理所述账户属性。

进一步地,所述通信模块包括智能合约管理接口,用于接收账户属性合约地址;

所述智能合约管理接口包括:执行接口和查询接口,所述执行接口用于调用所述账户属性合约,变更管理所述账户属性,所述查询接口用于调用所述账户属性合约,查询所述账户属性。

进一步地,所述账户属性合约具体用于添加、删除、更新、修改、查询所述账户属性。

进一步地,所述系统还包括:

创建模块,用于创建所述账户属性合约,将区块链上账户的属性信息存入所述账户属性合约中,生成所述账户属性合约地址;

所述权限管理模块,还用于给所述区块链上的账户配置管理所述账户属性合约的权限;

所述通信模块,还用于广播所述账户属性合约地址。

进一步地,所述属性信息包括:属性对应的合约函数名、链账户地址、属性名、属性值。

本发明实施例提供的技术方案带来的有益效果是:

1、本发明通过账户属性合约管理账户属性实现了区块链上账户属性的统一管理,有利于扩充账户属性解决了区块链账户属性单一的问题;

2、本发明能够避免各个账户维护多份属性数据造成的账户属性不一致的风险;

3、本发明通过设置管理权限,保证了账户属性的安全和准确。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于智能合约的区块链账户属性管理方法流程图;

图2是本发明实施例提供的一种基于智能合约的区块链账户属性管理方法执行过程图;

图3是本发明实施例提供的一种区块链账户属性管理系统模块示意图。

具体实施方式

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

现有的区块链系统存在账户属性单一,以及各个账户维护多份属性数据造成的数据不一致的风险,账户属性隐私及合约账户访问壁垒等问题。为了解决现有技术存在的问题,本发明实施例公开一种基于智能合约的区块链账户属性管理方法及系统,本发明公开的方法主要通过账户属性合约管理账户属性,使得账户可以通过对账户属性合约的操作实现对账户属性的管理。其中所述方法包括:

根据账户发出的账户属性合约地址查找所述账户属性合约;

根据接收到的所述账户的属性管理请求,审核所述账户的权限;

若审核通过,则允许所述账户通过操作账户属性合约管理所述账户属性。

需要说明的是,上述方法中所述账户属性合约是指存储有账户属性的智能合约,账户属性合约是单独部署的不依赖其它智能合约存在。所述的属性管理请求可由区块链上的任意账户发出,包括链账户和合约账户,其中链账户是指仅具有存储功能的账户地址,合约账户是指除了存储功能之外还具有合约中包括的交易功能的账户地址。审核发起所述属性管理请求的账户的权限包括:审核发起所述属性管理请求的账户是否具有属性变更权限,和/或审核发起所述属性管理请求的账户是否具有属性查询权限。若发起属性管理请求的账户请求的是属性变更,则审核其是否具有属性变更权限,若其不具有任何权限或者仅具有查询权限则不允许其访问账户属性合约管理账户属性。若发起属性管理请求的账户请求的是属性查询,则审核其是否具有属性查询权限,若其不具有任何权限则不允许其访问账户属性合约查询账户属性。

上述方法中账户通过智能合约管理接口发出账户属性合约地址查找账户属性合约。智能合约管理接口是指能够调用区块链上任意智能合约的接口,包括执行接口和查询接口,其中执行接口是指通过该接口仅能对智能合约中的信息进行添加、删除、更新、修改等变更其中信息的操作,查询接口是指通过该接口仅能对智能合约中的信息进行查询。账户属性合约地址与账户属性合约唯一对应,通过账户属性合约地址能够查到唯一的账户属性合约。管理账户属性包括:添加、删除、更新、修改、查询账户属性合约中的账户属性。

举例说明如图2所示,图中管理账户具有管理账户属性合约的权限,即能够对账户属性合约中的账户属性进行添加、删除、更新、修改等变动的操作。链账户a、链账户b、合约账户c、合约账户c仅具有查询账户管理属性合约的权限。当管理账户通过执行接口发出添加属性的属性管理请求时,审核管理账户的权限,审核通过后,管理账户对其中的账户属性进行变更,管理账户通过调用添加属性函数给链账户a添加了性别属性(sex=>boy)给链账户b添加了性别属性(sex=>girl),账户属性合约存储管理账户添加的账户属性。链账户a、链账户b、合约账户c、合约账户c中有任意账户通过查询接口发出查询链账户a的性别属性的属性管理请求时,审核其是否具有查询的权限,若审核通过,则其可以调用查询属性函数查找到对应的账户的对应属性。

上述方法通过智能合约统一管理区块链中所有账户的属性,避免了交易智能合约中账户属性不一致的风险,无需账户访问链外数据获得账户属性。

上述方法中的账户属性合约在初始化区块链时创建部署,将区块链上账户的属性信息存入所述账户属性合约中,生成并广播所述账户属性合约地址;给所述区块链上的账户配置管理所述账户属性合约的权限。所述属性信息包括:属性对应的合约函数名、链账户地址、属性名、属性值。

需要说明的是,上述方法为账户属性合约的创建方法,其在初始化区块链是创建确保了账户属性合约保存有区块链上所有账户的账户属性。管理所述账户属性合约的权限可以包括:变更权限和查询权限。进一步地,可以给指定的账户设置变更权限,保证账户属性合约信息的准确性和安全性。上述方法中,属性对应的合约函数名主要指账户属性合约内权限配置、属性执行和属性查询对应的函数名,例如:add、change、query等等,用于账户属性合约执行指定功能。链账户地址主要指与链账户唯一对应的地址,属性名主要指账户属性名称,例如:年龄、性别等等,属性值主要指与属性名对应的属性内容,例如:32、女等等。

如图3所示,另一方面,本发明实施例在上述基于智能合约管理区块链账户属性管理方法还提供一种区块链账户属性管理系统,包括:创建模块、权限管理模块、通信模块、账户属性管理模块。

所述创建模块,用于创建所述账户属性合约,将区块链上账户的属性信息存入所述账户属性合约中,生成账户属性合约地址,所述属性信息包括:属性对应的合约函数名、链账户地址、属性名、属性值。

所述权限管理模块,用于给所述区块链上的账户配置管理所述账户属性合约的权限,以及用于审核发起所述属性管理请求的账户的权限。

所述通信模块,用于接收根据账户发出的账户属性合约地址查找账户属性合约,以及接收属性管理请求,以及广播所述账户属性合约地址。通信模块包括:智能合约管理接口,用于接收账户属性合约地址,包括执行接口模块和查询接口模块,所述执行接口模块用于调用所述账户属性合约,变更管理所述账户属性,所述查询接口模块用于调用所述账户属性合约,查询所述账户属性。

所述账户属性管理模块,用于通过操作账户属性合约管理所述账户属性,具体包括:添加、删除、更新、修改、查询所述账户属性。

本发明实施例公开的系统运行的一种方式是,创建模块在区块链初始化时创建账户属性合约,存储区块链上账户的属性信息,生成账户属性合约地址。然后创建模块将账户属性合约地址发送至通信模块,通信模块将其广播至区块链上的账户。权限管理模块给区块链上的账户分配管理账户属性合约的权限。当通信模块收到属性管理请求时,给权限管理模块发送信号,权限管理模块审核请求账户的权限,审核通过后请求账户通过账户属性管理模块,实现对账户属性的管理。

1、本发明通过账户属性合约管理账户属性实现了区块链上账户属性的统一管理,有利于扩充账户属性解决了区块链账户属性单一的问题;

2、本发明能够避免各个账户维护多份属性数据造成的账户属性不一致的风险;

3、本发明通过设置管理权限,保证了账户属性的安全和准确。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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