CN111600709B - 可验证随机数的生成方法和装置 - Google Patents

可验证随机数的生成方法和装置 Download PDF

Info

Publication number
CN111600709B
CN111600709B CN202010454867.XA CN202010454867A CN111600709B CN 111600709 B CN111600709 B CN 111600709B CN 202010454867 A CN202010454867 A CN 202010454867A CN 111600709 B CN111600709 B CN 111600709B
Authority
CN
China
Prior art keywords
random number
result
generation process
number generation
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010454867.XA
Other languages
English (en)
Other versions
CN111600709A (zh
Inventor
雷虹
任谦
刘浛
程一帆
包子健
燕云
赵品行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oxford Hainan Blockchain Research Institute Co ltd
Original Assignee
Oxford Hainan Blockchain Research Institute Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oxford Hainan Blockchain Research Institute Co ltd filed Critical Oxford Hainan Blockchain Research Institute Co ltd
Priority to CN202010454867.XA priority Critical patent/CN111600709B/zh
Publication of CN111600709A publication Critical patent/CN111600709A/zh
Application granted granted Critical
Publication of CN111600709B publication Critical patent/CN111600709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种可验证随机数的生成方法和装置,应用于区块链系统中的任意一个节点,在获得一次随机数生成过程的随机数种子池之后,向区块链系统中的计算节点提供随机数种子池和时间参数,使各个计算节点利用可验证延迟函数在时间参数所指定的时刻之后计算得到随机数结果,然后向目标客户端反馈随机数结果。可验证延迟函数能够确保通过该函数获得的计算结果无法在指定的时刻之前被预测得到,因此,利用可验证延迟函数产生随机数结果,可以防止攻击者通过预测随机数结果的方式控制随机数生成过程,从而确保随机数生成过程的安全性。

Description

可验证随机数的生成方法和装置
技术领域
本发明涉及信息安全技术领域,特别涉及一种可验证随机数的生成方法和装置。
背景技术
在加密通信、线上抽签和区块链节点等多个领域,随机数的生成都处于至关重要的地位。在这些需要应用随机数的领域中,随机数生成过程的随机性和公平性会直接影响参与该领域活动的用户体验。例如,在权益证明(Proof-of-Stake,PoS)、委托权益证明(Delegated Proof-of-Stake,DPoS)等共识协议中,随机数用于节点选举,决定了每个参与用户的记账权和收益权;在支持智能合约的区块链平台中,基于智能合约的客户端则通过生成随机数来保障服务规则的公平,直接决定用户收益。因此,包括计算机黑客,不诚信用户(指不按规则参与相关活动的用户)在内的攻击者常常会通过攻击随机数的生成过程来破坏上述领域的活动。
目前的随机数生成过程一般依赖于参与活动的多个用户提供随机数种子作为输入,然后随机数生成系统基于所有用户的随机数种子计算得到随机数。对这一过程的一种攻击方式是,攻击者在生成随机数种子之后,根据自身生成的随机数种子和其他诚信用户提交(指依据规则正常参与相关活动的用户)的随机数种子预测本次生成的随机数的数值,若预测的数值不利于自身,则延迟向系统提交自身的随机数种子,从而改变输出的数值,通过这种方式控制随机数生成的结果倾向于对自身有利。
综上所述,在以上依赖于随机数生成过程的领域,如何防止攻击者对随机数生成过程的结果进行操作,是一个亟需解决的问题。
发明内容
基于上述现有技术的问题,本申请提供一种可验证随机数的生成方法和装置,以提供一种可以防止对随机数生成过程控制的可验证随机数生成方案。
本申请提供一种可验证随机数的生成方法,应用于区块链系统中的任意一个节点,所述生成方法包括:
获取每一个目标客户端提交的随机数种子;其中,每个所述目标客户端提交的随机数种子均记录于所述区块链系统的区块链中,所有所述随机数种子的集合作为一次随机数生成过程的随机数种子池,所述目标客户端指代参与所述一次随机数生成过程的客户端;
生成所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址,并将所述时间参数,所述安全参数,所述计算结果接收地址和所述随机数种子池组合得到随机数生成请求;
向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,以使得每一个接收所述随机数生成请求的所述计算节点均通过可验证延迟函数计算所述随机数种子池,得到所述一次随机数生成过程的随机数结果;其中,每一个所述计算节点得到所述随机数结果的时刻均不早于所述时间参数所指定的时刻;
获得所述任意一个所述计算节点反馈的所述随机数结果,并将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
可选的,所述获得所述任意一个所述计算节点反馈的所述随机数结果之后,还包括:
将所述时间参数,所述一次随机数生成过程的随机数结果和随机数种子池记录在所述一次随机数生成过程对应的区块内;
在所述区块链系统的区块链上接入所述一次随机数生成过程对应的区块。
可选的,所述将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端之前,还包括:
基于所述可验证延迟函数对应的验证算法,检验所述随机数结果是否为基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果;
若所述随机数结果不是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则丢弃所述随机数结果,并对反馈所述随机数结果的计算节点执行预设的惩罚操作;
其中,若所述随机数结果是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则将所述随机数结果反馈给每一个所述目标客户端。
可选的,所述将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端之前,还包括:
检测反馈所述随机数结果的所述计算节点的地址是否为预先指定的合法反馈地址;其中,所述合法反馈地址通过所述计算节点预先向所述第二检测单元注册的方式确定;
若反馈所述随机数结果的所述计算节点的地址不是所述合法反馈地址,丢弃所述随机数结果;
其中,若反馈所述随机数结果的所述计算节点的地址是所述合法反馈地址,将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
可选的,所述生成所述一次随机数生成过程的时间参数和安全参数,并将所述时间参数、所述安全参数和所述随机数种子池组合得到随机数生成请求,包括:
调用第一智能合约以进行初始化操作,得到所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址;其中,所述第一智能合约用于为每一个所述目标客户端提供上传随机数种子的接口;
通过第二智能合约的接口将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池传递于所述第三智能;其中,所述第二智能合约用于记录所述第三智能合约的合约地址;
通过所述第三智能合约预设的数据格式,将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池封装为随机数生成请求;
其中,所述向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,包括:
通过所述第三智能合约向所述区块链系统中预设的多个计算节点广播所述随机数生成请求。
本申请还提供一种可验证随机数的生成装置,应用于区块链系统中的任意一个节点,所述生成装置包括:
获取单元,用于获取每一个目标客户端提交的随机数种子;其中,每个所述目标客户端提交的随机数种子均记录于所述区块链系统的区块链中,所有所述随机数种子的集合作为一次随机数生成过程的随机数种子池,所述目标客户端指代参与所述一次随机数生成过程的客户端;
生成单元,用于生成所述一次随机数生成过程的时间参数,安全参数计算结果接收地址,并将所述时间参数,所述安全参数,所述计算结果接收地址和所述随机数种子池组合得到随机数生成请求;
广播单元,用于向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,以使得每一个接收所述随机数生成请求的所述计算节点均通过可验证延迟函数计算所述随机数种子池,得到所述一次随机数生成过程的随机数结果;其中,每一个所述计算节点得到随机数结果的时刻均不早于所述时间参数所指定的时刻;
所述获取单元,用于获得所述任意一个所述计算节点反馈的所述随机数结果;
反馈单元,用于将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
可选的,所述生成装置还包括:
记录单元,用于将所述时间参数,所述一次随机数生成过程的随机数结果和随机数种子池记录在所述一次随机数生成过程对应的区块内,并用于在所述区块链系统的区块链上接入所述一次随机数生成过程对应的区块。
可选的,所述生成装置还包括:
第一检测单元,用于基于所述可验证延迟函数对应的验证算法,检验所述随机数结果是否为基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果;
若所述随机数结果不是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则丢弃所述随机数结果,并对反馈所述随机数结果的计算节点执行预设的惩罚操作;
其中,所述反馈单元将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端时,具体用于:
若所述随机数结果是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则将所述随机数结果反馈给每一个所述目标客户端。
可选的,所述生成装置还包括:
第二检测单元,用于检测反馈所述随机数结果的所述计算节点的地址是否为预先指定的合法反馈地址;其中,所述合法反馈地址通过所述计算节点预先向所述第二检测单元注册的方式确定;
若反馈所述随机数结果的所述计算节点的地址不是所述合法反馈地址,丢弃所述随机数结果;
其中,所述反馈单元将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端时,具体用于:
若反馈所述随机数结果的所述计算节点的地址是所述合法反馈地址,将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
可选的,所述生成单元生成所述一次随机数生成过程的时间参数和安全参数,并将所述时间参数、所述安全参数和所述随机数种子池组合得到随机数生成请求时具体用于:
调用第一智能合约以进行初始化操作,得到所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址;其中,所述第一智能合约用于为每一个所述目标客户端提供上传随机数种子的接口;
通过第二智能合约的接口将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池传递于所述第三智能;其中,所述第二智能合约用于记录所述第三智能合约的合约地址;
通过所述第三智能合约预设的数据格式,将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池封装为随机数生成请求;
其中,所述向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,包括:
通过所述第三智能合约向所述区块链系统中预设的多个计算节点广播所述随机数生成请求。
本申请提供一种可验证随机数的生成方法和装置,应用于区块链系统中的任意一个节点,包括:获取每一个目标客户端提交的随机数种子作为一次随机数生成过程的随机数种子池;其中,目标客户端指代参与一次随机数生成过程的客户端;生成一次随机数生成过程的时间参数,安全参数计算结果接收地址,并将时间参数,安全参数,计算结果接收地址和随机数种子池组合得到随机数生成请求;向区块链系统中预设的多个计算节点广播随机数生成请求,以使得每一个接收随机数生成请求的计算节点均通过可验证延迟函数计算随机数种子池,得到一次随机数生成过程的随机数结果;其中,每一个计算节点产生计算结果的时刻均不早于时间参数所指定的时刻;获得任意一个计算节点反馈的随机数结果,并将一次随机数生成过程的随机数结果反馈给每一个目标客户端。可验证延迟函数能够确保通过该函数获得的计算结果无法在指定的时刻之前被预测得到,因此,利用可验证延迟函数产生随机数结果,可以防止攻击者通过预测随机数结果的方式控制随机数生成过程,从而确保随机数生成过程的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种可验证随时数的生成方法的流程图;
图2为本申请实施例提供的多种智能合约之间的数据交互示意图;
图3为本申请实施例提供的可验证随机数的生成方法所对应的服务架构示意图;
图4为本申请又一实施例提供的一种可验证随机数的生成方法的流程图;
图5为本申请实施例提供的一种可验证随机数的生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请第一个实施例提供一种可验证随机数的生成方法,本实施例提供的可验证随机数的生成方法可以由区块链系统中的任意一个节点,请参考图1,本实施例提供的方法包括以下步骤:
区块链系统中的节点可以是服务器,服务器集群或者日常使用的个人电脑。
S101、获取每一个目标客户端提交的随机数种子。
可选的,每一个目标客户端提交的随机数种子,均可以记录在区块链系统的区块链中,以便后续查找每一次随机数生成过程的随机数种子。
获取的所有随机数种子的集合,作为一次随机数生成过程的随机数种子池,简称种子池。
其中,上述目标客户端指代参与当前的这一次随机数生成过程的每一个客户端。
本申请实施例提供的可验证随机数的生成方法,可以应用于区块链的共识节点选举,线上抽奖或抽签(例如汽车车牌摇号就会涉及线上抽签),以及加密通信等多种需要用到随机数的活动中。
例如,假设一个通信系统中存在多个客户端,每一个客户端均配置有多套数据加密和解密方式。现在其中的某几个客户端之间需要选择其中任意一种套数据加密和解密方式进行加密通信。这种情况下,这些客户端就可以作为目标客户端发起一次随机数生成过程,然后根据最后得到的随机数结果决定使用哪一套数据加密和解密方式进行后续的加密通信。
在另一个例子中,可以有多个普通区块链节点竞争称为区块链系统的记账权,这种情况这些区块链节点也可以作为目标客户端发起一次随机数生成过程,根据得到的随机数结果决定哪些区块链节点享有记账权。
可选的,目标客户端可以获取运行该客户端的电子设备的某一设备参数的数值作为这个目标客户端的随机数种子,也可以根据电子设备所在的环境的环境信息(例如地理位置信息,当地的天气信息等)产生随机数种子。当然,目标客户端的随机数种子也可以采用其他方式获得,本申请对此不作限定。
可选的,本申请所述的目标客户端,可以是可以执行智能合约的去中心化应用(decentralized application,简称为DApp)。DApp可以执行区块链系统中的预先设定的智能合约,从而实现特定的功能。例如,本申请中DApp可以执行区块链系统中预设的用户合约(也可以称为user合约),从而提交随机数种子。
智能合约是(又称为Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。具体的,一个智能合约可以认为是由开发人员预先编写的一份能够实现特定功能代码,这份代码存储于区块链中,任意一个节点或者运行于节点的DApp均可以通过访问区块链调用并执行区块链中存储的智能合约,从而实现被调用的智能合约的功能。
具体到本申请中,每个DApp均可以执行上述user合约,从而用于实现本申请的方法的区块链系统提交随机数种子,换言之,也可以认为是user合约收集各个DApp的随机数种子,所有目标客户端的随机数种子的集合,就是步骤S101所述的随机数种子池。
S102、生成所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址。
时间参数用于指定后续根据随机数种子池计算得到一次随机数生成过程的随机数结果所用的最短时间。也就是说,时间参数可以是一个给定的时长,例如,时间参数指定的时长可以是区块链系统中产生10个区块所用的时间,比如可以是5分钟。
计算结果接收地址作为后续各计算节点计算出随机数结果后反馈随机数结果的依据。
步骤S102可以预设的第一智能合约,即dice合约实现。具体的,目标客户端提供的随机数种子会由user合约通过dice合约的dice方法传递给dice合约。执行本实施例的生成方法的节点,可以调用dice合约以执行当前需要执行的一次随机数生成过程的初始化操作,在执行初始化操作时,dice合约会依据预先编写的代码设定一次随机数生成过程的时间参数,安全参数和计算结果接收地址。
综上所述,可以理解的,dice合约的作用是提供给想要使用本申请提供的随机数生成服务的(或者说,需要发起一次随机数生成过程以获得随机数结果的)DApp提供数据接口,开发人员只需要在开发DApp时继承dice合约,这个DApp通过提交随机数种子触发本申请的区块链系统执行一次随机数生成过程。
通过dice合约实现步骤S102时,上述计算结果地址就是dice合约的合约地址。
S103、将时间参数,安全参数,计算结果接收地址和随机数种子池组合得到随机数生成请求。
步骤S103也可以通过智能合约实现
可选的,本申请所提供的区块链中可以配置有第二智能合约(即UsingVdfService合约),以及第三智能合约(即VdfService合约)。其中,第三智能合约预先定义有随机数生成事件。
执行前述dice合约以进行初始化操作之后,dice合约可以调用UsingVdfService合约的evaluate方法,从而将前述时间参数,安全参数,计算结果接收地址和随机数种子池均传递给UsingVdfService合约。
UsingVdfService合约中记录有前述第三智能合约当前的合约地址,前述时间参数,安全参数,计算结果接收地址和随机数种子池均传递给UsingVdfService合约之后,UsingVdfService合约可以根据第三智能合约的evaluate方法将前述时间参数,安全参数,计算结果接收地址和随机数种子池均传递给第三智能合约,即VdfService合约。
设置上述UsingVdfService合约并通过UsingVdfService合约转发时间参数,安全参数,计算结果接收地址和随机数种子池的目的在于,VdfService合约的代码经常需要进行更新,每一次更新之后VdfService合约都需要重新进行部署,而重新部署VdfService合约会导致VdfService合约的合约地址发生变化,通过设置UsingVdfService合约,每次重新部署VdfService合约之后,管理人员只需要更新UsingVdfService合约中记录的地址,就可以使其他程序继续调用重新部署VdfService合约。
VdfService合约获得时间参数,安全参数,计算结果接收地址和随机数种子池,可以将这些数据组合随机数生成请求(即query),然后触发VdfService合约中的随机数生成事件(即evaluateVdfQuery事件),从而向区块链系统中的计算节点广播随机数生成请求。
S104、向区块链系统中预设的多个计算节点广播随机数生成请求。
通过向区块链系统中预设的多个计算节点广播随机数生成请求,可以使得每一个收到随机数生成请求的计算节点均通过可验证延迟函数计算得到一次随机数生成过程的随机数结果。
广播随机数生成请求,是指,针对每一个计算节点,将随机数生成请求发送给这个计算节点。这个计算节点收到随机数生成请求之后,就会调用自身预先配置的可验证延迟函数,对这个随机数生成请求所携带的随机数种子池进行计算,计算结束之后,就可以得到这个随机数生成请求所对应的,一次随机数生成过程的随机数结果。
其中,每一个计算节点产生计算结果的时刻均不早于时间参数所指定的时刻。
如前文所述,时间参数可以是一个指定的时长,例如5分钟。确定一个起始时刻之后,就可以依据上述时间参数确定一个指定时刻。具体的,可以默认地以获得随机数种子池的时刻作为起始时刻,则经过时间参数所指定的时刻后的时刻记为一次随机数生成过程的指定时刻。例如,若获得随机数种子池的时刻为T0,时间参数指定的时长为5分钟,则上述指定时刻T1就等于T0+5min。
计算节点可以预先配置有用于执行可验证延迟函数的函数引擎,即VDF engine,将上述安全参数,时间参数和随机数种子池传递给VDF engine之后,就可以调用其中的可验证延迟函数对随机数种子池进行计算,得到随机数结果。计算节点计算得到随机数结果后,可以通过预设的反馈方法,即evaluateCallback方法将计算节点反馈给前文中指定的计算结果接收地址(即dice合约的合约地址)
可验证延迟函数(verifiable delay function,VDF)是一类数学函数,能够使得即使采用并行计算加速,或者提前一定时间进行运算等手段,获得该函数的计算结果也需要较长的时间,但得出计算结果后,第三方可以快速验证结果的正确性。VDF通常会接受一个输入(在本申请中就是前述随机数种子池)以及一些参数(安全参数、时间参数等),输出一个结果以及相应的证明(可以为空,如果结果能够自带证明)。验证者能够依据输入、参数、输出以及结果来判断VDF的结果是否正确。
可验证延迟函数满足以下性质:
第一,VDF的结果的检验应当是非常有效率的。
第二,VDF的输入对于输出而言应当是唯一的,也就是说,对于任意一个VDF的输入,应当有唯一的输出结果能够通过检验。也就是说,不存在同一个输入能够获得两个不同的输出的情况。进一步的,如果输出的数据包括根据输入计算得到的计算结果,以及对计算结果的证明,那么证明部分可以不具有唯一性,但需要保证“验证者因为证明而验证通过,但是输出结果却不是正确的结果”这件事发生的概率小到可以忽略不计。
第三,VDF应当满足串行性,对于未精心设计过的算法,采用多个计算设备并行计算有可能极大地缩减其计算时间。而对于VDF,攻击者即使能够提前计算很长时间(但不是任意长的时间),并且拥有很多并行处理器(但不是任意多的处理器),利用各种计算方法(确定地计算或是连蒙带猜),能够以少于时间参数所指定的时间计算出VDF结果的概率可以小到忽略不计。
基于以上性质,对于本申请实施例中利用VDF计算得到的随机数结果,攻击者几乎不可能以短于时间参数所指定的时长的时间预测出该随机数结果,换言之,攻击者无法在上述时间参数所指定的时刻之前,即从获得随机数种子池开始,经过指定的时长之后的时刻之前,预测得到任意一个计算节点输出的随机数结果。自然的,攻击者也就无法预测一次随机数生成过程的随机数结果是否有利于自身,所以就无法对一次随机数生成过程进行控制。
步骤S104所述区块链系统所包含的所有计算节点的集合,可以认为是一个计算引擎,进一步的,由于计算节点通过可验证延迟函数VDF进行计算,因此,该引擎也可以称为可验证延迟函数引擎,VDF引擎,即VDF engine。
S105、获得任意一个所述计算节点反馈的随机数结果,并将一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
可选的,获得任意一个计算节点反馈的随机数结果之后,可以先执行dice合约以对随机数结果进行验证,若验证通过则将随机数结果反馈给目标客户端,反之,若一个随机数结果为通过验证,则丢弃这个随机数结果,不向目标客户端反馈这个随机数结果,直至收到另一个计算节点反馈的通过验证的随机数结果为止。
具体的,对随机数结果的验证可以包括下述两种方式中的任意一种或者两种方式的组合:
第一种验证方式,VdfService合约可以预先指定一个或多个合法反馈地址(即callback address),在收到任一计算节点反馈的随机数结果之后,可以通过VdfService合约检测反馈这个随机数结果的计算节点的节点地址是否为前述合法反馈地址,若是合法反馈地址,则这个随机数结果通过验证,反之,若这个节点地址不是指定的合法反馈地址,则这个随机数结果未通过验证。
可选的,任意一个计算节点也可以主动通过预先注册的方式将自身的地址注册为合法反馈地址。其中,若一个计算节点需要将自身的地址注册为合法反馈地址,则可以要求该计算节点提供一定量的押金。
第二种验证方式,基于可验证延迟函数对应的验证算法,检验随机数结果是否为基于一次随机数生成过程的随机数种子池计算得到的随机数结果;若随机数结果不是基于一次随机数生成过程的随机数种子池计算得到的随机数结果,则这个随机数结果未通过验证,反之,若随机数结果是基于一次随机数生成过程的随机数种子池计算得到的随机数结果,则这个随机数结果通过验证。
可选的。某个计算节点提交的随机数结果未通过上述第二种验证方式的验证,则可以对这个计算节点执行预设的惩罚操作,具体的,惩罚操作包括但不限于,扣除被惩罚的计算节点的押金,降低被惩罚的计算节点的信用值,从而降低被惩罚的计算节点对于区块链系统各项活动的参与度。
本申请所提供的可验证随机数的生成方法具有如下的有益效果:
第一方面,参与性强,每一个需要参与一次随机数生成过程的客户端均可以提供随机数种子,各个目标客户端之间相互平等,不存在中心化节点或可信节点。
第二方面,由于可验证延迟函数的输出可以被高效的检验,节点和各个目标客户端均可以在获得随机数结果之后,迅速检测这个随机数结果是否是根据自身提供的随机数种子或者随机数种子池生成的随机数结果,换言之,也就是检测自身提供的随机数种子是否参与上述随机数结果所对应的一次随机数生成过程,从而避免伪造随机数结果,确保随机数结果的可信度。
强安全:利用可验证延迟函数计算时间长的特点,使得提交随机数种子之后,任意的潜在的攻击者均无法在产生随机数结果之前预测出随机数结果是否对自身有利,因而不能提前以修改随机数种子或拒绝提交种子的方式操纵随机数结果。只要至少一个参与方提交了种子,随机数即是可信的。
本申请实施例所提供的各个智能合约之间的数据交互关系如图2所示。
如图3所示为本申请实施例提供的可验证随机数的生成方法的服务架构示意图。
图3所示的区块链上的合约包含前文所述的用户合约,以及后续的第一智能合约,第二智能合约和第三智能合约。
图2和图3中,由于前述智能合约均部署于区块链上,而计算节点调用可验证延迟函数进行计算的过程不涉及和区块链的交互,因此,智能合约的交互和数据传递可以认为是在链上进行的,而由多个计算节点构成的计算引擎的计算过程可以认为是在链下进行的。
图2中的相关数据,包括前文中的时间参数,安全参数,计算结果接收地址和随机数种子池。
本申请第二个实施例还提供一种可验证随机数的生成方法,请参考图4,该方法包括以下步骤:
S401、获取每一个目标客户端提交的随机数种子。
所有随机数种子的集合作为随机数种子池。
S402、生成所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址。
S403、将时间参数,安全参数,计算结果接收地址和随机数种子池组合得到随机数生成请求。
S404、向区块链系统中预设的多个计算节点广播随机数生成请求。
S405、获得任意一个所述计算节点反馈的随机数结果,并将一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
S406、将所述时间参数,所述一次随机数生成过程的随机数结果和随机数种子池记录在所述一次随机数生成过程对应的区块内。
S407、在所述区块链系统的区块链上接入所述一次随机数生成过程对应的区块。
获得一次随机数生成过程对应的区块之后,可以将这个区块广播给区块链系统的每一个节点,每个节点对均对这个区块进行验证,验证通过后该区块即接入区块链中。
在此基础上,任意时刻任意有访问权限的用户均可以读取区块中记录的数据,从而对对应的一次随机数生成过程进行审计和检验。
本实施例提供的可验证随机数的生成方法的有益效果在于,通过将一次随机数生成过程所涉及的各项参数(包括时间参数和安全参数),以及参与一次随机数生成过程的目标客户端提供的随机数种子,计算节点输出的随机数结果数据以区块的形式连接在区块链上。
一方面可以在区块链上记录每一次随机数生成过程,从而方便后续对于任意一次随机数生成过程的随机数结果出现纠纷时,通过区块链上的数据进行查验,从而解决纠纷。也就是利用区块链数据公开透明、不可篡改的技术优势,实现每一次随机数生成过程的相关数据的存证和审计。
另一方面可以定时的检测过去的若干次随机数生成过程,以检测相关的智能合约和其他程序是否被攻击或者是否出现故障,从而及时进行维护和更新。
根据本申请任一实施例提供的可验证随机数的生成方法,本申请实施例还提供一种可验证随机数的生成装置,请参考图5,所述可验证随机数的生成装置可以包括以下单元:
本申请实施例所提供的装置可以应用于区块链系统中的任意一个节点。
本实施例提供的可验证随机数的生成装置包括:
获取单元501,用于获取每一个目标客户端提交的随机数种子作为一次随机数生成过程的随机数种子池。
其中,目标客户端指代参与一次随机数生成过程的客户端。
生成单元502,用于生成一次随机数生成过程的时间参数,安全参数计算结果接收地址,并将时间参数,安全参数,计算结果接收地址和随机数种子池组合得到随机数生成请求。
广播单元503,用于向区块链系统中预设的多个计算节点广播随机数生成请求,以使得每一个接收随机数生成请求的计算节点均通过可验证延迟函数计算随机数种子池,得到一次随机数生成过程的随机数结果。
其中,每一个计算节点产生计算结果的时刻均不早于时间参数所指定的时刻。
获取单元501,还用于获得任意一个计算节点反馈的随机数结果。
反馈单元504,用于将一次随机数生成过程的随机数结果反馈给每一个目标客户端。
可选的,本实施例的生成装置还包括:
记录单元505,用于将时间参数,一次随机数生成过程的随机数结果和随机数种子池封装为一次随机数生成过程对应的区块,并用于在区块链系统的区块链上接入一次随机数生成过程对应的区块。
可选的,本实施例提供的生成装置还包括检测单元506,用于在任一计算节点反馈随机数结果之后对随机数结果进行检测,具体的,检测单元506可以包括第一检测单元和第二检测单元,其功能如下:
第一检测单元,用于基于可验证延迟函数对应的验证算法,检验随机数结果是否为基于一次随机数生成过程的随机数种子池计算得到的随机数结果;若随机数结果不是基于一次随机数生成过程的随机数种子池计算得到的随机数结果,则丢弃随机数结果;
若随机数结果是基于一次随机数生成过程的随机数种子池计算得到的随机数结果,则触发第二检测单元进行检测。
可选的。某个计算节点提交的随机数结果未通过上述第一检测单元的验证,则可以对这个计算节点执行预设的惩罚操作,具体的,惩罚操作包括但不限于,扣除被惩罚的计算节点的押金,降低被惩罚的计算节点的信用值,从而降低被惩罚的计算节点对于区块链系统各项活动的参与度。
第二检测单元,用于检测反馈随机数结果的计算节点的地址是否为预先指定的合法反馈地址;若反馈随机数结果的计算节点的地址不是合法反馈地址,丢弃随机数结果;
若反馈随机数结果的计算节点的地址是合法反馈地址,则触发反馈单元504将一次随机数生成过程的随机数结果反馈给每一个目标客户端。
可选的,任意一个计算节点也可以主动通过预先注册的方式将自身的地址注册为合法反馈地址。其中,若一个计算节点需要将自身的地址注册为合法反馈地址,则可以要求该计算节点提供一定量的押金。
当然,在其他可选的实施例中,检测单元506也可以只包括第一检测单元,或者只包括第二检测单元。
其中,若检测单元506只包括第一检测单元,则第一检测单元在检测出随机数结果是基于一次随机数生成过程的随机数种子池计算得到的随机数结果之后,触发反馈单元504将随机数结果反馈给每一个目标客户端
生成单元502生成一次随机数生成过程的时间参数和安全参数,并将时间参数、安全参数和随机数种子池组合得到随机数生成请求时具体用于:
调用第一智能合约以进行初始化操作,得到一次随机数生成过程的时间参数,安全参数和计算结果接收地址;其中,第一智能合约用于为每一个目标客户端提供上传随机数种子的接口;
通过第二智能合约的接口将一次随机数生成过程的时间参数,安全参数,计算结果接收地址和随机数种子池传递于第三智能;其中,第二智能合约用于记录第三智能合约的合约地址;
通过第三智能合约预设的数据格式,将一次随机数生成过程的时间参数,安全参数,计算结果接收地址和随机数种子池封装为随机数生成请求;
其中,向区块链系统中预设的多个计算节点广播随机数生成请求,包括:
通过第三智能合约向区块链系统中预设的多个计算节点广播随机数生成请求。
本申请任一实施例提供的可验证随机数的生成装置的具体工作原理可以参考本申请任一实施例提供的可验证随机数的生成方法,此处不再详述。
本申请提供一种可验证随机数的生成装置,应用于区块链系统中的任意一个节点,包括:获取单元501获取每一个目标客户端提交的随机数种子作为一次随机数生成过程的随机数种子池;其中,目标客户端指代参与一次随机数生成过程的客户端;生成单元502生成一次随机数生成过程的时间参数,安全参数计算结果接收地址,并将时间参数,安全参数,计算结果接收地址和随机数种子池组合得到随机数生成请求;广播单元503向区块链系统中预设的多个计算节点广播随机数生成请求,以使得每一个接收随机数生成请求的计算节点均通过可验证延迟函数计算随机数种子池,得到一次随机数生成过程的随机数结果;其中,每一个计算节点产生计算结果的时刻均不早于时间参数所指定的时刻;获取单元501还用于获得任意一个计算节点反馈的随机数结果,并由反馈单元504将一次随机数生成过程的随机数结果反馈给每一个目标客户端。可验证延迟函数能够确保通过该函数获得的计算结果无法在指定的时刻之前被预测得到,因此,利用可验证延迟函数产生随机数结果,可以防止攻击者通过预测随机数结果的方式控制随机数生成过程,从而确保随机数生成过程的安全性。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种可验证随机数的生成方法,其特征在于,应用于区块链系统中的任意一个节点,所述生成方法包括:
获取每一个目标客户端提交的随机数种子;其中,每个所述目标客户端提交的随机数种子均记录于所述区块链系统的区块链中,所有所述随机数种子的集合作为一次随机数生成过程的随机数种子池,所述目标客户端指代参与所述一次随机数生成过程的客户端;
生成所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址,并将所述时间参数,所述安全参数,所述计算结果接收地址和所述随机数种子池组合得到随机数生成请求;
向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,以使得每一个接收所述随机数生成请求的所述计算节点均通过可验证延迟函数计算所述随机数种子池,得到所述一次随机数生成过程的随机数结果;其中,每一个所述计算节点得到所述随机数结果的时刻均不早于所述时间参数所指定的时刻;
获得所述任意一个所述计算节点反馈的所述随机数结果,并将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
2.根据权利要求1所述的生成方法,其特征在于,所述获得所述任意一个所述计算节点反馈的所述随机数结果之后,还包括:
将所述时间参数,所述一次随机数生成过程的随机数结果和随机数种子池记录在所述一次随机数生成过程对应的区块内;
在所述区块链系统的区块链上接入所述一次随机数生成过程对应的区块。
3.根据权利要求1所述的生成方法,其特征在于,所述将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端之前,还包括:
基于所述可验证延迟函数对应的验证算法,检验所述随机数结果是否为基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果;
若所述随机数结果不是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则丢弃所述随机数结果,并对反馈所述随机数结果的计算节点执行预设的惩罚操作;
其中,若所述随机数结果是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则将所述随机数结果反馈给每一个所述目标客户端。
4.根据权利要求1所述的生成方法,其特征在于,所述将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端之前,还包括:
检测反馈所述随机数结果的所述计算节点的地址是否为预先指定的合法反馈地址;其中,所述合法反馈地址通过所述计算节点预先向第二检测单元注册的方式确定;
若反馈所述随机数结果的所述计算节点的地址不是所述合法反馈地址,丢弃所述随机数结果;
其中,若反馈所述随机数结果的所述计算节点的地址是所述合法反馈地址,将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
5.根据权利要求1至4任意一项所述的生成方法,其特征在于,所述生成所述一次随机数生成过程的时间参数和安全参数,并将所述时间参数、所述安全参数和所述随机数种子池组合得到随机数生成请求,包括:
调用第一智能合约以进行初始化操作,得到所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址;其中,所述第一智能合约用于为每一个所述目标客户端提供上传随机数种子的接口;
通过第二智能合约的接口将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池传递于第三智能合约;其中,所述第二智能合约用于记录所述第三智能合约的合约地址;
通过所述第三智能合约预设的数据格式,将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池封装为随机数生成请求;
其中,所述向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,包括:
通过所述第三智能合约向所述区块链系统中预设的多个计算节点广播所述随机数生成请求。
6.一种可验证随机数的生成装置,其特征在于,应用于区块链系统中的任意一个节点,所述生成装置包括:
获取单元,用于获取每一个目标客户端提交的随机数种子;其中,每个所述目标客户端提交的随机数种子均记录于所述区块链系统的区块链中,所有所述随机数种子的集合作为一次随机数生成过程的随机数种子池,所述目标客户端指代参与所述一次随机数生成过程的客户端;
生成单元,用于生成所述一次随机数生成过程的时间参数,安全参数计算结果接收地址,并将所述时间参数,所述安全参数,所述计算结果接收地址和所述随机数种子池组合得到随机数生成请求;
广播单元,用于向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,以使得每一个接收所述随机数生成请求的所述计算节点均通过可验证延迟函数计算所述随机数种子池,得到所述一次随机数生成过程的随机数结果;其中,每一个所述计算节点得到随机数结果的时刻均不早于所述时间参数所指定的时刻;
所述获取单元,用于获得所述任意一个所述计算节点反馈的所述随机数结果;
反馈单元,用于将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
7.根据权利要求6所述的生成装置,其特征在于,所述生成装置还包括:
记录单元,用于将所述时间参数,所述一次随机数生成过程的随机数结果和随机数种子池记录在所述一次随机数生成过程对应的区块内,并用于在所述区块链系统的区块链上接入所述一次随机数生成过程对应的区块。
8.根据权利要求6所述的生成装置,其特征在于,所述生成装置还包括:
第一检测单元,用于基于所述可验证延迟函数对应的验证算法,检验所述随机数结果是否为基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果;
若所述随机数结果不是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则丢弃所述随机数结果,并对反馈所述随机数结果的计算节点执行预设的惩罚操作;
其中,所述反馈单元将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端时,具体用于:
若所述随机数结果是基于所述一次随机数生成过程的随机数种子池计算得到的随机数结果,则将所述随机数结果反馈给每一个所述目标客户端。
9.根据权利要求6所述的生成装置,其特征在于,所述生成装置还包括:
第二检测单元,用于检测反馈所述随机数结果的所述计算节点的地址是否为预先指定的合法反馈地址;其中,所述合法反馈地址通过所述计算节点预先向所述第二检测单元注册的方式确定;
若反馈所述随机数结果的所述计算节点的地址不是所述合法反馈地址,丢弃所述随机数结果;
其中,所述反馈单元将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端时,具体用于:
若反馈所述随机数结果的所述计算节点的地址是所述合法反馈地址,将所述一次随机数生成过程的随机数结果反馈给每一个所述目标客户端。
10.根据权利要求6至9任意一项所述的生成装置,其特征在于,所述生成单元生成所述一次随机数生成过程的时间参数和安全参数,并将所述时间参数、所述安全参数和所述随机数种子池组合得到随机数生成请求时具体用于:
调用第一智能合约以进行初始化操作,得到所述一次随机数生成过程的时间参数,安全参数和计算结果接收地址;其中,所述第一智能合约用于为每一个所述目标客户端提供上传随机数种子的接口;
通过第二智能合约的接口将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池传递于第三智能合约;其中,所述第二智能合约用于记录所述第三智能合约的合约地址;
通过所述第三智能合约预设的数据格式,将所述一次随机数生成过程的时间参数,安全参数,计算结果接收地址和所述随机数种子池封装为随机数生成请求;
其中,所述向所述区块链系统中预设的多个计算节点广播所述随机数生成请求,包括:
通过所述第三智能合约向所述区块链系统中预设的多个计算节点广播所述随机数生成请求。
CN202010454867.XA 2020-05-26 2020-05-26 可验证随机数的生成方法和装置 Active CN111600709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010454867.XA CN111600709B (zh) 2020-05-26 2020-05-26 可验证随机数的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010454867.XA CN111600709B (zh) 2020-05-26 2020-05-26 可验证随机数的生成方法和装置

Publications (2)

Publication Number Publication Date
CN111600709A CN111600709A (zh) 2020-08-28
CN111600709B true CN111600709B (zh) 2023-03-14

Family

ID=72188708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010454867.XA Active CN111600709B (zh) 2020-05-26 2020-05-26 可验证随机数的生成方法和装置

Country Status (1)

Country Link
CN (1) CN111600709B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527244A (zh) * 2020-12-18 2021-03-19 上海万向区块链股份公司 基于可验证延迟函数的分布式抽签系统和方法
CN112631551B (zh) * 2020-12-29 2023-05-30 平安科技(深圳)有限公司 随机数生成方法、装置、电子设备及存储介质
CN112671793B (zh) * 2020-12-30 2022-10-14 北京八分量信息科技有限公司 区块链中确定证实节点的方法、装置及相关产品
CN112988894B (zh) * 2021-03-22 2023-07-07 广东工业大学 一种基于分布式可验证延迟函数的区块链共识系统和方法
CN113407156B (zh) * 2021-06-15 2023-02-17 杭州溪塔科技有限公司 基于去中心化可验证延迟函数生成随机数的方法及系统
CN115086049B (zh) * 2022-06-21 2023-09-08 天津理工大学 基于可验证延迟函数的区块链医疗数据共享系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921897A (zh) * 2019-03-13 2019-06-21 北京柏链基石科技有限公司 工作量证明计算的触发方法、装置、计算设备及存储介质
CN110445603A (zh) * 2019-06-28 2019-11-12 成都鹰翔天际科技有限公司 一种去中心化随机数生成方法
CN110825349A (zh) * 2019-11-14 2020-02-21 深圳市网心科技有限公司 随机数生成方法、区块链节点、系统及介质
CN110855432A (zh) * 2019-10-31 2020-02-28 广东工业大学 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制
CN110909083A (zh) * 2019-12-03 2020-03-24 北京艾摩瑞策科技有限公司 区块链上可验证随机函数的共识方法及其系统
CN111090892A (zh) * 2020-03-24 2020-05-01 杭州智块网络科技有限公司 一种基于vrf和门限签名的区块链共识方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018119930A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
US10686799B2 (en) * 2018-04-30 2020-06-16 EMC IP Holding Company LLC Blockchain-based method and system for providing tenant security and compliance in a cloud computing environment
US11076135B2 (en) * 2018-05-06 2021-07-27 Daniel Hugh Broaddus Blockchain-based trustless date verifiable video capture
CN110941418B (zh) * 2019-11-26 2022-04-01 杭州浮云网络科技有限公司 一种随机数生成的方法、装置、设备及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921897A (zh) * 2019-03-13 2019-06-21 北京柏链基石科技有限公司 工作量证明计算的触发方法、装置、计算设备及存储介质
CN110445603A (zh) * 2019-06-28 2019-11-12 成都鹰翔天际科技有限公司 一种去中心化随机数生成方法
CN110855432A (zh) * 2019-10-31 2020-02-28 广东工业大学 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制
CN110825349A (zh) * 2019-11-14 2020-02-21 深圳市网心科技有限公司 随机数生成方法、区块链节点、系统及介质
CN110909083A (zh) * 2019-12-03 2020-03-24 北京艾摩瑞策科技有限公司 区块链上可验证随机函数的共识方法及其系统
CN111090892A (zh) * 2020-03-24 2020-05-01 杭州智块网络科技有限公司 一种基于vrf和门限签名的区块链共识方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Generating verifiable random numbers without a trusted party;Xiao Yang ET AL;《2014 Communications Security Conference (CSC 2014)》;20141222;全文 *
双方参与的随机数生成和验证方案;刘建湘等;《计算机工程与应用》;20180206;全文 *

Also Published As

Publication number Publication date
CN111600709A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN111600709B (zh) 可验证随机数的生成方法和装置
Khan et al. Investigating performance constraints for blockchain based secure e-voting system
Lu et al. Zebralancer: Private and anonymous crowdsourcing system atop open blockchain
Kaur et al. A research survey on applications of consensus protocols in blockchain
Zhao et al. Secure pub-sub: Blockchain-based fair payment with reputation for reliable cyber physical systems
CN112073483B (zh) 基于信誉与委员会背书机制的权威证明共识方法及系统
US11381589B2 (en) Systems and methods for distributed extended common vulnerabilities and exposures data management
CN110489946B (zh) 基于区块链的版权认证方法、装置、设备和存储介质
CN111445333A (zh) 区块生成方法、装置、计算机设备以及存储介质
JP2023509889A (ja) ブロックチェーンに基づくデータ検出方法及び装置並びにコンピュータ装置及びプログラム
CN111260398A (zh) 一种广告投放控制方法、装置、电子设备及存储介质
Zhu et al. Hybrid blockchain design for privacy preserving crowdsourcing platform
CN111369730B (zh) 基于区块链的投票表决处理方法和装置
US11503036B2 (en) Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
CN110458995B (zh) 基于可信执行环境的匿名投票系统和投票方法
CN113221163B (zh) 一种训练模型的方法及系统
CN113726913B (zh) 骨干节点接入方法和区块链系统
Abubaker et al. Trustful data trading through monetizing IoT data using BlockChain based review system
US10970180B2 (en) Methods and apparatus for verifying processing results and/or taking corrective actions in response to a detected invalid result
CN112822267A (zh) 基于区块链的数据处理方法和装置
CN112149181A (zh) 一种带有信誉值分析作用的混合云数据中心数据传输方法
Nguyen et al. Blockroam: Blockchain-based roaming management system for future mobile networks
US20210374731A1 (en) Systems and methods for consensus-based access control for smart contract functions
Tran et al. Machine‐as‐a‐Service: Blockchain‐based management and maintenance of industrial appliances
CN112948499A (zh) 信息获取方法和装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant