本说明书实施例属于区块链,尤其涉及一种区块链上实现分布式密钥生成的方法、系统和共识节点。
背景技术:
1、区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
技术实现思路
1、本说明书的目的在于提供一种区块链上实现分布式密钥生成的方法、系统和共识节点,包括:
2、一种区块链上实现分布式密钥生成的方法,包括:
3、每一共识节点生成n个秘密份额,自身保留一份,并将其中n-1个秘密份额分别加密发送至其它n-1个节点;
4、每一共识节点生成自身秘密份额对应的公共验证参数并通过链上合约广播;
5、每一共识节点对接收到的每一秘密份额和对应的公共验证参数进行验证;
6、每一共识节点对每一验证通过后,将通过验证的节点编号发送至所述链上合约;
7、所述链上g合约根据各共识节点发来的交易确定节点集合;
8、每一共识节点各自基于公共验证参数及节点集合计算公钥份额,并基于本地的秘密份额和节点集合计算自身对应的私钥份额。
9、一种在上述方法基础上实现区块链上产生随机数种子的方法,包括:
10、在pbft的commit阶段,每一共识节点基于门限签名算法,采用自身私钥份额对包含本次共识中原始交易列表特有值的原始报文进行签名,生成签名份额,并将该签名份额加入到广播的commit消息中;
11、每一共识节点收集齐至少quorum数量的commit消息后,采用公钥份额对所述接收到的commit消息中的签名份额进行验证;
12、每一共识节点将通过验证的至少quorum数量的签名份额经过所述门限签名算法产生的私钥份额所对应的恢复函数得到完整签名;
13、每一共识节点基于所述完整签名得到随机数种子。
14、一种区块链上实现分布式密钥生成的方法,包括:
15、第一节点接收其它节点生成的秘密份额,并通过链上合约广播接收对应的公共验证参数;
16、第一节点对接收到的每一秘密份额和对应的公共验证参数进行验证;
17、第一节点对每一验证通过后,将通过验证的节点编号发送至所述链上合约;
18、第一节点接收所述链上合约确定的节点集合;
19、第一节点基于公共验证参数及节点集合计算公钥份额,并基于所述秘密份额和节点集合计算自身对应的私钥份额。
20、一种在上述方法基础上实现区块链上产生随机数种子的方法,包括:
21、在pbft的commit阶段,第一节点基于门限签名算法,采用自身私钥份额对包含本次共识中原始交易列表特有值的原始报文进行签名,生成签名份额,并将该签名份额加入到广播的commit消息中;
22、第一节点收集齐至少quorum数量的commit消息后,采用公钥份额对所述接收到的commit消息中的签名份额进行验证;
23、第一节点将通过验证的至少quorum数量的签名份额经过所述门限签名算法产生的私钥份额所对应的回复方法得到完整签名;
24、第一节点基于所述完整签名得到随机数种子。
25、一种区块链系统,包括若干个共识节点,其中:
26、每一共识节点生成n个秘密份额,自身保留一份,并将其中n-1个秘密份额分别加密发送至其它n-1个节点;
27、每一节点生成自身秘密份额对应的公共验证参数并通过链上合约广播;
28、每一共识节点对接收到的每一秘密份额和对应的公共验证参数进行验证;
29、每一共识节点对每一验证通过后,将通过验证的节点编号发送至所述链上合约;
30、所述链上合约根据各共识节点发来的交易确定节点集合;
31、每一共识节点各自在本地基于公共验证参数及节点集合计算公钥份额,并基于本地的秘密份额和节点集合计算自身对应的私钥份额。
32、一种区块链系统中的第一共识节点,包括:
33、第一共识节点接收其它节点生成的秘密份额,并通过链上合约广播接收对应的公共验证参数;
34、第一共识节点对接收到的每一秘密份额和对应的公共验证参数进行验证;
35、第一共识节点对每一验证通过后,将通过验证的节点编号发送至链上合约;
36、第一共识节点接收所述链上合约确定的节点集合;
37、第一共识节点基于公共验证参数及节点集合计算公钥份额,并基于所述秘密份额和节点集合计算自身对应的私钥份额。
38、本说明书提供的上述方案,在共识机制保障区块链网络整体一致性和同步的基础上,结合区块链智能合约实现分布式密钥生成,保障了分布式密钥的生成一方面是由各个参与方通过协作来生成的,另一方面生成的结果是一致和可靠的,从而摆脱了原有的区块链之外实现分布式密钥生成对网络同步的强依赖,并解决了该情况下生成结果的不可靠性问题。
1.一种区块链上实现分布式密钥生成的方法,包括:
2.如权利要求1所述的方法,所述节点生成的n个私钥份额和对应的公共验证参数,包括由构建随机椭圆曲线的同一t度多项式生成的n个值作为n个私钥份额,以及由该多项式的系数项分别经幂次运算得到的公共验证参数;所述t为(quorum-1),quorum为共识算法中的法定大多数。
3.如权利要求1所述的方法,所述每一共识节点分别将生成的n个秘密份额中的n-1个秘密份额发送至其它n-1个节点,包括采用p2p网络组件发送。
4.如权利要求1所述的方法,所述每一共识节点分别将生成的n个秘密份额中的n-1个秘密份额发送至其它n-1个节点,包括:
5.如权利要求1所述的方法,所述通过链上合约广播公共验证参数,包括:
6.如权利要求1所述的方法,每一共识节点各自还基于公共验证参数及节点集合计算总公钥。
7.一种在权利要求1-6中任一项基础上实现区块链上产生随机数种子的方法,包括:
8.如权利要求7所述的方法,所述原始交易列表的特有值包括:
9.如权利要求7所述的方法,所述原始报文还包括区块号和/或时间戳。
10.如权利要求7所述的方法,所述原始报文还包括上一区块中产生的随机数种子或区块hash。
11.如权利要求7所述的方法,还包括:
12.一种区块链上实现分布式密钥生成的方法,包括:
13.如权利要求12所述的方法,第一节点通过p2p网络组件接收所述其它节点生成的秘密份额。
14.如权利要求12所述的方法,第一节点还对接收到的其它节点生成的秘密份额进行签名验证。
15.如权利要求12所述的方法,第一节点通过链上合约广播接收对应的公共验证参数,包括:
16.如权利要求12所述的方法,每一共识节点各自还在本地基于公共验证参数及节点集合计算总公钥。
17.一种在权利要求12-16中任一项基础上实现区块链上产生随机数种子的方法,包括:
18.如权利要求17所述的方法,所述原始交易列表的特有值包括:
19.如权利要求17所述的方法,所述原始报文还包括区块号和/或时间戳。
20.如权利要求17所述的方法,所述原始报文还包括上一区块中产生的随机数种子或区块hash。
21.如权利要求17所述的方法,还包括:
22.一种区块链系统,包括若干个共识节点,其中:
23.一种区块链系统中的第一共识节点,包括: