摇号方法、区块链节点和可读存储介质技术

技术编号:35584837 阅读:15 留言:0更新日期:2022-11-16 14:59
本发明专利技术实施例提供一种摇号方法、区块链节点和可读存储介质,涉及区块链技术领域,区块链系统包括n

【技术实现步骤摘要】
摇号方法、区块链节点和可读存储介质


[0001]本专利技术实施例涉及区块链
,尤其涉及一种摇号方法、区块链节点和可读存储介质。

技术介绍

[0002]现有的基于区块链的摇号方法中,随机种子仅能实现针对特定节点的公开校验,每一节点在摇号过程中的公平性难以保证,且在随机种子由一个节点产生时存在单个节点多次执行程序,生成对自己有利的随机种子的隐患;缺少公平性高、可验证性强的摇号方法。

技术实现思路

[0003]本专利技术实施例提供一种摇号方法、区块链节点和可读存储介质,以解决现有技术缺少公平性高、可验证性强的摇号方法的问题。
[0004]为了解决上述技术问题,本专利技术是这样实现的:
[0005]第一方面,本专利技术实施例提供了一种摇号方法,应用于区块链系统的第一节点,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;所述方法包括:
[0006]接收摇号请求;
[0007]根据第一预设随机算法生成一个随机数种子片段并签名,保存所述随机数种子片段至本地,并发送所述随机数种子片段给n

1个所述第二节点;
[0008]接收n

1个所述第二节点发送的随机数种子片段并保存,依据本地保存的n个随机数种子片段生成第一随机数种子;
[0009]将所述第一随机数种子发送给n

1个所述第二节点;
[0010]若接收到n

1个所述第二节点发送的第一随机数种子的确认信号,将所述第一随机数种子代入随机数生成函数,得到目标随机数。
[0011]可选的,所述接收摇号请求之后,还包括:
[0012]接收所述第一节点为主节点的确认信号;所述确认信号由客户端从所述区块链系统的多个节点中根据第二预设随机算法随机指定。
[0013]可选的,所述依据本地保存的n个随机数种子片段生成第一随机数种子包括以下任一操作:
[0014]对本地保存的n个随机数种子片段执行n

1次异或操作,生成第一随机数种子;
[0015]对本地保存的n个随机数种子片段执行n

1次求余操作,生成第一随机数种子;
[0016]对本地保存的n个随机数种子片段执行哈希计算,生成第一随机数种子。
[0017]可选的,所述将所述第一随机数种子发送给n

1个所述第二节点之后还包括:
[0018]若未接收到所述第二节点发送的第一随机数种子的确认信号,转入所述根据第一预设随机算法生成一个随机数种子片段并签名的步骤。
[0019]可选的,所述摇号请求为从包含X个数的集合中随机选取Y个数;所述X个数分配有
索引,Y为正整数,X为不小于Y的正整数;
[0020]所述得到目标随机数之后,还包括:
[0021]通过所述Y个数,对所述X个数进行索引运算,获取Y个对应元素,所述Y个对应元素为最终摇号结果。
[0022]第二方面,本专利技术实施例提供了一种摇号方法,应用于区块链系统的第二节点,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;所述方法包括:
[0023]接收摇号请求;
[0024]接收到所述第一节点发送的随机数种子片段,验证所述第一节点的数字签名;
[0025]若验证通过,根据第三预设随机算法生成一个随机数种子片段,保存所述随机数种子片段至本地,并发送所述随机数种子片段给其余n

2个所述第二节点和所述第一节点;
[0026]若全部接收到其余n

2个所述第二节点和所述第一节点发送的随机数种子片段,向所述第一节点发送随机数种子片段的收齐信号;
[0027]接收所述第一节点发送的第一随机数种子,依据本地保存的n个随机数种子片段生成第二随机数种子;若所述第二随机数种子与所述第一随机数种子相等,则向所述第一节点发送所述第一随机数种子的确认信号。
[0028]可选的,所述依据本地保存的n个随机数种子片段生成第二随机数种子包括以下任一操作:
[0029]对本地保存的n个随机数种子片段执行n

1次异或操作,生成第二随机数种子;
[0030]对本地保存的n个随机数种子片段执行n

1次求余操作,生成第二随机数种子;
[0031]对本地保存的n个随机数种子片段执行哈希计算,生成第二随机数种子。
[0032]可选的,还包括:
[0033]若所述第二随机数种子与所述第一随机数种子不相等,向所述第一节点发送第一随机数种子的非确认信号;
[0034]所述方法还包括:
[0035]若接收到所述第一节点发送的新的随机数种子片段,转入所述验证所述第一节点的数字签名的步骤。
[0036]第三方面,本专利技术实施例提供了一种区块链节点,应用于区块链系统,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;包括:
[0037]第一接收模块,用于接收摇号请求;
[0038]第一执行模块,用于根据第一预设随机算法生成一个随机数种子片段并签名,保存所述随机数种子片段至本地,并发送所述随机数种子片段给n

1个所述第二节点;
[0039]所述第一执行模块还用于接收n

1个所述第二节点发送的随机数种子片段并保存,依据本地保存的n个随机数种子片段生成第一随机数种子;
[0040]第一发送模块,用于将所述第一随机数种子发送给n

1个所述第二节点;
[0041]随机数生成模块,用于若接收到n

1个所述第二节点发送的第一随机数种子的确认信号,将所述第一随机数种子代入随机数生成函数,得到目标随机数。
[0042]第四方面,本专利技术实施例提供了一种区块链节点,应用于区块链系统,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;包括:
[0043]第二接收模块,用于接收摇号请求;
[0044]第二执行模块,用于接收到所述第一节点发送的随机数种子片段,验证所述第一节点的数字签名;
[0045]所述第二执行模块还用于若验证通过,根据第三预设随机算法生成一个随机数种子片段,保存所述随机数种子片段至本地,并发送所述随机数种子片段给其余n

2个所述第二节点和所述第一节点;
[0046]第二发送模块,用于若全部接收到其余n

2个所述第二节点和所述第一节点发送的随机数种子片段,向所述第一节点发送随机数种子片段的收齐信号;
[0047]所述第二执行模块还用于接收所述第一节点发送的第一随机数种子,依据本地保存的n个随机数种子片段生成第二随机数种子;
[0048]所述第二发送模块还本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种摇号方法,其特征在于,应用于区块链系统的第一节点,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;所述方法包括:接收摇号请求;根据第一预设随机算法生成一个随机数种子片段并签名,保存所述随机数种子片段至本地,并发送所述随机数种子片段给n

1个所述第二节点;接收n

1个所述第二节点发送的随机数种子片段并保存,依据本地保存的n个随机数种子片段生成第一随机数种子;将所述第一随机数种子发送给n

1个所述第二节点;若接收到n

1个所述第二节点发送的第一随机数种子的确认信号,将所述第一随机数种子代入随机数生成函数,得到目标随机数。2.根据权利要求1所述的摇号方法,其特征在于,所述接收摇号请求之后,还包括:接收所述第一节点为主节点的确认信号;所述确认信号由客户端从所述区块链系统的多个节点中根据第二预设随机算法随机指定。3.根据权利要求1所述的摇号方法,其特征在于,所述依据本地保存的n个随机数种子片段生成第一随机数种子包括以下任一操作:对本地保存的n个随机数种子片段执行n

1次异或操作,生成第一随机数种子;对本地保存的n个随机数种子片段执行n

1次求余操作,生成第一随机数种子;对本地保存的n个随机数种子片段执行哈希计算,生成第一随机数种子。4.根据权利要求1所述的摇号方法,其特征在于,所述将所述第一随机数种子发送给n

1个所述第二节点之后还包括:若未接收到所述第二节点发送的第一随机数种子的确认信号,转入所述根据第一预设随机算法生成一个随机数种子片段并签名的步骤。5.根据权利要求1所述的摇号方法,其特征在于,所述摇号请求为从包含X个数的集合中随机选取Y个数;所述X个数分配有索引;Y为正整数,X为不小于Y的正整数;所述得到目标随机数之后,还包括:通过所述Y个数,对所述X个数进行索引运算,获取Y个对应元素,所述Y个对应元素为最终摇号结果。6.一种摇号方法,其特征在于,应用于区块链系统的第二节点,所述区块链系统包括n

1个第二节点和1个第一节点,n为大于1的正整数;所述方法包括:接收摇号请求;接收到所述第一节点发送的随机数种子片段,验证所述第一节点的数字签名;若验证通过,根据第三预设随机算法生成一个随机数种子片段,保存所述随机数种子片段至本地,并发送所述随机数种子片段给其余n

2个所述第二节点和所述第一节点;若全部接收到其余n

2个所述第二节点和所述第一节点发送的随机数种子片段,向所述第一节点发送随机数种子片段的收齐信号;接收所述第一节点发送的第一随机数种子,依据本地保存的n个随机数种子片段生成第二随机数种子;若所述第二随机数种子与所述第一随机数种子相等,则向所述第一节点发送所述第一随机数种子的确认信号。7.根据权利要求6所述的摇号方法,其特征在于,所述依据本地保存的n个随机数种...

【专利技术属性】
技术研发人员:严春凌杨洋
申请(专利权)人:中移智行网络科技有限公司中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1