关于我们 | English | 网站地图

分布式新能源接入下的区块链共识机制研究

2019-09-02 08:21:45 浙江电力   作者: 方响等  

方 响,马 笛,侯伟宏,孙智卿,杨 翾,刘 剑

(国网浙江省电力有限公司杭州供电公司,杭州 310009)

方响, 马笛, 侯伟宏等. 分布式新能源接入下的区块链共识机制研究[J]. 浙江电力, 2019, 38(7):1-6.

0 引言

目前,以光伏为代表的新能源已逐渐取代传统的集中式煤炭、天然气发电,能源生产逐步向可再生能源转型。根据中国电力企业联合会数据统计,分布式光伏发电以70%以上的速度持续增长,高比例可再生能源将成为未来电网的重要特征,电网系统灵活性将大幅提升,但随之而来的是对电网网架安全性、可靠性的更高要求,对电网调度专业调控能力、风险控制能力的更高要求。

新能源具有分布分散、潮流可控、产用灵活等特点,这些特点天然与区块链技术相契合。通过将区块链技术引入到正在逐步成型的分布式新能源共享服务平台中,可以有效促进信息与物理系统的进一步融合,实现新能源电力数据共享传输的多元化和低成本化[1-2]。区块链技术从提出至今已经过十余年的优化发展,在加密算法等领域技术已较为成熟,然而作为区块链技术灵魂的共识机制领域,仍在随着区块链技术应用领域的不断扩展而推陈出新,选取合适恰当的共识机制算法将从本质上影响该链的传输性能、容错能力。目前各领域已获得成熟应用的共识机制包括PBFT(实用拜占庭容错)机制、POW(工作量证明)机制、POS(股权证明)机制、DPOS(委托权益证明)机制、PAXOS(提案选举)机制、RAFT(领导者选举)机制等。文献[3]介绍了比特币所采用的POW 机制,该机制将大量算力投入到防止恶意攻击打垮比特币网络中,作为一种强一致性共识机制,效率较低。POS 机制、DPOS 机制作为基于POW 的改进型共识机制,在一定程度上减小了POW 的算力浪费和去中心化负面影响,但是仍未形成质的飞跃。文献[4]介绍了PBFT 机制,该机制基于拜占庭容错技术,可以有效处理网络中断、恶意攻击等问题,算法复杂度已降为多项式级;文献[5]介绍了以PAXOS 机制、RAFT机制为代表的在不存在恶意节点的可信环境下使用的共识机制,该类机制在算法复杂度、容错率等性能上有较大优势。

由于以分布式新能源为代表的电力信息数据传输业务存在实时性需求,对所选用区块链技术具有较高的传输速度要求[6-7],以比特币为代表的数字货币领域所使用的共识机制复杂度通常为多项式级甚至指数级,无法满足电力领域的要求。PAXOS 和RAFT 等共识机制算法在复杂度等方面可以有效满足相应要求,但对于区块链节点要求满足拜占庭容错条件,即链中不存在恶意节点,只有可能存在故障节点,保证通信过程中避免在不可靠信道上探寻数据信息传递的一致性[14]。本文对电力信息数据传输场景满足拜占庭容错条件进行了说明,并以RAFT 算法作为本场景下的共识算法[8],构建分布式新能源信息互联模式。

1 区块链技术原理

1.1 区块链层次架构

区块链技术所具有的多方维护特性使得其在各个行业领域得到了广泛应用,有助于打破信息数据壁垒,推动颠覆性业务整合。区块链层次架构如图1 所示,主要包含数据层、网络层、共识层、应用层[9]。其中,数据层通过加密算法和数字签名等手段对数据进行处理,以区块形式进行数据信息存储。网络层使区块链中各个节点通过网络通信协议进行约定,以及对数据传输的真实性、合法性进行验证。共识层基于以POW 机制为代表的共识机制来确保数据的正确性和系统的可用性,共识机制的算法决定了该区块链系统的整体复杂度以及相应的信息传输速度。在应用层,基于智能合约的可编程性特点,可以在许多领域及产业获得相关应用,且合约具有的自动判断特性可以免除第三方的监督。

图1 区块链层次架构

1.2 区块链链式数据结构

区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中都包含一次发用电的所有相关信息。该类信息不以交易的原始数据形式进行保存,而是利用hash 算法将数据转化为固定长度的二进制形式的hash 值,并由区块链系统采用Merkle 树对这些信息进行归纳表示。当一次电能转化确实发生后,区块链系统还会为其盖上正确的时间戳,表明该电能量区块所属权已发生转移,自动避免重复需求情况的发生[4,11]。区块链的该算法流程既可用于验证其发用电信息的有效性,同时还可生成下一个区块,单个区块的数据结构如图2 所示。

图2 分布式新能源区块结构

1.3 区块链共识机制介绍

1.3.1 共识机制概念

区块链呈现出的诸多特性,如去中心化、集体维护性、智能合约、安全可信等,为分布式能源并网和运维的数据互操作和信息安全问题提供了新的解决方案,也使得利用区块链技术构建新型电网运行模式成为可能,使系统中不需要集中的中央存储,所有节点都可以部分或全部地备份区块链中的信息,任意节点的数据丢失都不会影响到系统的正常运行,因此在数据存储上有很强的鲁棒性和可靠性。

在共识机制中,所有参与的相关方均利用信息通信技术互联,通过区块链技术实现授权和交互,并且交易中所有的操作、合约均会被记录和追溯,数据将无法被篡改。共识机制可以保证任何分布式新能源相关方都可以通过注册机制参与共识,任何信息都会被所有参与者记录实现公开和透明,以及历史交易数据几乎无法篡改。

1.3.2 传统基于证明机制的区块链共识

以比特币为代表的数字货币区块链是一种对全网完全公开,不包含全局地址记录的链式系统,以个体用户为主体的任意节点均可在系统中进行记账及区块验证,可随时任意加入或退出区块链系统。系统对用户节点的掌握度较弱,无法明确节点之间的联通状况。

以POW 机制为例,该共识机制为全网节点提供一个较复杂的计算问题,由全网节点(矿机)开始同步计算。问题具有难计算、易验证的特性,当某一节点完成计算后,将计算结果与记录内容统一打包为区块,传播给联通的所有其他节点(矿机)进行正确性验证,验证通过后接受该区块[12-13]。

1.3.3 拜占庭容错

拜占庭容错是以区块链为代表的分布式领域的经典容错问题。拜占庭是东罗马帝国的首都,因为国土辽阔,所以需要避免战争时期不同位置的将军可能存在叛变和间谍问题,实现全拜占庭军队范围内的一致共识。在现代通信中的含义即为如何在存在消息丢失的不可靠信道上探寻数据信息传递的一致性[14]。该问题广泛存在于以比特币为代表的货币区块链应用中,也因此衍生出了包括POW 和POS 等一系列的共识机制。然而,对于以电网分布式新能源为代表的区块链应用领域,本身依靠电力系统、电网合约等形式的约束,可以确保参与区块链的分布式新能源节点不存在擅自修改信息数据的可能性。同时,电网分布式新能源信息传输具有对于算力、传输速度、算法复杂度等方面的高标准和高要求,因此,提出使用基于RAFT 共识算法的电力区块链机制。

2 RAFT 共识算法

2.1 复制状态机理论

相较于以比特币为代表的数字货币区块链,电网分布式新能源区块链具有半开放特性,即参与节点(分布式电站)需通过电网公司审核、签订协议后方可加入。该类区块链不存在拜占庭容错问题,可以采用基于复制状态机理论的算法作为共识机制,一般常见的有PAXOS 和RAFT 等。复制状态机主要进行复制日志工作,通过各个模块质检互相通信,来确保每个日志以相同的顺序被复制[15]。在正确复制的前提下,每个模块的状态机按照日志顺序进行命令处理,并将处理结果反馈给客户端,过程如图3 所示。

2.2 RAFT 算法原理

2.2.1 算法概述

RAFT 是一种基于PAXOS 的改进型算法,相较于PAXOS 算法,在具备同等容错性、传输特性的基础上,架构更简化,适用于实际的生产环境[16]。RAFT 主要包含节点选举、日志复制两大重要功能。参与节点被定义为主导者、跟随者、候选人3 种状态。其中,主导者节点负责处理系统的服务请求,跟随者节点负责被动接收及回复主导者节点发送的信息,候选人节点为在主导节点发生故障宕机状态下重新进行节点选举时的过渡状态。

图3 状态机复制流程

2.2.2 节点选举

节点选举发生在建链初始化阶段或主导者节点任期满后停止发信后的重新选举过渡阶段。其中,在初始化阶段,所有节点均作为候选人节点,向所有其他节点发送选举请求,当某候选人节点获得超过半数其他节点的支持,将当选为主导者节点;若没有候选人节点满足选举条件,在节点内置时钟经过一定周期后,再重新进行选举。对于主导者节点在内置时钟周期满后停止发信的状况下,由于其他所有跟随者节点在内置时钟经过一定周期后都无法获得主导者节点传输的信息,自动进入过渡阶段,进行重新选举。由于每个节点内置时钟的周期不完全一致,因此在过渡阶段为最先达到周期条件的节点作为候选人节点进行选举。节点选举流程如图4 所示。对于主导者节点因外部原因导致故障或宕机,其情况同重新选举过渡阶段,由于其他所有节点停止收到主导者节点发送的信息而提前进入重新选举。

图4 节点选举转换流程

2.2.3 日志复制

RAFT 算法的日志复制流程总体遵循状态机复制的原则和流程,其核心在于节点内置时钟周期及跟随者节点反馈机制。其中,内置时钟周期主要服务于节点选举机制,确保主导节点的轮换及故障宕机情况下的系统可持续性。

跟随者节点反馈机制是让主导者节点确认日志条目已被跟随者节点安全接收及复制,主要用于处理跟随者节点可能出现的故障宕机、网络延迟等问题,主导者节点通过不断重复发送追加日志条目的方式来确保跟随者节点存储的日志条目与本身一致,实现共识。另外,在跟随者节点向主导者节点进行反馈后,不会立即将日志条目进行同步,必须等待主导者节点提供的下一轮日志条目中包含了主导者节点已将上一轮条目同步的确认信息,再将条目进行同步,具体流程如图5所示。

图5 日志复制流程

3 分布式新能源接入下的改进型RAFT算法

3.1 基于数据中心的领导者节点选举

根据国网公司提出的“三型两网”发展战略,各省市都在积极探索推进“三站合一”建设方案,即将原有变电站改造为变电站、充换电站、数据中心的多功能合一站所。传统RAFT 共识算法中的选举机制不考虑节点间的差异性,具有普适性的特点。考虑到数据中心相较于区块链中其他节点具备的高性能、高可靠性优势,极为适合作为领导者节点。同时,未来数据中心将在各地区进行多点布局,因此本文在传统RAFT 算法的基础上,将选举机制中可作为候选者的节点由链中所有节点缩减为数据中心站所在节点。即当主导者节点时钟周期满后,由布置在其他数据中心站的候选节点进行选举,非数据中心站节点将不再有资格作为候选者节点或领导者节点,如图6 所示。

图6 改进型选举机制

该改进方法充分利用了数据中心站节点相较于其他节点的高可靠性,解决了原有RAFT 算法在主导者节点故障宕机情况下需重新选举而存在真空期的问题。同时,如图5 所示,假设n 为节点总数,其中主导者节点数量为1,跟随者节点数量应为n-1,主导者节点在日志复制流程中所需进行的数据交换次数分别为发送日志阶段n 次、反馈确认阶段n-1 次、同步完成阶段n 次,而对任意跟随者节点,所需进行数据交换次数为3 次,即主导者节点所做数据交换次数为跟随者节点的pagenumber_ebook=8,pagenumber_book=5倍,需要以数据中心站为强大的算力支撑。

3.2 电网解列情况下的共识组状态

电力系统在遭受到巨大干扰后可能发生失稳及解列等情况,大电网系统分解成为几个部分单独运行,无法同步。在未来分布式新能源分布量足够巨大的前提下,区块链也应能继续保持正常运作。在该状态下,区块链内节点也根据解列情况划分为几个独立的信息交换共识组,如图7 所示。各个共识组的运作模式和机制与传统RAFT共识算法一致。

图7 解列后共识组划分

当电网故障恢复,各个独立子系统恢复同步运行后,各共识组也将重新合一。针对组合前后主导者节点数量不一致问题,遵循比较组内跟随者节点数量来进行判定。对于组内跟随者节点较少的共识组,在其主导者节点内置时钟周期满后自动降为跟随者节点,所有该组节点统一归入较大的共识组中。

3.3 节点数据容错分析

本文选择RAFT 算法是基于分布式新能源接入不存在拜占庭问题为基础,但是针对节点共识过程或日志访问过程中可能存在的数据传输误码性错误,仍然需要进行分析。如图8 为跟随者节点1 和跟随者节点2 分别在共识阶段和访问阶段出现数据传输错误的情况。

图8 节点数据传输错误情况

该类节点数据传输错误情况可能发生在共识阶段和数据访问阶段,假设系统错误节点数量为m,则应当满足关系:

式中:Consensusfault为共识阶段错误节点数;Queryfault为数据访问阶段错误节点数。

以图8 中3 节点情况为例,当且仅当数据错误发生在同一个节点的共识和访问过程中,此时客户端访问得到结果为2 个正确节点及1 个错误节点信息,可以判断筛除错误信息保证容错。如如图8 所示,跟随者节点1 发生共识错误,跟随者节点2 发生访问错误,则最终客户端无法通过筛除获得正确信息。综上所述,系统可容错节点数量m 与系统总节点数量n 的关系应为:

pagenumber_ebook=8,pagenumber_book=5

3.4 节点算法复杂度分析

RAFT 算法的核心共识过程即为如图5 所示的日志复制,根据3.1 所述,在该过程中的数据交互总数应为主导者节点进行3n-1 次、n-1 个跟随节点分别交换3 次,共计6n-3 次,总体算法复杂度仅为n 的倍数级,记为O(n),对硬件设备要求较低。

4 结语

本文提出的针对分布式新能源接入的区块链共识算法充分利用了电力系统内不存在恶意节点的拜占庭情况,同时,根据未来国网公司大力推广“三站合一”模式进行提前布局,将主导者节点选举机制改为转让机制,充分利用未来数据中心站的高可靠性、易维护性,采用的基于RAFT 的电网改进型算法适用于处理电网独有的故障解列问题。另外,相比于其他共识算法,该算法具备的高容错性、低复杂度特性可以更好地满足电力信息传输的即时性要求。

参考文献:(略)




责任编辑: 李颖

标签:区块链共识机制研