一种区块链共识方法及系统与流程

文档序号:15878498发布日期:2018-11-09 17:26阅读:314来源:国知局
一种区块链共识方法及系统与流程

本发明涉及数据存储技术领域,尤其涉及一种区块链共识方法及系统。

背景技术

区块链是共识算法、分布式存储、点对点传输、加密算法等计算机技术的新型系统。被广泛应用于证券交易、电子商务、智能合约、物联网、社交通讯以及文件存储等众多领域。当前的区块链技术是由一串使用密码学方法产生的数据块组成的,每一个区块都包含了上一个区块的哈希值(hash),并且确保按照时间顺序在上一个区块之后产生,从创始区块(genesisblock)开始连接到当前区块,形成块链。共识算法是区块链的核心技术。它决定着区块链的效率和部分安全性。

现有的区块链技术存在以下缺点:目前区块链的共识算法有基于算力的(pow)、基于权限的(pos)、基于审计的(pow+pos)、基于设定代理人的(dpos)和基于拜占庭算法的及变形。

通过情况常主要有三分之二或四分之三的单个节点通过才可形成共识,而设定有限个代表形成共识的方法面临攻击的风险。而且整个区块链中,耗费节点的通信和计算资源,容易导致网络堵塞。



技术实现要素:

本发明所要解决的技术问题在于,针对现有技术的上述不足,提出一种区块链共识方法及系统。

本发明解决其技术问题,提出一种区块链共识方法及系统。

所述区块链共识方法包括:

在区块链节点中随机选择预设数量的节点;

在选出的节点中通过预设的共识机制产生新区块,并将产生的新区块连接至区块链。

可选地,所述在区块链节点中随机选择预设数量的节点,具体包括:

生成一个随机数,所述随机数小于区块链节点的数目;

以二进制表示所述随机数,确定数值为1的二进制位;

以每个二进制位对应一个区块链节点,确定二进制位为1的位对应的节点。

可选地,所述共识机制为基于算力的(pow)的共识机制、基于权限的(pos)的共识机制或基于受托人机制(dpos)的共识机制。

可选地,所述预设数量根据上一个区块产生的周期进行确定。

本申请还提供一种数据存储方法,其包括:使用区块链存储数据,其中,区块链基于上述的区块链共识方法。

另一方面,本申请还提供一种区块链共识系统,其包括:

节点选择模块,用于在区块链节点中随机选择预设数量的节点;

区块产生模块,用于在选出的节点中通过预设的共识机制产生新区块,并将产生的新区块连接至区块链。

可选地,所述节点选择模块包括:

随机数生成子模块,用于生成一个随机数,所述随机数小于区块链节点的数目;

二进制位确定子模块,用于以二进制表示所述随机数,确定数值为1的二进制位;

节点确定确定子模块,用于以每个二进制位对应一个区块链节点,确定二进制位为1的位对应的节点。

可选地,所述共识机制为基于算力的(pow)的共识机制、基于权限的(pos)的共识机制或基于受托人机制(dpos)的共识机制。

可选地,所述预设数量根据上一个区块产生的周期进行确定。

在本申请中,在区块链节点中随机选择若干个节点,在选择的节点中实现共识,并将产生的新区块连接至区块链,本申请对比现有技术有如下的有益效果:它提高现有共识的效率减轻在共识时通信和计算的压力,解决了频繁的发送交易容易导致的网络堵塞的问题。

附图说明

图1是根据一示例性实施例示出的区块链共识方法的流程图。

图2是根据一示例性实施例示出的区块链共识方法的流程图。

图3是根据一示例性实施例示出的区块链共识系统的结构框图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

还应当理解,此处所描述的具体实施例仅仅用于理解本发明,并不用于限定本发明。

在本申请中,区块链可以用于存储各种数据,例如,交易数据、金融数据。

图1是根据一示例性实施例示出的区块链共识方法的流程图,结合附图详述如下:

步骤s101,在区块链节点中随机选择预设数量的节点。

在本申请实施例中,所述预设数量可根据上一个区块产生的周期进行确定。例如,可设定一个预设的区块产生周期,当上一个区块产生的周期长于该预设周期时,可在上一次的基础上减小少选择的节点数,反之,增加选择的节点数。

一般来说,区块链存在众多的节点。通过随机选择的方式在众多的区块链节点中选择预设数量的节点。

需要说明的是,区块链节点指处于活动状态的节点,即需要存储区块链数据的节点。

在本申请实施例中,预设数量远远小于区块链节点数量;被选出的节点用于应用共识机制生成新区块,提高了共识的效率。

步骤s102,在选出的节点中通过预设的共识机制产生新区块,并将产生的新区块连接至区块链。

在本申请实施例中,所述共识机制为基于算力的(pow)的共识机制、基于权限的(pos)的共识机制或基于受托人机制(dpos)的共识机制。这些共识机制为现有技术,这里不再赘述。

在本申请实施例中,在选出的节点中实现共识,由这些节点产生新的区块,进而验证所述区块,验证通过之后,整个区块链的节点将产生的新区块增加至区块链。

其中,区块的验证过程可由选出的节点进行,也可以有整个区块链的节点进行。

在本申请中,在区块链节点中随机选择若干个节点,在选择的节点中实现共识,并将产生的新区块连接至区块链,本申请对比现有技术有如下的有益效果:它提高现有共识的效率减轻在共识时通信和计算的压力,解决了频繁的发送交易容易导致的网络堵塞的问题。

此外,由于用于共识的节点是随机选择的,本申请提供的方法仍然可以保持较高的安全性。

图2是根据一示例性实施例示出的区块链共识方法的流程图,本实施例基于图1对应的实施例,结合附图详述如下:

步骤s201,生成一个随机数,所述随机数小于区块链节点的数目。

在本实施例中,产生一个随机数,所述随机数可远远小于区块链节点的数目。

步骤s202,以二进制表示所述随机数,确定数值为1的二进制位。

在本实施例中,以二进制表示所述随机数,将所述随机数中二进制位为1的位筛选出来。

步骤s203,以每个二进制位对应一个区块链节点,确定二进制位为1的位对应的节点。

在本实施例中,每一个随机数的二进制位对应一个区块链节点,确定二进制位为1的位对应的节点。

具体地,所述随机数为100,其对应的二进制为:1100100,使每个位对应一个区块链节点;从左边的高位至右边的低位为1的二进制位为第一位、第二位、第五位,确定这些位对应的区块链节点。

步骤s204,在选出的节点中通过预设的共识机制产生新区块,并将产生的新区块连接至区块链。

在本实施例中,通过产生随机数的方式,在活动区块链节点中选择用于共识的节点,方便实现。

本申请还提供一种数据存储方法,使用区块链存储数据,其中,区块链基于图1和图2对应的实施提供的区块链共识方法。相关的内容参考相关的实施例,这里不再赘述。

图3是根据一示例性实施例示出的区块链共识系统的结构框图。结合附图详述如下:

本实施例提供一种区块链共识系统,其包括:

节点选择模块31,用于在区块链节点中随机选择预设数量的节点;

区块产生模块32,用于在选出的节点中通过预设的共识机制产生新区块,并将产生的新区块连接至区块链。

可选地,所述节点选择模块31包括:

随机数生成子模块,用于生成一个随机数,所述随机数小于区块链节点的数目;

二进制位确定子模块,用于以二进制表示所述随机数,确定数值为1的二进制位;

节点确定确定子模块,用于以每个二进制位对应一个区块链节点,确定二进制位为1的位对应的节点。

可选地,所述共识机制为基于算力的(pow)的共识机制、基于权限的(pos)的共识机制或基于受托人机制(dpos)的共识机制。

可选地,所述预设数量根据上一个区块产生的周期进行确定。

由于本实施例示出的区块链共识系统应用于前述的方法实施例,相关的内容参见前述的方法实施例,这里不再赘述。

应当理解,本发明中的步骤并没有严格的执行顺序,所有可预见并且不影响功能的实现的变化都应该在本发明的保护范围内。

在本申请所提供的实施例中,应该理解所描述的方法和系统都是示意性的,在实际实施过程中通过调整可以有所差别。

另外,各功能单元或模块的具体名称也只是为了便于相互区分,并不用于本发明的保护范围。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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