一种基于区块链的数字身份合约实现方法与流程

文档序号:26730496发布日期:2021-09-22 21:40阅读:179来源:国知局
一种基于区块链的数字身份合约实现方法与流程

1.本发明涉及区块链领域,特别涉及一种基于区块链的数字身份合约实现方法。


背景技术:

2.目前,区块链基础设施并未有统一的分布式链上身份创建的方案,链上各业务系统中用户身份无法做到统一与互通,同时受区块链技术与密码技术的限制,大多企业并未做到业务系统中身份与链上身份的一一对应,不利于今后区块链平台中权责及用户行为的确认。


技术实现要素:

3.针对现有技术中存在的问题,提供了一种基于区块链的数字身份合约实现方法,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换;实现一套分布式多中心的分身标识协议,使实体(人或物)的现实身份实现了链上的身份标识,同时,给身份所有者直接拥有和控制自己身份id的能力;实现多中心、开源开放、隐私保护、可移植性、互操作性与可扩展性等目标,实现可验证的数字凭证。
4.本发明采用的技术方案如下:一种基于区块链的数字身份合约实现方法,包括利用身份管理合约创建身份,具体步骤如下:
5.步骤1、用户发起注册请求,业务系统产生公私钥对;
6.步骤2、对私钥进行处理,产生对应助记词;
7.步骤3、业务系统调用身份管理合约,根据公钥派生出资产地址;
8.步骤4、区块链平台通过身份管理合约将公钥以及资产地址信息上链,并返回资产地址与交易信息返回给业务系统;
9.步骤5、业务系统将助记词、资产地址返回给用户,完成身份创建。
10.进一步的,还包括利用身份管理合约恢复身份,具体步骤如下:
11.步骤a、用户输入助记词或公钥,若输入为助记词,则通过转换算法转换为私钥,并由非对称密钥算法将私钥恢复为公钥;
12.步骤b、通过私钥对公钥进行签名;
13.步骤c、业务系统将用户公钥与签名信息作为参数请求身份管理合约;
14.步骤d、身份管理合约验证身份信息是否存在与合法;
15.步骤e、验证成功则将该用户数据资产信息返回用户,否则恢复失败。
16.进一步的,所述步骤d的具体过程包括:
17.存在性验证:验证传入的公钥在链上是否存在;
18.合法性验证:验证传入的公钥是否属于当前用户,通过公钥验签完成验证。
19.进一步的,所述步骤2中对私钥处理步骤为:
20.步骤21、将私钥转换为256位的二进制种子;
21.步骤22、通过二进制种子生成8位校验码;
22.步骤23、将校验码附加到二进制种子的末尾;
23.步骤24、对附加校验码后的二进制种子进行切割与编码;
24.步骤25、将切割、编码后的每段数据索引匹配词库中的相应单词;
25.步骤26、将每段数据对应的单词链接起来得到最终的助记词。
26.进一步的,所述步骤22中生成校验码的方式为:生成方式为checksum=first8byte sm3(私钥)。
27.进一步的,所述步骤24的具体过程为:将附加校验码后的二进制种子按照每11位进行切割,并编码为0

2047的数据。
28.进一步的,所述步骤3中根据公钥派生出资产地址的具体过程为:
29.步骤31、通过base58编码将公钥可视化,同时去掉歧义字符,得到publickey hash;
30.步骤32、对变换后的publickey hash加上前缀;
31.步骤33、通过sm3计算前缀与publickey hash的hash值,并取前4位串至加上前缀的publickey hash尾部,作为校验位;
32.步骤34、完成资产地址派生。
33.进一步的,所述歧义字符包括:数字0,大写字母o,大写字母i、小写字母l、字符“/”与“+”。
34.与现有技术相比,采用上述技术方案的有益效果为:
35.1、每一链上身份通过资产地址实现数据的流转,使资产地址具备可读性,便于用户记录与需要手工录入的相关资产操作;增加校验位,可由智能合约判定地址的合法性,避免资产被转入不可用地址。
36.2、利用私钥与助记词间的转换,实现联盟链上身份保存、恢复的便利性,方便用户可视化的保存身份凭证。
37.3、设计基于公私钥对的链上身份方案,多中心化的实现用户链上身份的唯一性、隐私性、可互通性等特点,提供了统一的链上用户身份的解决方案
附图说明
38.图1为本发明提出的基于区块链的数字身份合约身份创建流程图。
39.图2为本发明提出的基于区块链的数字身份合约身份恢复流程图。
40.图3为本发明提出的资产地址实现流程图。
41.图4为本发明提出份合约设计接口示意图。
具体实施方式
42.下面结合附图对本发明做进一步描述。
43.本发明利用区块链智能合约及非对称秘钥技术,实现链上数字身份的创建、更新、查询、核验等功能,并通过秘钥运算,使每一身份拥有对应联盟链的资产地址。具体方案如下:
44.如图1所示,本发明提出一种基于区块链的数字身份合约实现方法,包括利用身份
管理合约创建身份,具体步骤如下:
45.步骤1、用户发起注册请求,业务系统产生公私钥对;
46.步骤2、对私钥进行处理,产生对应助记词;
47.步骤3、业务系统调用身份管理合约,根据公钥派生出资产地址;
48.步骤4、区块链平台通过身份管理合约将公钥以及资产地址信息上链,并返回资产地址与交易信息返回给业务系统;
49.步骤5、业务系统将助记词、资产地址返回给用户,完成身份创建。
50.如图2所述,该基于区块链的数字身份合约实现方法还包括利用身份管理合约恢复身份,具体步骤如下:
51.步骤a、用户输入助记词或公钥,若输入为助记词,则通过转换算法转换为私钥,并由非对称密钥算法将私钥恢复为公钥;
52.步骤b、通过私钥对公钥进行签名;
53.步骤c、业务系统将用户公钥与签名信息作为参数请求身份管理合约;
54.步骤d、身份管理合约验证身份信息是否存在与合法;
55.步骤e、验证成功则将该用户数据资产信息返回用户,否则恢复失败。
56.其中,步骤d的具体过程包括:存在性验证:验证传入的公钥在链上是否存在;
57.合法性验证:验证传入的公钥是否属于当前用户,通过公钥验签完成验证。
58.具体的,助记词为一组用于描述私钥且容易记住的单词的实现,用于恢复链上的身份,与私钥相比,助记词更适合于人类交互,所述步骤2中对私钥处理步骤为:
59.步骤21、将私钥转换为256位的二进制种子;
60.步骤22、通过二进制种子生成8位校验码;
61.步骤23、将校验码附加到二进制种子的末尾;
62.步骤24、对附加校验码后的二进制种子进行切割与编码;
63.步骤25、将切割、编码后的每段数据索引匹配词库中的相应单词;
64.步骤26、将每段数据对应的单词链接起来得到最终的助记词。
65.在一个优选实施例中,所述步骤22中生成校验码的方式为:生成方式为checksum=first8byte sm3(私钥),即将私钥转换为二进制种子,然后前8位作为校验码。
66.所述步骤24的具体过程为:将附加校验码后的二进制种子按照每11位进行切割,并编码为0

2047的数据。
67.如图3所示,所述步骤3中根据公钥派生出资产地址的具体过程为:
68.步骤31、通过base58编码将公钥可视化,同时去掉歧义字符,得到publickey hash;
69.步骤32、对变换后的publickey hash加上前缀;
70.步骤33、通过sm3计算前缀与publickey hash的hash值(即sm3(前缀+publicekey hash)),并取前4位串至加上前缀的publickey hash尾部,作为校验位;
71.步骤34、完成资产地址派生。
72.在一个优选实施例中,所述歧义字符包括:数字0,大写字母o,大写字母i、小写字母l、字符“/”与“+”。
73.如图4所示,本发明还提供了身份合约方案设计接口,包括:
74.通过createidentity(publickeystring,sign string)pb.response实现身份的创建,传入参数分别为用户的公钥以及用户对该公钥的签名,接口返回为资产地址与区块链交易信息。
75.通过reidentity(address string,sign string)pb.response实现链上身份的恢复,传入的参数分别是用户资产地址与用户对该资产地址的签名,接口返回身份恢复成功或失败。
76.通过queryaddressbypk(pk string)(error,string)接口实现通过公钥查询资产地址。
77.通过querypkbyaddress(address string)(error,string)接口实现通过资产地址查询公钥。
78.本发明提出的一种基于区块链的数字身份合约实现方法,能够承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换;实现一套分布式多中心的分身标识协议,使实体(人或物)的现实身份实现了链上的身份标识,同时,给身份所有者直接拥有和控制自己身份id的能力;实现多中心、开源开放、隐私保护、可移植性、互操作性与可扩展性等目标,实现可验证的数字凭证。
79.本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。
80.本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
81.本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1