一种基于许可链的用户身份管理方法转让专利

申请号 : CN201710066751.7

文献号 : CN106850622B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢晗剑岳利鹏

申请人 : 杭州秘猿科技有限公司

摘要 :

本发明提供了一种基于许可链的用户身份管理方法,该方法首先在创世块中预置白名单管理合约和初始管理员,并为后续用户创建单独的身份合约,根据身份合约的创建管理员,形成多级的用户管理结构。创建管理员可以为用户更换公钥、修改状态、赋予或回收权限。该方法解决了公有链没有身份管理的弊端,通过在创世块中预置管理合约和初始管理员,实现了不可篡改的初始权限和管理规则,迎合了现实商业环境中的多级用户管理需求。

权利要求 :

1.一种基于许可链的用户身份管理方法,其特征在于,包括以下步骤:

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

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

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

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

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

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

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

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

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

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

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

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

说明书 :

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

技术领域

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

背景技术

[0002] 区块链(Block Chain)按照访问和管理权限可以分为公有链和许可链。公有链是指没有准入机制,全世界任何人都可以根据公开协议,生成合法账户,参与读取,发送交易,交易确认,甚至参与共识的区块链。公有链没有账户准入机制,任何人都可以生成账户,再获得一点代币,承担一些交易手续费就可以发起转账或其他合法交易。同时公链上公钥地址是用户的唯一标识,对应私钥丢失即丧失对账户数据和资产的控制权。
[0003] 许可链(Permissioned Chain)是指其共识过程受到预选节点控制的区块链,由若干个机构组成的共同体,每个机构都运行着一个节点,而且为了使每个区块生效需要获得其中多数机构的确认。许可链上运行着实际的商业活动,需要严格的成员身份管理、方便的身份找回、细致的权限管理,以保证网络运行的安全高效。所以许可链上的用户身份需经过审核,大多为实名制,与现实世界的身份关系对应。

发明内容

[0004] 本发明的目的在于针对现有技术的不足,提供一种基于许可链的用户身份管理方法。
[0005] 本发明的目的是通过以下技术方案实现的:一种基于许可链的用户身份管理方法,包括以下步骤:
[0006] (1)在创世块中配置身份管理系统合约,所述身份管理系统合约包含一个结构为map(用户公钥=>身份合约)的“白名单”。
[0007] 所述身份合约的属性有:合约地址、公钥地址、历史公钥地址列表、用户信息、创建管理员、状态、权限列表。其中状态的可选值有:“正常”、“停止”、“已删”,权限列表中的权限的可选值有:“创建身份合约”(表示用户能否创建下级用户,生成新的身份合约)、“创建业务合约”(表示用户能否创建业务相关的合约,非身份合约均为业务合约)。
[0008] (2)在创世块中构造生成“初始管理员”身份合约,所述初始管理员拥有“创建身份合约”的权限。
[0009] (3)在创世块中将“初始管理员”身份合约加入“白名单”中。
[0010] (4)链从创世块启动,并持续接受交易并出块,然后由“初始管理员”创建其余下级身份合约。创建方法为:
[0011] (4.1)用户在链下生成好自己的公私钥对,并提交“公钥地址”和“身份信息”给初始管理员审核,审核通过后,初始管理员通过调用身份合约的构造函数,传入用户“公钥地址”、“用户信息”,发起“创建身份合约”交易,创建一级身份合约。构造函数对每个用户部署生成一个固定的合约地址,作为用户的唯一标识,并加入“白名单”,新创建的用户状态设置为“正常”,同时将发起交易的管理员设为该用户的上级“创建管理员”。
[0012] 所述“创建管理员”的权限包括:修改下属身份合约的权限列表,为其赋予权限或回收权限;对下属的身份合约采取冻结操作,如果用户状态是“正常”,则将用户状态设置为“停止”;对下属的身份合约采取解冻操作,如果用户状态是“停止”,则将用户状态设置为“正常”;对下属的身份合约采取删除操作,将用户状态设置为“已删”。
[0013] (4.2)一级身份合约中被赋予了“创建身份合约”权限的用户按照步骤1所述的方法,进一步创建二级身份合约,如此进行不断创建。
[0014] (4.3)用户如果遇到私钥丢失,通过链下向上级“创建管理员”提交“新公钥地址”,申请更换公钥地址。上级“创建管理员”通过审核后,发起更换公钥地址交易,传入“新公钥地址”,等待上链。链收到交易后,将“旧公钥地址”加入用户“历史公钥列表”,将用户的“公钥地址”设置为“新公钥地址”,并将“白名单”中“旧公钥地址”的索引修改为“新公钥地址”。
[0015] (5)节点在收到用户交易请求后,提取出用户“公钥地址”,根据“公钥地址”对该交易进行判断,若“公钥地址”满足合法条件,则为合法交易,否则为非法。对于合法交易,节点接收请求,广播并上链;对于非法交易,节点直接拒绝请求,不会广播,也不会上链。所述合法条件包括:
[0016] 条件1:在“白名单”中存在。
[0017] 条件2:其对应的身份合约返回的状态是“正常”。
[0018] 条件3:其对应的身份合约需要具有该交易对应的所需权限。
[0019] 条件4:递归向上查找“创建管理员”的状态都是“正常”。
[0020] 本发明的有益效果在于:该方法解决了公有链没有身份管理的弊端,通过在创世块中预置管理合约和初始管理员,实现了不可篡改的初始权限和管理规则,迎合了现实商业环境中的多级用户管理需求。

附图说明

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

具体实施方式

[0022] 如图1所示,一种基于许可链的用户身份管理方法,包括以下步骤:
[0023] (1)在创世块中配置身份管理系统合约,所述身份管理系统合约包含一个结构为map(用户公钥=>身份合约)的“白名单”。
[0024] 所述身份合约的属性有:合约地址、公钥地址、历史公钥地址列表、用户信息、创建管理员、状态、权限列表。其中状态的可选值有:“正常”、“停止”、“已删”,权限列表中的权限的可选值有:“创建身份合约”(表示用户能否创建下级用户,生成新的身份合约)、“创建业务合约”(表示用户能否创建业务相关的合约,非身份合约均为业务合约)。所述身份合约可以由任意权限者发起只读操作,但只能由“创建管理员”发起写操作。
[0025] (2)在创世块中构造生成“初始管理员”身份合约,所述初始管理员拥有“创建身份合约”的权限。
[0026] (3)在创世块中将“初始管理员”身份合约加入“白名单”中。
[0027] (4)链从创世块启动,并持续接受交易并出块,然后由“初始管理员”创建其余下级身份合约。创建方法为:
[0028] (4.1)用户在链下生成好自己的公私钥对,并提交“公钥地址”和“身份信息”给初始管理员审核,审核通过后,初始管理员通过调用身份合约的构造函数,传入用户“公钥地址”、“用户信息”,发起“创建身份合约”交易,创建一级身份合约。构造函数对每个用户部署生成一个固定的合约地址,作为用户的唯一标识,并加入“白名单”,新创建的用户状态设置为“正常”,同时将发起交易的管理员设为该用户的上级“创建管理员”。
[0029] 所述“创建管理员”的权限包括:修改下属身份合约的权限列表,为其赋予权限或回收权限;对下属的身份合约采取冻结操作,如果用户状态是“正常”,则将用户状态设置为“停止”;对下属的身份合约采取解冻操作,如果用户状态是“停止”,则将用户状态设置为“正常”;对下属的身份合约采取删除操作,将用户状态设置为“已删”。
[0030] (4.2)一级身份合约中被赋予了“创建身份合约”权限的用户按照步骤1所述的方法,进一步创建二级身份合约,如此进行不断创建。
[0031] (4.3)用户如果遇到私钥丢失,通过链下向上级“创建管理员”提交“新公钥地址”,申请更换公钥地址。上级“创建管理员”通过审核后,发起更换公钥地址交易,传入“新公钥地址”,等待上链。链收到交易后,将“旧公钥地址”加入用户“历史公钥列表”,将用户的“公钥地址”设置为“新公钥地址”,并将“白名单”中“旧公钥地址”的索引修改为“新公钥地址”。
[0032] (5)节点在收到用户交易请求后,提取出用户“公钥地址”,根据“公钥地址”对该交易进行判断,若“公钥地址”满足合法条件,则为合法交易,否则为非法。对于合法交易,节点接收请求,广播并上链;对于非法交易,节点直接拒绝请求,不会广播,也不会上链。所述合法条件包括:
[0033] 条件1:在“白名单”中存在。
[0034] 条件2:其对应的身份合约返回的状态是“正常”。
[0035] 条件3:其对应的身份合约需要具有该交易对应的所需权限。
[0036] 条件4:递归向上查找“创建管理员”的状态都是“正常”。