一种签名生成方法及采用该方法的区块链账户管理方法与流程

文档序号:16685590发布日期:2019-01-22 18:16阅读:141来源:国知局

本发明属于区块链技术领域,尤其是涉及一种签名生成方法及采用该方法的区块链账户管理方法。



背景技术:

区块链是一种按照时间顺序将数据区块以链条的方式组合成特定的数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账,能够安全存储简单的、有先后关系、能在系统内验证的数据。

区块链目前已经应用到金融、医疗、教育等多个领域。它将应用逻辑写入智能合约中,然后部署到区块链上。用户通过其区块链账户向智能合约发送一笔交易,触发合约中的逻辑,执行相应操作,最终完成实际业务。因此账户管理对于区块链的应用非常重要。而在有些特定场景中,需要多个主体共同管理某个账户,要求这些主体对账户拥有相同的控制权,只有满足条件数量的主体参与才能够控制账户发送合法交易,单个主体无法做到。

为了实现多主体控制账户的目标,一系列技术被提出。这些技术存在空间占有率高、通用性不强、参与主体需实时在线等缺陷。本方案是一个基于多方计算的区块链账户管理方法,对空间占有率与单主体账户等同,具有很强通用性,并且实现了账户管理的“门限化”,降低了需参与主体在线的要求。限。

当前区块链多主体账户的管理方式有两种:

多重签名

将管理账户与多个用户公钥进行绑定,需要提供所有这些公钥对应的数字签名才能够解锁账户。具体流程:

1.交易提出者构造交易,然后广播给其他管理主体

2.其他收到交易后,用自己的私钥进行签名,并广播出去

3.当一个主体收集到所有签名之后,构造成完成交易发送出去schnorr签名

基本思想是将参与者的公钥“合成”为一个总体的公钥,然后每个参与者利用自己的私钥作出签名后,再将这个签名合成为总体的签名,与总体的公钥相匹配。

多重签名的技术缺点:

1.空间占有率高

2.交易费高

3.容错性差,只要一个参与者不在线,就无法完成签名。

4.兼容性差,不支持智能合约或者多重签名脚本的区块链无法使用schnorr签名的技术缺点:

1.兼容性差,不支持ecdsa

2.所有参与者必须同时在线,容错性差。



技术实现要素:

为了弥补上述区块链账户管理上的缺陷,本发明提出一种基于多方运算的区块链账户管理方法。

其技术方案为:一种签名生成方法,所述签名生成方法基于椭圆曲线数字签名算法,所述方法步骤包括:

参与节点利用多方计算共享随机数c,pi的随机数份额为ci;

pi计算ri=cig,并广播pi;

各节点广播结束后,pi计算r=xmodp,其中

参与节点pi利用一元求逆多方计算算法计算c-1的份额ωi;

利用ωi和ti,通过乘法多方计算算法,计算得到c-1d的份额vi,其中d为锁定账户私钥,ti为锁定账户私钥份额;

计算结束后,pi计算si=ωim+vir,si即为参与者pi的签名份额,pi将其广播;

pi计算验证rj=uj1g+uj2qj,其中qj=tjg,如果验证通过,则接受签名份额sj,否则拒绝签名份额sj;

pi接受到k个以上签名份额后,利用拉格朗日插值算法还原出完整签名s,最终签名为(r,s)。

一种区块链账户管理方法,所述账户管理方法还包括锁定账户生成算法和锁定账户更新算法。

进一步的,所述方法还包括辅助算法,所述辅助算法包括乘法的多方算法,其步骤包括:

pi产生一个随机的k-1次多项式hi(x),要求满足hi(0)=αiβi,

pi计算hi(j)发送给pj,1≤j≤2k-1,

每个参与者pi收集其他参与者发送给它秘密份额,最后计算h(i)即为pi获得的秘密αβ的秘密份额。

进一步的,所述辅助算法还包括一元求逆的多方计算算法,其步骤包括:

pi选择随机数ri,并选择随机多项式gi(x)计算其秘密份额rij=gi(j)发送给参与者pj,1≤j≤n,

pj接受到所有秘密份额之后,计算

利用乘法的多方计算算法,通过α和r的秘密份额计算得到αr的秘密份额far(i),并恢复出αr,

令m=αr,即为pi掌握的α-1秘密份额。

本发明与目前的区块链账户管理方式相比,其有益效果在于,空间消耗低,与普通数字签名占用空间一致,易费低,限化,具有较高容错性,因此稳定性高,成功率高,容性高,任何采取ecdsa签名算法的账户均可使用本方案进行管理。

具体实施方式

下面将结合实施例对本发明做进一步描述

区块链账户的身份认证是通过数字签名完成,其所采取的算法为基于椭圆曲线的ecdsa签名。因此区块链账户管理的核心就是数字签名的生成方式。本方案基于拉格朗日差值多项式秘密分享算法,结合多方计算,完成了ecdsa签名算法的门限化,从而达到区块链账户多方管理的目标,提高了账户管理的可信性以及容错性。在下文中,采取本方案生成和管理的账户,统称为锁定账户。

整个方案包含三个核心算法:锁定账户生成算法、锁定账户签名算法、锁定账户密钥更新算法,以及三个辅助算法:加法的多方计算算法、乘法的多方计算算法、一元求逆的多方计算算法。

(一)辅助算法

α、β为通过拉格朗日差值多项式秘密分享算法分享的连个秘密,由α、β的秘密份额计算α+β秘密份额算法如下:

输入:秘密α、β的秘密份额αi、βi;

输出:秘密α+β的秘密份额γi;

γi=αi+βi。

α、β为通过拉格朗日差值多项式秘密分享算法分享的连个秘密,

由α、β的秘密份额计算αβ秘密份额算法如下:

输入:秘密α、β的秘密份额αi、βi,

输出:秘密αβ的秘密份额γi,

pi产生一个随机的k-1次多项式hi(x),要求满足hi(0)=αiβi,

pi计算hi(j)发送给pj,1≤j≤2k-1,

每个参与者pi收集其他参与者发送给它秘密份额,最后计算h(i)即为pi获得的秘密αβ的秘密份额。

α为通过拉格朗日差值多项式秘密分享算法分享的连个秘密,由α的秘密份额计算α-1秘密份额算法如下:

输入:秘密α的秘密份额αi,

输出:秘密α-1的秘密份额γi,

pi选择随机数ri,并选择随机多项式gi(x)计算其秘密份额rij=gi(j)发送给参与者pj,1≤j≤n,

pj接受到所有秘密份额之后,计算

利用乘法的多方计算算法,通过α和r的秘密份额计算得到αr的秘密份额far(i),并恢复出αr,

令m=αr,即为pi掌握的α-1秘密份额。

(二)核心算法

锁定账户生成算法

锁定账户生成方案是基于拉格朗日插值多项式的门限密钥管理方案的改进。它的基本思路是通过门限密钥分享,所有验证节点以去中心化的方式共同生成锁定账户,并且每一个验证节点都掌握着锁定账户私钥的一个份额。这样保证了锁定账户私钥是以私钥份额这种分布式的形式存在于整个网络中,因此才能够去中心化的管理。

所述锁定账户生成算法包括:

pi选择随机数di,将dig广播全网;

pi选择k-1次多项式:fi(x)=di+ai,1x+…+ai,k-1xk-1,将fi(j)通过安全信道传输给pj,同时将ai,1g……ai,k-1g广播全网;

pj到pi信息之后,进行验证:如果验证不通过,则拒收,请求pi重新发送信息;

待所有信息都发送完毕且验证通过后,每个用户的密钥份额为

(k,n)门限锁定账户地址为address=hash(q),其中对应私钥为这个私钥只有通过k份以上密钥份额才能够恢复。

锁定账户签名算法

在锁定账户签名生成过程中,不同于原始ecdsa签名算法,账户私钥和随机数是以多方计算的形式参与到ecdsa签名过程中;锁定账户签名验证过程与原始ecdsa签名验证算法相同。因此只介绍锁定账户签名生成过程,所述锁定账户签名算法包括:

参与节点利用多方计算共享随机数c,pi的随机数份额为ci;

pi计算ri=cig,并广播ri;

各节点广播结束后,pi计算r=xmodp,其中

参与节点pi利用一元求逆多方计算算法计算c-1的份额ωi;

利用ωi和ti,通过乘法多方计算算法,计算得到c-1d的份额vi,其中d为锁定账户私钥,ti为锁定账户私钥份额;

计算结束后,pi计算si=ωim+vir,si即为参与者pi的签名份额,pi将其广播;

pi计算验证rj=uj1g+uj2qj,其中qj=tjg,如果验证通过,则接受签名份额sj,否则拒绝签名份额sj;

pi接受到k个以上签名份额后,利用拉格朗日插值算法还原出完整签名s,最终签名为(r,s)。

锁定账户密钥更新算法

本方案中采用的基于拉格朗日插值多项式的门限密钥共享算法属于线性密钥共享机制,因此密钥共享满足同态性:密钥key1的(k,n)门限密钥份额为(a1,…,an),密钥key2的(k,n)门限密钥份额为(b1,…,bn),则(a1+b1,…,an+bn)为密钥key1+key2的(k,n)门限密钥份额。如果令key2=0,那么我们就能够得到key1的新的(k,n)门限密钥份额,所述锁定账户更新算法包括:

节点pi选择随机多项式,将0进行共享,并计算份额(fi(1),…,fi(n));

节点pi通过安全信道将fi(j)发送给pj,j=1,......,n;

所有发送结束后,节点pi收到信息(f1(i),…,fn(i)),则pi新的密钥份额为:

本发明与目前的区块链账户管理方式相比,其有益效果在于,空间消耗低,与普通数字签名占用空间一致,易费低,限化,具有较高容错性,因此稳定性高,成功率高,容性高,任何采取ecdsa签名算法的账户均可使用本方案进行管理。

上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之内。

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