随机数生成和应用方法及装置制造方法及图纸

技术编号:16472117 阅读:36 留言:0更新日期:2017-10-28 23:50
本发明专利技术提供一种随机数生成和应用方法及装置,该方法包括:根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;根据初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;根据所产生的随机数完成交易,并将交易结果存入当前节点的区块。本发明专利技术通过将各节点接收到需要产生随机数的交易请求的这一时刻的时间戳作为初始随机数,并通过区块链网络的共识机制获得共识结果作为最终生成的随机数,实现了无需向外部随机源请求随机数,即可为各节点提供同一随机数以满足业务需求。

Random number generation and application method and device

The invention provides a random number generation and application method and device, the method includes: generating random number according to the received need transaction request, time stamp will receive time as the initial random number; according to the initial random number in the current block chain network in a random number of random numbers by consensus, consensus as a result of the to complete the transaction; according to the random number generated by the transaction and the results stored in the current node block. The timestamp of the transaction request this time each node receives to generate random numbers as the initial random number, and reach a consensus through consensus mechanism block chain network as a result of the random number generated, the need to achieve a request for a random number to the external random source, can provide the same random number to meet the business requirements for each node.

【技术实现步骤摘要】
随机数生成和应用方法及装置
本申请涉及区块链
,具体涉及一种随机数生成和应用方法及装置。
技术介绍
区块链网络是一种去中心化的网络,各个节点分散于网络中,没有中心服务器,因此当网络中当业务需求一个随机数时,无法像中心化网络一样通过中心服务器产生然后同步给各个网络节点。图1为现有技术中区块链网络获取随机数方式的示意图。如图1所示,在现有方案中,区块链网络需求随机数时,会获取第三方随机源生成的随机数,区块链网络中所有节点同步请求一个第三方随机源以保证节点信息的一致。上述方案的缺陷在于,采用第三方随机源增加了数据的安全隐患,无法保证第三方随机源的安全性和稳定性。当第三方随机源遭受攻击被控制时,那么整个区块链网络的业务可能都会遭受难以预知的影响。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种无需向区块链网络外部的第三方随机源请求随机数,即可为各节点提供同一随机数以满足业务需求的随机数生成和应用方法及装置。第一方面,本专利技术提供一种随机数生成和应用方法,包括:根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;根据初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;根据所产生的随机数完成交易,并将交易结果存入当前节点的区块。第二方面,本专利技术提供一种随机数生成和应用装置,包括初始随机数生成单元、共识单元和交易单元。其中,初始随机数生成单元配置用于根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;共识单元配置用于根据初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;交易单元配置用于根据所产生的随机数完成交易,并将交易结果存入当前节点的区块。第三方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的随机数生成和应用方法。第四方面,本专利技术还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的随机数生成和应用方法。本专利技术诸多实施例提供的随机数生成和应用方法及装置通过将各节点接收到需要产生随机数的交易请求的这一时刻的时间戳作为初始随机数,并通过区块链网络的共识机制获得共识结果作为最终生成的随机数,实现了无需向外部随机源请求随机数,即可为各节点提供同一随机数以满足业务需求;本专利技术一些实施例提供的随机数生成和应用方法及装置进一步通过广播、验证共识结果和同步区块的过程进一步确保所有节点获得相同的随机数。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为现有技术中区块链网络获取随机数方式的示意图。图2为本专利技术一实施例提供的随机数生成和应用方法的流程图。图3为图2所示方法中各节点生成初始随机数的示意图。图4为图2所示方法的一种优选实施方式中步骤S40的流程图。图5为图2所示方法的一种优选实施方式的流程图。图6为本专利技术一实施例提供的随机数生成和应用装置的结构示意图。图7为图6所示装置的一种优选实施方式的结构示意图。图8为图6所示装置的一种优选实施方式的结构示意图。图9为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图2为本专利技术一实施例提供的随机数生成和应用方法的流程图。如图2所示,在本实施例中,本专利技术提供一种随机数生成和应用方法,包括:S20:根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;S40:根据初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;S60:根据所产生的随机数完成交易,并将交易结果存入当前节点的区块。具体地,在步骤S20中,接收到需要生成随机数的交易请求时,存储接收时刻的时间戳,将该时间戳作为当前节点的初始随机数;也可以在接收到所有交易请求时均存储接收时刻的时间戳,再判断该交易是否需要生成随机数,若需要,则将该时间戳作为当前节点的初始随机数。更具体地,若当前节点多次接收到同一交易请求,则可将第一次接收到该交易请求的接收时刻的时间戳作为初始随机数,也可将最后一次等不同次数接收到该交易请求的接收时刻的时间戳作为初始随机数。图3为图2所示方法中各节点生成初始随机数的示意图。如图3所示,客户端将交易请求发送给验证节点0,验证节点0接收到后将该交易请求广播到区块链网络中的验证节点1、验证节点2、验证节点3,验证节点1再将该交易请求广播至验证节点4,……,从而将该交易请求扩散发送至所有验证节点。每个验证节点i(i为序号)接收到请求的时刻的时间戳为接收时刻i,接收时刻i受网络影响则有一定的随机性。更具体地,例如当验证节点3先后接收到验证节点0和验证节点2发送的同一交易请求,则可以将接收到验证节点0发送交易请求的时间戳作为验证节点3的初始随机数,也可以将接收到验证节点2发送交易请求的时间戳作为验证节点3的初始随机数。在步骤S40中,利用区块链网络的特性,各验证节点用各自持有的初始随机数参与当前区块链网络的共识,得到共识结果,作为所产生的随机数。具体地,共识方法可采用区块链
的任意一种共识方法。在步骤S60中,根据步骤S40所产生的随机数完成步骤S20接收的交易,并将交易结果存入当前节点的区块中。更具体地,当该交易需要多个随机数时,还可根据预配置的算法,根据步骤S40所产生的随机数生成若干个所需的随机数,即可满足该交易的业务需求。上述实施例通过将各节点接收到需要产生随机数的交易请求的这一时刻的时间戳作为初始随机数,并通过区块链网络的共识机制获得共识结果作为最终生成的随机数,实现了无需向外部随机源请求随机数,即可为各节点提供同一随机数以满足业务需求。图4为图2所示方法的一种优选实施方式中步骤S40的流程图。如图4所示,在一优选实施例中,步骤S40包括:S41:在当前区块链网络中广播该初始随机数,并接收当前区块链网络中其它节点所广播的初始随机数;S43:定时根据所持有的各初始随机数进行投票筛选,并在未获得共识结果时广播当前节点筛选出的本轮投票结果并接收其它节点所广播的本轮投票结果以继续投票,直至获得共识结果。优选地,在步骤S43中,该投票筛选需要先对所持有的各初始随机数进行去重和排序等预处理,再统计各初始随机数的占比,即各初始随机数的“票数”,判断占比最大的初始随机数的占比是否超过预设阈值,例如是否超过85%,若超过,则确定该占比最大且超过85%的初始随机数为共识结果;若未超过,则将其确定为当前节点的本轮投票结果。在本实施例中,预处理操作包括去重和排序,共识结果的判断阈值配置为85%,在更多实施例中,可根据实际需求配置不同的预处理操作和不同比例的判断阈值,可实现相同技术效果。优选地,在步骤S43中,该投票筛选还包括,判断是否已进行预设轮数的投票,例如本文档来自技高网
...
随机数生成和应用方法及装置

【技术保护点】
一种随机数生成和应用方法,其特征在于,包括:根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;根据所述初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;根据所产生的随机数完成所述交易,并将交易结果存入当前节点的区块。

【技术特征摘要】
1.一种随机数生成和应用方法,其特征在于,包括:根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;根据所述初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数;根据所产生的随机数完成所述交易,并将交易结果存入当前节点的区块。2.根据权利要求1所述的方法,其特征在于,所述根据所述初始随机数参与当前区块链网络中的随机数共识,得到共识结果作为所产生的随机数包括:在当前区块链网络中广播所述初始随机数,并接收当前区块链网络中其它节点所广播的初始随机数;定时根据所持有的各初始随机数进行投票筛选,并在未获得共识结果时广播当前节点筛选出的本轮投票结果并接收其它节点所广播的本轮投票结果以继续投票,直至获得共识结果。3.根据权利要求2所述的方法,其特征在于,所述投票筛选包括:对所持有的各初始随机数进行预处理,并判断占比最大的初始随机数的占比是否超过预设阈值:是,则将所述占比最大的初始随机数确定为共识结果;否,则将所述占比最大的初始随机数确定为当前节点的本轮投票结果。4.根据权利要求3所述的方法,其特征在于,所述投票筛选还包括:判断是否已进行预设轮数的投票:是,则将本轮投票结果确定为共识结果。5.根据权利要求4所述的方法,其特征在于,通过广播当前节点的共识结果和接收当前区块链网络中其它节点广播的共识结果,验证当前节点的共识结果是否与当前区块链网络中大多数节点一致,若不一致,则通过同步区块获得生成的随机数。6.一种随机数生成和应用装置,配置在区块链网络的验证节点中,其特征在于,包括:初始随机数生成单元,配置用于根据所接收需要产生随机数的交易请求,将接收时刻的时间戳作为初始随机数;共识单元,配置用于根据所述初始随机数参与当...

【专利技术属性】
技术研发人员:李鑫陈姝卢小明
申请(专利权)人:北京众享比特科技有限公司
类型:发明
国别省市:北京,11

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

1