System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链;具体而言,涉及一种随机数生成方法、装置及电子设备。
技术介绍
1、在区块链上基于可验证随机函数(verifiable random function,vrf)生成可信、可验证的随机数,保证区块链随机性业务(如抽奖、nft铸造、选打包者)的公平具有至关重要的作用。
2、但是目前基于vrf生成随机数据的方法,虽然解决了随机数据源的可靠性,却无法解决区块链节点打包交易的作恶空间;具体地,一般来说需要收集足够多的随机数写入链上合约进行聚合,但在此情况下,区块链节点或验证者可以放弃对其不利的交易,或对其延迟打包、拖延入块,最终影响到随机数的生成结果。
3、可见,传统的链上随机数生成方法存在可信度低的问题。
技术实现思路
1、为解决上述技术问题,本申请的实施例提供了一种随机数生成方法、装置及电子设备,解决了相关技术中链上随机数生成方法存在可信度低的问题。
2、根据本申请实施例的一个方面,提供一种随机数生成方法,所述方法包括:构建用于生成开始时间证明的第一计算服务和用于生成结束时间证明的第二计算服务;当区块链上的随机数收集合约中存在随机数收集请求时,至少两个随机数生成者根据所述第一计算服务生成与所述随机数收集请求对应的交易开始时间、根据可验证随机函数生成子随机数以及根据所述第二计算服务生成与所述随机数收集请求对应的交易结束时间;所述随机数生成者根据所述交易开始时间、子随机数和所述交易结束时间生成随机数提交交易并提交至上链节点,使所述上链节点对
3、可选地,构建用于生成开始时间证明的第一计算服务包括:根据接收到的请求参数生成计算进程;将当前时间作为计算进程的开始时间,并根据所述开始时间生成计算订单号;根据所述计算进程的开始时间、所述计算订单号和计算服务的私钥生成开始时间签名;将所述计算订单号、所述开始时间和所述开始时间签名作为所述第一计算服务的输出。
4、可选地,构建用于生成结束时间证明的第二计算服务包括:根据接收到的计算订单号,获取与所述计算订单号相对应的计算进程;结束所述计算进程,得到输出计算结果和计算证明;将当前时间作为所述计算进程的结束时间;根据所述计算结果、所述计算证明、所述结束时间和所述计算服务的私钥生成结束时间签名;将所述计算结果、所述计算证明、所述结束时间和所述结束时间签名作为所述第二计算服务的输出。
5、可选地,在区块链上的随机数收集合约中存在随机数收集请求之前,所述方法还包括:随机数使用者将随机数收集终止时间和随机数聚合方式作为请求参数,依次调用所述第一计算服务和所述第二计算服务,使所述第一计算服务和所述第二计算服务根据所述请求参数生成时间证明凭据;所述随机数使用者向区块链上的随机数收集合约发起随机数收集请求;当所述随机数收集合约对所述随机数收集请求中的所述时间证明凭证验证合格时,将所述随机数收集请求进行展示。
6、可选地,至少两个随机数生成者根据所述第一计算服务生成与所述随机数收集请求对应的交易开始时间、根据可验证随机函数生成子随机数以及根据所述第二计算服务生成与所述随机数收集请求对应的交易结束时间,包括:随机数生成者将随时数收集请求对应的交易哈希值作为请求参数,调用所述第一计算服务,使所述第一计算服务根据所述交易哈希值生成第一证明凭证;其中,所述第一证明凭证包括交易开始时间;所述随机数生成者根据所述交易哈希值、随机标识和所述第一证明凭证生成声明请求,使上链节点根据所述声明请求进行声明验证;当接收到所述上链节点发送的同意声明后,所述随机数生成者将所述交易哈希值、所述随机标识、所述第一证明凭证中的计算订单号和所述第一证明凭证中的开始时间作为随机数生成算法的种子,通过随机数生成算法和随机数证明算法生成子随机数和随机数证明;随机数生成者根据所述第一证明凭证中的计算订单号调用所述第二计算服务,使所述第二计算服务根据所述计算订单号生成第二证明凭证;其中,所述第二证明凭证包括交易结束时间。
7、可选地,所述随机数生成者根据所述交易开始时间、子随机数和所述交易结束时间生成随机数提交交易并提交至上链节点,使所述上链节点对所述子随机数的可信验证成功后将所述随机数提交交易写入本地交易池,包括:所述随机数生成者将所述第一证明凭证和所述第二证明凭证生成目标证明凭证;所述随机数生成者将所述目标证明凭证、所述子随机数和所述随机数证明生成随机数提交交易;所述上链节点判断出所述目标证明凭证中的交易开始时间小于交易结束时间时,对所述计算证明和所述计算结果进行验证;当确定所述计算证明和所述计算结果是由所述请求参数生成时,通过链上公钥对所述目标证明凭证中的结束时间签名进行验证;当确定所述结束时间签名由所述计算结果、计算证明、开始时间和结束时间的字符串拼接时,通过随机数验证算法对所述子随机数和所述随机数证明进行验证;当所述随机数验证算法对所述子随机数和所述随机数证明验证通过时,所述上链节点将所述将所述随机数提交交易写入本地交易池。
8、可选地,所述上链节点在创建新区块时,根据所述第一计算服务生成与所述新区块对应的区块创建时间,并从所述本地交易池中获取待打包随机数提交交易后根据所述第二计算服务生成与所述新区块对应的区块打包时间,包括:所述上链节点在创建新区块时,根据上一个打包块的哈希值作为请求参数,调用所述第一计算服务,使所述第一计算服务根据上一个打包快的哈希值生成第一区块证明,所述第一区块证明包括新区块的创建开始时间;所述上链节点将本地交易池中获取待打包的随机数提交交易,并调用所述第二计算服务获取第二区块证明;所述第二区块证明包括新区块的创建结束时间;所述上链节点将所述第一区块证明和所述第二区块证明写入新区块块头的时间证明凭证字段;所述上链节点发起上链共识,使共识节点对所述新区块进行验证。
9、可选地,在随机数收集合约根据随机数聚合方式对收集到的子随机数进行聚合生成目标随机数之后,所述方法还包括:随机数生成者从区块链上获取所述上链节点打包的新区块;当确定所述新区块中未存在其提交的随机数提交交易且所述新区块的区块创建时间大于所述随机数提交交易的交易结束时间,所述随机数生成者向所述共识节点发送随机数打包复议,使所述共识节点对所述上链节点的打包交易进行审核。
10、根据本申请实施例的一个方面,提供一种随机数生成装置,所述装置包括:计算服务构建模块,用于构建用于生成开始时本文档来自技高网...
【技术保护点】
1.一种随机数生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,构建用于生成开始时间证明的第一计算服务包括:
3.根据权利要求2所述的方法,其特征在于,构建用于生成结束时间证明的第二计算服务包括:
4.根据权利要求1所述的方法,其特征在于,在区块链上的随机数收集合约中存在随机数收集请求之前,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,至少两个随机数生成者根据所述第一计算服务生成与所述随机数收集请求对应的交易开始时间、根据可验证随机函数生成子随机数以及根据所述第二计算服务生成与所述随机数收集请求对应的交易结束时间,包括:
6.根据权利要求5所述的方法,其特征在于,所述随机数生成者根据所述交易开始时间、子随机数和所述交易结束时间生成随机数提交交易并提交至上链节点,使所述上链节点对所述子随机数的可信验证成功后将所述随机数提交交易写入本地交易池,包括:
7.根据权利要求5所述的方法,其特征在于,所述上链节点在创建新区块时,根据所述第一计算服务生成与所述新区块对应的区块创建
8.根据权利要求1-7任一项所述的方法,其特征在于,在随机数收集合约根据随机数聚合方式对收集到的子随机数进行聚合生成目标随机数之后,所述方法还包括:
9.一种随机数生成装置,其特征在于,所述装置包括:
10.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种随机数生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,构建用于生成开始时间证明的第一计算服务包括:
3.根据权利要求2所述的方法,其特征在于,构建用于生成结束时间证明的第二计算服务包括:
4.根据权利要求1所述的方法,其特征在于,在区块链上的随机数收集合约中存在随机数收集请求之前,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,至少两个随机数生成者根据所述第一计算服务生成与所述随机数收集请求对应的交易开始时间、根据可验证随机函数生成子随机数以及根据所述第二计算服务生成与所述随机数收集请求对应的交易结束时间,包括:
6.根据权利要求5所述的方法,其特征在于,所述随机数生成者根据...
【专利技术属性】
技术研发人员:胡朝新,张俊麒,苏小康,张开翔,姚辉亚,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。