一种基于区块链智能合约生成随机数的方法技术

技术编号:23472851 阅读:24 留言:0更新日期:2020-03-06 14:07
本发明专利技术公开了一种基于区块链智能合约生成随机数的方法。包括:每个参与方生成一个随机数,通过预先公布的哈希算法对随机数进行哈希运算并取其哈希值并通过智能合约写入区块链;将随机数的随机数明文写入区块链公布;对其他参与方公布的随机数通过预先公布的哈希算法进行哈希运算,验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方;将所有有效参与方的随机数进行组合并使用预先公布的随机数算法生成共识随机数。本发明专利技术通过智能合约将各个参与方的随机数哈希值和随机数明文分不同阶段发布到区块链并验证有效性,最后通过统一算法实现随机数的共识。

A method of generating random number based on blockchain smart contract

【技术实现步骤摘要】
一种基于区块链智能合约生成随机数的方法
本专利技术涉及区块链
,更具体地,涉及一种基于区块链智能合约生成随机数的方法。
技术介绍
区块链技术在金融、银行等各大领域得到了日益广泛的应用。区块链技术是利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。随机数生成在很多领域均有广泛的应用,但是因为区块链自身分布式、去中心化的特点,造成多个参与方之间的随机数共识是一个较难解决的问题。传统的随机数生成方法都存在不同的弊端,比如通过区块hash或者区块时间的随机数生成算法容易被出块节点操纵,通过某个黑盒算法对某个提交的值进行计算容易被破解。因此需要一种有效的随机数生成方法为实际应用服务。
技术实现思路
本专利技术的目的是提出一种基于区块链智能合约生成随机数的方法,通过智能合约将各个参与方的随机数哈希值和随机数明文分不同阶段发布到区块链并哈希运算验证随机数的有效性,最后通过统一算法实现随机数的共识。为实现上述目的,本专利技术提出了一种基于区块链智能合约生成随机数的方法,包括:步骤1:在区块链中预先公布哈希算法和生成共识随机数的随机数算法;步骤2:在第一时间阶段内,每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链;步骤3:在第二时间阶段内,每个参与方将所述随机数的随机数明文写入区块链公布;步骤4:在第三时间阶段内,每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方;步骤5:将所有所述有效参与方的随机数进行组合并使用预先公布的所述随机数算法生成所有有效参与方的共识随机数。优选地,在区块链中预先公布哈希算法和生成共识随机数的随机数算法步骤中,所述哈希算法采用包括MD5算法、SHA-2系列算法的其中之一。优选地,在每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链步骤中,所述参与方为共同参与同一个应用场景的区块链用户。优选地,在每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链步骤中,所述参与方之间通过所述智能合约进行数据交互,所述智能合约设置有各个所述参与方之间的业务逻辑。优选地,在每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链步骤中,每个参与方的所述随机数明文在本阶段不能让其他任何参与方获取。优选地,在每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链步骤中,通过所述智能合约将各个参与方发布的所述哈希值记录到区块链账本中。优选地,在每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链步骤中,记录在所述区块链账本中的所述哈希值公开且不可更改,每个参与方能够从所述区块链账本中获取所有参与方的所述哈希值。优选地,在每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方步骤中,每个参与方对公布的所有所述随机数明文通过所述哈希算法逐个进行哈希运算。优选地,在每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方步骤中,提取每条随机数明文哈希运算后的哈希值。优选地,在每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方步骤中,对比验证每条所述随机数明文中的哈希值是否与预先公布的哈希值一致,与所述预先公布的哈希值一致的所述随机数为有效随机数,不一致的以及未公布随机数明文的参与方视为自动取消参与资格并给予惩罚措施。本专利技术的有益效果为:本专利技术中各个参与方在第一阶段将各自的随机数的哈希值公布至区块链,在第二阶段再将各自的随机数明文发布至区块链中,在第三阶段每个参与方对随机数明文进行哈希运算进行有效性的验证,将所有验证有效的随机数组合形成共识随机数,本专利技术的方法不易被破解且有效的避免了某个参与方对随机数的恶意操控,有效地解决了区块链中多个参与方的随机数共识问题。本专利技术的装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本专利技术的特定原理。附图说明通过结合附图对本专利技术示例性实施例进行更详细的描述,本专利技术的上述以及其它目的、特征和优势将变得更加明显,其特征在于,在本专利技术示例性实施例中,相同的参考标号通常代表相同部件。图1示出了根据本专利技术的一种基于区块链智能合约生成随机数的方法的步骤的流程图。图2示出了根据本专利技术的一个实施例的一种基于区块链智能合约生成随机数的方法的步骤的流程图。具体实施方式下面将参照附图更详细地描述本专利技术。虽然附图中显示了本专利技术的优选实施例,然而应该理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本专利技术更加透彻和完整,并且能够将本专利技术的范围完整地传达给本领域的技术人员。图1示出了根据本专利技术的一种基于区块链智能合约生成随机数的方法的步骤的流程图。如图1所示,根据本专利技术的一种基于区块链智能合约生成随机数的方法,包括:步骤1:在区块链中预先公布哈希算法和生成共识随机数的随机数算法;步骤2:在第一时间阶段内,每个参与方生成一个随机数,每个参与方通过预先公布的哈希算法对随机数进行哈希运算并取其哈希值,将哈希值通过智能合约写入区块链;步骤3:在第二时间阶段内,每个参与方将随机数的随机数明文写入区块链公布;步骤4:在第三时间阶段内,每个参与方对其他参与方公布的随机数通过预先公布的哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方;步骤5:将所有有效参与方的随机数进行组合并使用预先公布的随机数算法生成所有有效参与方的共识随机数。在一个示例本文档来自技高网...

【技术保护点】
1.一种基于区块链智能合约生成随机数的方法,其特征在于,包括:/n步骤1:在区块链中预先公布哈希算法和生成共识随机数的随机数算法;/n步骤2:在第一时间阶段内,每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链;/n步骤3:在第二时间阶段内,每个参与方将所述随机数的随机数明文写入区块链公布;/n步骤4:在第三时间阶段内,每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方;/n步骤5:将所有所述有效参与方的随机数进行组合并使用预先公布的所述随机数算法生成所有有效参与方的共识随机数。/n

【技术特征摘要】
1.一种基于区块链智能合约生成随机数的方法,其特征在于,包括:
步骤1:在区块链中预先公布哈希算法和生成共识随机数的随机数算法;
步骤2:在第一时间阶段内,每个参与方生成一个随机数,每个所述参与方通过预先公布的所述哈希算法对所述随机数进行哈希运算并取其哈希值,将所述哈希值通过智能合约写入区块链;
步骤3:在第二时间阶段内,每个参与方将所述随机数的随机数明文写入区块链公布;
步骤4:在第三时间阶段内,每个参与方对其他参与方公布的所述随机数通过预先公布的所述哈希算法进行哈希运算,每个参与方验证其他每个参与方的随机数哈希运算后的哈希值是否有效,验证通过的参与方为有效参与方;
步骤5:将所有所述有效参与方的随机数进行组合并使用预先公布的所述随机数算法生成所有有效参与方的共识随机数。


2.根据权利要求1所述的基于区块链智能合约生成随机数的方法,其特征在于,所述步骤1还包括:
所述哈希算法采用包括MD5算法、SHA-2系列算法的其中之一。


3.根据权利要求1所述的基于区块链智能合约生成随机数的方法,其特征在于,所述步骤2还包括:
所述参与方为共同参与同一个应用场景的区块链用户。


4.根据权利要求1所述的基于区块链智能合约生成随机数的方法,其特征在于,所述步2还包括:
所述参与方之间通过所述智能合约进行数据交互,所述智能合约设置有各个所述参与方之间的业务逻辑...

【专利技术属性】
技术研发人员:郝汉李立高辉杨胜
申请(专利权)人:北京版全家科技发展有限公司
类型:发明
国别省市:北京;11

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

1