一种区块链HD私钥找回方法与流程

文档序号:24979512发布日期:2021-05-07 22:54阅读:311来源:国知局
一种区块链HD私钥找回方法与流程

本发明涉及区块链技术领域,特别涉及一种区块链hd私钥的找回方法。



背景技术:

区块链(blockchain)是一个信息技术领域的术语。从本质上讲,它是一个分布式数据库或分布式账本,存储于其中的数据或信息,具有时序性、不可篡改性、可追溯性、公开透明性、集体维护性等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的协作机制,具有广阔的应用前景。

区块链上的信息或数字资产的操作离不开私钥,依据私钥的生成方式可以分为二类:非确定性结构(non-hierarchical)与确定性结构(hierarchicaldeterministic,确定性结构或分层确定性结构)。hd结构的工作原理可以概括为:利用一个随机数经由根种子创建根密钥对(又称主密钥对或首父密钥对)与根链码,再用一个确定的、不可逆的算法,基于根密钥与根链码生成任意数量的子密钥与子链码,即,hd结构的根种子可依次叠级生成多对密钥与链码,最终产生一棵深度为d的密钥树,每一级都包含多对子密钥与子链码,其树根即为根密钥与根链码,密钥树的叶子(称之为“末点”)即为叶子密钥、末点密钥或业务密钥,密钥树的分叉(称之为“支点”或“叉点”)则为叉点密钥、支点密钥或管理密钥(依据不同应用场景,也可以作为业务密钥),而节点则为根、支点与末点的统称,所以,根密钥、支点密钥与末点密钥统称为节点密钥,至于实际上是哪种密钥,则得依节点在密钥树中所处的具体位置决定。

目前的区块链系统在功能上有且仅有业务密钥,用户经由业务密钥对区块链系统中的电子文件(含电子司法文书)或数字资产等信息进行操作。业务秘钥对包括业务私钥和业务公钥,一旦业务私钥遗失或毁损则意味着无法对区块链中的电子文件或数字资产等信息进行操作,也意味着电子文件(含电子司法文书)或数字资产等信息所有权与处分权的灭失,对用户造成无法挽回的损失。



技术实现要素:

为了解决上述问题,本发明提供一种区块链hd私钥找回方法,以解决区块链业务私钥遗失或毁损时无法找回的问题。

本发明提供一种区块链hd私钥找回方法,包括:

根据随机数经由根种子创建根密钥和根链码;

根据所述根密钥、根链码和路径标识生成密钥树,其中所述密钥树包括多对密钥和链码;

根据路径标识获取所述密钥的公钥地址;

根据所述地址和对应公钥的路径标识创建地址表;

基于所述地址表查找丢失的业务私钥对应公钥地址的路径标识;

利用根密钥、根链码以及所述路径标识计算得到所述业务私钥。

根据本发明的一个具体实施例,所述根密钥包括根私钥和根公钥,所述根据随机数经由根种子创建根密钥和根链码进一步包括:

采用hmac-sha512、hmac-sha256和hmac-sha128算法中的任一算法对根种子进行计算,得到所述根私钥和所述根链码;

基于所述根私钥,采用非对称算法计算得到所述根公钥。

根据本发明的一个具体实施例,所述非对称算法包括rsa算法,ecc算法,ecdsa算法,sm2算法和sm9算法中的任一种算法。

根据本发明的一个具体实施例,根据所述根私钥、根链码和路径标识生成密钥树包括:

采用ckd算法(childkeyderivationfunction,或称ckd函数)对所述根密钥和根链码进行计算,得到多对子密钥和子链码;

对所述子密钥和子链码重复ckd计算,得到新的多对子密钥和子链码;

将计算得到的所有密钥对、链码和路径标识生成密钥树。

根据本发明的一个具体实施例,所述根据路径标识获取所述密钥的公钥地址包括:

对所述密钥的公钥进行哈希运算,得到所述公钥的哈希值;

对所述哈希值进行可视化编码,得到可视化ascii码即所述密钥的公钥地址。

根据本发明的一个具体实施例,所述对所述哈希值进行可视化编码包括:

采用base58算法或base64算法对所述哈希值进行可视化编码。

根据本发明的一个具体实施例,所述根据所述地址和对应公钥的路径标识创建地址表包括:

获取每个公钥地址与路径标识的对应关系;

依据所述对应关系建立所述地址表。

根据本发明的一个具体实施例,所述利用根私钥、根链码以及所述路径标识计算得到所述业务私钥包括:

采用ckd算法对所述根私钥、根链码以及所述路径标识计算得到业务私钥。

本发明提出的一种区块链hd私钥找回方法,在根私钥已知的情况下,当业务密钥丢失或损毁,通过创建的地址表反向查询丢失的业务私钥的公钥地址所对应的路径标识,基于根私钥,根链码和路径标识即可计算任意节点的业务私钥,继而找回丢失的业务密钥,如此保证了电子文件(含电子司法文书)与数字资产的所有权与处分权以及相关的操作功能。

附图说明

图1是根据本发明一实施例的一种私钥找回方法流程图。

图2是根据本发明一实施例的创建根密钥和根链码方法流程图。

图3是根据本发明一实施例的生成密钥树方法流程图。

图4是根据本发明一实施例的获取公钥地址方法流程图。

图5是根据本发明一实施例的创建地址表的方法流程图。

具体实施方式

为了使本领域技术人员更加清楚地理解本发明的概念和思想,以下结合具体实施例详细描述本发明。应理解,本文给出的实施例都只是本发明可能具有的所有实施例的一部分。本领域技术人员在阅读本申请的说明书以后,有能力对下述实施例的部分或整体作出改进、改造、或替换,这些改进、改造、或替换也都包含在本发明要求保护的范围内。

在本文中,术语“第一”、“第二”和其它类似词语并不意在暗示任何顺序、数量和重要性,而是仅仅用于对不同的元件进行区分。在本文中,术语“一”、“一个”和其它类似词语并不意在表示只存在一个所述事物,而是表示有关描述仅仅针对所述事物中的一个,所述事物可能具有一个或多个。在本文中,术语“包含”、“包括”和其它类似词语意在表示逻辑上的相互关系,而不能视作表示空间结构上的关系。例如,“a包括b”意在表示在逻辑上b属于a,而不表示在空间上b位于a的内部。另外,术语“包含”、“包括”和其它类似词语的含义应视为开放性的,而非封闭性的。例如,“a包括b”意在表示b属于a,但是b不一定构成a的全部,a还可能包括c、d、e等其它元素。

在本文中,术语“实施例”、“本实施例”、“一实施例”、“一个实施例”并不表示有关描述仅仅适用于一个特定的实施例,而是表示这些描述还可能适用于另外一个或多个实施例中。本领域技术人员应理解,在本文中,任何针对某一个实施例所做的描述都可以与另外一个或多个实施例中的有关描述进行替代、组合、或者以其它方式结合,所述替代、组合、或者以其它方式结合所产生的新实施例是本领域技术人员能够容易想到的,属于本发明的保护范围。

实施例1

本发明的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施方式的实践了解到。

图1是根据本发明一实施例的一种私钥找回方法流程图,如图1所示,所述方法包括以下步骤:

s1:根据随机数经由根种子创建根密钥和根链码;

s2:根据所述根密钥、根链码和路径标识生成密钥树,其中所述密钥树包括多对密钥和链码;

s3:根据路径标识获取所述密钥的公钥地址;

s4:根据所述地址和对应公钥的路径标识创建地址表;

s5:基于所述地址表查找丢失的业务私钥对应公钥地址的路径标识;

s6:利用根私钥、根链码以及所述路径标识计算得到所述业务私钥。

具体的,图2是根据本发明一实施例的创建根密钥和根链码方法流程图,如图2所示,所述步骤s1根据随机数经由根种子创建根密钥和根链码还包括:

s11:采用hmac-sha512、hmac-sha256和hmac-sha128算法中的任一算法对根种子进行计算,得到所述根私钥和所述根链码;

s12:基于所述根私钥,采用非对称算法计算得到所述根公钥。

在本实施例中,在根种子已知的情况下,首先采用hmac-sha512算法对根种子进行哈希运算生成哈希值,哈希值的前半部分为根私钥,后半部分为根链码,再基于根私钥,对所述根私钥采用非对称加密算法进行运算得到根公钥,根私钥和根公钥构成根密钥,如此获得根密钥和根链码。其中所述非对称算法包括但不限于rsa算法,ecc算法,ecdsa算法,sm2算法和sm9算法。

具体的,图3是根据本发明一实施例的生成密钥树方法流程图,如图3所示,所述步骤s2根据所述根密钥、根链码和路径标识生成密钥树还包括:

s21:采用ckd算法对所述根密钥和根链码进行计算,得到多对子密钥和子链码。

s22:对所述多对子密钥和子链码重复ckd计算,得到新的多对子密钥和子链码。

s23:将计算得到的所有密钥对、链码和路径标识生成密钥树。

例如,由根密钥与根链码经ckd算法可扩展生成n对子密钥与子链码,其中n=2^n,n一般为32,再由子密钥和子链码重复上述算法扩展出下一级的子密钥和子链码,如此重复d次,最终产生一棵深度为d的密钥树,每一级都包含n对子密钥,其树根即为根密钥,每对密钥都对应一个路径标识,换言之,由根密钥对、根链码与路径标识即可定义并计算出唯一的子密钥对与相应的子链码。实务中,密钥树的叶子即为叶子密钥、末点密钥或业务密钥,密钥树的分叉点(包含树根),则为叉点密钥、支点密钥、或管理密钥(依据不同应用场景,也可以作为业务密钥),由管理私钥,管理链码和路径标识则可推算出该管理节点之下的业务密钥,而根私钥,根链码和路径标识则可推算出整棵树(hd结构)中的任何业务密钥与管理密钥。

具体的,图4是根据本发明一实施例的获取公钥地址方法流程图,如图4所示,所述步骤s3根据路径标识获取所述密钥的公钥地址包括:

s31:对所述密钥的公钥进行哈希运算,得到所述公钥的哈希值;

s32:对所述哈希值进行可视化编码,得到可视化ascii码,即所述密钥的公钥地址。例如采用base58算法或base64算法对所述哈希值进行可视化编码。

公钥地址(又称为“节点地址”,亦简称“地址”或“账号”)是由公钥经过哈希运算生成哈希值后的可视化ascii编码,以作为业务公钥的外在表现形式,以保护业务公钥的隐私性。虽然业务公钥在一定程度上是公开的,但仅是对利害相关人公开,而非对无关人员公开,由于哈希值是不可视的二进制,所以一般会对其进行可视化编码运算,本发明实施例采用base58或base64算法进行可视化编码,可视化编码运算是一对一可逆的,也就是说可将二进制输入值转换为可视且唯一的可视化ascii输出值,并且由输出值可以还原输入值。

具体的,图5是根据本发明一实施例的创建地址表的方法流程图,如图5所示,步骤s4根据所述地址和对应公钥的路径标识创建地址表包括:

s41:获取每个公钥地址与路径标识的对应关系;

s42:依据所述对应关系建立所述地址表。

具体的,步骤s5基于所述地址表查找丢失的业务私钥对应公钥地址的路径标识,

由于路径标识对用户而言是隐性的,用户所见到的是地址,所以用户需要通过查询地址表,从地址表中记录的地址与路径标识的对应关系反向查找对应的路径标识。

具体的,步骤s6利用根私钥、根链码以及所述路径标识计算得到所述业务私钥。本发明实施例采用hd算法对所述根私钥、根链码以及所述路径标识计算得到业务私钥。

综上所述,本发明通过创建地址表反向查询路径标识,再由根私钥与根链码以及路径标识计算出业务私钥,从而找回丢失或毁损的业务私钥,如此保证了数字资产的安全性。

以上结合具体实施方式(包括实施例和实例)详细描述了本发明的概念、原理和思想。本领域技术人员应理解,本发明的实施方式不止上文给出的这几种形式,本领域技术人员在阅读本申请文件以后,可以对上述实施方式中的步骤、方法、装置、部件做出任何可能的改进、替换和等同形式,这些改进、替换和等同形式应视为落入在本发明的范围内。本发明的保护范围仅以权利要求书为准。

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