一种生成多重签名钱包的方法及装置
技术领域
本申请涉及数字资产交易领域,尤其涉及一种生成多重签名钱包的方法及装置。
背景技术
多重签名地址是一种特定类型的数字签名,而此类型的签名将允许两个以上用户作为一组来签署文档。做一个简单的类比,设想一个拥有两把锁和两把钥匙的保险箱。一把钥匙是由Alice持有,另一把则由Bob掌管。而打开此保险箱的唯一办法则是这两个人同时提供钥匙,而当只有其中一把钥匙时,该保险箱则是打不开的。而这也就是说,存储资金的多重签名地址也只能通过使用2个或更多重签名才能访问。因此,可以为用户的数字资金创建额外的安全层。
目前的多重签名地址创建方式的缺陷主要有技术门槛较高,需要掌握一定的代码知识。同时,存在控制私钥难以分发和管理的问题。所以,如何能解决多重签名地址的易用性,成为了业内亟待解决的问题。
发明内容
本申请提供了一种生成多重签名钱包的方法及装置,以解决现有技术中,多重签名地址难以应用的问题。
第一方面,本申请提供一种生成多重签名钱包的方法,所述方法包括:
获取多重签名地址的参与人的人数;
生成发起人的公私钥对,所述公私钥对包括公钥和私钥;
接收每个参与人的公钥;
根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;
参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则将所述多重签名地址加入多重签名钱包。
结合第一方面,在第一方面的第一种可能的实现方式中,所述多重签名地址符合BIP48协议。
结合第一方面,在第一方面的第二种可能的实现方式中,每个参与人的公钥和发起人的公钥,通过哈希运算,生成多重签名地址。
结合第一方面,在第一方面的第三种可能的实现方式中,所述验证对参与人的公钥的所有权的步骤包括:
接收用户输入的密码,判断所述密码是否与本地密码相同;
如果相同,则获取参与人的私钥,根据所述参与人的私钥,生成目标公钥;
判断所述目标公钥是否与参与人的公钥相同,如果相同,则验证通过。
结合第一方面,在第一方面的第四种可能的实现方式中,所述生成发起人的公私钥对的步骤包括:根据运行椭圆曲线加密算法,生成符合BIP44协议的公私钥对。
第二方面,本申请提供一种生成多重签名钱包的装置,所述装置包括:
获取单元,用于获取多重签名地址的参与人的人数;
第一生成单元,用于生成发起人的公私钥对,所述公私钥对包括公钥和私钥;
接收单元,用于接收每个参与人的公钥;
第二生成单元,用于根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;
加入单元,用于参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则将所述多重签名地址加入多重签名钱包。
结合第二方面,在第二方面的第一种可能的实现方式中,所述多重签名地址符合BIP48协议。
结合第二方面,在第二方面的第二种可能的实现方式中,每个参与人的公钥和发起人的公钥,通过哈希运算,生成多重签名地址。
结合第二方面,在第二方面的第三种可能的实现方式中,所述验证对参与人的公钥的所有权的步骤包括:
接收用户输入的密码,判断所述密码是否与本地密码相同;
如果相同,则获取参与人的私钥,根据所述参与人的私钥,生成目标公钥;
判断所述目标公钥是否与参与人的公钥相同,如果相同,则验证通过。
结合第二方面,在第二方面的第四种可能的实现方式中,所述生成发起人的公私钥对的步骤包括:根据运行椭圆曲线加密算法,生成符合BIP44协议的公私钥对。
由以上技术方案可知,本申请的一种生成多重签名钱包的方法及装置,所述方法包括:获取多重签名地址的参与人的人数;生成发起人的公私钥对,所述公私钥对包括公钥和私钥;接收每个参与人的公钥;根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则将所述多重签名地址加入多重签名钱包。本申请实施例中,自动为参与人的终端推送多重签名地址可以降低管理难度,使多重签名地址的易用性得到极大的提升。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种生成多重签名钱包的方法的第一实施例的流程图;
图2为本申请提供的一种生成多重签名钱包的方法的第四实施例的流程图;
图3为本申请提供的一种混杂模式区块分组的生成装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
目前的多重签名地址创建方式的缺陷主要有技术门槛较高,需要掌握一定的代码知识。同时,存在控制私钥难以分发和管理的问题。所以,如何能解决多重签名地址的易用性,成为了业内亟待解决的问题。
请参阅图1,为本申请提供的一种生成多重签名钱包的方法的第一实施例,值得注意的是,本申请实施例的方法在加密货币钱包的领域应用,该方法包括如何生成多重签名地址,以及将所述多重签名地址加入到多重签名钱包的过程,具体的,所述方法包括:
S100、获取多重签名地址的参与人的人数;具体的,发起人可以通过发起人的终端设置生成多重签名地址的参与人的人数,例如,所述人数可以为两个、三个、四个等。所述终端可以为移动终端,例如手机。
S200、生成发起人的公私钥对,所述公私钥对包括公钥和私钥;需要说明的是,发起人的私钥存储在发起人的终端。
S300、接收每个参与人的公钥。具体的,参与人的公私钥对的生成和发起人的公私钥对的生成过程相同,参与人的公私钥对在参与人的终端生成,将参与人的公钥发送到发起人的终端,参与人的私钥存储在参与人的终端。
S400、根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;
需要说明的是,本申请实施例,将每个参与人的公钥和发起人的公钥,以及人数进行处理后,生成多重签名地址。所述多重签名地址可以用于数字资产的接收。通过多人的公钥生成的多重签名地址,可以保证多重签名地址对应的数字资产的安全性。多重签名地址生成完毕后,自动向所有参与人的终端发送通知信息。所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥,将发起人的公钥和所有参与人的公钥发送到每个参与人的终端,可以便于参与人记录生成该多重签名地址的公钥,也便于所有参与人和发起人相互管理,提高多重签名地址的可用性。
S500、参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则向多重签名钱包内导入所述多重签名地址。本申请实施例,利用存储在参与人终端的私钥完成验证对参与人的公钥的所有权,具体的,所述私钥存储在安全沙箱内。本申请实施例可以凭借私钥使数字资产随时在不同终端转移。还需要说明的是,所述多重签名钱包为预先存在的。
由以上实施例可知,本申请的一种生成多重签名钱包的方法的第一实施例,所述方法包括:获取多重签名地址的参与人的人数;生成发起人的公私钥对,所述公私钥对包括公钥和私钥;接收每个参与人的公钥;根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则将所述多重签名地址加入多重签名钱包。本申请实施例中,自动为参与人的终端推送多重签名地址可以降低管理难度,使多重签名地址的易用性得到极大的提升。
本申请提供的一种生成多重签名钱包的方法的第二实施例,所述多重签名地址符合BIP48协议。具体的,所述方法符合bip48规范,用户的所有操作均基于密码学原理。
本申请提供的一种生成多重签名钱包的方法的第三实施例,每个参与人的公钥和发起人的公钥,通过哈希运算,生成多重签名地址。具体的,哈希运算,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
请参阅图2,本申请提供的一种生成多重签名钱包的方法的第四实施例,所述验证对参与人的公钥的所有权的步骤包括:
S501、接收用户输入的密码,判断所述密码是否与本地密码相同;
S502、如果相同,则获取参与人的私钥,根据所述参与人的私钥,生成目标公钥;
S503、判断所述目标公钥是否与参与人的公钥相同,如果相同,则验证通过。
具体的,所述私钥存储在安全沙箱内,所述本地密码是用户设置的,用于验证用户是否可以将安全沙箱打开。如果用户输入的密码与本地密码相同,则可以打开安全沙箱,获取到安全沙箱中的参与人的私钥。在一些实施例中,利用参与人的私钥,通过椭圆曲线乘法m*G,生成对应的目标公钥,该目标公钥用于与通过发起人终端发送的通知信息中的参与人的公钥进行比较,如果目标公钥和参与人的公钥相同,则验证通过,可以将所述多重签名地址加入到多重签名钱包中;如果目标公钥和参与人的公钥不同,则验证失败,不可以将所述多重签名地址加入到多重签名钱包中。
由以上实施例可知,本申请的一种生成多重签名钱包的方法的第四实施例,一种生成多重签名钱包的方法的第三实施例,所述验证对参与人的公钥的所有权的步骤包括:接收用户输入的密码,判断所述密码是否与本地密码相同;如果相同,则获取参与人的私钥,根据所述参与人的私钥,生成目标公钥;判断所述目标公钥是否与参与人的公钥相同,如果相同,则验证通过。本申请实施例中,通过私钥验证对参与人的公钥的所有权,可以确保参与者可对多重签名地址进行操作时的安全性。
本申请提供的一种生成多重签名钱包的方法的第五实施例,所述生成发起人的公私钥对的步骤包括:根据运行椭圆曲线加密算法,生成符合BIP44协议的公私钥对。
请参阅图3,本申请提供一种生成多重签名钱包的装置,所述装置包括:
获取单元100,用于获取多重签名地址的参与人的人数;
第一生成单元200,用于生成发起人的公私钥对,所述公私钥对包括公钥和私钥;
接收单元300,用于接收每个参与人的公钥;
第二生成单元400,用于根据每个参与人的公钥和发起人的公钥,生成多重签名地址,发送通知信息到每个参与人的终端,所述通知信息包括所述多重签名地址、发起人的公钥和所有参与人的公钥;
加入单元500,用于参与人的终端接收所述通知信息,验证对参与人的公钥的所有权,验证通过,则将所述多重签名地址加入多重签名钱包。
在本申请提供得一种混杂模式区块分组的加载装置的另一实施例中,所述多重签名地址符合BIP48协议。
在本申请提供得一种混杂模式区块分组的加载装置的另一实施例中,,每个参与人的公钥和发起人的公钥,通过哈希运算,生成多重签名地址。
在本申请提供得一种混杂模式区块分组的加载装置的另一实施例中,所述验证对参与人的公钥的所有权的步骤包括:
接收用户输入的密码,判断所述密码是否与本地密码相同;
如果相同,则获取参与人的私钥,根据所述参与人的私钥,生成目标公钥;
判断所述目标公钥是否与参与人的公钥相同,如果相同,则验证通过。
在本申请提供得一种混杂模式区块分组的加载装置的另一实施例中,所述生成发起人的公私钥对的步骤包括:根据运行椭圆曲线加密算法,生成符合BIP44协议的公私钥对。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的数字资产地址转移的进程提示方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-OnlyMemory,简称:ROM)或随机存储记忆体(英文:Random Access Memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于用于身份认证的安全网络中间件及其实现方法和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。