基于验证的区块链共识方法技术

技术编号:19515422 阅读:49 留言:0更新日期:2018-11-21 10:17
本发明专利技术涉及一种基于验证的区块链共识方法。客户端将请求消息发送到验证发起节点;验证发起节点组织预准备消息广播给网络中其它各验证节点;其它验证节点组织签名消息返回验证发起节点;验证发起节点统计正确接收的签名消息数量,达到给定阈值时执行本节点的提交操作,并组织验证消息广播给网络中其它各验证节点;其它验证节点依次核验消息中的多个数字签名,当核验通过的数字签名数量达到给定阈值时,执行本节点的提交操作,并组织验证回复消息返回给验证发起节点;验证发起节组织响应消息反馈给客户端。相比于实用拜占庭容错共识方法来说,本发明专利技术减少了网络通信次数和通信数据量,提高了共识的效率。

【技术实现步骤摘要】
基于验证的区块链共识方法
本专利技术涉及区块链
,特别是涉及一种基于验证的区块链共识方法。
技术介绍
区块链是一种去中心化的、由各节点参与的分布式数据库技术,其具有完备可追溯、去中心化和去信用化等特点。区块链没有一个中心的机构,各个节点信息的一致性是通过区块链的共识机制来保证的。区块链共识机制是在拜占庭容错的分布式一致性算法基础上,根据具体业务场景传输和同步数据的通信模型。共识算法是区块链的核心技术之一,算法的性能直接影响系统的有效性。目前常见的共识算法有工作量证明机制、权益证明机制、授权股权证明机制、实用拜占庭容错协议等。其中,实用拜占庭容错协议(PracticalByzantineFaultTolerance,PBFT),是一种采用许可投票、少数服从多数来选举领导者进行记账的共识机制。该共识机制允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,并且该共识机制容许拜占庭容错,允许33%的节点作恶,容错性为33%。实用拜占庭容错协议适用于联盟链环境,但是网络节点共识效率不高,尤其是网络节点数量增加时,网络通信次数和通信数据量均迅速增大,需要设计有针对性的共识算法,以提高共识的效率,减少网络流量。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供了一种基于验证的区块链共识方法,能够在网络中节点数量较大时,区块链系统高效的达成一致。为了解决上述技术问题,本专利技术提供一种基于验证的区块链共识方法,所述方法包括:(1)请求阶段,客户端C将请求消息发送到网络中的验证发起节点A0。所述请求消息中包含客户端发送的消息正文内容;所述验证发起节点是指网络中的一个验证节点,该节点接收并处理客户端发送的请求消息。(2)准备阶段,验证发起节点A0接收到请求消息后进行消息的合法性检查,检查通过后组织预准备消息广播给网络中其它各验证节点Ai。所述预准备消息中至少包含了验证发起节点的唯一身份标识、消息正文内容以及验证发起节点的数字签名Φ(a0),进一步,所述节点的唯一身份标识能够唯一标识区块链网络中的一个节点,所述验证发起节点的数字签名Φ(a0)是采用验证发起节点的私钥对消息正文内容计算生成的数字签名。(3)签名阶段,其它验证节点Ai接收到预准备消息后进行消息的合法性检查,核验数字签名Φ(a0)是否正确,检查通过后组织签名消息返回给验证发起节点A0。所述核验数字签名Φ(a0)是采用验证发起节点A0的公钥对预准备消息中的数字签名字段进行核验的过程;所述签名消息中至少包含了当前节点Ai的节点唯一身份标识、本节点的数字签名Φ(ai),进一步,所述本节点的数字签名Φ(ai)是采用当前节点的私钥对消息正文内容计算生成的数字签名。(4)验证阶段,验证发起节点A0接收到其它节点Ai发来的签名消息后进行消息的合法性检查,核验数字签名Φ(ai)是否正确,当合法性检查和数字签名核验通过的签名消息数量达到给定阈值时,开始执行提交操作,将消息正文内容以及数字签名等相关信息写入本节点数据库中,并组织验证消息广播给网络中其它各验证节点。所述核验数字签名Φ(ai)是采用节点Ai的公钥对签名消息中的数字签名进行核验的过程;所述验证消息至少包含了各验证通过的签名消息所对应的节点唯一身份标识和节点Ai的数字签名Φ(ai),进一步,所述节点Ai的数字签名Φ(ai)是采用节点Ai的私钥对消息正文内容计算生成的数字签名。(5)验证回复阶段,其它验证节点Ai接收到验证消息后进行消息的合法性检查,依次核验消息中多个数字签名Φ(ai)是否正确,当合法性检查通过并且核验通过的数字签名Φ(ai)数量达到给定阈值时,开始执行提交操作,将消息正文内容等相关信息写入本节点数据库中,并组织验证回复消息返回给验证发起节点A0。所述依次核验消息中多个数字签名Φ(ai)是指:对消息中的每个数字签名Φ(ai)均采用对应节点Ai的公钥进行核验的过程;所述验证回复消息至少包含了当前节点Ai的节点唯一身份标识。(6)响应阶段,验证发起节点A0接收到其它节点Ai发来的验证回复消息后进行消息的合法性检查,当检查通过的验证回复消息数量达到给定阈值时,组织响应消息反馈给客户端C,通知客户端C请求消息的共识结果。本专利技术与现有技术相比,其显著优点在于,数字签名技术能够验证数据的发起方并且保证传输的内容不被篡改,本专利技术利用数字签名的特点设计了基于验证的共识方法,减少了网络通信次数和通信数据量,提高了共识的效率。附图说明图1为基于验证的区块链共识方法的一个具体实施例的共识过程流程示意图。图2为基于验证的区块链共识方法的流程图。具体实施方式容易理解,依据本专利技术的技术方案,在不变更本专利技术的实质精神的情况下,本领域的一般技术人员可以想象出本专利技术基于验证的区块链共识方法的多种实施方式。因此,以下具体实施方式和附图仅是对本专利技术的技术方案的示例性说明,而不应当视为本专利技术的全部或者视为对本专利技术技术方案的限制或限定。图1为基于验证的区块链共识方法的一个具体实施例的共识过程流程示意图。按照本专利技术的一个实施例,假设C为客户端,A0、A1、A2、A3为4个参与共识的验证节点,其中,A0、A1、A2为正常运行的节点,A3为宕机节点。验证发起节点A0从接收客户端请求到返回客户端响应经过了预准备、签名、验证和验证回复四个阶段。如图2所示,是本专利技术实施例基于验证的区块链共识方法的流程图,包括以下基本步骤:步骤101为请求阶段,客户端C将请求消息发送到网络中的验证发起节点A0。请求消息的形式为<REQUEST,t,ct,Φ(c),m>,其中,字符串常量REQUEST表示消息类型为请求消息;t为时间戳;ct为客户端唯一身份标识,用于唯一确定一个客户端;Φ(c)是客户端C对消息正文内容的数字签名;m为消息正文内容。客户端C将请求消息发送到网络中的验证发起节点A,其中请求消息中包含了客户端C需要记录到区块链上的消息正文内容m。步骤102为预准备阶段,验证发起节点A0接收到请求消息后进行消息的合法性检查。检查消息格式和消息发起方的身份标识是否正确,采用客户端C的公钥核验请求消息中的数字签名是否正确。如果合法性检查不通过,则不会继续处理;否则合法性检查通过后会组织预准备消息广播发送给网络中其它各验证节点A1、A2、A3。预准备消息的形式为<PRE-PREPARE,v,n,at0,Φ(a0),D(m),m>,其中,字符串常量PRE-PREPARE表示消息类型为预准备消息;v是本次共识过程的一个视图编号,每次的共识过程完成并提交后该视图编号加一;n是生成的请求序号,对每一次的请求进行顺序编号;at0是节点A0在网络中的唯一身份标识;Φ(a0)是节点A0采用私钥对消息正文内容的数字签名;D(m)是消息正文内容的数字摘要;m为消息正文内容。步骤103为签名阶段,本实施例中,验证节点A3宕机无法继续处理,其它各验证节点A1、A2接收到预准备消息后进行消息的合法性检查。检查消息格式和消息发起方的身份标识是否正确,检查接收各类消息的视图编号是否和自己当前的视图编号相同,核验数字摘要是否正确,采用验证发起节点A0的公钥核验预准备消息中的数字签名Φ(a0)是否正确,检查是否收到过相同的v和n,而数字摘本文档来自技高网...

【技术保护点】
1.基于验证的区块链共识方法,其特征在于,包括以下步骤:步骤一、请求阶段,客户端C将请求消息发送到网络中的验证发起节点A0;步骤二、准备阶段,验证发起节点A0接收到请求消息后进行消息的合法性检查,检查通过后组织预准备消息并广播给网络中其它各验证节点Ai;步骤三、签名阶段,其它验证节点Ai接收到预准备消息后进行消息的合法性检查,核验数字签名Φ(a0)是否正确,检查通过后组织签名消息返回给验证发起节点A0;步骤四、验证阶段,验证发起节点A0接收到其它各验证节点Ai发来的签名消息后进行消息的合法性检查,核验数字签名Φ(ai)是否正确,当合法性检查和数字签名核验通过的签名消息数量达到给定阈值时,开始执行提交操作,将消息正文内容和数字签名信息写入本节点数据库中,并组织验证消息广播给网络中其它各验证节点Ai;步骤五、验证回复阶段,其它各验证节点Ai接收到验证消息后进行消息的合法性检查,依次核验消息中多个数字签名Φ(ai)是否正确,当合法性检查通过并且核验通过的数字签名Φ(ai)数量达到给定阈值时,开始执行提交操作,将消息正文内容等相关信息写入本节点数据库中,并组织验证回复消息返回给验证发起节点A0;步骤六、响应阶段,验证发起节点A0接收到其它各验证节点Ai发来的验证回复消息后进行消息的合法性检查,当合法性检查通过的验证回复消息数量达到给定阈值时,组织响应消息反馈给客户端C,通知客户端C请求消息的共识结果。...

【技术特征摘要】
1.基于验证的区块链共识方法,其特征在于,包括以下步骤:步骤一、请求阶段,客户端C将请求消息发送到网络中的验证发起节点A0;步骤二、准备阶段,验证发起节点A0接收到请求消息后进行消息的合法性检查,检查通过后组织预准备消息并广播给网络中其它各验证节点Ai;步骤三、签名阶段,其它验证节点Ai接收到预准备消息后进行消息的合法性检查,核验数字签名Φ(a0)是否正确,检查通过后组织签名消息返回给验证发起节点A0;步骤四、验证阶段,验证发起节点A0接收到其它各验证节点Ai发来的签名消息后进行消息的合法性检查,核验数字签名Φ(ai)是否正确,当合法性检查和数字签名核验通过的签名消息数量达到给定阈值时,开始执行提交操作,将消息正文内容和数字签名信息写入本节点数据库中,并组织验证消息广播给网络中其它各验证节点Ai;步骤五、验证回复阶段,其它各验证节点Ai接收到验证消息后进行消息的合法性检查,依次核验消息中多个数字签名Φ(ai)是否正确,当合法性检查通过并且核验通过的数字签名Φ(ai)数量达到给定阈值时,开始执行提交操作,将消息正文内容等相关信息写入本节点数据库中,并组织验证回复消息返回给验证发起节点A0;步骤六、响应阶段,验证发起节点A0接收到其它各验证节点Ai发来的验证回复消息后进行消息的合法性检查,当合法性检查通过的验证回复消息数量达到给定阈值时,组织响应消息反馈给客户端C,通知客户端C请求消息的共识结果。2.根据权利要求1所述的基于验证的区块链共识方法,其特征在于:所述请求消息中包含客户端发送的消息正文内容;所述验证发起节点A0是指网络中的一个验证节点,该验证节点接收并处理客户端C发送的请求消息。3.根据权利要求1所述的基于验证的区块链共识方法,其...

【专利技术属性】
技术研发人员:张重阳翟晓军
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

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

1