一种基于许可链的用户身份管理方法与流程

文档序号:12693946阅读:354来源:国知局

本发明涉及许可链上的用户身份管理方法,通过在创世块中预置管理合约和每人一个身份合约的方式,为许可链上层业务制定安全可扩展的用户协议。



背景技术:

区块链(Block Chain)按照访问和管理权限可以分为公有链和许可链。公有链是指没有准入机制,全世界任何人都可以根据公开协议,生成合法账户,参与读取,发送交易,交易确认,甚至参与共识的区块链。公有链没有账户准入机制,任何人都可以生成账户,再获得一点代币,承担一些交易手续费就可以发起转账或其他合法交易。同时公链上公钥地址是用户的唯一标识,对应私钥丢失即丧失对账户数据和资产的控制权。

许可链(Permissioned Chain)是指其共识过程受到预选节点控制的区块链,由若干个机构组成的共同体,每个机构都运行着一个节点,而且为了使每个区块生效需要获得其中多数机构的确认。许可链上运行着实际的商业活动,需要严格的成员身份管理、方便的身份找回、细致的权限管理,以保证网络运行的安全高效。所以许可链上的用户身份需经过审核,大多为实名制,与现实世界的身份关系对应。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于许可链的用户身份管理方法。

本发明的目的是通过以下技术方案实现的:一种基于许可链的用户身份管理方法,包括以下步骤:

(1)在创世块中配置身份管理系统合约,所述身份管理系统合约包含一个结构为map(用户公钥=>身份合约)的“白名单”。

所述身份合约的属性有:合约地址、公钥地址、历史公钥地址列表、用户信息、创建管理员、状态、权限列表。其中状态的可选值有:“正常”、“停止”、“已删”,权限列表中的权限的可选值有:“创建身份合约”(表示用户能否创建下级用户,生成新的身份合约)、“创建业务合约”(表示用户能否创建业务相关的合约,非身份合约均为业务合约)。

(2)在创世块中构造生成“初始管理员”身份合约,所述初始管理员拥有“创建身份合约”的权限。

(3)在创世块中将“初始管理员”身份合约加入“白名单”中。

(4)链从创世块启动,并持续接受交易并出块,然后由“初始管理员”创建其余下级身份合约。创建方法为:

(4.1)用户在链下生成好自己的公私钥对,并提交“公钥地址”和“身份信息”给初始管理员审核,审核通过后,初始管理员通过调用身份合约的构造函数,传入用户“公钥地址”、“用户信息”,发起“创建身份合约”交易,创建一级身份合约。构造函数对每个用户部署生成一个固定的合约地址,作为用户的唯一标识,并加入“白名单”,新创建的用户状态设置为“正常”,同时将发起交易的管理员设为该用户的上级“创建管理员”。

所述“创建管理员”的权限包括:修改下属身份合约的权限列表,为其赋予权限或回收权限;对下属的身份合约采取冻结操作,如果用户状态是“正常”,则将用户状态设置为“停止”;对下属的身份合约采取解冻操作,如果用户状态是“停止”,则将用户状态设置为“正常”;对下属的身份合约采取删除操作,将用户状态设置为“已删”。

(4.2)一级身份合约中被赋予了“创建身份合约”权限的用户按照步骤1所述的方法,进一步创建二级身份合约,如此进行不断创建。

(4.3)用户如果遇到私钥丢失,通过链下向上级“创建管理员”提交“新公钥地址”,申请更换公钥地址。上级“创建管理员”通过审核后,发起更换公钥地址交易,传入“新公钥地址”,等待上链。链收到交易后,将“旧公钥地址”加入用户“历史公钥列表”,将用户的“公钥地址”设置为“新公钥地址”,并将“白名单”中“旧公钥地址”的索引修改为“新公钥地址”。

(5)节点在收到用户交易请求后,提取出用户“公钥地址”,根据“公钥地址”对该交易进行判断,若“公钥地址”满足合法条件,则为合法交易,否则为非法。对于合法交易,节点接收请求,广播并上链;对于非法交易,节点直接拒绝请求,不会广播,也不会上链。所述合法条件包括:

条件1:在“白名单”中存在。

条件2:其对应的身份合约返回的状态是“正常”。

条件3:其对应的身份合约需要具有该交易对应的所需权限。

条件4:递归向上查找“创建管理员”的状态都是“正常”。

本发明的有益效果在于:该方法解决了公有链没有身份管理的弊端,通过在创世块中预置管理合约和初始管理员,实现了不可篡改的初始权限和管理规则,迎合了现实商业环境中的多级用户管理需求。

附图说明

图1为该方法的整体架构图。

具体实施方式

如图1所示,一种基于许可链的用户身份管理方法,包括以下步骤:

(1)在创世块中配置身份管理系统合约,所述身份管理系统合约包含一个结构为map(用户公钥=>身份合约)的“白名单”。

所述身份合约的属性有:合约地址、公钥地址、历史公钥地址列表、用户信息、创建管理员、状态、权限列表。其中状态的可选值有:“正常”、“停止”、“已删”,权限列表中的权限的可选值有:“创建身份合约”(表示用户能否创建下级用户,生成新的身份合约)、“创建业务合约”(表示用户能否创建业务相关的合约,非身份合约均为业务合约)。所述身份合约可以由任意权限者发起只读操作,但只能由“创建管理员”发起写操作。

(2)在创世块中构造生成“初始管理员”身份合约,所述初始管理员拥有“创建身份合约”的权限。

(3)在创世块中将“初始管理员”身份合约加入“白名单”中。

(4)链从创世块启动,并持续接受交易并出块,然后由“初始管理员”创建其余下级身份合约。创建方法为:

(4.1)用户在链下生成好自己的公私钥对,并提交“公钥地址”和“身份信息”给初始管理员审核,审核通过后,初始管理员通过调用身份合约的构造函数,传入用户“公钥地址”、“用户信息”,发起“创建身份合约”交易,创建一级身份合约。构造函数对每个用户部署生成一个固定的合约地址,作为用户的唯一标识,并加入“白名单”,新创建的用户状态设置为“正常”,同时将发起交易的管理员设为该用户的上级“创建管理员”。

所述“创建管理员”的权限包括:修改下属身份合约的权限列表,为其赋予权限或回收权限;对下属的身份合约采取冻结操作,如果用户状态是“正常”,则将用户状态设置为“停止”;对下属的身份合约采取解冻操作,如果用户状态是“停止”,则将用户状态设置为“正常”;对下属的身份合约采取删除操作,将用户状态设置为“已删”。

(4.2)一级身份合约中被赋予了“创建身份合约”权限的用户按照步骤1所述的方法,进一步创建二级身份合约,如此进行不断创建。

(4.3)用户如果遇到私钥丢失,通过链下向上级“创建管理员”提交“新公钥地址”,申请更换公钥地址。上级“创建管理员”通过审核后,发起更换公钥地址交易,传入“新公钥地址”,等待上链。链收到交易后,将“旧公钥地址”加入用户“历史公钥列表”,将用户的“公钥地址”设置为“新公钥地址”,并将“白名单”中“旧公钥地址”的索引修改为“新公钥地址”。

(5)节点在收到用户交易请求后,提取出用户“公钥地址”,根据“公钥地址”对该交易进行判断,若“公钥地址”满足合法条件,则为合法交易,否则为非法。对于合法交易,节点接收请求,广播并上链;对于非法交易,节点直接拒绝请求,不会广播,也不会上链。所述合法条件包括:

条件1:在“白名单”中存在。

条件2:其对应的身份合约返回的状态是“正常”。

条件3:其对应的身份合约需要具有该交易对应的所需权限。

条件4:递归向上查找“创建管理员”的状态都是“正常”。

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