(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210691631.7
(22)申请日 2022.06.17
(71)申请人 新晨科技股份有限公司
地址 100097 北京市海淀区蓝靛厂东路2号
院金源时代商务中心 2号楼B座8层
(72)发明人 胡建鑫 付正 陈冬 曾凡华
(74)专利代理 机构 北京市盛峰律师事务所
11337
专利代理师 于国富
(51)Int.Cl.
H04L 9/08(2006.01)
H04L 9/30(2006.01)
H04L 9/32(2006.01)
(54)发明名称
实现区块链上交易双方参与生成随机数的
方法、 装置以及存 储介质
(57)摘要
本发明提供了一种实现区块链上交易双方
参与生成随机数的方法、 装置以及存储介质, 本
发明在区块链系统中预置全网周知无需信任的
见证人节点, 通过合理的协议流程, 使得交易参
与者双方可以得到公平可信的随机数。 本方案利
用唯一签名技术使得见证者节点不需要被信任
就可以被使用。 利用数字承诺技术, 预置用于计
算随机数的秘密值, 使得参与者都参与了计算,
影响了最终结果。 最终, 通过区块链上的 “时间
戳”得到可用的随机数。 该时间戳不会因为生成
区块的节点不同的操作而改变。 另 一方面, 先承
诺后公开秘密值是常见的方法, 但是由于参与者
在公开阶段可能不配合导致失败。 本专利针对可
能出现的情形, 都补充了应对措施, 具有更强的
健壮性。
权利要求书3页 说明书6页 附图4页
CN 115102697 A
2022.09.23
CN 115102697 A
1.一种实现区块链上交易双方参与生成随机数的方法, 其特征在于, 基于设置有见证
者节点信息的区块链系统实现, 包括以下步骤:
S1, 见证者节点生成随机数生成请求并发送给交易双方参与者, 双方参与者根据收到
的所述随机数生成请求分别进行响应, 生成响应信息;
S2, 参与者双方分别发送生成的响应信息至所述见证者节点, 见证者节点根据收到的
响应信息收集 参与者双方 各自的承诺值;
S3, 见证者生成上链的交易信息1, 并将交易信息1发送至区块链网络, 所述交易信息1
包括见证者身份、 事 件id、 参与者双方信息、 预设区块高度值以及参与者双方的承诺值;
S4, 所述交易信息1被打包进区块并经过共识, 区块链网络节点捕获共识区块确认交易
被共识后, 见证者节点以及交易 参与者双方均可以捕获该交易信息1;
S5, 参与者双方分别生成用于公开并包含各自秘密值的交易信息2和交易信息3, 并将
所述交易信息2和所述交易信息 3发送至区块链网络;
S6, 待区块链网络中区块高度达到预设区块高度值, 见证者节点根据捕获到的秘密值
生成随机数, 并将生成的随机数分别发送给参与者双方;
S7, 参与者双方通过见证者公钥和历史信息验证生成的随机数是否合法, 同时见证者
节点将包 含步骤S6中输出 结果的交易信息4发送至区块链网络 。
2.根据权利要求1所述的实现区块链上交易双方参与生成随机数的方法, 其特 征在于,
步骤S7之后还包括: 若参与者双方验证生成的随机数不合法, 则更换见证者节点, 并重
复步骤S1 ‑S7; 若合法, 则直接采用生成的随机数。
3.根据权利要求1所述的实现区块链上交易双方参与生成 随机数的方法, 其特征在于,
所述设置有见证者节点信息的区块链系统中设置见证者节点信息过程如下:
1)生成见证者节点配置交易, 所述见证者节点配置交易包含以下核心信息: 见证者节
点公钥;
2)将所述见证者节点配置交易发送至区块链网络, 待所述见证者节点配置交易经过共
识后写入区块链系统, 即完成见证者节点信息注 册;
3)所有区块链网络交易 参与者均记录所述见证者节点信息 。
4.根据权利要求1所述的实现区块链上交易双方参与生成 随机数的方法, 其特征在于,
步骤S1中随机数生成请求包括: 见证者身份、 事 件id、 参与者双方信息和预设区块高度值;
双方参与者 根据收到的所述随机数生成请求分别进行响应, 生成响应信息, 具体为:
S11, 验证所述随机数生成请求中的信息, 包括见证者身份、 事件id、 参与 者双方信息和
预设区块高度值;
S12,生成用于 本次随机数生成的自有的秘密值;
S13, 根据所述秘密值, 使用秘密值的hash值作为 其对应的承诺值;
S14, 生成响应信息, 该信息包 含节点身份信息, 事 件id和承诺值。
5.根据权利要求4所述的实现区块链上交易双方参与生成 随机数的方法, 其特征在于,
步骤S2中还包括: 若区块链网络中区块高度达到预设区块高度值时, 所述见证者节点没有
收集到参与者双方的承诺值, 则直接退 出流程。
6.根据权利要求4所述的实现区块链上交易双方参与生成 随机数的方法, 其特征在于,
步骤S6具体包括以下步骤:权 利 要 求 书 1/3 页
2
CN 115102697 A
2S61, 准备关键字段信息, 并按如 下顺序排列: 其他商定的信息, 事件id、 参与 者1身份信
息及秘密值1、 参与者2身份信息及秘密值2、 预设区块高度值;
S62, 检验秘密值1的hash值和秘密值2的hash值是否与步骤S3中收到 的承诺值是否一
致, 若一致, 则直接进入步骤S63, 否则, 则将步骤S61 中的秘密值 1和/或秘密值2删除后再进
入步骤S6 3;
S63, 生成关键字段信息m, 见证者节点利用私钥对关键字段信息m进行数字签名, 所述
数字签名满足唯一签名属性, 具体方法如下:
a)初始化h1=Hash(m), Hash表示hash函数, 将h1作为横坐标, 根据椭圆曲线算法, 求解
纵坐标h2;
b)判断根据椭圆曲线算法是否可以通过h1求解出h2; 如果是, 则直接输出M=(h1, h2);
如果否, 则继续执行h1++, 即h1累加1, 直到根据椭圆曲线算法通过h1可以计算出h2, 输出M
=(h1, h2);
c)通过见证者节点注册公钥对应的私钥x和坐标M=(h1, h2), 则通过椭圆曲线上的倍
点乘计算得到R=x* M;
d)随机选取k∈Zq, 验证k是否等于0或者1, 如果等于, 则重新选取k; 如果不等于, 则继
续执行下一步; 其中, q是椭圆曲线基点的阶, 为椭圆曲线参数; Zq表示模q后的数;
e)计算c=Hash(G,M,xG,R,kG,kM); 其中, G是椭圆曲线上的基点, 为椭圆曲线参数; M、 R
是步骤b)和c)中计算所得的点; xG是见证者节点注册的公钥, kG和kM均是椭圆曲线上的倍
点乘运算;
f)计算s=k ‑cx mod q; q是椭圆曲线基点 的阶, mod表示除法取余数; 验证s是否等于0
或1, 若是, 则回到步骤c)和d)重新选取k, 否则直接进入下一 步;
g)输出结果: (R,c,s), R是椭圆曲线上的点, 对R做Hash运算生成随机数, c和s是后续用
于验证签名的字符串。
7.根据权利要求6所述的实现区块链上交易双方参与生成 随机数的方法, 其特征在于,
步骤S7中参与者双方通过见证者公钥和历史信息验证随机数是否合法, 具体包括以下步
骤:
(1)输入见证者节点注 册公钥xG, 以及收到的R、 c和s;
(2)计算U=c(xG)+(s G), 其中c(xG)为公钥的倍 点乘运算, sG为基点的倍 点乘运算;
(3)根据区块链上记录的关键 字段信息, 恢复关键 字段信息m ’;
(4)利用关键 字段信息m ’采用步骤a)和b)中的方法计算 点M’;
(5)计算V=cR+sM ’, 其中cR是点R的倍 点乘运算, sM’是点M’的倍点乘运算;
(6)计算Hash(G,M ’,xG,R,U,V)并验证其与c是否相等, 若相等, 则验证通过, 该随机数
合法; 否则随机数不 合法。
8.一种实现区块链上交易双方参与生成随机数的装置, 其特征在于, 该装置包括存储
器、 处理器及存储在所述存储器上并可在所述处理器上运行 的计算机程序, 所述处理器执
行所述计算机程序时, 执行权利要求1 ‑7任一所述的实现区块链上交易双方参与生成随机
数的方法。
9.一种计算机可读存储介质, 其特征在于, 该存储介质上存储有指令, 当所述指令在终
端设备上运行时, 使得所述终端设备执行权利要求1 ‑7任一所述的实现区块链上交易双方权 利 要 求 书 2/3 页
3
CN 115102697 A
3
专利 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 08:20:49上传分享