本文作者:kaifamei

一种基于联盟链的用户私钥生成与存储方法与流程

更新时间:2024-12-22 23:15:09 0条评论

一种基于联盟链的用户私钥生成与存储方法与流程



1.本发明涉及数字加密领域,尤其涉及一种基于联盟链的用户私钥生成与存储方法。


背景技术:



2.当前用户私钥生成后一般由用户存储或交由单独第三方机构代管。用户存储如果保存得当,安全性最高,但缺点也明显,容易掉失,一但掉失,就是致命的。第三方机构代管虽不容易掉失,但安全性不高,有被第三方机构未经用户授权冒用的风险。
3.在区块链世界里,只要保留了私钥,就能解锁账户,但是通常来说私钥是由64位字符串组成,如果我们想要创建100个账户,那我们就要记100个私钥,记录和保存成本是非常大的,况且,在记录海量的私钥的过程中,可能还会出现地址和私钥匹配不上的问题,或者记录时粗心大意写错字母的问题,等等,总而言之,出错的概率是很高的,由于这种只认私钥不认人的特点,这些小的错误很可能导致资产无法回。
4.为了解决上述问题,提出了bip39协议。bip39协议的核心是,由12或24个单词(称为助记词)来确定自己的账户,这些单词会生成很大的种子,从2的256次方选出一个数,由于随机生成的数是很大的,所以完全不用担心生成的单词会重复。
5.这些单词生成的账户是固定的,拿到这些单词就可以创建无数多的私钥、公钥和地址。我们只需要记住这些单词,就间接记住了所有区块链上的资产,就如同现实生活中的身份证一样便捷、高效。
6.在此前提下,助记词的安全就变得至关重要。助记词的保存方式比较常用的是本地保存、网络上保存,但这两种方式容易丢失以及被窃取,安全度不高。为保证助记词的安全性,现有方案是将其保存在联盟链上,因为数据一旦上链,就不会丢失,也无法被窃取,这中保存方式大大提高了助记词保存的安全性。
7.现有方案的保存方式是用户先使用自己的一串密码对助记词进行加密,之后再用对称加密二次加密,加密完成后保存在链上。但是现有技术的方法的缺陷就是一旦用户的密码丢失,助记词就永远没有办法获取。


技术实现要素:



8.鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种基于联盟链的用户私钥生成与存储方法。
9.根据本发明的一个方面,提供了一种基于联盟链的用户私钥生成与存储方法包括:用户私钥存储方法包括用户已有私钥和用户无私钥两种情况;
10.当用户已有私钥时,用户导入了私钥和助记词,并要求存储;
11.要求用户输入密码,使用所述密码加密私钥生成数据包;
12.将所述数据包上链;
13.当用户没有私钥时,生成第二助记词;
14.根据所述第二助记词推导出第二私钥;
15.要求用户输入密码,使用所述密码加密所述第二私钥生成的第二数据包;
16.将所述第二数据包上链。
17.可选的,当用户已有私钥时,存储方法还包括:如果用户没有导入所述助记词,为所述私钥生成私钥助记词;
18.采用所述私钥助记词加密私钥生成私钥数据包;
19.将所述私钥数据包上链。
20.可选的,所述助记词通过多方加密上链,具体包括:
21.对助记词交叉分割,增加了单节点破解难度;
22.交叉分割形成metadata数组,保存到组织信息项;
23.每一个组织对各自分割的单词使用其公钥pk加密,获得data数组;
24.将所述data数组保存到加密数据项;
25.对助记词信息进行json编码,因为json和结构能互相转化,然后再对json进行base64编码;
26.base64编码生成数据包;
27.数据包上链。
28.可选的,所述生成与存储方法还包括:
29.用户请求获取个人私钥;
30.返回数据包;
31.要求用户输入密码,解密后获得私钥;
32.如果用户忘记密码,请求获取助记词,返回助记词数据包。
33.本发明提供的一种基于联盟链的用户私钥生成与存储方法包括:用户私钥存储方法包括用户已有私钥和用户无私钥两种情况;当用户已有私钥时,用户导入了私钥和助记词,并要求存储;要求用户输入密码,使用所述密码加密私钥生成数据包;将所述数据包上链;当用户没有私钥时,生成第二助记词;根据所述第二助记词推导出第二私钥;要求用户输入密码,使用所述密码加密所述第二私钥生成的第二数据包;将所述第二数据包上链。因为联盟链是由彼此互信的成员组成,因此多个节点同时作恶的可能性几乎为零,既保证了助记词的安全性,也避免了用户忘记密码造成无法获取助记词的问题。
34.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1为本发明实施例提供的存储私钥的流程图;
37.图2为本发明实施例提供的获取私钥的流程图。
具体实施方式
38.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
39.本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
40.下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
41.本发明采用联盟链存储私钥的方式,存储方法不再采用用户密码对助记词进行加密,而是采用联盟链中多个节点分段加密,将十二个单词分成四部分,用四个节点分别对每部分进行加密,而获取助记词时,同样需要四个节点分别对每个部分分别解密,解密后将四个部分连接到一起才能最终得到助记词。因为联盟链是由彼此互信的成员组成,因此多个节点同时作恶的可能性几乎为零,这样即保证了助记词的安全性,也避免了用户忘记密码造成无法获取助记词的问题。
42.原理:密码加密+多方加密。
43.使用密码对私钥进行加密(对称)保存在区块链上,加密/解密过程都在用户app里进行。
44.多方成员使用各自公钥对助记词加密(非对称)保存在区块链上,加密过程在个人app里进行,但解密过程分别在成员节点进行。
45.原则:1,私钥使用密码加密(对称)上链。2,助记词多方加密(非对称)上链。3,助记词不能推导出私钥的,私钥使用助记词再一次加密(对称)上链。
46.发生助记词不能推导出私钥的有两情况:1,用户导入私钥和导入助记词。2,用户仅导入私钥,生成新的助记词。
47.本发明方的存储私钥的流程,如图1所示,用户已有私钥
48.用户通过app仅导入了私钥(和助记词,可选)要求存储。
49.要求用户输入密码,使用密码(对称)加密私钥生成数据包。
50.数据包上链。key:"pw_"+身份证id。
51.如果用户没有导入助记词,为私钥生成助记词。
52.使用助记词(对称)加密私钥生成另一个数据包
53.另一个数据包上链。key:"mn_"+身份证id。
54.a~h,助记词通过多方加密上链。
55.用户没有私钥的情况包括:
56.生成助记词;助记词推导出私钥;
57.要求用户输入密码,使用密码(对称)加密私钥生成数据包。
58.数据包上链。key:"pw_"+身份证id。
59.a~h,助记词通过多方加密上链。
60.a~h多方加密上链流程:
61.对助记词交叉分割,增加了单节点破解难度。假定有12个助记词:torch salad ozone describe craft salute nut school umbrella engine obscure assault
62.有4个组织org1 org2 org3 org4的信息,包含公钥pk。
63.组织单词序号org1torch craft umbrella1,5,9org2salad salute engine2,6,10org3ozone nut obscure3,7,11org4describe school assault4,8,12
64.交叉分割形成metadata数组,保存到组织信息项。
65.每一个组织对各自分割的单词使用其公钥pk加密。org1保存在data[0],相应的org2保存在data[1],org3保存在data[2],org4保存在data[3]。data数组保存到加密数据项。
[0066]
对助记词信息进行json编码,因为json和结构能互相转化,然后再对json进行base64编码。base64编码生成数据包。
[0067]
数据包上链。key:"mp_"+身份证id。
[0068]
私钥存储过程都是在用户手机端进行的,保证只有用户本身或所选组织全部同意才能获得私钥。
[0069]
获取私钥的流程如图2所示,用户请求获取个人私钥。key:"pw_"+身份证id。
[0070]
返回数据包。
[0071]
要求用户输入密码。解密(对称)后获得私钥。
[0072]
如果用户忘记密码,请求获取助记词,返回助记词数据包。
[0073]
解包获得base64编码。
[0074]
base64编码转换json编码再转成助记词信息结构。
[0075]
获取加密数据和组织信息。
[0076]
多方解密。解密过程不在用户手机端,而是在联盟链各自的节点。节点对解密后的数据进行安全检查,是否符合bip39协议格式的单词,以防止恶意用户传递其节点能解密的其他隐私数据。如果通过检查,再用私钥对每部分进行加密返回用户手机端。
[0077]
对解密的结果进行组装,解密后得到四个部分的助记词,再将这四个部分的助记词还原。返回完整助记词。如果助记词能推导私钥,生成私钥,结束流程。
[0078]
如果助记词不能推导私钥,使用key:"mn_"+身份证id,获取数据包。返回数据包。助记词解密(对称)获得私钥,最后结束流程。
[0079]
有益效果:因为联盟链是由彼此互信的成员组成,因此多个节点同时作恶的可能性几乎为零,既保证了助记词的安全性,也避免了用户忘记密码造成无法获取助记词的问题。
[0080]
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种基于联盟链的用户私钥生成与存储方法,其特征在于,所述生成与存储方法包括:用户私钥存储方法包括用户已有私钥和用户无私钥两种情况;当用户已有私钥时,用户导入了私钥和助记词,并要求存储;要求用户输入密码,使用所述密码加密私钥生成数据包;将所述数据包上链;当用户没有私钥时,生成第二助记词;根据所述第二助记词推导出第二私钥;要求用户输入密码,使用所述密码加密所述第二私钥生成的第二数据包;将所述第二数据包上链。2.根据权利要求1所述的一种基于联盟链的用户私钥生成与存储方法,其特征在于,当用户已有私钥时,存储方法还包括:如果用户没有导入所述助记词,为所述私钥生成私钥助记词;采用所述私钥助记词加密私钥生成私钥数据包;将所述私钥数据包上链。3.根据权利要求1所述的一种基于联盟链的用户私钥生成与存储方法,其特征在于,所述助记词通过多方加密上链,具体包括:对助记词交叉分割,增加了单节点破解难度;交叉分割形成metadata数组,保存到组织信息项;每一个组织对各自分割的单词使用其公钥pk加密,获得data数组;将所述data数组保存到加密数据项;对助记词信息进行json编码,因为json和结构能互相转化,然后再对json进行base64编码;base64编码生成数据包;数据包上链。4.根据权利要求1所述的一种基于联盟链的用户私钥生成与存储方法,其特征在于,所述生成与存储方法还包括:用户请求获取个人私钥;返回数据包;要求用户输入密码,解密后获得私钥;如果用户忘记密码,请求获取助记词,返回助记词数据包。

技术总结


本发明提供的一种基于联盟链的用户私钥生成与存储方法包括:用户私钥存储方法包括用户已有私钥和用户无私钥两种情况;当用户已有私钥时,用户导入了私钥和助记词,并要求存储;要求用户输入密码,使用所述密码加密私钥生成数据包;将所述数据包上链;当用户没有私钥时,生成第二助记词;根据所述第二助记词推导出第二私钥;要求用户输入密码,使用所述密码加密所述第二私钥生成的第二数据包;将所述第二数据包上链。因为联盟链是由彼此互信的成员组成,因此多个节点同时作恶的可能性几乎为零,既保证了助记词的安全性,也避免了用户忘记密码造成无法获取助记词的问题。码造成无法获取助记词的问题。码造成无法获取助记词的问题。


技术研发人员:

张丹丹 刘毅 李文超

受保护的技术使用者:

中农融信(北京)科技股份有限公司

技术研发日:

2022.09.08

技术公布日:

2023/1/16


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-79761-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-26 14:08:17

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论