一种区块链的随机数产生方法和系统与流程

文档序号:15845044发布日期:2018-11-07 08:54阅读:1390来源:国知局
一种区块链的随机数产生方法和系统与流程

本发明涉及互联网技术领域,尤其涉及一种区块链的随机数产生方法和系统。

背景技术

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链是比特币的底层技术,像一个数据库账本,记载所有的交易记录。这项技术也因其安全、便捷的特性逐渐得到了银行与金融业的关注。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本;广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

但是在现有技术中,区块链中产生的子随机数容易受到子随机数生产者的干扰,从而导致区块链中的数据容易被人为控制利用和篡改。



技术实现要素:

本发明的目的是为了解决现有技术中的问题,而提出的一种区块链的随机数产生方法和系统。

为了实现上述目的,本发明采用了如下技术方案:

一种区块链的随机数产生方法,包括以下步骤:

(1)、区块链各授权节点根据门限秘密分享算法产生子随机数;

(2)、将产生子随机数分成n个碎片,形成子随机数碎片,所述n为自由设定的参数;

(3)、区块链各授权节点把子随机数分成n份的碎片分别发送给n个区块链授权节点;

(4)、区块链各授权节点分别对子随机数的n个碎片进行加密;

(5)、区块链各授权节点分别把子随机数的n个碎片进行加密后的结果分别发送给n个区块链授权节点;

(6)、区块链授权节点收到相应的子随机数碎片,并对其进行解密;

(7)、各授权节点把解密后的子随机数碎片发送到组装随机数的授权节点;

(8)、组装随机数的授权节点接收到各子随机数碎片,组装随机数的授权节点恢复最先到达的几个子随机数;

(9)、组装随机数的授权节点把恢复的前几个子随机数组装成最终随机数。

优选的,所述步骤(4)中对子随机数的n个碎片加密的方法为:先获取获取授权节点的公钥地址,再分别用公钥把子随机数碎进行加密。

优选的,所述步骤(6)中解密的方法为:区块链各授权节点利用私钥对收到的子随机数碎片进行解密。

优选的,每个子随机数的授权节点只能看见其他子随机数授权节点所共享的部分子随机数。

优选的,所述步骤(9)中产生的最终随机数需要放入区块链中,并进行全网广播通告。

本发明还提出了一种区块链的随机数产生的系统,包括子随机数生成模块、子随机数发送模块、子随机数接收模块和子随机数组成模块,所述子随机数生成模块用于区块链各授权节点生成子随机数,并将生成的子随机数分成若干个碎片,形成子随机数碎片;所述子随机数发送模块是用于区块链各授权节点把形成的子随机数碎片发送给其他的授权节点,并对子随机数碎片进行加密;所述子随机数接收模块是用于区块链各授权节点接收其他的授权节点发送的加密的子随机数碎片,对其进行解密还原,并把还原后的子随机数碎片发送给组装随机数的授权节点;子随机数组成模块是用于组装随机数的授权节点将收到的子随机数碎片组装成最终随机数,并放入区块链中。

与现有技术相比,本发明提供了一种区块链的随机数产生方法和系统,具备以下有益效果:该区块链的随机数产生方法和系统,通过在随机数产生机制中引入秘密共享技术使子随机数生产者节点用其他子随机数生产者节点的公钥加密写入区块链中,然后其他子随机数生产者节点对各自收到的加密后的子随机数进行解密后还原恢复所有子随机数并随机组合各子随机数,合成最终随机数,达到多个子随机数的生产者节点不能有意的在其它节点已经产生子随机数的情况下再去产生随机数的目的,组装节点利用网络存在的不确定性,优先恢复并使用最先到达的前几个子随机数按一定的“随机规则”组装成最终随机数,以达到不能篡改和去预测数据的目的。

该装置中未涉及部分均与现有技术相同或可采用现有技术加以实现,本发明结构简单,操作方便。

附图说明

图1为本发明提出的一种区块链的随机数产生方法的流程图;

图2为本发明实施例2提出的一种区块链的随机数产生方法的流程图;

图3为本发明提出的一种区块链的随机数产生的系统的结构组成图

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例1

如图1所示,一种区块链的随机数产生方法,包括以下步骤:

(1)、区块链各授权节点根据门限秘密分享算法产生子随机数;

(2)、将产生子随机数分成n个碎片,形成子随机数碎片,所述n为自由设定的参数;

(3)、区块链各授权节点把子随机数分成n份的碎片分别发送给n个区块链授权节点;

(4)、区块链各授权节点分别对子随机数的n个碎片进行加密;

(5)、区块链各授权节点分别把子随机数的n个碎片进行加密后的结果分别发送给n个区块链授权节点;

(6)、区块链授权节点收到相应的子随机数碎片,并对其进行解密;

(7)、各授权节点把解密后的子随机数碎片发送到组装随机数的授权节点;

(8)、组装随机数的授权节点接收到各子随机数碎片,组装随机数的授权节点恢复最先到达的几个子随机数;

(9)、组装随机数的授权节点把恢复的前几个子随机数组装成最终随机数。

进一步的,所述步骤(4)中对子随机数的n个碎片加密的方法为:先获取获取授权节点的公钥地址,再分别用公钥把子随机数碎进行加密。

进一步的,所述步骤(6)中解密的方法为:区块链各授权节点利用私钥对收到的子随机数碎片进行解密。

进一步的,每个子随机数的授权节点只能看见其他子随机数授权节点所共享的部分子随机数。

进一步的,所述步骤(9)中产生的最终随机数需要放入区块链中,并进行全网广播通告。

实施例2

如图2所示,区块链各授权节点产生子随机数a,并把子随机数a分成a1、a2、a3、an个碎片,形成子随机数碎片a1、a2、a3、an;区块链各授权节点获取节点1、2、3、n的公钥地址,并分别用公钥把子随机数碎片a1、a2、a3、an进行加密;区块链各授权节点分别把子随机数碎片a1、a2、a3、an加密后的数据分别发送给节点1、2、3、n;区块链授权节点1收到子随机数碎片a1,并用私钥对子随机数碎片a1进行解密,区块链授权节点2收到子随机数碎片a2,并用私钥对子随机数碎片a2进行解密,区块链授权节点3收到子随机数碎片a3,并用私钥对子随机数碎片a3进行解密,区块链授权节点n收到子随机数碎片an,并用私钥对子随机数碎片an进行解密;将解密后的子随机数碎片a1、a2、a3、an分别发送到组装随机数的授权节点,组装随机数的授权节点恢复最先到达的子随机数,并把恢复的子随机数组装成最终随机数,将组装成的最终随机数放入区块链中,并进行全网广播通告。

实施例3

如图3所示,一种区块链的随机数产生的系统,包括子随机数生成模块、子随机数发送模块、子随机数接收模块和子随机数组成模块,所述子随机数生成模块用于区块链各授权节点生成子随机数,并将生成的子随机数分成若干个碎片,形成子随机数碎片;所述子随机数发送模块是用于区块链各授权节点把形成的子随机数碎片发送给其他的授权节点,并对子随机数碎片进行加密;所述子随机数接收模块是用于区块链各授权节点接收其他的授权节点发送的加密的子随机数碎片,对其进行解密还原,并把还原后的子随机数碎片发送给组装随机数的授权节点;子随机数组成模块是用于组装随机数的授权节点将收到的子随机数碎片组装成最终随机数,并放入区块链中。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1