一种工业区块链的实用拜占庭容错共识机制优化系统的制作方法

文档序号:23392114发布日期:2020-12-22 13:59阅读:127来源:国知局
一种工业区块链的实用拜占庭容错共识机制优化系统的制作方法

本发明属于互联网管理技术领域,尤其涉及一种工业区块链的实用拜占庭容错共识机制优化系统。



背景技术:

工业互联网是互联网和新一代信息技术与工业系统全方位深度融合所形成的产业和应用生态,是工业智能化发展的关键综合信息基础设施,是面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析的服务体系,支撑制造资源泛在连接、弹性供给、高效配置的工业云网,是我国制造强国和网络强国建设的重要基础。工业互联网的核心是基于全面互联而形成数据驱动的智能,网络、数据、安全是工业互联网的三大重要特征,而如何保证工厂内网海量数据的安全流通是目前工业互联网领域亟需解决的问题。目前的工业信息化程度,无论是在安全防护性能,还是工厂内网部署的规模程度上,都还远远达不到工业互联网的发展需求。近年来,区块链技术作为一种新兴的数据安全技术,被广泛地用来解决上述问题。

区块链实际上是一种分布式计算和存储系统,具有防篡改、去中心化、多方参与等特点,其利用分布式共识算法生成和更新数据,利用密码学方式保证数据传输和存储的安全性。可以有效降低中心化结构产生的信任成本。区块链网络分两种类型,包括非许可链(permissionlessblockchain)与许可链(permissionedblockchain)。在非许可链中,注册对任何人都是开放的,节点可以使用nakamoto共识协议并在区块链网络(例如比特币)中一起动态频繁的加入和离开。所有参与者(矿工)都贡献自己的计算能力来完成任务,但只有提供算力最多的参与者才能提出区块并与其他人进行同步。因此,在非许可链需要消耗大量的资源和时间成本。在许可链网络中,通过颁发身份证书的方式指定成员加入网络并建立信任关系,且每个成员的参与权各有不同,形成一种部分去中心化、效率更高的半开放式的区块链网络。许可链多使用拜占庭容错(bft)共识协议,通过状态机复制机制来解决被恶意节点攻击所产生的拜占庭错误,并成功达成正确的共识。经典的拜占庭共识协议包括实用拜占庭共识机制(pbft)与paxos协议,这些协议始终在部分受信任的环境中运行。因此,许可链的优点是低成本、低延迟,但规模相对较小。考虑到工业互联网应用的安全需求、管理需求、性能需求、可监管需求、大规模应用需求,工业互联网常采用许可链网络。

目前常用的许可链网络共识算法为实用拜占庭共识算法(pbft)及其变种,多用于超级账本、以太坊等区块链开源项目,也被广泛应用于各类联盟链网络中。pbft是一种状态机副本复制算法,即将服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。pbft实现了一种具有确定性的副本复制服务,这个服务包含了一个状态和多个操作。每个状态机的副本都保存了服务的状态,同时也实现服务的操作。pbft算法存在一个基本限制,即当存在f个失效节点时必须保证存在至少3f+1个副本数量,这样才能保证在异步系统中安全又稳定的运行。pbft要求各副本共同维护一个状态,所有节点采取的行动一致。为此,需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。我们主要关注支持系统日常运行的一致性协议。一致性协议至少包含若干个阶段:请求(request)、序号分配(pre-prepare)和响应(reply),一致性协议运行流程见图1。根据协议设计的不同,可能包含相互交互(prepare),序号确认(commit)等阶段。在区块链网络中,pbft共识机制及其变种系列算法主要用于在复杂环境下实现较为快速的节点共识。需要指出的是,现阶段还没有完全适用于工业互联网领域的共识机制。

区块链解决了工业互联网数据流通过程中遇到的数据安全问题、数据集中化问题,以及在工业互联网发展过程中不断涌现的如商品溯源、智慧工厂等场景的数据流通问题。目前,联盟链在工业互联网中已经有了实际应用,并基本上沿用了原生的联盟链关键技术,但这并不能很好的适应工业互联网场景。本发明主要针对工业区块链共识机制展开研究,现有联盟链原生共识机制在工业互联网中主要存在如下缺点:

(1)联盟链原生共识机制的运行性能难以满足工业互联网系统的使用需要。pbft系列共识机制在性能方面存在一定上限,且复杂度过高,可拓展性低。对于主流的许可链网络来说,在共识系统内达到20个左右的节点个数时,性能下降非常快,而工业互联网场景作为海量互联场景,接入的节点数量长期处于较高的水平,所以现有区块链网络不适用于工业互联网多接入、高并发、低时延场景的使用需求。

(2)联盟链原生共识系统对于网络环境要求高,在网络不稳定的情况下达成共识的时延会非常不稳定。而工业互联网场景下网络环境较为复杂,内网服务器与外网物联网设备网络情况差距较大,常规联盟链网络在这样的网络环境下共识时延会产生较大的波动,不利于实际使用。



技术实现要素:

为了满足工业互联网系统安全需求、管理需求、性能需求、可监管需求、大规模应用需求,本发明设计了一种工业区块链的实用拜占庭容错共识机制优化系统。具体而言,本发明主要考虑了在工业互联网系统中应用区块链网络解决安全问题的场景下,如何保证系统的可拓展性、吞吐量、共识时延等性能指标,设计一种更加合理的共识方法及系统,通过引入强化学习算法对区块链网络节点进行筛选,筛选出一批性能更高的节点,再改进节点共识规则,优化区块链网络共识时延、吞吐量等指标,从而实现工业互联网系统的大规模应用与持续发展,进一步防止数据篡改,保证数据安全,同时保证系统的可拓展性与吞吐量不受影响。

附图说明

图1pbft一致性协议运行流程;

图2工业区块链实用拜占庭容错共识优化架构组成及交互示意图;

图3功能模块设计;

图4节点筛选流程;

图5节点共识流程;

图6模块交互流程。

具体实施方式

本发明针对现有区块链系统在工业互联网应用场景下无法很好满足安全、可监管、性能、管理、大规模应用需求的问题进行改进,提出了一种在工业互联网环境下基于拜占庭机制的共识协议,其中区块链作为受信任的第三方来实现工业数据的安全传输与溯源。具体来说,本发明采用了许可链作为目标系统,由于许可链的吞吐量受bft共识协议性能的限制,本发明共同考虑了区块链节点的信任特征以及区块链系统的计算能力,以进一步提高区块链的性能,如吞吐量、共识时延等。因此,本发明将节点筛选、通信时延与吞吐量化为联合优化问题,通过定义状态空间、动作空间和奖励函数,将此问题描述为马尔科夫决策过程,并使用深度强化学习方法来解决这一马尔科夫决策问题。

该系统共由三部分构成:工业区块链实用拜占庭容错共识优化架构、功能模块设计、系统运行流程。

1、工业区块链实用拜占庭容错共识优化架构

如图2所示,本共识架构主要包括客户端、发起节点、共识节点、候选节点,通过许可链实现各节点的授权管理、信任背书、记账存储等功能,通过强化学习方法实现对发起与共识节点的筛选。其中,发起节点负责与客户端交互,接收客户端共识请求内容,并将内容处理后发送给共识节点。共识节点接收发起节点信息,履行验证与共识功能,验证后将报文发回给客户端,并接收客户端确认指令,完成共识。候选节点与共识节点功能一致,作为共识节点的候选,等待被选中后执行共识节点职能。

具体来说,客户端与被选中的发起节点进行数据交互,发送共识请求内容与客户端签名,发起节点负责将请求报文加入自己维护的数据队列中并给定一个编号,再将请求报文发送给被筛选后的共识节点,共识节点接收到请求报文后根据本地信息进行验证,验证无误后将验证结果发送给客户端,客户端收集分析后再将确认报文发回给共识节点,共识节点接收到确认报文后完成共识记录。候选节点负责维护区块链网络,在每个共识周期结束后进行新一轮的筛选,每个周期都会根据各节点的相关数据如网络时延、可用于共识的计算资源、节点信用评分等筛选新一轮的共识节点。上述涉及到的发起节点选择和共识节点筛选将在3.1节点筛选部分进行详细介绍。

拜占庭环境来源于古老的拜占庭将军问题,区块链网络环境可以类比为经典的拜占庭环境,在网络中有运行正常的服务器(类似忠诚的拜占庭将军),有故障的服务器,还有破坏者的服务器(类似叛变的拜占庭将军)。拜占庭环境内共识算法的核心是在正常的节点间形成对网络状态的共识。通常,这些发生故障节点被称为拜占庭节点,而正常的节点即为非拜占庭节点。

拜占庭系统普遍采用的假设条件包括:

1)拜占庭节点的行为可以是任意的,拜占庭节点之间可以交换信息;

2)节点之间的错误是不相关的;

3)节点之间通过异步网络连接,网络中的消息可能丢失、乱序并延时到达,但大部分协议假设消息在有限的时间里能传达到目的地;

4)服务器之间传递的信息,第三方可以嗅探到,但是不能篡改、伪造信息的内容和验证信息的完整性。

原始的拜占庭容错系统由于需要展示其理论上的可行性而缺乏实用性。另外,还需要额外的时钟同步机制支持,算法的复杂度也是随节点增加而指数级增加。本发明所设计的共识机制也应用在拜占庭环境下,但采用的是仲裁机制而非状态机复制机制,因此在性能上与pbft族算法有较大的不同。

当工业互联网节点规模扩大时,或网络环境变的较为复杂时,本架构同样会根据节点的各项属性进行择优选取,将工业互联网节点数量的指数级变化降为线性变化,不影响总体性能,因此可以满足工业互联网系统的安全需求、管理需求、大规模应用需求。

2、功能模块设计

如图3所示,本发明所设计的工业区块链实用拜占庭容错共识优化架构中包含四个功能模块,它们用于保证工业互联网内部数据的可信流通与高效处理。

请求处理模块(requestprocessingmodule,rpm)用于实现对工业互联网请求的预处理,即前文架构中的客户端,负责将请求打包进请求报文中并打上时间戳与数据签名,将其发送给共识记账模块。

节点筛选模块(nodefiltermodule,nfm)用于根据节点的各项属性进行综合评判,选出下一周期的发起节点、共识节点,并维护一个所有节点的状态信息表。

区块链链运行模块(blockchainoperationmodule,bom)用于发放许可链身份证书、获取全局的许可链信息、计算许可链优化决策等。

共识记账模块(consensusaccountingmodule,cam)用于执行共识流程,记账模块内被选中的节点用于执行当前工作周期的共识任务,处理接收到的需求处理模块的数据请求,并在共识结束后将结果返回需求处理模块。

需要指出的是,这些功能模块使用软件的形式部署在通用设备中。

3、系统运行流程

本发明设计了基于上述架构和功能模块的系统运行流程,其中包括节点筛选、节点共识、模块交互。在系统运行流程中,许可链周期性的进行共识节点筛选,从候选节点列表中选择出下一周期的发起节点与共识节点,然后当前周期结束后,被选中的发起节点开始接收客户端请求,处理请求信息,并将信息发送给其余共识节点,进行共识记账流程。需要说明的是,节点筛选、共识记账、模块交互等模块互不影响,即在当前周期内,可以同时进行下一周期的节点筛选与当前周期的共识记账,以及模块间的信息交互。

3.1节点筛选

该发明架构下,系统需要维护一个深度强化学习网络与一个区块链网络节点的状态空间,根据节点状态进行训练用以优化节点筛选决策,并在每一个工作周期更新节点状态并筛选下一周期的共识节点,流程如图4所示。

(1)采集节点状态信息,包括<通信带宽,信用评分,可用于共识算法执行的计算资源,与其他节点的平均通信时延>等属性,抽象为马尔科夫状态空间。

(2)强化学习网络根据采集到的节点状态信息进行深度强化学习方法,在一段时间的训练后输出节点筛选决策

(3)每个工作周期开始时,节点筛选模块对状态空间数据进行更新,记录上一周期结束后的各节点可用通信带宽,最新信用评分,当前可用于共识算法执行的计算资源,以及与其他节点的平均通信时延

(4)根据上文训练好的节点筛选决策选出下一工作周期的共识节点与发起节点

3.2节点共识流程

本发明所采用的共识流程为基于仲裁的拜占庭副本。在没有争议、没有拜占庭故障时,为快速共识流程,共三步;出现拜占庭故障或争议时,运行慢速拜占庭协议,共5步。在无领导者情况下为保持一致,每个副本节点需维护一个实例表i[],以及依赖集d[]。其中d[i[l]]为请求l所依赖的请求实例号。具体流程如图5所示。

(1)客户端co向距离它最近的副本节点i发送请求m。

(2)副本节点i接收请求后为其按顺序分配实例号il,并将其d[il]分配为空.分配完成后,发送准备命令给节点组n中的其他副本。

(3)其他副本收到准备消息后根据本地依赖集进行验证,并将结果和一组更新的依赖集回复给客户端。当副本rj收到副本ri的准备消息时,它首先验证m为有效的request消息,并且il=maxiri+1。验证成功后,rj根据其实例空间与依赖集更新d[il],将命令放入执行队列中等待,并回复给客户端。

(4)当客户端收到3f+1个prepare消息时,进行验证。如果来自不同副本的消息具有相同的il与dt,则称他们匹配。若具有3f+1个匹配命令,则发送执行命令给所有副本进行执行。

(5)若收到的匹配响应不足3f+1个,则进入慢速拜占庭共识流程。如果副本对命令依赖项的看法不同,则客户端可能会收到不同的回复,这可能是由于争议或者拜占庭节点存在所导致。客户端c在发出请求后立即设置计时器,计时器到期时若收到了2f+1个准备请求,则会生成一个新的dt(所有请求的合集)。c将确认命令发送到所有副本,用于执行仲裁流程。

(6)副本ri作为命令负责人指定一组已知的2f+1个副本以形成仲裁组。

(7)副本收到commit消息后将接收到的dt更新入自己的实力空间,并将之前的预执行结果删除,重新根据新的顺序进行执行。最终执行结果rep通过仲裁信息返回客户端。客户端在收到2f+1个返回消息后将执行结果返回到应用程序,流程完成。

3.3模块交互流程

在本发明的架构中,各模块需要频繁的进行交互,才能实现节点筛选与共识记账功能,其工作流程如图6所示。

该流程应用于系统运行过程中各模块之间交互的场景。客户端产生请求后,rpm对请求进行处理,将处理后的报文发送给cam,而cam将根据现在的节点状态进行共识,共识结束后将结果返回给rpm,rpm再将处理结果返回给客户端。而cam中的节点状态由nfm决定,nfm将下一周期的节点选取决策输出给bom,bom更新区块链网络内节点配置,并将更新好的配置发送给cam,由cam进行共识操作具体消息流程如下:

(1)客户端向rpm发送共识请求。

(2)rpm将请求进行处理后打包成报文,发送至cam

(3)nfm定期进行更新,并将当前最优的决策输送给bom

(4)bom接收nfm的决策后更新区块链配置,并将更新后的配置发给cam

(5)cam将共识结果返回给rpm

(6)rpm将共识结果进行处理后,将处理结果返回给客户端

本发明的有益效果:

1.本发明根据工业互联网系统数据安全流通的应用场景,提出了一种工业区块链共识机制优化方法。其特征在于,将共识流程分为两部分,先通过深度强化学习方法训练出节点筛选策略,再根据节点筛选策略在每个周期开始时选出参与下一工作周期的共识节点,由这些共识节点进行共识,使其满足工业互联网系统数据流通的安全需求、可监管需求、管理需求、性能需求、大规模应用需求。

2.本发明提出了基于上述架构的区块链系统共识机制模块设计。通过请求处理模块实现与工业互联网系统的相互通信,并将数据报文加密发至共识记账模块,共识记账模块采用节点筛选模块训练出的策略进行共识。

3.本发明提出了基于工业区块链实用拜占庭容错共识优化架构的节点筛选、共识记账、模块交互流程。

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