随机源生成方法、电子设备、系统及介质与流程

文档序号:18898474发布日期:2019-10-18 21:36阅读:365来源:国知局
随机源生成方法、电子设备、系统及介质与流程

本发明涉及区块链技术领域,尤其涉及随机源生成方法、电子设备、系统及介质。



背景技术:

在区块链系统中,随机源起着非常重要的作用。随机源应该具有以下特征:足够随机、不可预测,且难以操控。足够随机是为了确保足够公平,不可预测是为了提高安全性,难以操控同样也是为了提高安全性,避免有人操控随机源往有利于自己的方向发展。在现有的系统中,大多采用区块哈希(hash)作为随机源来产生随机数。区块的hash是足够随机的,在区块生成之前也很难被其他人预测,但是采用区块hash作为随机源是有一定缺陷的:容易受操纵。特别是在非pow(proofofwork,工作量证明系统)类的系统中(例如:pos(proofofstake,权益证明)类系统、bft(byzantinefaulttolerance,拜占庭容错算法)类系统),生成一个新的区块成本很低,基本可以认为操纵者可以随意生成区块,直到生成的区块hash是有利于自己的为止。以下是随机源具体的应用场景及对应应用场景下存在的问题:

(1)用于合约产生随机数。例如:对于一个抽奖合约,在抽奖时需要一个随机数,用来决定一批参与者中的获奖者是谁。该应用场景下存在下述缺陷:

对于一个抽奖合约,区块hash决定参与者中谁中奖。如果奖项足够大,那么某个或者某些proposer(区块提议者)会参与到这个抽奖中,假设开奖是在区块n,那么proposer在生成区块n的时候,会不断进行hash的尝试,直到区块n的hash使得自己中奖为止,以实现对抽奖的操控。

(2)作为区块链共识系统的一部分。例如:在一些bft算法实现中,用轮流的方式从一批验证者节点中选出块节点,而在另一些bft算法实现时,为了提高安全性,则带入随机性,以随机的方式代替轮流的方式。该应用场景下存在下述缺陷:

在以随机源作为共识算法的一部分时,如通过随机源决定下个区块由谁来产生时,由于产生区块是有奖励的,所以生成区块n的proposer会想办法使得这个区块n的hash符合下述规则:由区块n的hash推导出来的区块n+1的proposer也是生成区块n的proposer。这样会极大地破坏公平性,如果生成区块的proposer总是同一个人,那么系统的安全性将受到威胁。

综上所述,在非pow类系统中,需要解决随机源容易受操纵的问题。



技术实现要素:

本发明的主要目的在于提供随机源生成方法、电子设备、系统及介质,旨在区块链系统中,高效地生成随机的、不可预测且难以操纵的随机源,以提高系统的安全性。

为实现上述目的,本发明提供一种随机源生成方法,所述方法包括:

获取多个验证者;

基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组;

当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上;

当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串;

计算所述目标字符串的第一数量,及所述目标哈希值的第二数量;

当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源。

优选地,所述当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上包括:

基于可验证随机函数算法验证每个所述组成员的合法性;

将合法的组成员对应的所述目标哈希值记录到所述区块链的节点上。

优选地,所述当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性包括:

在经历预设数量的区块后,接收所述组成员分别以交易的形式发送的字符串;

计算每个字符串的当前哈希值;

将所述当前哈希值与所述目标哈希值进行匹配,以验证每个字符串的有效性。

优选地,在验证每个字符串的有效性后,所述方法还包括:

当有字符串无效时,丢弃无效的字符串。

优选地,所述当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源包括:

在预设时长内,计算所述第一数量与所述第二数量的比值,当所述比值大于预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,计算所述第一数量与所述第二数量的比值,当所述比值大于所述预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源。

优选地,所述根据所述目标字符串生成随机源包括:

叠加所述目标字符串;

计算叠加后的字符串的哈希值,得到所述随机源。

为实现上述目的,本发明进一步提供一种电子设备,所述电子设备包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现所述随机源生成方法。

优选地,所述电子设备为组成内容分发网络或者区块链网络的节点。

为实现上述目的,本发明进一步提供一种随机源生成系统,所述系统包括:

获取单元,用于获取多个验证者;

选取单元,用于基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组;

记录单元,用于当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上;

验证单元,用于当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串;

计算单元,用于计算所述目标字符串的第一数量,及所述目标哈希值的第二数量;

生成单元,用于当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源。

优选地,所述记录单元具体用于:

基于可验证随机函数算法验证每个所述组成员的合法性;

将合法的组成员对应的所述目标哈希值记录到所述区块链的节点上。

优选地,所述验证单元具体用于:

在经历预设数量的区块后,接收所述组成员分别以交易的形式发送的字符串;

计算每个字符串的当前哈希值;

将所述当前哈希值与所述目标哈希值进行匹配,以验证每个字符串的有效性。

优选地,所述系统还包括:

丢弃单元,用于在验证每个字符串的有效性后,当有字符串无效时,丢弃无效的字符串。

优选地,当所述第一数量及所述第二数量满足配置条件时,所述生成单元根据所述目标字符串生成随机源包括:

在预设时长内,计算所述第一数量与所述第二数量的比值,当所述比值大于预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,计算所述第一数量与所述第二数量的比值,当所述比值大于所述预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源。

优选地,所述生成单元具体用于:

叠加所述目标字符串;

计算叠加后的字符串的哈希值,得到所述随机源。

为实现上述目的,本发明进一步提供一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行所述随机源生成方法。

综上所述,本发明能够获取多个验证者,并基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组,由于抽取部分验证者作为所述阈值组,因此有效提高了随机源生成的高效性,并且由于可验证随机函数算法的特性,也使后续生成的随机源更加具有随机性、私密性及可验证性,进一步地,当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上,以保证所述目标哈希值不可被随意篡改,当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串,并计算所述目标字符串的第一数量,及所述目标哈希值的第二数量,当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源,进而在区块链系统中,基于可验证随机函数算法生成随机的、不可预测且难以操纵的随机源,以提高系统的安全性。

附图说明

图1为本发明一实施例的流程示意图;

图2为本发明一实施例揭露的电子设备的内部结构示意图;

图3为本发明随机源生成系统的功能模块示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

主要元件符号说明

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种随机源生成方法。

参照图1,图1为本发明一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。

所述随机源生成方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,所述电子设备的硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。

所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云。

所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

在一实施例中,该方法包括:

s10,获取多个验证者。

在本发明的至少一个实施例中,所述验证者(validator)有权参与区块的验证、和/或生成区块、和/或打包区块。

s11,基于可验证随机函数算法(verifiablerandomfunction,vrf),从所述多个validator中进行选取,得到具有至少一个组成员的阈值组(committee)。

在本发明的至少一个实施例中,vrf算法具有以下几个特性:

(1)随机性。

(2)私密性。也就是说,无法推测一个validator是否被抽中。

(3)可验证性。也就是说,一个validator可以从密码学的角度可靠地向他人证明自己被抽中。

在区块链系统中,validator的池子可能很大,大的validator池子的好处是能够提高安全性。但是如果这些validator全部参与到随机源的生成中,那么整个系统的性能将会受到影响。

因此,在本实施例中,基于vrf算法进行选取,以随机并且可验证的方式从validator的大池子中挑选出部分validator来组成一个小的committee,并以小的committee参与到后面的随机源生成工作中,而不是全部的validator都参与,以提高随机源生成的高效性,并且,在validator的数量较多时,高效性尤其明显。另外,基于vrf算法自身的特性,本实施方式同时还能保证私密性,由于无法预测哪些validator被抽中,以此增加committee相互串通来操纵随机源的成本。

s12,当接收到每个所述组成员以交易(transaction)的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上。

在本发明的至少一个实施例中,所述目标哈希值是基于一个字符串计算得到的,并且计算的方式都是一致的。

具体地,由于计算哈希值的方式已经比较成熟,本发明在此不赘述。

在本发明的至少一个实施例中,当接收到每个所述组成员以交易形式发送的所述目标哈希值时,所述电子设备将所述目标哈希值记录到区块链的节点上包括:

所述电子设备基于可验证随机函数算法验证每个所述组成员的合法性,并将合法的组成员对应的所述目标哈希值记录到所述区块链的节点上。

可以理解的是,以交易形式发送所述目标哈希值的validator认为自己是committee的组成员,为了避免有冒充现象,因此,所述电子设备需要以vrf算法对其身份进行验证。

同时,通过将所述目标哈希值记录到区块链的节点上(可以是记录在区块中),能够利用区块链的自身属性,有效防止所述目标哈希值被篡改。

s13,当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串。

在本发明的至少一个实施例中,在经历预设数量的区块后,每个committee的组成员将开始通过交易的形式揭露自己的字符串。

其中,所述字符串是一种随机字符串,本发明对所述字符串的生成方式不限制。

可以理解的是,所述字符串可能是所述组成员揭露的,也可能是其他人揭露的,而在这些字符串中,只有最初用于生成所述目标哈希值的字符串才是有效的,也就是说,即便是所述组成员揭露的字符串,但如果不是用于生成所述目标哈希值的字符串,所述电子设备也确定其无效,以避免存在恶意操作现象。

在本发明的至少一个实施例中,由于所述目标哈希值也是基于字符串计算的,因此,所述电子设备可以基于所述目标哈希值验证每个字符串的有效性,具体包括:

所述电子设备在经历预设数量的区块后,接收所述组成员分别以交易的形式发送的字符串,计算每个字符串的当前哈希值,并将所述当前哈希值与所述目标哈希值进行匹配,以验证每个字符串的有效性。

具体地,当所述当前哈希值能够与所述目标哈希值匹配时,所述电子设备确定所述当前哈希值对应的字符串有效,或者当所述当前哈希值不能够与所述目标哈希值匹配时,所述电子设备确定所述当前哈希值对应的字符串无效。

在本发明的至少一个实施例中,在验证每个字符串的有效性后,所述方法还包括:

当有字符串无效时,所述电子设备丢弃无效的字符串。

通过上述实施方式,能够避免无效字符串的干扰,并进一步避免冒充现象。

在本发明的至少一个实施例中,在检测到所述目标哈希值及所述字符串后,validator分别收集所述目标哈希值及所述字符串,由于是分开收集的,因此,validator在收集所述目标哈希值的时候,并不知道对随机源会造成什么影响,只能尽可能多地收集,使得随机源的生成是难以预测和操纵的。

s14,计算所述目标字符串的第一数量,及所述目标哈希值的第二数量。

在本发明的至少一个实施例中,所述第一数量及所述第二数量决定了是否能够生成随机源。

s15,当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源。

在本发明的至少一个实施例中,所述电子设备确定所述第一数量及所述第二数量是否满足所述配置条件包括:

所述电子设备计算所述第一数量与所述第二数量的比值,并且当所述比值大于预设阈值时,所述电子设备确定所述第一数量及所述第二数量满足所述配置条件。

其中,所述预设阈值是经过大量实验后确定的,本发明不限制。

可以理解的是,所述比值能够反映出所述组成员的参与度,如果参与度过低,则没必要计算所述随机源,同时,所述配置条件的限制还能防止打包区块的proposer选择性收集字符串,并操纵随机源。

在本发明的至少一个实施例中,当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源包括:

(1)在预设时长内,计算所述第一数量与所述第二数量的比值,当所述比值大于预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源。或者,

(2)在所述预设时长后,根据所述目标字符串生成所述随机源。或者,

(3)在所述预设时长后,计算所述第一数量与所述第二数量的比值,当所述比值大于所述预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源。

本领域技术人员还可以设置其它形式的配置条件,在此不做限定。

在本发明的至少一个实施例中,所述电子设备根据所述目标字符串生成随机源包括:

所述电子设备叠加所述目标字符串,并计算叠加后的字符串的哈希值,得到所述随机源。

例如:所述目标字符串为s1、s2、s3,则所述电子设备计算s1+s2+s3,并进一步计算所述(s1+s2+s3)的哈希值,得到所述随机源。

综上所述,本发明能够获取多个验证者,并基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组,由于抽取部分验证者作为所述阈值组,因此有效提高了随机源生成的高效性,并且由于可验证随机函数算法的特性,也使后续生成的随机源更加具有随机性、私密性及可验证性,进一步地,当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上,以保证所述目标哈希值不可被随意篡改,当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串,并计算所述目标字符串的第一数量,及所述目标哈希值的第二数量,当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源,进而在区块链系统中,基于可验证随机函数算法生成随机的、不可预测且难以操纵的随机源,以提高系统的安全性。

参见图2,在本实施例中,所述电子设备1是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述电子设备1还可以是但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机(personalcomputer,pc)、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备、桌上型计算机、云端服务器等计算设备等。

所述电子设备1所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

所述电子设备1可以是组成内容分发网络或者区块链网络的节点。

所述电子设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如随机源生成程序。

本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备等。

其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如随机源生成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器13在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器12中存储的程序代码或处理数据,例如执行随机源生成程序等。

所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个随机源生成方法实施例中的步骤,例如图1所示的步骤s10、s11、s12、s13、s14、s15。

或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:获取多个验证者;基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组;当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上;当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串;计算所述目标字符串的第一数量,及所述目标哈希值的第二数量;当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源。

该总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成获取单元110、选取单元111、记录单元112、验证单元113、计算单元114、生成单元115、丢弃单元116及确定单元117。

进一步地,电子设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。

其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

图2仅示出了具有组件12-13,以及随机源生成程序的电子设备1,本领域技术人员可以理解的是,图2示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种随机源生成方法,所述处理器13可执行所述多个指令从而实现:获取多个验证者;基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组;当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上;当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串;计算所述目标字符串的第一数量,及所述目标哈希值的第二数量;当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源。

根据本发明优选实施例,所述处理器13还执行多个指令包括:

基于可验证随机函数算法验证每个所述组成员的合法性;

将合法的组成员对应的所述目标哈希值记录到所述区块链的节点上。

根据本发明优选实施例,所述处理器13还执行多个指令包括:

在经历预设数量的区块后,接收所述组成员分别以交易的形式发送的字符串;

计算每个字符串的当前哈希值;

将所述当前哈希值与所述目标哈希值进行匹配,以验证每个字符串的有效性。

根据本发明优选实施例,所述处理器13还执行多个指令包括:

当有字符串无效时,丢弃无效的字符串。

根据本发明优选实施例,所述处理器13还执行多个指令包括:

在预设时长内,计算所述第一数量与所述第二数量的比值,当所述比值大于预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,根据所述目标字符串生成所述随机源;或者

在所述预设时长后,计算所述第一数量与所述第二数量的比值,当所述比值大于所述预设阈值时,确定所述第一数量及所述第二数量满足所述配置条件,根据所述目标字符串生成所述随机源。

根据本发明优选实施例,所述处理器13还执行多个指令包括:

叠加所述目标字符串;

计算叠加后的字符串的哈希值,得到所述随机源。

参照图3,为本发明随机源生成系统的功能模块示意图。所述随机源生成系统11包括获取单元110、选取单元111、记录单元112、验证单元113、计算单元114、生成单元115、丢弃单元116及确定单元117。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。

获取单元110获取多个验证者。

在本发明的至少一个实施例中,所述验证者(validator)有权参与区块的验证、和/或生成区块、和/或打包区块。

选取单元111基于可验证随机函数算法(verifiablerandomfunction,vrf),从所述多个validator中进行选取,得到具有至少一个组成员的阈值组(committee)。

在本发明的至少一个实施例中,vrf算法具有以下几个特性:

(1)随机性。

(2)私密性。也就是说,无法推测一个validator是否被抽中。

(3)可验证性。也就是说,一个validator可以从密码学的角度可靠地向他人证明自己被抽中。

在区块链系统中,validator的池子可能很大,大的validator池子的好处是能够提高安全性。但是如果这些validator全部参与到随机源的生成中,那么整个系统的性能将会受到影响。

因此,在本实施例中,基于vrf算法进行选取,所述选取单元111以随机并且可验证的方式从validator的大池子中挑选出部分validator来组成一个小的committee,并以小的committee参与到后面的随机源生成工作中,而不是全部的validator都参与,以提高随机源生成的高效性,并且,在validator的数量较多时,高效性尤其明显。另外,基于vrf算法自身的特性,本实施方式同时还能保证私密性,由于无法预测哪些validator被抽中,以此增加committee相互串通来操纵随机源的成本。

当接收到每个所述组成员以交易(transaction)的形式发送的目标哈希值时,记录单元112将所述目标哈希值记录到区块链的节点上。

在本发明的至少一个实施例中,所述目标哈希值是基于一个字符串计算得到的,并且计算的方式都是一致的。

具体地,由于计算哈希值的方式已经比较成熟,本发明在此不赘述。

在本发明的至少一个实施例中,当接收到每个所述组成员以交易形式发送的所述目标哈希值时,所述记录单元112将所述目标哈希值记录到区块链的节点上包括:

所述记录单元112基于可验证随机函数算法验证每个所述组成员的合法性,并将合法的组成员对应的所述目标哈希值记录到所述区块链的节点上。

可以理解的是,以交易形式发送所述目标哈希值的validator认为自己是committee的组成员,为了避免有冒充现象,因此,验证单元113需要以vrf算法对其身份进行验证。

同时,通过将所述目标哈希值记录到区块链的节点上(可以是记录在区块中),能够利用区块链的自身属性,有效防止所述目标哈希值被篡改。

当接收到所述组成员分别以交易的形式发送的字符串时,所述验证单元113基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串。

在本发明的至少一个实施例中,在经历预设数量的区块后,每个committee的组成员将开始通过交易的形式揭露自己的字符串。

其中,所述字符串是一种随机字符串,本发明对所述字符串的生成方式不限制。

可以理解的是,所述字符串可能是所述组成员揭露的,也可能是其他人揭露的,而在这些字符串中,只有最初用于生成所述目标哈希值的字符串才是有效的,也就是说,即便是所述组成员揭露的字符串,但如果不是用于生成所述目标哈希值的字符串,所述验证单元113也确定其无效,以避免存在恶意操作现象。

在本发明的至少一个实施例中,由于所述目标哈希值也是基于字符串计算的,因此,所述验证单元113可以基于所述目标哈希值验证每个字符串的有效性,具体包括:

所述验证单元113在经历预设数量的区块后,接收所述组成员分别以交易的形式发送的字符串,计算每个字符串的当前哈希值,并将所述当前哈希值与所述目标哈希值进行匹配,以验证每个字符串的有效性。

具体地,当所述当前哈希值能够与所述目标哈希值匹配时,所述验证单元113确定所述当前哈希值对应的字符串有效,或者当所述当前哈希值不能够与所述目标哈希值匹配时,所述验证单元113确定所述当前哈希值对应的字符串无效。

在本发明的至少一个实施例中,在验证每个字符串的有效性后,所述方法还包括:

当有字符串无效时,丢弃单元116丢弃无效的字符串。

通过上述实施方式,能够避免无效字符串的干扰,并进一步避免冒充现象。

在本发明的至少一个实施例中,在检测到所述目标哈希值及所述字符串后,validator分别收集所述目标哈希值及所述字符串,由于是分开收集的,因此,validator在收集所述目标哈希值的时候,并不知道对随机源会造成什么影响,只能尽可能多地收集,使得随机源的生成是难以预测和操纵的。

计算单元114计算所述目标字符串的第一数量,及所述目标哈希值的第二数量。

在本发明的至少一个实施例中,所述第一数量及所述第二数量决定了是否能够生成随机源。

当所述第一数量及所述第二数量满足配置条件时,生成单元115根据所述目标字符串生成随机源。

在本发明的至少一个实施例中,确定所述第一数量及所述第二数量是否满足所述配置条件包括:

所述计算单元114计算所述第一数量与所述第二数量的比值,并且当所述比值大于预设阈值时,确定单元117确定所述第一数量及所述第二数量满足所述配置条件。

其中,所述预设阈值是经过大量实验后确定的,本发明不限制。

可以理解的是,所述比值能够反映出所述组成员的参与度,如果参与度过低,则没必要计算所述随机源,同时,所述配置条件的限制还能防止打包区块的proposer选择性收集字符串,并操纵随机源。

在本发明的至少一个实施例中,当所述第一数量及所述第二数量满足配置条件时,生成单元115根据所述目标字符串生成随机源包括:

(1)在预设时长内,所述生成单元115计算所述第一数量与所述第二数量的比值,当所述比值大于预设阈值时,所述生成单元115确定所述第一数量及所述第二数量满足所述配置条件,并根据所述目标字符串生成所述随机源。或者,

(2)在所述预设时长后,所述生成单元115根据所述目标字符串生成所述随机源。或者,

(3)在所述预设时长后,所述生成单元115计算所述第一数量与所述第二数量的比值,当所述比值大于所述预设阈值时,所述生成单元115确定所述第一数量及所述第二数量满足所述配置条件,并根据所述目标字符串生成所述随机源。

本领域技术人员还可以设置其它形式的配置条件,在此不做限定。

在上述任意条件满足时,触发生成所述随机源。

在本发明的至少一个实施例中,所述生成单元115根据所述目标字符串生成随机源包括:

所述生成单元115叠加所述目标字符串,并计算叠加后的字符串的哈希值,得到所述随机源。

例如:所述目标字符串为s1、s2、s3,则所述生成单元115计算s1+s2+s3,进一步地,所述生成单元115计算所述(s1+s2+s3)的哈希值,得到所述随机源。

综上所述,本发明能够获取多个验证者,并基于可验证随机函数算法,从所述多个验证者中进行选取,得到具有至少一个组成员的阈值组,由于抽取部分验证者作为所述阈值组,因此有效提高了随机源生成的高效性,并且由于可验证随机函数算法的特性,也使后续生成的随机源更加具有随机性、私密性及可验证性,进一步地,当接收到所述组成员分别以交易的形式发送的目标哈希值时,将所述目标哈希值记录到区块链的节点上,以保证所述目标哈希值不可被随意篡改,当接收到所述组成员分别以交易的形式发送的字符串时,基于所述目标哈希值验证每个字符串的有效性,并确定有效的字符串为目标字符串,并计算所述目标字符串的第一数量,及所述目标哈希值的第二数量,当所述第一数量及所述第二数量满足配置条件时,根据所述目标字符串生成随机源,进而在区块链系统中,基于可验证随机函数算法生成随机的、不可预测且难以操纵的随机源,以提高系统的安全性。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、移动硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态移动硬盘solidstatedisk(ssd))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1