一种多签名交易实现方法及相关装置与流程

文档序号:24621881发布日期:2021-04-09 20:27阅读:68来源:国知局
一种多签名交易实现方法及相关装置与流程

本申请涉及区块链技术领域,特别是涉及一种多签名交易实现方法及相关装置。



背景技术:

随着时代的发展,为提高多人共同持有的账户的安全性,多签名技术应运而生,需得到该类账户的持有人中预设数量的持有人的签名,才能调用该类账户执行相关操作(如动用资金),否则将无法调用该类账户。

现有的多签名技术的缺陷在于,在获取多人共同持有的账户的持有人的签名时,通常会将相应多签名交易轮流传给各持有人进行签名,直至该多签名交易上的签名数达到上述预设数量,在此前提下,该预设数量越大则对该多签名交易进行签名所耗费的时间越长,严重影响了多签名交易的执行效率。



技术实现要素:

本申请提供一种多签名交易实现方法及相关装置,可有效提高多签名交易的执行效率。

为了实现上述技术效果,本申请第一方面提供一种多签名交易实现方法,包括:

接收多签名交易请求,其中,上述多签名交易请求所请求的多签名交易与多签名账户相关,上述多签名账户对应一多签名地址,上述多签名地址基于同一区块链中的两个以上节点的公钥构建;

基于上述多签名交易请求同时触发上述两个以上节点分别对上述多签名交易进行签名并反馈带签名的交易信息;

当接收到目标数量个节点反馈的上述交易信息时,将已接收到的上述交易信息中携带的签名合并至上述多签名交易中,以得到合并签名交易。

基于本申请第一方面,在第一种可能的实现方式中,上述多签名交易实现方法还包括:

在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,将当前接收到的上述交易信息中的签名提取并存入预设的存储空间;

上述将已接收到的上述交易信息中携带的签名合并至上述多签名交易中具体为:将上述存储空间存储的与上述多签名交易相关的签名提取并合并至上述多签名交易中。

基于本申请第一方面或本申请第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在上述接收多签名交易请求后,上述多签名交易实现方法还包括:

基于上述多签名交易请求,判断上述多签名交易的重要度是否高于预设值,其中,上述多签名交易请求包括:上述多签名交易的重要度;

若上述多签名交易的重要度高于上述预设值,则基于上述多签名交易的重要度更新上述多签名地址的需签名数量,并获取上述两个以上节点的公钥,以及基于上述两个以上节点的公钥和上述需签名数量更新上述多签名地址,之后,基于当前的上述多签名地址更新上述多签名交易,并将上述需签名数量确定为目标数量。

基于本申请第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在上述判断上述多签名交易的重要度是否高于预设值后,上述多签名交易实现方法还包括:

若上述多签名交易的重要度不高于上述预设值,则将上述多签名地址当前的需签名数量确定为目标数量。

本申请第二方面提供一种多签名交易实现装置,包括:

接收单元,用于接收多签名交易请求,其中,上述多签名交易请求所请求的多签名交易与多签名账户相关,上述多签名账户对应一多签名地址,上述多签名地址基于同一区块链中的两个以上节点的公钥构建;

触发单元,用于基于上述多签名交易请求同时触发上述两个以上节点分别对上述多签名交易进行签名并反馈带签名的交易信息;

合并单元,用于当接收到目标数量个节点反馈的上述交易信息时,将已接收到的上述交易信息中携带的签名合并至上述多签名交易中,以得到合并签名交易。

基于本申请第二方面,在第一种可能的实现方式中,上述多签名交易实现装置还包括:

提取单元,用于在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,将当前接收到的上述交易信息中的签名提取并存入预设的存储空间;

上述合并单元具体用于:将上述存储空间存储的与上述多签名交易相关的签名提取并合并至上述多签名交易中。

基于本申请第二方面或本申请第二方面的第一种可能的实现方式,在第二种可能的实现方式中,上述多签名交易实现装置还包括:

确定单元,用于:

基于上述多签名交易请求,判断上述多签名交易的重要度是否高于预设值,其中,上述多签名交易请求包括:上述多签名交易的重要度;

当上述多签名交易的重要度高于上述预设值时,基于上述多签名交易的重要度更新上述多签名地址的需签名数量,并获取上述两个以上节点的公钥,以及基于上述两个以上节点的公钥和上述需签名数量更新上述多签名地址,之后,基于当前的上述多签名地址更新上述多签名交易,并将上述需签名数量确定为目标数量。

基于本申请第二方面的第二种可能的实现方式,在第三种可能的实现方式中,上述确定单元还用于:

当上述多签名交易的重要度不高于上述预设值时,将上述多签名地址当前的需签名数量确定为目标数量。

本申请第三方面提供一种多签名交易实现装置,包括存储器和处理器,上述存储器存储有计算机程序,上述处理器执行上述计算机程序时实现上述第一方面或上述第一方面的任一种可能的实现方式中提及的多签名交易实现方法的步骤。

本申请第四方面提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述第一方面或上述第一方面的任一种可能的实现方式中提及的多签名交易实现方法的步骤。

由上可见,本申请的技术方案通过接收多签名交易请求;基于多签名交易请求同时触发两个以上节点分别对多签名交易进行签名并反馈带签名的交易信息;当接收到目标数量个节点反馈的交易信息时,将已接收到的交易信息所携带的签名合并至多签名交易中,以得到合并签名交易。基于本申请的技术方案,可通过同时触发构建多签名地址的各节点分别对所述多签名交易进行签名并反馈带签名的交易信息,并在接收到目标数量个交易信息后将各接收到的签名合并至多签名交易中,避免了不同节点需轮流进行签名的状况发生,提高了多签名交易的执行效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本申请提供的多签名交易实现方法一实施例流程示意图;

图2为本申请提供的多签名交易实现装置一实施例结构示意图;

图3为本申请提供的多签名交易实现装置另一实施例结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施例的限制。

实施例一

本申请提供一种多签名交易实现方法,如图1所示,包括:

步骤101,接收多签名交易请求;

其中,上述多签名交易请求所请求的多签名交易与上述多签名账户相关,上述多签名账户对应一多签名地址,上述多签名地址基于同一区块链中的两个以上节点的公钥构建;

本申请实施例中,接收由任意节点(可以是上述两个以上节点中的一节点,也可以是与上述两个以上节点处于同一区块链的节点,还可以是与上述两个以上节点不处于同一区块链的节点)创建的多签名交易请求。

步骤102,基于上述多签名交易请求同时触发两个以上节点分别对上述多签名交易进行签名并反馈带签名的交易信息;

本申请实施例中,响应于上述多签名交易请求,可同时对上述两个以上节点进行触发,以使该两个以上节点竞争对上述多签名交易进行签名并反馈带签名的交易信息。

在一种应用场景下,可基于上述多签名交易请求创建竞争性多签名合约,即将上述多签名交易写入该竞争性多签名合约,之后通过该竞争性多签名合约同时触发上述两个以上节点对上述多签名交易进行查看,当节点查看到该竞争性多签名合约时,节点会执行对该多签名交易进行签名并反馈带签名的交易信息的动作。

步骤103,当接收到目标数量个节点反馈的上述交易信息时,将已接收到的上述交易信息中携带的签名合并至上述多签名交易中,以得到合并签名交易;所述合并签名交易中包含已接收到的交易信息中的全部签名,故任何节点(无论是上述多签名地址所对应的节点还是其它区块链的节点)均可通过合并签名交易上的签名信息核实其有效性。

本申请实施例中,当接收到目标数量个节点反馈的上述交易信息后,即可将接收到的交易信息中的签名进行合并,并将合并后的签名写入上述多签名交易中,以使该多签名交易生效,其中,上述目标数量不小于在调用上述多签名地址时所需的签名数量。

可选的,上述多签名交易实现方法还包括:

在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,将当前接收到的上述交易信息中的签名提取并存入预设的存储空间;

上述将已接收到的上述交易信息中携带的签名合并至上述多签名交易中具体为:将上述存储空间存储的与上述多签名交易相关的签名提取并合并至上述多签名交易中。

具体的,上述预设的存储空间可以是上述竞争性多签名合约的state;在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,进行一次签名提取及存储的动作,可最大程度地将各节点对多签名交易进行签名的间隙时间利用起来,以提高多签名交易的执行效率。

可选的,在上述接收多签名交易请求后,上述多签名交易实现方法还包括:

基于上述多签名交易请求,判断上述多签名交易的重要度是否高于预设值,其中,上述多签名交易请求包括:上述多签名交易的重要度;

若上述多签名交易的重要度高于上述预设值,则基于上述多签名交易的重要度更新上述多签名地址的需签名数量,并获取上述两个以上节点的公钥,以及基于上述两个以上节点的公钥和上述需签名数量更新上述多签名地址,之后,基于当前的上述多签名地址更新上述多签名交易,并将上述需签名数量确定为目标数量。

具体的,上述基于当前的上述多签名地址更新上述多签名交易可具体为:

基于当前的上述多签名地址和所述多签名交易请求,生成一新的交易;

将所述多签名交易更新为所述新的交易。

需要说明的是,上述需签名数量即为在调用多签名地址时所需的签名数量;基于上述步骤,可在上述多签名交易较为重要时(如:在上述多签名交易涉及的资金量大于预设资金量时,可在上述多签名交易请求中将多签名交易的重要度设置为一大于预设值的值),重新生成一需签名数量较原来更大的多签名地址,并将新的需签名数量确定为目标数量,以达到在更多人进行签名确认的情况下才能继续多签名交易的技术效果,提高了多签名交易的可靠性。

进一步的,在上述判断上述多签名交易的重要度是否高于预设值后,上述多签名交易实现方法还包括:

若上述多签名交易的重要度不高于上述预设值,则将上述多签名地址当前的需签名数量确定为目标数量。

由上可见,本申请的技术方案通过接收多签名交易请求;基于多签名交易请求同时触发两个以上节点分别对多签名交易进行签名并反馈带签名的交易信息;当接收到目标数量个节点反馈的交易信息时,将已接收到的交易信息所携带的签名合并至多签名交易中,以得到合并签名交易。基于本申请的技术方案,可通过同时触发构建多签名地址的各节点分别对所述多签名交易进行签名并反馈带签名的交易信息,并在接收到目标数量个交易信息后将各接收到的签名合并至多签名交易中,避免了不同节点需轮流进行签名的状况发生,提高了多签名交易的执行效率。

下面以一应用场景对本申请实施例中的多签名实现方式进行说明。在本应用场景中,涉及多签名交易的业务相关方包括a节点、b节点、c节点和d节点,其中,a节点、b节点和c节点为该多签名交易的一方,且a节点、b节点和c节点的共同资产由一多签名地址所对应的共同账户进行管理(该多签名交易需要a节点、b节点和c节点中任意两个节点的签名才能使用该共同账户进行共同资产的调用),d节点为该多签名交易的另一方,该多签名交易的双方处于两个不同的区块链中;

在上述前提下,多签名交易的完整流程可如下:

第一步,该多签名交易中的任一方创建一多签名交易请求,其中,该多签名交易请求所请求的多签名交易需要调用上述共同资产;

第二步,基于上述多签名交易请求创建竞争性多签名合约,并将上述多签名交易写入该竞争性多签名合约;

第三步,以上述多签名地址为标识将上述多签名交易写入上述竞争性多签名合约的等待签名的存储空间中;

第四步,节点a、节点b、节点c均可发现上述竞争性多签名合约的等待签名的存储空间中有一条涉及自身的多签名交易需要完成;

第五步,节点a、节点b、节点c在确认该多签名交易正常后,即可从该竞争性多签名合约的等待签名的存储空间中提取出该多签名交易以进行签名以生成含签名交易(即前述方法实施例中提及的带签名的交易信息),之后分别通过该竞争性多签名合约提交该含签名交易;

需要说明的是,由于区块链上智能合约(上述竞争性多签名合约)串行执行的特性,节点a、节点b、节点c提交含签名交易的动作必有一先后执行的顺序,在此假设执行的顺序为节点b第一提交含签名交易,节点a第二提交含签名交易,节点c最后提交含签名交易;

第六步,在上述竞争性多签名合约接收到节点b提交的含签名交易时,检测上述多签名交易是否还未完成签名;检测到未完成签名后,验证节点b提交的含签名交易中的签名是否正确;检测到签名正确后,将节点b提交的含签名交易中的签名提取并存入上述多签名交易的签名存储空间中,该签名存储空间为上述多签名交易用于存储签名的存储空间;

第七步,在上述竞争性多签名合约接收到节点a提交的含签名交易时,检测上述多签名交易是否还未完成签名;检测到未完成签名后,验证节点a提交的含签名交易中的签名是否正确;检测到签名正确后,将节点a提交的含签名交易中的签名提取并存入上述多签名交易的签名存储空间中;

第八步,在上述竞争性多签名合约接收到节点c提交的含签名交易时,检测上述多签名交易是否还未完成签名;检测到已完成签名后(此时的竞争性多签名合约已接收到两个节点的签名,已能够调用上述共同账户),丢弃节点c提交的含签名交易;

需要说明的是,在上述多签名交易完成签名后,可从上述竞争性多签名合约中提取出上述多签名交易,并将该多签名交易在d节点所在区块链上进行广播以和d节点完成该多签名交易。

实施例二

本申请提供一种多签名交易实现装置,如图2所示,多签名交易实现装置20包括:

接收单元201,用于接收多签名交易请求,其中,上述多签名交易请求所请求的多签名交易与上述多签名账户相关,上述多签名账户对应一多签名地址,上述多签名地址基于同一区块链中的两个以上节点的公钥构建;

触发单元202,用于基于上述多签名交易请求同时触发上述两个以上节点分别对上述多签名交易进行签名并反馈带签名的交易信息;

合并单元203,用于当接收到目标数量个节点反馈的上述交易信息时,将已接收到的上述交易信息中携带的签名合并至上述多签名交易中,以得到合并签名交易。

可选的,上述多签名交易实现装置还包括:

提取单元,用于在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,将当前接收到的上述交易信息中的签名提取并存入预设的存储空间;

上述合并单元具体用于:将上述存储空间存储的与上述多签名交易相关的签名提取并合并至上述多签名交易中。

可选的,上述多签名交易实现装置还包括:

确定单元,用于:

基于上述多签名交易请求,判断上述多签名交易的重要度是否高于预设值,其中,上述多签名交易请求包括:上述多签名交易的重要度;

当上述多签名交易的重要度高于上述预设值时,基于上述多签名交易的重要度更新上述多签名地址的需签名数量,并获取上述两个以上节点的公钥,以及基于上述两个以上节点的公钥和上述需签名数量更新上述多签名地址,之后,基于当前的上述多签名地址更新上述多签名交易,并将上述需签名数量确定为目标数量。

进一步的,上述确定单元还用于:

当上述多签名交易的重要度不高于上述预设值时,将上述多签名地址当前的需签名数量确定为目标数量。

由上可见,本申请的技术方案通过接收多签名交易请求;基于多签名交易请求同时触发两个以上节点分别对多签名交易进行签名并反馈带签名的交易信息;当接收到目标数量个节点反馈的交易信息时,将已接收到的交易信息所携带的签名合并至多签名交易中,以得到合并签名交易。基于本申请的技术方案,可通过同时触发构建多签名地址的各节点分别对所述多签名交易进行签名并反馈带签名的交易信息,并在接收到目标数量个交易信息后将各接收到的签名合并至多签名交易中,避免了不同节点需轮流进行签名的状况发生,提高了多签名交易的执行效率。

实施例三

本申请还提供另一种多签名交易实现装置,如图3所示,本申请实施例中的多签名交易实现装置包括:存储器301、处理器302以及存储在存储器301中并可在处理器302上运行的计算机程序,其中:存储器301用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理,存储器301和处理器302通过总线303连接。

具体的,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:

接收多签名交易请求,其中,上述多签名交易请求所请求的多签名交易与上述多签名账户相关,上述多签名账户对应一多签名地址,上述多签名地址基于同一区块链中的两个以上节点的公钥构建;

基于上述多签名交易请求同时触发上述两个以上节点分别对上述多签名交易进行签名并反馈带签名的交易信息;

当接收到目标数量个节点反馈的上述交易信息时,将已接收到的上述交易信息中携带的签名合并至上述多签名交易中,以得到合并签名交易。

假设上述为第一种可能的实施方式,则在基于上述第一种可能的实施方式的第二种可能的实施方式中,上述多签名交易实现方法还包括:

在每接收到上述交易信息且接收到的上述交易信息的个数未超过上述目标数量时,将当前接收到的上述交易信息中的签名提取并存入预设的存储空间;

上述将已接收到的上述交易信息中携带的签名合并至上述多签名交易中具体为:将上述存储空间存储的与上述多签名交易相关的签名提取并合并至上述多签名交易中。

在基于上述第一种或第二种可能的实施方式的第三种可能的实施方式中,在上述接收多签名交易请求后,上述多签名交易实现方法还包括:

基于上述多签名交易请求,判断上述多签名交易的重要度是否高于预设值,其中,上述多签名交易请求包括:上述多签名交易的重要度;

若上述多签名交易的重要度高于上述预设值,则基于上述多签名交易的重要度更新上述多签名地址的需签名数量,并获取上述两个以上节点的公钥,以及基于上述两个以上节点的公钥和上述需签名数量更新上述多签名地址,之后,基于当前的上述多签名地址更新上述多签名交易,并将上述需签名数量确定为目标数量。

在基于上述第三种可能的实施方式的第四种可能的实施方式中,在上述判断上述多签名交易的重要度是否高于预设值后,上述多签名交易实现方法还包括:

若上述多签名交易的重要度不高于上述预设值,则将上述多签名地址当前的需签名数量确定为目标数量。

由上可见,本申请的技术方案通过接收多签名交易请求;基于多签名交易请求同时触发两个以上节点分别对多签名交易进行签名并反馈带签名的交易信息;当接收到目标数量个节点反馈的交易信息时,将已接收到的交易信息所携带的签名合并至多签名交易中,以得到合并签名交易。基于本申请的技术方案,可通过同时触发构建多签名地址的各节点分别对所述多签名交易进行签名并反馈带签名的交易信息,并在接收到目标数量个交易信息后将各接收到的签名合并至多签名交易中,避免了不同节点需轮流进行签名的状况发生,提高了多签名交易的执行效率。

实施例四

本申请还提供一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。具体的,该计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式中的一种,此处不作限定;该计算机可读存储介质可以为能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质中的一种,此处不作限定。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。

由上可见,本申请的技术方案通过接收多签名交易请求;基于多签名交易请求同时触发两个以上节点分别对多签名交易进行签名并反馈带签名的交易信息;当接收到目标数量个节点反馈的交易信息时,将已接收到的交易信息所携带的签名合并至多签名交易中,以得到合并签名交易。基于本申请的技术方案,可通过同时触发构建多签名地址的各节点分别对所述多签名交易进行签名并反馈带签名的交易信息,并在接收到目标数量个交易信息后将各接收到的签名合并至多签名交易中,避免了不同节点需轮流进行签名的状况发生,提高了多签名交易的执行效率。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例所提供的方法及其细节举例可结合至实施例提供的装置和设备中,相互参照,不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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