发明内容
针对现有技术中的缺陷,本发明提出了一种区块链地址的管理方法和设备,通过将Path编码封装在Raw Address中,以当需要管理私钥时,通过反向解码以获取到Path,结合自身保存的根私钥,实现了对各地址对应的私钥进行安全有效的管理。
具体的,本发明提出了以下具体的实施例:
本发明实施例提出了一种区块链地址的管理方法,包括:
获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各Raw Address对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;
将所述Path封装编码到所述Raw Address中,生成MCL地址。
在一个具体的实施例中,所述MCL地址中还封装编码有标识信息;其中,所述标识信息用于标识所述根私钥。
在一个具体的实施例中,所述标识信息包括:所述根私钥的名称。
在一个具体的实施例中,所述MCL地址可反向编码得到所述Path和所述RawAddress;
该方法还包括:
当接收到触发请求时,对所述MCL地址进行反向解码,以获取所述Path和所述RawAddress。
在一个具体的实施例中,还包括:
基于所述根私钥与所述Path确定与所述Raw Address对应的子私钥。
本发明实施例提出了一种区块链地址的管理设备,包括:
获取模块,用于获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各Raw Address对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;
生成模块,用于将所述Path封装编码到所述Raw Address中,生成MCL地址。
在一个具体的实施例中,所述MCL地址中还封装编码有标识信息;其中,所述标识信息用于标识所述根私钥。
在一个具体的实施例中,所述标识信息包括:所述根私钥的名称。
在一个具体的实施例中,所述MCL地址可反向编码得到所述Path和所述RawAddress;
该设备还包括:
反编码模块,用于当接收到触发请求时,对所述MCL地址进行反向解码,以获取所述Path和所述Raw Address。
在一个具体的实施例中,还包括:
子私钥模块,用于基于所述根私钥与所述Path确定与所述Raw Address对应的子私钥。
以此,本发明实施例提出了一种区块链地址的管理方法和设备,其中该方法包括:获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各RawAddress对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;将所述Path封装编码到所述Raw Address中,生成MCL地址。通过将Path编码封装在RawAddress中,以当需要管理私钥时,通过反向解码以获取到Path,结合自身保存的根私钥,实现了对各地址对应的私钥进行安全有效的管理。
具体实施方式
在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开的各种实施例限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。
在下文中,可在本公开的各种实施例中使用的术语“包括”或“可包括”指示所公开的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本公开的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
在本公开的各种实施例中,表述“或”或“A或/和B中的至少一个”包括同时列出的文字的任何组合或所有组合。例如,表述“A或B”或“A或/和B中的至少一个”可包括A、可包括B或可包括A和B二者。
在本公开的各种实施例中使用的表述(诸如“第一”、“第二”等)可修饰在各种实施例中的各种组成元件,不过可不限制相应组成元件。例如,以上表述并不限制所述元件的顺序和/或重要性。以上表述仅用于将一个元件与其它元件区别开的目的。例如,第一用户装置和第二用户装置指示不同用户装置,尽管二者都是用户装置。例如,在不脱离本公开的各种实施例的范围的情况下,第一元件可被称为第二元件,同样地,第二元件也可被称为第一元件。
应注意到:如果描述将一个组成元件“连接”到另一组成元件,则可将第一组成元件直接连接到第二组成元件,并且可在第一组成元件和第二组成元件之间“连接”第三组成元件。相反地,当将一个组成元件“直接连接”到另一组成元件时,可理解为在第一组成元件和第二组成元件之间不存在第三组成元件。
在本公开的各种实施例中使用的术语“用户”可指示使用电子装置的人或使用电子装置的装置(例如,人工智能电子装置)。
在本公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本公开的各种实施例中被清楚地限定。
实施例1
本发明实施例1公开了一种区块链地址的管理方法,如图1以及图2所示,包括一下步骤:
步骤101、获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各Raw Address对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;
步骤102、将所述Path封装编码到所述Raw Address中,生成MCL地址。
现代安全体系多采用多级密钥系统。在这种系统中下级密钥的安全性由上级密钥保护,而根密钥正是这一密钥体系的源头,所以根密钥安全是该密钥体系安全的基础和保证。
具体的,在区块链中,根私钥也即Master Key,根私钥可生成大量的私钥(PrivateKey)。
而与私钥对应的还有公钥(Public Key),公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
具体的区块链中,以BIP32为例,(用于定义Hierarchical Deterministicwallet,简称"HD Wallet",是一个系统可以从单一个seed产生一树状结构储存多组keypairs,其中keypairs包括私钥和公钥)为例,是通过一个seed生成根私钥,通过根私钥及Path,生成对应的子私钥及地址。
仍以BIP32技术为例,一个典型的问题就是无法直接通过地址和根私钥得到该地址对应的私钥。因为只有知道其Path才能可能通过根私钥和Path计算出对应的私钥。但如果直接保存各地址对应的私钥,明显是不安全且难于管理的。
为此,通过将Path(路径)编码封装在Raw Address(原生地址)中,以当需要管理私钥时,通过反向解码以获取到Path,结合自身保存的根私钥,实现了对各地址对应的私钥进行安全有效的管理。
MCL地址中编码有原生地址(即Raw Address)和Path信息,亦可以解码还原。以此,用户通过一个根私钥及带有Path信息的MCL地址,可以方便管理大量原生地址。只要根私钥是安全的,这些地址即都是安全的。
进一步的,为了方便进行管理,在一个具体的实施例中,如图3所示,所述MCL地址中还可以封装编码有标识信息;其中,所述标识信息用于标识所述根私钥。
具体的,标识信息可以用于唯一标识根私钥,以此可以有效得知具体对应的是哪个根私钥。
进一步的,所述标识信息包括:所述根私钥的名称。
具体的,对于每一个根私钥,在使用时我们可以给它指定一个在当前客户端环境中独一的名字Master Key Name(注意:这个名字只是为了用户方便管理,并不是必须的,编码到MCL地址中属可选)。
MCL Address的核心在于其中包含了编码过的Raw Address及Path,亦可以反向解码出这些信息。前文说到亦可以附加编码一些额外信息,比如Master Key Name,主要便于客户端管理。每个MCL地址中就编码有Path信息,所以可以直接通过根私钥可以计算出该地址的私钥。这样用户就只需保证根私钥的安全,管理根私钥就可以方便管理其下所有地址的目的。
在一个具体的实施例中,所述MCL地址可反向编码得到所述Path和所述RawAddress;
该方法还包括:
当接收到触发请求时,对所述MCL地址进行反向解码,以获取所述Path和所述RawAddress。
进一步的,在一个具体的实施例中,该方法还包括:
基于所述根私钥与所述Path确定与所述Raw Address对应的子私钥。
每个MCL地址中就编码有Path信息,后续可以从MCL地址中进行反向解码以获取Path,以此,可以直接通过根私钥可以计算出该地址的私钥。
实施例2
为了进一步对本发明进行说明,本发明实施例2还公开了一种区块链地址的管理设备,如图4所示,包括:
获取模块201,用于获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各Raw Address对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;
生成模块202,用于将所述Path封装编码到所述Raw Address中,生成MCL地址。
在一个具体的实施例中,所述MCL地址中还封装编码有标识信息;其中,所述标识信息用于标识所述根私钥。
在一个具体的实施例中,所述标识信息包括:所述根私钥的名称。
在一个具体的实施例中,所述MCL地址可反向编码得到所述Path和所述RawAddress;
在一个具体的实施例中,如图5所示,该设备还包括:
反编码模块203,用于当接收到触发请求时,对所述MCL地址进行反向解码,以获取所述Path和所述Raw Address。
在一个具体的实施例中,如图6所示,该设备还包括:
子私钥模块204,用于基于所述根私钥与所述Path确定与所述Raw Address对应的子私钥。
以此,本发明实施例提出了一种区块链地址的管理方法和设备,其中该方法包括:获取由根私钥产生的Raw Address以及与所述Raw Address对应的Path;其中,各RawAddress对应一Path;所述Raw Address以及与所述Raw Address对应的子私钥由根私钥产生;将所述Path封装编码到所述Raw Address中,生成MCL地址。通过将Path编码封装在RawAddress中,以当需要管理私钥时,通过反向解码以获取到Path,结合自身保存的根私钥,实现了对各地址对应的私钥进行安全有效的管理。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。