一种区块链上共识方法与流程

文档序号:21453898发布日期:2020-07-10 17:48阅读:205来源:国知局
一种区块链上共识方法与流程

本发明涉及区块链技术领域,更具体地说,本发明涉及一种区块链上共识方法。



背景技术:

区块链是一种结合了分布式数据存储、点对点传输、加密算法、以及共识机制等计算机技术的一种新型分布式系统,它由多个参与节点共同维护一套分布式账本,实现了数据信息的防篡改、可追溯等特性,创造了一套安全的分布式信任体系。

区块链中维护一个公开账本需要功能强大、效率高并且安全的共识算法。一个安全稳定的共识算法是区块链中数据保持一致的根本保障。在比特币网络中使用了pow,也称为工作量证明算法,由于这种算法需要消耗大量计算资源,对于电力造成极大的浪费,因此,人们不断的提出各种新的共识算法试图改进它。到目前为止,除pow之外,主流的区块链共识算法还有权益证明(pos)、委托权益证明(dpos)、实用拜占庭容错(pbft)等。这些方法的中心思路均为:作恶有成本,且成本高到还不如为善。但是在使用时,均具有不同的局限性。



技术实现要素:

为实现上述目的,本发明提供如下技术方案:一种区块链上共识方法,包括:

步骤一,在初始化系统时,通过主节点预选出待定主节点,将待定主节点标记为α,提供待定主节点的主节点标记为β,然后待定主节点存储一定数量的加密货币作为抵押,并进行系统节点的数据备份和数据验证;

步骤二,系统中的各个节点从系统内的所有节点处,获取各个节点数据的哈希值,各个节点将数据哈希值与自身的数据进行对比,验证数据的正确性,并在通过对比后,将数据进行保存备份;

在上述的基础上,在进行数据验证的过程中,将数据验证通过低于100%的节点数量计作为a,将该部分节点的状态标记为0,并捕捉经过数据验证的节点数量b,该部分节点的状态标记为1。

在一个优选地实施方式中,所述系统中,设置限定数据验证过程中,最低节点通过数量ω,具体为:其中,κ为系统内所有节点的数量,ω为宕机的节点数量。

在一个优选地实施方式中,还包括:

如果所述节点数量b大于最低节点通过数量ω,则确定待定主节点α为主节点,该节点进行的数据验证合格,该节点α获取主节点存在性证明,所述存在性证明表明系统内各个备份节点存储的数据一致,区块高度、上一块区块哈希值信息一致,并取消主节点和待定主节点的标记α和β。

在一个优选地实施方式中,所述步骤二中,进行数据验证的节点在上一轮预选过程中,其获取的状态标记为1。

在一个优选地实施方式中,所述待定主节点α在上一轮节点预选中获取的标记不能为0。

在一个优选地实施方式中,待定主节点α未通过数据验证时,剔除该节点下一轮选取主节点的资格,将该节点标记为0,在下下轮预选之前,将该节点的状态信息重新标记为1。

在一个优选地实施方式中,上述节点在预选节点过程中获取的节点标记和主节点存在性证明存储于区块链账本中。

本发明的技术效果和优点:

本发明在进行验证的过程中,通过已有主节点进行主节点预选,从源头降低恶意节点的风险,并将系统内的各个节点根据验证过程中不同的结果进行不同的状态标记,并限制状态不合格的节点进行下一轮的节点预选,采用大范围的节点限制,使得异常节点成为主节点的概率大大的降低,有效的控制系统集群中恶意节点的数量,使用的局限小,可在不同的区块链系统内进行使用,节点限制效果好,安全性高。

附图说明

图1为本发明的方法流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示的一种区块链上共识方法,包括:

步骤一,在初始化系统时,通过主节点预选出待定主节点,将待定主节点标记为α,提供待定主节点的主节点标记为β,然后待定主节点存储一定数量的加密货币作为抵押,并进行系统节点的数据备份和数据验证;

步骤二,系统中的各个节点从系统内的所有节点处,获取各个节点数据的哈希值,各个节点将数据哈希值与自身的数据进行对比,验证数据的正确性,并在通过对比后,将数据进行保存备份;

在上述的基础上,在进行数据验证的过程中,将数据验证通过低于100%的节点数量计作为a,将该部分节点的状态标记为0,并捕捉经过数据验证的节点数量b,该部分节点的状态标记为1;

进一步,在上述的基础上,步骤二中,进行数据验证的节点在上一轮预选过程中,其获取的状态标记为1,待定主节点α在上一轮节点预选中获取的标记不能为0;

所述系统中,设置限定数据验证过程中,最低节点通过数量ω,具体为:其中,κ为系统内所有节点的数量,ω为宕机的节点数量。

如果所述节点数量b大于最低节点通过数量ω,则确定待定主节点α为主节点,该节点进行的数据验证合格,该节点α获取主节点存在性证明,所述存在性证明表明系统内各个备份节点存储的数据一致,区块高度、上一块区块哈希值信息一致,并取消主节点和待定主节点的标记α和β。

实施例2

与实施例1不同的是,所述节点数量b小于最低节点通过数量ω;

在初始化系统时,通过主节点预选出待定主节点,将待定主节点标记为α,提供待定主节点的主节点标记为β,然后待定主节点存储一定数量的加密货币作为抵押,并进行系统节点的数据备份和数据验证;

系统中的各个节点从系统内的所有节点处,获取各个节点数据的哈希值,各个节点将数据哈希值与自身的数据进行对比,验证数据的正确性,并在通过对比后,将数据进行保存备份;

在上述的基础上,在进行数据验证的过程中,将数据验证通过低于100%的节点数量计作为a,将该部分节点的状态标记为0,并捕捉经过数据验证的节点数量b,该部分节点的状态标记为1;

将获取的节点数量b与限定最低节点数量ω进行比对,获取所述节点数量b小于最低节点通过数量ω,表明该待定主节点α未通过数据验证,剔除该节点下一轮选取主节点的资格,将该节点标记为0,并根据数据验证的结果,进行处理,具体为:

a、在进行验证时,当待定主节点α获取的状态信息为1时,取消该主节点在下一轮主节点预选的资格,同时保留其在系统内的抵押;

b、在进行验证时,当待定主节点α获取的状态信息为0时,将节点α和节点β从区块链内剔除,并没收其在系统内的抵押,将抵押进行分配。

最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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