CN114666068B - 一种基于联盟链的可信随机数生成方法及装置 - Google Patents
一种基于联盟链的可信随机数生成方法及装置 Download PDFInfo
- Publication number
- CN114666068B CN114666068B CN202210572213.6A CN202210572213A CN114666068B CN 114666068 B CN114666068 B CN 114666068B CN 202210572213 A CN202210572213 A CN 202210572213A CN 114666068 B CN114666068 B CN 114666068B
- Authority
- CN
- China
- Prior art keywords
- random number
- block
- generated
- generating
- world state
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种基于联盟链的可信随机数生成方法及装置,应用于生成随机数的任一链下业务系统,生成方法包括:获取客户端发出的生成随机数的随机数请求;根据随机数请求生成一条参数世界状态,并将参数世界状态存储至当前区块;参数世界状态中记录随机数参数;当前区块为生成参数世界状态时,随机数通道最新生成的区块;当随机数通道内生成目标区块的时候,构造随机数交易;根据参数世界状态,通过随机数交易调用随机数智能合约生成最终随机数。如此,本申请引入随时间变换的无法预测的确定性可信因子,即引入了在发出随机数请求时刻的未来生成的区块哈希值,提高了调用方的抗攻击性,从而生成可信随机数。
Description
技术领域
本申请涉及联盟链技术领域,特别涉及一种基于联盟链的可信随机数生成方法及装置。
背景技术
在日常生活中随处可见随机数的应用,比如从统计总体中抽样或者将样本分组等。由于使用场景的公平性和透明性要求,随机数需要具有可信性,因此,需要一种具有较强的防攻击性的方式来生成随机数,使得随机数的生成无法被有意操纵。
现有的随机数生成方法中,最为常用的是在区块链上预先部署随机智能合约,输入三组随机源,包括:链当前区块哈希、合约地址信息和参与方线下的随机数,对三组随机源进行处理后获取最终的随机数。
然而,将参与方线下的随机数当做随机源,实际上是引入了调用方的控制能力,存在调用方被攻击后被迫操纵,或者主动恶意操纵最终生成的随机数的可能,导致最终生成的随机数不可信的问题。
发明内容
本申请提供了一种基于联盟链的可信随机数生成方法及装置,可用于解决现有技术中引入了调用方的控制能力,存在调用方被攻击后被迫操纵,或者主动恶意操纵最终生成的随机数的可能,导致生成的随机数不可信的技术问题。
第一方面,本申请提供一种基于联盟链的可信随机数生成方法,应用于生成随机数的任一链下业务系统,所述生成方法包括:
获取客户端发出的生成随机数的随机数请求;
根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块;
当所述随机数通道内生成目标区块的时候,构造随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成所述最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数。
在第一方面的一种可实现方式中,所述时间序列号按照以下步骤构建:
获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
在第一方面的一种可实现方式中,在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,所述方法还包括:
校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
如果所述当前时间戳小于所述下一区块的生成时间,则确定所述时间序列号通过校验。
在第一方面的一种可实现方式中,所述根据所述参数世界状态,通过所述随机数智能合约生成最终随机数,包括:
确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
计算所述数据连接值的第一哈希值;
计算所述第一哈希值的第二哈希值;
将所述第二哈希值确定为所述最终随机数。
在第一方面的一种可实现方式中,所述随机数参数还包括随机数生成范围,将所述第二哈希值确定为所述最终随机数的步骤,还包括:
计算所述第二哈希值的数学模N运算结果;
将所述数学模N运算结果确定为所述最终随机数。
第二方面,本申请提供一种基于联盟链的可信随机数生成装置,用于执行第一方面及各种可实现方式中的一种基于联盟链的可信随机数生成方法,所述生成装置包括:
随机数请求获取模块,用于获取客户端发出的生成随机数的随机数请求;
参数世界状态生成模块,用于根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块;
随机数交易构造模块,用于当所述随机数通道内生成目标区块的时候,构造随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
最终随机数生成模块,用于根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成所述最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数。
在第二方面的一种可实现方式中,所述生成装置还包括时间序列号构建模块,用于按照以下步骤构建所述时间序列号:
获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
在第二方面的一种可实现方式中,所述生成装置还包括校验模块,用于在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,对所述时间序列号执行以下校验步骤:
校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
如果所述当前时间戳小于所述下一区块的生成时间,则所述时间序列号通过校验。
在第二方面的一种可实现方式中,所述最终随机数生成模块包括:
数据连接值确定单元,用于确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
第一哈希值获取单元,用于计算所述数据连接值的第一哈希值;
第二哈希值获取单元,用于计算所述第一哈希值的第二哈希值;
最终随机数确定单元,用于将所述第二哈希值确定为所述最终随机数。
在第二方面的一种可实现方式中,所述随机数参数还包括随机数生成范围,所述最终随机数确定单元,还用于:
计算所述第二哈希值的数学模N运算结果;
将所述数学模N运算结果确定为所述最终随机数。
本申请提供一种基于联盟链的可信随机数生成方法及装置,应用于生成随机数的任一链下业务系统,生成方法包括:获取客户端发出的生成随机数的随机数请求;根据随机数请求生成一条参数世界状态,并将参数世界状态存储至当前区块;参数世界状态中记录随机数参数;当前区块为生成参数世界状态时,随机数通道最新生成的区块;当随机数通道内生成目标区块的时候,构造随机数交易;根据参数世界状态,通过随机数交易调用随机数智能合约生成最终随机数。如此,本申请引入随时间变换的无法预测的确定性可信因子,即引入了在发出随机数请求时刻的未来生成的区块哈希值,提高了调用方的抗攻击性,从而生成可信随机数。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种基于联盟链的可信随机数生成方法的应用场景图;
图2为本申请提供的一种基于联盟链的可信随机数生成方法的流程图;
图3为本申请提供的一种基于联盟链的可信随机数生成方法的最终随机数生成流程图;
图4为本申请提供的一种基于联盟链的可信随机数生成方法的当前时间戳校验流程图;
图5为本申请提供的一种基于联盟链的可信随机数生成方法的一种示例示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请第一实施例公开了一种基于联盟链的可信随机数生成方法,下面结合附图对本申请第一实施例进行具体说明。
参见图1,为本申请提供的一种基于联盟链的可信随机数生成方法的应用场景图;
由图1可知,本申请提供的方法可以应用于生成随机数的任一链下业务系统,所述链下业务系统指的是独立于联盟链的、有可信随机数生成需求的任意业务系统,比如抽奖业务系统或者专家遴选系统等。本申请中,在联盟链中部署随机数通道,并在所述随机数通道上部署随机数智能合约,当任一链下业务系统有可信随机数的生成需求时,只需调用随机数智能合约就可以自动生成最终随机数。具体地,本申请提供的方法步骤说明如下:
参见图2,为本申请提供的一种基于联盟链的可信随机数生成方法的流程图;
由图2可知,本申请第一实施例提供的一种基于联盟链的可信随机数生成方法,包括:
步骤101,获取客户端发出的生成随机数的随机数请求;
在本申请中,客户端可以是任一链下业务系统的客户端,当任一链下业务系统有可信随机数的生成需求时,需要有人操纵客户端发出所述随机数请求,才能根据所述随机数请求进行后续步骤。
步骤102,根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;
具体地,所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块。
具体地,一般情况下,区块链都会配置为如果没有交易就不生成区块,本申请所述随机数通道自部署成功就按照预设出块时间间隔开始出块,即在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块,如此,避免了极端的无交易持续输入的情况下,导致目标区块一直无法生成,也就无法得到最终随机数的情况。
优选地,预设出块时间间隔为技术所允许的最小出块间隔,例如为100ms。如此,由于所述随机数通道内的出块不受任何调用者的影响,因此基于所述随机数通道上进行的随机数生成也不会受任何调用者的影响,使得后续的执行过程可信,提升了随机数应用场合的公开透明性和公正性。
具体地,在调用区块链的任意操作时,都需要带上调用者的数字证书公钥,本申请中的调用者即为任一链下业务系统,所述链下业务系统的公钥的分配方式不做限定,可以用第三方权威数字证书机构颁发的证书,也可以用区块链平台颁发的证书等。如此,当有多个链下业务系统都有可信随机数的生成需求时,所述链下业务系统的公钥就可以区分每个链下业务系统的需求。
在本申请中,当任一链下业务系统有可信随机数的生成需求时,都需要生成一条参数世界状态,并输入所述随机数参数,利用所述随机数参数中的所述时间序列号来提高防攻击性的同时,还极大提升了本申请的随机数生成能力;
具体地,所述时间序列号按照以下步骤构建:
步骤201,获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
优选地,所述当前世界戳精确到毫秒,比如所述当前时间戳为20220422183401002,代表所述当前时间戳为2022年04月22日18时34分01秒002毫秒,如此,所述链下业务系统可以准确地在所述毫秒内发起调用。
步骤202,确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
具体地,所述生成序列号用于设置同一毫秒内,任一链下业务系统可发起的调用次数,所述生成序列号生成方式不做限定,可任意生成,只需保证同一链下业务系统在一毫秒内的所述生成序列号不重复即可,例如可以用从0开始的以1为间隔的等差数列生成所述预设位数序列号。
优选地,所述生成序列号为六位序列号,则在同一毫秒内,任一链下业务系统可发起的调用次数为10万次,极大地提高了随机数的生成能力。
步骤203,将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
具体地,将所述当前时间戳和所述生成序列号合并后,在同一毫秒内,任一链下业务系统可发起预设位数的调用次数。
优选地,所述时间序列号的示例为:20220422183401002000001(=20220422183401002(精确到毫秒的时间戳)+000001(六位序列号)),如此,可以在每毫秒内生成10万个随机数。
具体地,本申请中每秒生成随机数的数量取决于以下两个关键能力:第一,为联盟链的性能,现有技术中一流的联盟链平台超过1万TPS,即每秒可支撑1万个随机数的生成能力,且随着联盟链技术的进步而不断进步;第二,为本申请的限制,本申请中,调用方可控的参数包括自身的公钥和随机数参数,随机数参数的设置方式为毫秒时间戳加预设位数随机数,以六位随机数为例,单个调用者每毫秒可发起输入参数不同的10万次调用,生成10万个随机数,再考虑多个调用者同时发起,则本申请本身对于生成能力无限制。
本申请中,通过设置时间序列号,可以突破现有技术对随机数生成数量的限制,极大地提高了随机数的生成能力,且降低了多个链下业务系统发起重复调用的可能。
步骤103,当所述随机数通道内生成目标区块的时候,构造随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
具体地,将在所述当前区块后,第预设个数生成的区块作为所述目标区块,并在生成所述目标区块的时候构造随机数交易,就引入了随时间变换的无法预测的确定性可信因子,即在发起随机数生成请求时刻的“未来的”连续多个区块链,在发起随机数生成请求的时刻,是无法预知未来的区块数据的,因此极大的提高了防攻击性。
步骤104,根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成所述最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数。
参见图3,为本申请提供的一种基于联盟链的可信随机数生成方法的最终随机数生成流程图;
如图3所示,步骤104包括:
步骤401,确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
具体地,所述数据连接值由多段字符连接组成,对多个字符的连接顺序不做限定。
优选的,多段字符顺序连接确定所述数据连接值。
步骤402,计算所述数据连接值的第一哈希值;
步骤403,计算所述第一哈希值的第二哈希值;
具体地,对所述第一哈希值再度哈希运算获得所述第二哈希值,可以进一步加强最终随机数的保密性。
步骤405,将所述第二哈希值确定为所述最终随机数。
可选地,在输入所述随机数参数时,还可以根据所述链下业务系统的具体使用需求,输入随机数生成范围,对随机数的生成进一步加以限定。
在步骤405之前执行步骤404,判断所述随机数参数是否还包括随机数生成范围;
当所述随机数参数还包括所述随机数生成范围时,将所述第二哈希值确定为所述最终随机数的步骤,还包括:
步骤406,计算所述第二哈希值的数学模N运算结果;
步骤407,将所述数学模N运算结果确定为所述最终随机数。
具体地,当任一链下业务系统输入所述随机数参数时,还可以输入随机数生成范围,进一步获得所需要范围内的随机数。
优选的,随机数生成范围的取值大于0小于2的256次方,如此,可以根据所述链下业务系统的具体使用需求,生成特定范围内的随机数,比如,如果所述链下业务系统为专家遴选系统,可以输入专家的总人数作为所述随机数生成范围,避免生成超范围的无效随机数。
参见图4,为本申请提供的一种基于联盟链的可信随机数生成方法的当前时间戳校验流程图;
进一步地,如图4所示,在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,所述方法还包括:
步骤301,校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
具体地,只有所述当前时间戳大于或等于所述当前区块的生成时间,才能保证所述当前时间戳在所述当前区块的生成时间之后。
步骤302,如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
具体地,只有所述当前时间戳小于所述下一区块的生成时间,才能进一步确定所述当前时间戳在所述当前区块的生成时间之后,且所述当前时间戳后还未生成新的区块。
步骤303,如果所述当前时间戳小于所述下一区块的生成时间,则确定所述时间序列号通过校验。
具体地,本申请在确定所述时间序列号通过校验后,才能确定引入了随时间变换的无法预测的确定性可信因子,即在发起随机数生成请求时刻的“未来的”连续多个区块链。
为了更加清楚地说明所述随机数生成方法,下面通过一个具体示例进行说明。
参见图5,为本申请提供的一种基于联盟链的可信随机数生成方法的一种示例示意图;
如图5所示,在所述随机数通道生成区块m之后,执行步骤102,根据所述客户端发出的生成随机数的随机数请求生成一条参数世界状态,将所述参数世界状态中的所述时间序列号a中的所述当前时间戳记为t,所述当前区块的高度为h;
验证t是否大于或等于th,并小于th+1,验证通过后,将所述目标区块的预设个数设置为4个,则所述目标区块的高度为h+4;
生成所述目标区块时,构造随机数交易,并调用随机数智能合约生成所述最终随机数;
生成所述最终随机数的步骤为:
确定数据连接值,所述数据连接值为高度为h+1、h+2和h+3的区块哈希值,以及所述时间序列号a和所述公钥连接后的字符串;
计算所述数据连接值的第一哈希值HASH1;
计算所述第一哈希值HASH1的第二哈希值HASH2;
如果所述随机数参数不包括随机数生成范围N,则所述第二哈希值HASH2即为最终随机数;
如果所述随机数参数还包括随机数生成范围N,则计算所述第二哈希值HASH2的数学模N运算结果,并将所述数学模N运算结果确定为所述最终随机数。
在本示例中,最终随机数生成过程中,用到了所述当前区块之后的三个区块的哈希值,也就是发起随机数生成请求的未来的三个区块的哈希值作为随机数参数,而未来三个区块的哈希值本身就具有不确定性和不可操纵性,区别于现有技术中由调用者主动设置输入参数的方式,本申请可以将调用方的影响降到最低,从而生成可信随机数。
由上述技术方案可知,本申请提供了一种基于联盟链的可信随机数生成方法,应用于生成随机数的任一链下业务系统,生成方法包括:获取客户端发出的生成随机数的随机数请求;根据随机数请求生成一条参数世界状态,并将参数世界状态存储至当前区块;参数世界状态中记录随机数参数;当前区块为生成参数世界状态时,随机数通道最新生成的区块;当随机数通道内生成目标区块的时候,构造随机数交易;根据参数世界状态,通过随机数交易调用随机数智能合约生成最终随机数。如此,本申请引入随时间变换的无法预测的确定性可信因子,即引入了在发出随机数请求时刻的未来生成的区块哈希值,提高了调用方的抗攻击性,从而生成可信随机数。
与本申请第一实施例提供的一种基于联盟链的可信随机数生成方法相对应,本申请第二实施例提供了一种基于联盟链的可信随机数生成装置用于执行第一方面及各种可实现方式中的一种基于联盟链的可信随机数生成方法,所述生成装置包括:
随机数请求获取模块,用于获取客户端发出的生成随机数的随机数请求;
参数世界状态生成模块,用于根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块;
随机数交易构造模块,用于当所述随机数通道内生成目标区块的时候,构造随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
最终随机数生成模块,用于根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成所述最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数。
进一步地,所述生成装置还包括时间序列号构建模块,用于按照以下步骤构建所述时间序列号:
获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
进一步地,所述生成装置还包括校验模块,用于在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,对所述时间序列号执行以下校验步骤:
校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
如果所述当前时间戳小于所述下一区块的生成时间,则所述时间序列号通过校验。
具体地,所述最终随机数生成模块包括:
数据连接值确定单元,用于确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
第一哈希值获取单元,用于计算所述数据连接值的第一哈希值;
第二哈希值获取单元,用于计算所述第一哈希值的第二哈希值;
最终随机数确定单元,用于将所述第二哈希值确定为所述最终随机数。
进一步地,所述随机数参数还包括随机数生成范围,所述最终随机数确定单元,还用于:
计算所述第二哈希值的数学模N运算结果;
将所述数学模N运算结果确定为所述最终随机数。
本申请第二实施例中的装置各组成模块在执行方法时所起到的作用效果可参见第一实施例中的描述,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段;说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变;本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种基于联盟链的可信随机数生成方法,应用于生成随机数的任一链下业务系统,其特征在于,所述生成方法包括:
获取客户端发出的生成随机数的随机数请求;
根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且在无随机数交易发起时,也按照所述时间间隔生成不包含任何随机数交易的区块;
当所述随机数通道内生成目标区块的时候,构造所述随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数;
其中,所述根据所述参数世界状态,通过所述随机数智能合约生成最终随机数,包括:
确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
计算所述数据连接值的第一哈希值;
计算所述第一哈希值的第二哈希值;
将所述第二哈希值确定为所述最终随机数。
2.根据权利要求1所述的一种基于联盟链的可信随机数生成方法,其特征在于,所述时间序列号按照以下步骤构建:
获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
3.根据权利要求2所述的一种基于联盟链的可信随机数生成方法,其特征在于,在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,所述方法还包括:
校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
如果所述当前时间戳小于所述下一区块的生成时间,则确定所述时间序列号通过校验。
4.根据权利要求1所述的一种基于联盟链的可信随机数生成方法,其特征在于,所述随机数参数还包括随机数生成范围,将所述第二哈希值确定为所述最终随机数的步骤,还包括:
计算所述第二哈希值的数学模N运算结果;
将所述数学模N运算结果确定为所述最终随机数。
5.一种基于联盟链的可信随机数生成装置,其特征在于,用于执行如权利要求1-4中任一项所述的一种基于联盟链的可信随机数生成方法,所述生成装置包括:
随机数请求获取模块,用于获取客户端发出的生成随机数的随机数请求;
参数世界状态生成模块,用于根据所述随机数请求生成一条参数世界状态,并将所述参数世界状态存储至当前区块;所述参数世界状态中记录随机数参数,所述随机数参数包括时间序列号、所述链下业务系统的公钥和所述当前区块的高度;所述当前区块为生成所述参数世界状态时,随机数通道最新生成的区块;所述随机数通道为预先部署在联盟链中用于生成随机数的通道,被配置为自部署时起,按照预设出块时间间隔生成区块,且即便无随机数交易发起,也按照所述时间间隔生成不包含任何随机数交易的区块;
随机数交易构造模块,用于当所述随机数通道内生成目标区块的时候,构造随机数交易,所述目标区块为在所述当前区块后,第预设个数生成的区块;
最终随机数生成模块,用于根据所述参数世界状态,通过所述随机数交易调用随机数智能合约生成所述最终随机数,所述随机数智能合约预先部署在所述随机数通道上,用于生成所述最终随机数;
其中,所述最终随机数生成模块包括:
数据连接值确定单元,用于确定数据连接值,所述数据连接值为将所述当前区块和所述目标区块之间生成的所有区块的哈希值、所述时间序列号和所述公钥连接后的字符串;
第一哈希值获取单元,用于计算所述数据连接值的第一哈希值;
第二哈希值获取单元,用于计算所述第一哈希值的第二哈希值;
最终随机数确定单元,用于将所述第二哈希值确定为所述最终随机数。
6.根据权利要求5所述的一种基于联盟链的可信随机数生成装置,其特征在于,所述生成装置还包括时间序列号构建模块,用于按照以下步骤构建所述时间序列号:
获取当前时间戳,所述当前时间戳为生成所述参数世界状态的时间;
确定生成序列号,所述生成序列号为预设位数序列号,表示所述链下业务系统在每毫秒内生成随机数的数量;
将所述当前时间戳和所述生成序列号合并,构建所述时间序列号。
7.根据权利要求6所述的一种基于联盟链的可信随机数生成装置,其特征在于,所述生成装置还包括校验模块,用于在步骤根据所述参数世界状态,通过所述随机数智能合约生成最终随机数之前,对所述时间序列号执行以下校验步骤:
校验所述当前时间戳是否大于或等于所述当前区块的生成时间;
如果所述当前时间戳大于或等于所述当前区块的生成时间,则校验所述当前时间戳是否小于下一区块的生成时间,所述下一区块为所述当前区块之后生成的第一个区块;
如果所述当前时间戳小于所述下一区块的生成时间,则所述时间序列号通过校验。
8.根据权利要求5所述的一种基于联盟链的可信随机数生成装置,其特征在于,所述随机数参数还包括随机数生成范围,所述最终随机数确定单元,还用于:
计算所述第二哈希值的数学模N运算结果;
将所述数学模N运算结果确定为所述最终随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210572213.6A CN114666068B (zh) | 2022-05-25 | 2022-05-25 | 一种基于联盟链的可信随机数生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210572213.6A CN114666068B (zh) | 2022-05-25 | 2022-05-25 | 一种基于联盟链的可信随机数生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114666068A CN114666068A (zh) | 2022-06-24 |
CN114666068B true CN114666068B (zh) | 2022-10-11 |
Family
ID=82038391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210572213.6A Active CN114666068B (zh) | 2022-05-25 | 2022-05-25 | 一种基于联盟链的可信随机数生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114666068B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
CN111158637A (zh) * | 2019-12-30 | 2020-05-15 | 山东爱城市网信息技术有限公司 | 基于区块链的随机数生成方法、设备及存储介质 |
CN112287029A (zh) * | 2020-11-17 | 2021-01-29 | 北京物资学院 | 一种区块链多链跨链系统及其实现机制 |
CN113489584A (zh) * | 2021-07-02 | 2021-10-08 | 北京泛融科技有限公司 | 一种区块链中随机数的处理方法、装置和电子设备 |
CN113935737A (zh) * | 2021-12-15 | 2022-01-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的随机数生成方法及装置 |
CN114338051A (zh) * | 2022-03-15 | 2022-04-12 | 北京百度网讯科技有限公司 | 区块链获取随机数的方法、装置、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI726650B (zh) * | 2020-03-11 | 2021-05-01 | 宏碁股份有限公司 | 區塊鏈亂數產生系統及區塊鏈亂數產生方法 |
-
2022
- 2022-05-25 CN CN202210572213.6A patent/CN114666068B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
CN111158637A (zh) * | 2019-12-30 | 2020-05-15 | 山东爱城市网信息技术有限公司 | 基于区块链的随机数生成方法、设备及存储介质 |
CN112287029A (zh) * | 2020-11-17 | 2021-01-29 | 北京物资学院 | 一种区块链多链跨链系统及其实现机制 |
CN113489584A (zh) * | 2021-07-02 | 2021-10-08 | 北京泛融科技有限公司 | 一种区块链中随机数的处理方法、装置和电子设备 |
CN113935737A (zh) * | 2021-12-15 | 2022-01-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的随机数生成方法及装置 |
CN114338051A (zh) * | 2022-03-15 | 2022-04-12 | 北京百度网讯科技有限公司 | 区块链获取随机数的方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114666068A (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743173B (zh) | 区块链中出块节点确定方法、区块验证方法及区块链系统 | |
CN112001502B (zh) | 高延时网络环境鲁棒的联邦学习训练方法及装置 | |
CN110399424B (zh) | 区块生成方法、装置、区块链节点及存储介质 | |
US5216715A (en) | Key distribution in public communication networks taking account of security gradations | |
JP2004007690A (ja) | 通信ネットワークにおける第1通信関与体の正当性をチェックする方法および装置 | |
CN113645278B (zh) | 一种区块链的跨链消息传输方法、设备、存储介质 | |
CN111506656A (zh) | 区块链系统的共识处理方法、装置及智能设备、存储介质 | |
CN110928880B (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN112069550B (zh) | 一种基于智能合约方式的电子合同存证系统 | |
CN104303583A (zh) | 用于在通信系统中建立安全连接的系统和方法 | |
CN112035896B (zh) | 一种基于交易方式的电子合同存证系统 | |
CN114519198A (zh) | 区块链共识方法及计算机可读存储介质 | |
CN114666068B (zh) | 一种基于联盟链的可信随机数生成方法及装置 | |
CN110585727B (zh) | 一种资源获取方法及装置 | |
CN115102697A (zh) | 实现区块链上交易双方参与生成随机数的方法、装置以及存储介质 | |
CN115396443A (zh) | 基于时间因子的联盟链共识方法、装置、设备及存储介质 | |
CN112532713B (zh) | 一种区块链的抗分叉检测方法及装置 | |
CN102013976B (zh) | 一种密钥管理方法及系统 | |
CN112217632B (zh) | 一种基于智能合约和哈希链的身份认证方法及装置 | |
CN111614739B (zh) | 网络测量数据存储方法、装置和系统 | |
CN112968921A (zh) | 一种数据更新方法、装置和计算机可读存储介质 | |
CN112583584B (zh) | 一种基于随机数的服务监控系统及方法 | |
CN113259105B (zh) | 一种区块链数据共享方法和系统 | |
CN115083062B (zh) | 信息处理方法、信息发送方法、计算机设备及存储介质 | |
CN113519173B (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 |