一种基于区块链的共识算法的制作方法

文档序号:19149762发布日期:2019-11-15 23:56阅读:484来源:国知局
一种基于区块链的共识算法的制作方法

本发明属于区块链技术领域,特别是涉及一种基于区块链的共识算法。



背景技术:

区块链是以比特币为代表的数字加密货币体系的核心支撑技术,可以金融、经济、科技甚至政治等领域带来深刻变革,它融合了分布式系统、密码学、博弈论等学科建立了一种新型的信任模型,共识机制作为区块链技术的核心,有着维护区块链系统稳定运行和节点相互信任的重要作用。

近年来随着区块链技术的火热,共识算法叫之前有了长足的进步,收钱通过分析区块链的核心技术引出共识机制的应用场景和要解决的问题,随后深入介绍了共识机制发展到目前为止代表性的算法并进行分析。

目前,区块链的共识算法一般采用pbft算法及其改进算法,pbft类算法能耗低,吞吐量较大,具有最终确定性,pbft算法是第一个得到广泛应用的拜占庭容错算法,在pbft算法中,至多可以容忍不超过系统全部节点数量的1/3的拜占庭节点,即如果有超过2/3的正常点,整个系统及可以正常工作;但pbft类算法应用到区块链时,普遍存在以下问题:共识过程中,所有节点完全平等,没有关于可信度和可靠性的区分,所有节点的话语权没有差别,不符合真实场景;错误节点在共识阶段中作恶无法别其他节点发现和剔除,从而导致达成交易速度慢、确认难度高的问题。

因此,本发明采用dpow算法提出了一种提高交易的去中心化的新的共识算法,能够有效解决上述问题。



技术实现要素:

本发明的目的在于提供一种基于区块链的共识算法,通过在区块链网络中使用运行dpow共识算法实现标准接口与网络层进行交互,在共识层设计完整的框架接口,方便对共识层进行扩展和升级,利用dpow共识算法分散了数据上链的难度,使所有参与其中的角色能够达成一致意见,解决了现有的数据上链困难、共识难度大和耗费资源的问题。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为一种基于区块链的共识算法,包括如下步骤:

步骤s1:构建参与网络中所有角色的逻辑关系;

步骤s2:利用步骤s1中存储的id快速查找最近区域内的其他节点并进行连接;

步骤s3:节点发出的信息进行交叉签名,接收的节点验证签名是否包含合法签名;

步骤s4:节点将自己的提议达成共识;

步骤s5:提议消息的发起人接受到足够确认节点个数的消息后,将消息发布到主链上;

步骤s6:其他节点接收到新的主链信息,达成提议共识。

优选地,所述步骤s1中,将网络中所有节点均生成一个128位的节点id;所述节点id包括一32位区域标识码、一32位节点角色标识码、一32位寻址深度标识码和一32位随机字符;当连接到其他节点时将该id发送给其他节点,其他节点接收到该id后,根据区域标示码、节点角色标识码、寻址深度码对每个节点进行分类存储。

优选地,所述步骤s2中,当节点之间进行通信时,利用步骤s1中存储的id,快速查找最近区域内的其他节点并进行连接,将一个角色的信息快速传播给该网络中的其他角色。

优选地,步骤s3中,信息每经过一个节点,该节点的信息都会将自己的签名信息附加在该条信息上,当信息接收到每一个角色的信息时,都会验证该信息是否包含合法签名。

优选地,所述步骤s4中,节点之间提议达成共识的步骤如下:

步骤s41:发出一段信息,该消息包括节点id、提议内容、需要其他节点验证的个数、该提议生效时间、该节点自己的签名;

步骤s42:利用步骤s2将该段信息快速发送给其他的节点;

步骤s43:其他节点收到该段信息后利用步骤s3验证该消息是否合法,然后判断是否同意该消息中包含的提议,若不同意,则丢弃该段信息,共识过程终止;若同意,则检验是否达到该信息中所要求的需要验证的节点个数。

优选地,所述步骤s43中,若检验信息达到所要求的节点个数,则加上自己的签名信息,并将该消息返回给发出节点;若检验信息没有达到所要求的节点个数,则加上自己的签名信息,并将该信息发送给其他节点。

优选地,所述步骤s5中,当提议消息的发起人接收到了有足够确认节点个数的消息,则将该消息发布到主链上,发布到主链上的具体步骤如下:

步骤s51:获取当前本地存储的主链的高度;

步骤s52:将该主链高度加一;

步骤s53:生成新的主链消息,包括增加后的主链高度、前一个主链消息的hash值、当前消息的hash值和消息原文、64位随机码;

步骤s54:将新生成的主链消息利用步骤s2发送给其他节点。

优选地,所述步骤s6中,其他节点接收到新的主链消息时,先验证该主链消息中的所有签名,再验证该主链消息的高度;若该两项验证条件同时有效,则将该主链消息加入到自己保存的主链上,该提议达成共识;若该两项验证条件有一项无效或两项均无效,则丢弃该主链消息,该提议未达成共识。

本发明具有以下有益效果:

本发明通过在区块链网络中使用运行dpow共识算法实现标准接口与网络层进行交互,在共识层设计完整的框架接口,方便对共识层进行扩展和升级,利用dpow共识算法分散了数据上链的难度,使所有参与其中的角色能够达成一致意见,节约资源,降低了共识难度。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种基于区块链的共识算法步骤图;

图2为各节点之间提议达成共识的步骤图;

图3为消费发布的主链上的步骤图。

具体实施方式

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

请参阅图1所示,本发明为一种基于区块链的共识算法,包括如下步骤:

步骤s1:构建参与网络中所有角色的逻辑关系;

步骤s2:利用步骤s1中存储的id快速查找最近区域内的其他节点并进行连接;

步骤s3:节点发出的信息进行交叉签名,接收的节点验证签名是否包含合法签名;

步骤s4:节点将自己的提议达成共识;

步骤s5:提议消息的发起人接受到足够确认节点个数的消息后,将消息发布到主链上;

步骤s6:其他节点接收到新的主链信息,达成提议共识。

其中,步骤s1中,将网络中所有节点均生成一个128位的节点id;节点id包括一32位区域标识码、一32位节点角色标识码、一32位寻址深度标识码和一32位随机字符;当连接到其他节点时将该id发送给其他节点,其他节点接收到该id后,根据区域标示码、节点角色标识码、寻址深度码对每个节点进行分类存储,使其达到,每一个角色都可以快速的连接到另一个角色。

其中,步骤s2中,当节点之间进行通信时,利用步骤s1中存储的id,快速查找最近区域内的其他节点并进行连接,将一个角色的信息快速传播给该网络中的其他角色。

其中,步骤s3中,信息每经过一个节点,该节点的信息都会将自己的签名信息附加在该条信息上,当信息接收到每一个角色的信息时,都会验证该信息是否包含合法签名。

请参阅图2所示,步骤s4中,节点之间提议达成共识的步骤如下:

步骤s41:发出一段信息,该消息包括节点id、提议内容、需要其他节点验证的个数、该提议生效时间、该节点自己的签名;

步骤s42:利用步骤s2将该段信息快速发送给其他的节点;

步骤s43:其他节点收到该段信息后利用步骤s3验证该消息是否合法,然后判断是否同意该消息中包含的提议,若不同意,则丢弃该段信息,共识过程终止;若同意,则检验是否达到该信息中所要求的需要验证的节点个数。

其中,步骤s43中,若检验信息达到所要求的节点个数,则加上自己的签名信息,并将该消息返回给发出节点;若检验信息没有达到所要求的节点个数,则加上自己的签名信息,并将该信息发送给其他节点。

请参阅图3所示,步骤s5中,当提议消息的发起人接收到了有足够确认节点个数的消息,则将该消息发布到主链上,发布到主链上的具体步骤如下:

步骤s51:获取当前本地存储的主链的高度;

步骤s52:将该主链高度加一;

步骤s53:生成新的主链消息,包括增加后的主链高度、前一个主链消息的hash值、当前消息的hash值和消息原文、64位随机码;

步骤s54:将新生成的主链消息利用步骤s2发送给其他节点。

其中,步骤s6中,其他节点接收到新的主链消息时,先验证该主链消息中的所有签名,再验证该主链消息的高度;若该两项验证条件同时有效,则将该主链消息加入到自己保存的主链上,该提议达成共识;若该两项验证条件有一项无效或两项均无效,则丢弃该主链消息,该提议未达成共识。

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

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