结算方法、设备和存储介质技术

技术编号:24517245 阅读:9 留言:0更新日期:2020-06-17 06:40
本发明专利技术提供一种结算方法、设备和存储介质,该方法包括:在执行第一区块中的第一结算交易时,在区块链上存证第一结算交易的结算请求;生成第一区块的第一区块哈希后,查找第一区块的上一区块中是否存在第二结算交易:是,则根据第一区块哈希生成若干随机数;以及,根据若干随机数对第二结算交易的结算请求进行结算。本申请通过在智能合约中配置了当前区块仅进行存证、下一区块再进行结算的延迟结算机制,使得挖矿成功的记账节点即便将与自身利益相关的交易打包到当前区块中,该交易的结算所依赖的随机数需要根据下一区块的区块哈希生成,无法被试图作弊的当前区块的记账节点操纵,从而实现了避免挖矿成功的记账节点通过操纵随机数进行作弊。

Settlement methods, equipment and storage media

【技术实现步骤摘要】
结算方法、设备和存储介质
本申请涉及区块链
,具体涉及一种结算方法、设备和存储介质。
技术介绍
在区块链的许多应用场景中,例如游戏结算、竞猜结算等等,通常都需要根据随机数进行结算。然而由于区块链上的数据需要经过共识,因此只能基于可以被共识的数据生成随机数,导致区块链可以生成的随机数存在被操纵的安全风险。例如,在根据最新区块的区块哈希生成随机数的机制中,用户甲在挖矿成功、获得区块高度为H的区块的打包权时,可以将自己参与竞猜的交易打包到该区块中,并通过调整该区块中交易的顺序等方式改变区块哈希以调整所生成的随机数,实现令自己中奖的作弊。针对上述随机数可能被操纵的安全问题,申请人此前在CN201811351787.0号申请中提出了一种随机数的生成方案,然而该方案的随机数生成原理与chain33的共识机制耦合较深,无法适用于更多的共识机制。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种避免挖矿成功的记账节点通过操纵随机数进行作弊的结算方法、设备和存储介质。第一方面,本专利技术提供一种结算方法,包括:在执行第一区块中的第一结算交易时,在区块链上存证第一结算交易的结算请求;生成第一区块的第一区块哈希后,查找第一区块的上一区块中是否存在第二结算交易:是,则根据第一区块哈希生成若干随机数;以及,根据若干随机数对第二结算交易的结算请求进行结算。第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的结算方法。第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的结算方法。本专利技术诸多实施例提供的结算方法、设备和存储介质通过在智能合约中配置了当前区块仅进行存证、下一区块再进行结算的延迟结算机制,使得挖矿成功的记账节点即便将与自身利益相关的交易打包到当前区块中,该交易的结算所依赖的随机数需要根据下一区块的区块哈希生成,无法被试图作弊的当前区块的记账节点操纵,从而实现了避免挖矿成功的记账节点通过操纵随机数进行作弊;本专利技术一些实施例提供的结算方法、设备和存储介质进一步通过在记账节点恰巧为上一区块所存证的结算交易的利益相关方时,进一步延迟该结算交易的结算,保障了在极低概率的巧合场景下,挖矿成功的记账节点仍无法通过操纵随机数进行作弊。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种结算方法的流程图。图2为图1所示方法的一种优选实施方式的流程图。图3为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本专利技术一实施例提供的一种结算方法的流程图。如图1所示,在本实施例中,本专利技术提供一种结算方法,包括:S12:在执行第一区块中的第一结算交易时,在区块链上存证第一结算交易的结算请求;S14:生成第一区块的第一区块哈希后,查找第一区块的上一区块中是否存在第二结算交易:是,则执行步骤S16:根据第一区块哈希生成若干随机数;以及,S18:根据若干随机数对第二结算交易的结算请求进行结算。以下以用户甲、乙分别在区块高度H1、H1+1挖矿成功获得记账资格为例,对上述方法进行示例性的阐述。当用户甲获得区块高度H1的记账资格后,用户甲的节点A作为区块高度H1的记账节点打包区块Block1,Block1中包括用户丙的用户端生成的结算交易tx1、节点A生成的结算交易tx2。在步骤S12中,节点A在执行Block1中的结算交易tx1、tx2时,仅对各结算交易的结算请求进行存证,而不进行结算;在步骤S14中,节点A在生成Block1的区块哈希hash(Block1)之后,查找Block1的上一区块(区块高度为H1-1)Block0中是否存在结算交易:不存在,则结束。当Block1共识成功、用户乙获得区块高度H1+1的记账资格后,用户乙的节点B作为区块高度H1+1的记账节点打包区块Block2,Block2中包括用户丁的用户端生成的结算交易tx3。在步骤S12中,节点B在执行Block2中的结算交易tx3时,仅对tx3的结算请求进行存证,而不进行结算;在步骤S14中,节点B在生成Block2的区块哈希hash(Block2)之后,查找Block2的上一区块Block1中是否存在结算交易:是,则执行步骤S16,节点B根据hash(Block2)生成随机数r1、r2;以及,步骤S18,节点B根据步骤S16生成的随机数r1、r2分别对tx1和tx2的结算请求进行结算。在本实施例中,步骤S16具体包括:根据第二结算交易的结算请求确定进行结算所需的随机数数量;根据第一区块哈希和预配置的若干种算法生成随机数数量个随机数。例如,根据tx1的结算请求确定需要1个随机数,以及,根据tx2的结算请求确定需要2个随机数,则确定Block1的各结算交易结算需要2个随机数,根据hash(Block2)和预配置的算法生成2个随机数r1和r2。本领域技术人员可以理解,在步骤S16中可以采用本领域常用的任意的随机数生成算法或加密算法生成随机数,可以仅根据第一区块哈希生成随机数,也可以根据第一区块哈希和之前任意的若干区块的区块哈希共同生成随机数,可实现相同的技术效果。又例如,根据tx1的结算请求确定需要1个随机数,则根据hash(Block2)和预配置的算法生成随机数r1;根据tx2的结算请求确定需要2个随机数,则根据hash(Block2)和预配置的算法生成随机数r2和r3(也可以是r1和r2)。在另一实施例中,还可以将步骤S16配置为生成固定个数的随机数,例如,生成2个随机数r1和r2。若步骤S18中需要使用3个随机数,则根据r1和r2生成r3。在上述实施例中,虽然用户A可以在挖矿成功时将自己利益相关的结算交易tx2打包到Block1中,但用户A无法操纵hash(Block2),因此用户A无法进行作弊。上述实施例通过在智能合约中配置了当前区块仅进行存证、下一区块再进行结算的延迟结算机制,使得挖矿成功的记账节点即便将与自身利益相关的交易打包到当前区块中,该交易的结算所依赖的随机数需要根据下一区块的区块哈希生成,无法被试图作弊的当前区块的记账节点操纵,从而实现了避免挖矿成功的记账节点通过操纵随机数进行作弊。...

【技术保护点】
1.一种结算方法,其特征在于,包括:/n在执行第一区块中的第一结算交易时,在区块链上存证所述第一结算交易的结算请求;/n生成所述第一区块的第一区块哈希后,查找所述第一区块的上一区块中是否存在第二结算交易:/n是,则根据所述第一区块哈希生成若干随机数;以及,/n根据所述若干随机数对所述第二结算交易的结算请求进行结算。/n

【技术特征摘要】
1.一种结算方法,其特征在于,包括:
在执行第一区块中的第一结算交易时,在区块链上存证所述第一结算交易的结算请求;
生成所述第一区块的第一区块哈希后,查找所述第一区块的上一区块中是否存在第二结算交易:
是,则根据所述第一区块哈希生成若干随机数;以及,
根据所述若干随机数对所述第二结算交易的结算请求进行结算。


2.根据权利要求1所述的方法,其特征在于,所述根据所述若干随机数对所述第二结算交易的结算请求进行结算包括:
验证所述第一区块的记账节点所对应的第一用户是否为所述第二结算交易的结算请求的利益相关方:
否,则根据所述若干随机数对所述第二结算交易的结算请求进行结算;
是,则将所述第二结算交易的第一交易哈希存入延迟结算列表;
所述方法还包括:
判断所述延迟结算列表中是否存有第三结算交易的第二交易哈希:
是,则验证所述第...

【专利技术属性】
技术研发人员:袁兴强王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江;33

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

1