[发明专利]一种基于秘密共享随机数共识算法的系统有效
申请号: | 201910256248.7 | 申请日: | 2019-04-01 |
公开(公告)号: | CN110198213B | 公开(公告)日: | 2020-07-03 |
发明(设计)人: | 林乐 | 申请(专利权)人: | 上海能链众合科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/32 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200120 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及基于秘密共享随机数共识算法的系统,包括随机数的生成步骤和基于随机数的共识算法;随机数的生成步骤包括区块高块的周期签名、带有中心机构的秘密分享和随机数的生成;基于随机数的共识算法包括权益证明算法、拜占庭共识和随机选择共识节点;基于秘密共享随机数共识算法的系统是在权益证明权益证明共识算法的基础上,引入了基于可验证随机函数的随机选择共识节点和拜占庭共识,保证共识算法的快速高效性和安全一致性。 | ||
搜索关键词: | 一种 基于 秘密 共享 随机数 共识 算法 系统 | ||
【主权项】:
1.一种基于秘密共享随机数共识算法的系统,其特征在于,包括随机数的生成装置和共识算法模块,所述共识算法模块用于输出基于随机数的共识算法;所述基于随机数的共识算法,包括随机选择共识节点、权益证明算法、拜占庭共识;所述随机数的生成装置,包括用于生成区块高块的周期签名的装置;带有中心机构的秘密分享计算装置;以及还可以随机生成就可产生一个唯一的、确定的、随机的、可验证的随机数seedhigh;其中所述生成区块高块的周期签名的装置,用于生成区块高块的周期签名;所述生成区块高块的周期签名的装置中的所述区块高块的周期签名基于双线性映射的密码学算法进行计算,包括密钥的生成、签名和验签;在所述区块高块的周期签名中,所述生成区块高块的周期签名的装置设定一个中心机构和n个参与者,其中n个参与者标记为,p1,p2,...,pn并且记P={P1,P2...Pn},P为参与者集合;所述中心机构生成组公私钥对,其中包括组公钥pk和组私钥sk,sk∈[1,p‑1],其中n,p为整数,通过组私钥sk,来计算组公钥:pk=gsk;记e:G×G→G',e为一个非退化的双线性映射,G,G'为素数p阶乘法群,g是群G的生成元;每个参与者都使用区块高块的周期签名算法和自己的私钥对所述消息m签名,输出分片签名σi,并将所述分片签名σi广播,参与者Pi产生的所述分片签名σi:
参与者Pi的公私钥对:ski=f(i)mod p,pki=gf(i)mod p;其中通过输入为组公钥pk、所述消息m和所有成员的子集S:S∈P,使得|S|=t,t为整数,以及分片签名σi,输出为阈值组签名σ;其中所述消息m是当前区块高度high之前的一个区块高度的seedhigh和当前区块高度high之前的一个区块高度的阈值组签名的拼结;阈值组签名由S中参与者的分片签名σi和S中参与者的索引生成阈值组签名,S中参与者的索引分别设定为l1,l2,...,lt;参与者Pi搜集其它参与者广播的签名σ1,σ2,...,σn,并用自己的对应的公钥pki验签,e(σi,g)=e(h(m),pki);参与者Pi对所述消息m签名生成分片签名σi:
i=0,...,t‑1,并将签名广播;中心机构收集参与者的签名用于产生所述消息,如果n个参与者中有t个参与者发送了有效签名,这t个参与者的集合记为S,t为整数;则中心机构根据分片签名和索引通过公式一生成阈值组签名,j=0,...,t‑1:
并将阈值组签名广播;各参与者可验证阈值组签名:e(σ,g)=e(h(m),pk),如果相等则阈值组签名验证通过;阈值组签名生成后,通过hash算法生成当前区块高度high的随机数seedhigh=h(σhigh),h(σhigh)就是对当前区块高度high的阈值组签名σhigh进行hash算法,seedhigh是由可验证的阈值组签名唯一确定的;任何参与者通过组公钥对阈值组签名进行验证,再用hash算法校验seedhigh的正确性,seedhigh依赖于当前区块高度之前的一个区块高度的seedhigh‑1和当前区块高度high之前的一个区块高度的阈值组签名;这样可以在一个参与者足够多的网络中生成几乎不可攻破、不可操纵、不可预测的随机数seedhigh;所述中心机构随机选择多项式系数,构造多项式f(x)=a0+a1x+...+at‑1xt‑1,其中x为从1到n的整数,用于构造函数;其中a0=sk,a1...at‑1分别是随机生成出来的整数,用于作为所述多项式的系数,然后对多项式的系数做出承诺:
其中A0=pk,并将A0,A1,...,At‑1广播;中心机构计算:f(i)modp,并将f(i)秘密地发送给参与者Pi;参与者Pi接收到f(i)之后,验证公式二是否满足:
如果满足则接受,确保f(i)是由多项式计算出来的,其中j也为整数,取值范围为整数,Aj是其中一个要验证的多项式系数;所述随机数的生成装置中的带有中心机构的秘密分享计算装置中的所述带有中心机构的秘密分享是带有一个中心机构的秘密分享步骤,所述带有中心机构的秘密分享计算装置,用于处理一个中心机构向n个参与者分享一个秘密s,通过执行秘密分享协议,最终只要参与者数量达到一个阈值t的秘密分享计算步骤,其中s为秘密的缩写,用于在系统里作为秘密的编号,就能计算出中心机构所分享的秘密,结合所述区块高块的周期签名,可以实现秘密分享中由t'个参与者提供各自的分片签名,恢复出一个阈值组签名;所述秘密分享协议具体步骤为:每个参与者Pi'在[1,p‑1]中随机选择一个最高次数为t‑1并构造多项式fi'(y):fi'(y)=ai'0+ai'1y+...+ai'(t‑1)yt‑1,其中y为从1到n的整数,用于构造函数;并且其中:(ai'0,ai'1,...,ai'(t‑1))∈[1,p‑1]t‑1,均为随机生成;参与者Pi'对自己选择的多项式系数做承诺:
并广播承诺的值;另外定义si'j'=fi'(j')modp;参与者Pi'计算分享,所述分享由sij决定;并将计算出的所述分享秘密地发送给参与者Pj';被分享的参与者Pj'中的成员标记为j',成员j搜集其它成员发送给他的s1j',s2j',...,snj',此过程设定为index,即所述index:j'=(s1j',s2j',...,sj'j',...,snj')=(f1(j'),f2(j'),...,fj(j'),...,fn(j'))并验证
其中整数k,i',j'∈[0,t‑1];最终定义Si'j'share为所有正确执行秘密分享协议的参与者集合;秘密分享组公钥为:pkj'=Πi'∈PAi'0mod p;每个参与者Pj的秘密分享私钥为:
每个被分享的参与者Pj'的对应公钥为:
任何一个参与者都无法独立计算出秘密分享组私钥;所述基于随机数的共识算法包括权益证明算法、拜占庭共识和随机选择共识节点;共识的一致性为所有好节点的决策值必定相同;共识的可终止性表示所有好节点在有限的时间内结束决策过程;共识的有效性为选择出的决策值必须是某个节点的输入值;一个可能呈现任意行为的节点被称为拜占庭节点,任意行为意味着所有能想象到的事情;拜占庭行为也包含串谋,所有的拜占庭节点被同一个攻击者控制,即所有的非拜占庭节点的节点为好点;在一个存在拜占庭节点的系统中达成所述的共识称为拜占庭协定;拜占庭节点必须同时控制51%以上的算力和51%以上的权益,才能成功实施51%攻击;所述权益证明算法无须通过消耗算力获得节点记账权;所述权益证明算法的记账节点需要锁定一定量公链通证,记账节点提议和投票区块生成,其投票权重取决于其持有公链通证数量;即每个网络节点链接到一个地址,这个地址所持有公链通证越多,它获得生成下一个区块的概率就越大;所述拜占庭共识的目的是在不信任网络中的节点间建立信任;所述拜占庭共识可以在不超过1/3的错误节点的情况下完成共识;在根据节点持公链通证数量选择若干个储备共识节点(随时间和持公链通证数量动态调整名单)后,随机选择其中一部分储备节点作为共识节点即为所述随机选择共识节点。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海能链众合科技有限公司,未经上海能链众合科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910256248.7/,转载请声明来源钻瓜专利网。