王同贺, 华昊辰, 曹军威
(1.清华大学自动化系, 北京市 100084; 2.河海大学能源与电气学院, 南京市 210098;3.清华大学北京信息科学与技术国家研究中心, 北京市 100084)
边缘计算(edge computing)是一种分布式计算模式,它通过将计算资源和数据存储下放到网络边缘(即靠近有计算需求的用户端),以提高计算的响应效率。边缘计算的概念起源于内容交付网络[1],它通过在靠近用户端的边缘服务器上部署网页和视频内容缓存服务来提高加载效率。与传统的云计算(cloud computing)相比,边缘计算减少了数据传输耗时,缩短了服务响应时间,减轻了网络宽带的负担[2-3]。在大数据(big data)和物联网(internet of things, IoT)逐渐普及的社会大环境下,边缘计算因其具有去中心化特点,不仅弥补了云计算暴露出的计算能力不足的问题[4],而且能够满足物联网对响应速度和服务质量的较高要求[5]。
而共识(consensus)问题是分布式计算研究中最热门的课题之一[6]。分布式系统中的个体会接收到一些请求,共识算法需要对这些请求进行认可,从而使所有个体的状态达成一致。经典共识算法在实际中有许多应用,如为异步系统提供同步信息[7-9],分布式系统中的故障检测与恢复[10-12],分布式数据库系统的一致性维护[13-15]等。
区块链技术的问世,极大地促进了分布式共识算法研究的进展。区块链是一种基于共识算法的链式分布式记账技术(distributed ledger technology, DLT)。比特币和以太坊使用工作量证明(proof-of-work, PoW)[16]作为共识层算法,Hyperledger Fabric平台则使用传统的实用拜占庭容错(practical Byzantine fault tolerance, PBFT)共识算法[17]。
现如今,能源危机与环境问题日益严峻。为充分利用可再生能源,能源互联网(energy internet)的概念应运而生[18]。能源互联网通过结合能源系统和信息通信技术,促进了传统能源产销、分配、转换和管理的智能化转型[19]。由于可再生能源形式多样,分布范围广,能源密度低,对能源互联网的大规模部署提出了多方面的需求:灵活的接入形式、多样化的信息采集手段、海量的信息储存、高效智能化的数据处理能力等。而分布式能源网络所具有开放性、共享性、智能性和高效性等特点,可以很好地满足这些需求[20]。
在分布式能源互联网场景中,共识算法和边缘计算都有着广泛的应用。分布式共识以区块链为载体,为去中心化能源交易、物联网自动化管理、碳认证和交易、电动汽车交通等分布式能源系统提供安全保障[20-24];边缘计算可以借助可再生能源微网技术供能减少对一次能源的消耗[25],同时在智能制造、智慧城市、城市能源管理、车联网(internet of vehicles, IoV)信息与能量交互等场景中发挥重要的作用[26-29]。
尽管边缘计算和共识各自扮演着重要的角色,但明确地将这两者结合起来的文章或项目却不多。本文尝试将两者有机地结合起来,并首次提出“共识边缘计算”的概念,并对其在能源互联网中的应用进行展望性分析。
本文主要有以下3点贡献:1)基于对边缘计算和共识算法研究的简要总结,正式提出“共识边缘计算”的概念,强调“共识边缘计算”并非是边缘计算与共识算法的简单结合体,而是充分利用二者互惠关系的系统;2)从共识为边缘计算提供安全保障和边缘计算为共识算法提供模型创新两种角度,描述“共识边缘计算”的几种具体实现形式;3)基于能源互联网场景,对“共识边缘计算”的应用方向进行展望性分析。
本章将描述通用的边缘计算模型的层级框架结构,并简要总结边缘计算所研究的问题。
边缘计算的架构通常为3层结构,自上而下分别为云(Cloud)、边(Edge)、端(End)[30],如图1所示。
图1 边缘计算架构
最上层为云层,即传统的集中式云服务器,有着强大的计算能力和存储资源。中间层为边缘层,一般由网关、路侧节点、边缘服务器等组成,具有一定的计算能力和储存能力,可以执行部分从云层下放的任务。最下层为终端层,包含各类数字化设备和传感器设备,仅具备有限的计算和储存能力。
该计算模型将本由云层完成的部分或全部任务下放到终端附近的边缘层,缩短了数据传输距离和时间,提高了服务的终端响应速度。同时,边缘层可以对终端设备采集的数据进行预处理,剔除大量无效数据和错误数据,大大缓解云服务器的压力。
物联网是边缘计算的主要应用场景,物联网的发展衍生了诸如车联网、智能家居、智慧城市、智能制造、智能电网等研究领域。在这些场景中,设备的资源有限,但往往又对实时性和响应速度有着很高的要求。边缘计算支持终端设备将部分或全部任务卸载到边缘设备执行,一定程度上满足了物联网场景的需求。这个过程叫做计算卸载(computation offloading)[31]。计算卸载是边缘计算研究的主要问题,它将决定终端设备是否进行卸载操作、卸载多少、卸载到哪些边缘节点,以及边缘设备何时需要进一步将任务上传至云层中执行。
由于边缘设备的资源与强大的云服务器相比仍然是有限的,因此合理分配计算、存储、网络资源以及均衡负载在边缘计算中也是至关重要的[32]。另外,物联网或车联网系统中存在着大量的公共单元(如边缘服务器、路侧单元等)。如何保障计算卸载过程中公共单元和使用公共单元的设备的隐私和信息安全将是一个巨大的挑战[33-34]。
本章将详细介绍共识算法所研究的问题,并描述共识算法研究所面临的可拓展性方面的挑战。
在分布式共识算法中,网络节点将接收到的请求提交给所有节点,并通过共识算法共同决定是否认可该请求。共识算法具有以下3种性质[35]:
1)合法性:节点认可的请求必须是某个节点提交的请求;
2)一致性:所有节点对请求的决定(认可或否决)是相同的;
3)终止性:共识需在有限时间内完成。
下面将详细介绍共识算法在分布式算法领域中所研究的2个问题:崩溃/拜占庭容错与FLP(Fischer-Lynch-Paterson)不可能性。
2.1.1崩溃/拜占庭容错
为描述实际分布式系统可能遇到的故障,共识算法所基于的理论模型常常假设网络节点会发生2类可能导致系统运行偏离预期结果的错误:崩溃错误和拜占庭错误。
绝大多数经典共识算法(如Paxos[36]、Raft[37]等)会假设节点会发生崩溃错误,这种错误可以使节点进程完全停滞。在发生崩溃错误的情况下依然能实现共识的算法叫崩溃容错算法。类似地,能在节点发生拜占庭错误的情况下解决共识的算法叫拜占庭容错(Byzantine fault tolerance, BFT)算法。发生拜占庭错误的节点可能执行任意操作来打破系统的一致性[38],拜占庭错误不仅可能造成系统的混乱,而且造成的资源和资金的损失也是无法预期的。区块链一般要求共识层算法是拜占庭容错的,如工作量证明[16]、实用拜占庭容错[17]等。
2.1.2FLP不可能性
异步系统是分布式算法研究中的一种重要的系统模型。在这种系统中,不同节点完成同一操作需要的时间可能会不同。FLP不可能性定理证明,若异步系统出现了崩溃/拜占庭错误,则可以解决分布式共识的确定性算法是不存在的[39]。为规避FLP不可能性,后续研究中常添加一些额外的假设,保证异步系统不会因节点错误而停滞,使得分布式容错共识可解。
最常用的方法是添加部分同步假设,即假设在系统稳定后,未发生错误节点间的信息传输在有限的时间内完成。Zyzzyva[40]、Ouroboros[41]、Honeybadger[42]等算法使用部分同步假设,将算法的重点放在解决拜占庭错误上。另外,将终止性要求放宽为概率终止性(即在有限的时间内完成共识的概率随时间趋近于1)也是一种常见做法。区块链中的工作量证明算法就是通过让节点求解高计算成本的哈希问题,将区块链分叉概率降至极低,从而保障系统的一致性。这个过程被称为“挖矿”,参与挖矿的节点也叫做“矿工”。
随着人们对分布式共识算法研究的深入,共识算法面临着越来越多的问题与挑战,如请求冲突问题、信息复杂度高、可拓展性低,网络、计算和存储资源消耗高等。其中可拓展性低的问题是最显著的。
可拓展性是衡量分布式系统是否能大规模应用的指标。随着系统规模的增加,算法效率降低程度越小,系统可拓展性越高。拜占庭容错共识算法大多基于PBFT算法,仅能应用于小规模的系统,可拓展性普遍较低[40]。近年来问世的众多共识算法尝试用不同的方法来提高系统可拓展性,但这些方式往往又会衍生出其他问题(详见表1)。因此,解决可拓展性低的问题也是共识问题面临的最大挑战。
表1 共识算法为提高可拓展性所采取的方法及衍生出的问题
基于前文对边缘计算和共识研究的分析和总结,本文在此提出“共识边缘计算”的概念。“共识边缘计算”是一种融合了边缘计算技术和共识机制的分布式系统。共识边缘计算系统主要通过2种方式来实现:利用共识为边缘计算保障安全,以及基于边缘计算框架为共识提供模型的创新。
本小节将介绍2种使用共识机制保障安全的边缘计算系统,一种是基于区块链的区块链即服务系统,另一种是“去区块链化”的边缘数据中心。
3.1.1区块链即服务
近年来,基于共识实现信息透明、信息安全、信息不可篡改的区块链,被广泛应用在了多个领域,边缘计算也不例外。文献[49]提出在移动边缘网络平台上构建区块链即服务(blockchain-as-a-service, BaaS)系统,保障计算卸载过程的安全性,系统结构如图2所示。
当用户设备需要进行计算卸载时,先向移动边缘服务器提交计算卸载需求和服务交易请求。交易成功后,用户可以将计算任务卸载到移动边缘服务器,同时移动边缘服务器将交易信息和卸载记录保存到区块链中。区块链中储存的信息不仅可以在边缘服务器之间共享,而且也允许用户查询。参与区块生成的边缘服务器通过工作量证明共识算法消耗资源,可以赚取额外的收益。
除了计算卸载,其他基于边缘计算的任务都可以通过类似图2的系统,将区块链良好的安全性质添加到边缘计算之中。例如,文献[50]使用区块链,借助工作量证明对数据进行审计,从而在车辆边缘计算网络中实现安全高效的数据共享。
图2 使用区块链即服务的计算卸载系统
3.1.2边缘数据中心
随着边缘计算的不断推广,边缘数据中心应运而生。类似地,边缘数据中心就是将传统集中式的数据中心分散部署在靠近用户终端的边缘层,从而支持高带宽和低延时的边缘计算服务[51]。作为分布式数据库的一种特殊形态,边缘数据中心同样可以将共识算法应用于一致性维护、故障检测与维护等场景。
文献[52]提出了一种基于边缘数据中心的共识中间设备,这种带有拜占庭容错机制的中间设备可以在服务供应商与用户之间缺少相互信任的情况下,仍然为用户移动设备提供边缘网络服务。
除此之外,文献[53]描述了一种使用共识算法的虚拟同步模型库,帮助软件定义网络(software defined network, SDN)同步分布式控制器状态。SDN是一种网络虚拟化的系统架构,分为控制平面和数据平面。这里的控制平面包含了根据全网状态定义数据转发规则的分布式控制器,数据平面则是记录控制器状态的边缘数据中心。文献中的虚拟同步模型库使用Paxos或Raft共识算法对边缘数据中心的控制器状态数据进行同步,这种虚拟化信息同步可以更好地支持控制器规则的动态调整,提高系统的容错能力并缓解效率上的瓶颈。
本小节将3种利用边缘计算对共识算法的理论模型进行创新:利用云解决FLP不可能性、分级共识以及有向无环图技术。
3.2.1利用云解决FLP不可能性
终端设备可以将共识任务卸载到边缘层完成,但由于边缘层设备数量较多且分布较广,需要靠云服务层进行周期性信息同步。这种云边协同的模式,本质上就是利用中心化的云服务器实现异步系统的部分同步,从而规避FLP不可能性。
EdgeCons[54]是基于边缘计算架构的客户端操作事件排序系统,边缘设备通过MultiPaxos[55]共识算法完成排序任务,而且无法在边缘快速解决的共识实例会进一步卸载到云端来完成。Nomad系统在EdgeCons的基础上,进一步利用云边协同完成共识任务的地域间负载均衡[56]。
3.2.2分级共识
由于边缘设备数量多且分布广,边缘层往往会按地域划分为若干簇,不同簇之间的设备不能直接进行点对点信息传输,只能通过云作为中转来完成。这种设计考虑到基础设施建设上的难度,为全部边缘设备建立点对点通信也是不现实的。
移动边缘计算模式的可靠共识(reliable consensus of mobile edge computing paradigm,RCMEC)是首个可以在这种分级式的边缘计算架构下解决拜占庭共识问题的算法(如图3所示)[57]。该算法将边缘层的设备按地理位置分簇,先在簇内边缘设备之间达成共识,再将共识结果同步给云服务层。如有需要,共识结果也会下发至其他簇的边缘设备及终端设备。
图3 RCMEC分级共识
与传统的共识相比,这种分级共识排除了现实中没有必要且不可能实现的不同簇边缘设备间的点对点信息传输,降低了共识算法的信息复杂度,从而提高了系统的可拓展性。事实上,文献[58]从理论上证明,这种分级结构可以将PBFT算法的信息复杂度从O(n2)降低至O(nk·logkn),其中n为边缘设备总数,k为最大簇内设备数目。
3.2.3有向无环图技术
物联网是边缘计算典型的应用场景。文献[59]总结了20余种常见的共识算法,但“非常”适用于物联网的却寥寥无几。其主要原因在于,共识的结果是将所有请求全序化,分布式地解决这种全局问题有很大难度,且常见的共识算法往往需要消耗大量的存储、计算、网络资源,吞吐量低,响应时间长。这些都与物联网的低资源消耗和高响应效率的需求存在冲突。
为了更好地满足物联网场景的要求,越来越多学者开始研究基于有向无环图(directed acyclic graph, DAG)的共识算法。有向无环图技术主要通过支持请求并行处理,将共识的结果从全序关系放宽为偏序关系,从而提高共识系统的效率和可拓展性。以Tangle算法[60]为例,新提交的请求按概率选择2个旧的请求进行认可,认可时需要求解类似工作量证明的但难度相对较低的哈希问题。如果将每个请求视为1个顶点,用有向边代表请求之间的认可关系,则Tangle算法的结果就形成了一个有向无环图。
类似的算法还有ONLAY[61]、Fantmette[62]、Byteball[63]等。这些基于DAG的算法虽然对共识算法的一致性要求有所折衷,但处理请求的效率得到了明显提升,增强了分布式系统的可拓展性,因此也更加符合物联网场景的要求。近几年,IOTA[64]、PHANTOM[65]等基于DAG的DLT技术的问世,有效地解决了区块链的链式结构对物联网不友好的难题,极大地促进了DLT技术的多元化发展[66]。
共识边缘计算的提出,是为了充分利用边缘计算和共识算法各自的特性与优势解决对方所面临的挑战,并非只是将边缘计算与共识算法简单合并。一方面,边缘计算系统是分布式系统的一种,其安全保障便可以通过共识算法的一致性来提供。另一方面,不同于分布式共识算法的经典理论模型,边缘计算架构中位于不同层级的设备是异质的,资源、计算能力、功能都会有所不同。因此,在实际中广泛应用的边缘计算,可以促进共识基础理论模型的创新,在解决可拓展性难题上提供新的思路。共识边缘计算各种实现形式的详细优点描述如表2所示。
表2 共识边缘计算的优点总结
本章将以能源互联网为背景,详细对“共识边缘计算”系统的应用进行展望性分析。
物联网区块链技术,是基于区块链技术的支持物联网场景下不同业务的一种综合性技术。物联网区块链在能源互联网中有着非常多的应用。一方面,物联网可以借助边缘计算,使得能源网络部署更加分散化,有效缓解传统集中式能源网络在带宽消耗、数据传输、信息存储上的压力,促进能源的有效利用[67];另一方面,区块链可以为物联网中的分布式计算和价值交换提供安全保障,同时可以通过智能合约实现能源网络的自动调节和自我维护[68-69]。
例如,文献[70]中的路侧单元和本地聚合器通过共识算法对数据和能源贡献进行审计,可以提高车联网信息和能量交互过程的可追溯性和透明性。类似地,文献[71]描述了一种使用区块链研发的概念证明系统,它使用基于激励的共识算法来为家庭用电量、用户行为、环境感知等数据提供真实性验证信息,而这些数据随后会进入人工智能引擎来完成数据分析和安全风险预报。
类似的应用还有很多,其中以太坊是这些项目与工程使用的主流区块链平台,因此以太坊使用的工作量证明成为了主流共识算法[72]。然而,完成工作量证明算法所需的电力、储存、硬件设备等资源消耗却是无法忽视的。据估计,比特币公司年均电力消耗约34 TW·h,平均每确认一个区块消耗250 kW·h,这相当于美国一户普通家庭一周的用电量[73]。虽然BaaS系统可以解决物联网终端设备计算能力和资源不足的问题,但这种解决方案只是将能源消耗从终端“转嫁”至边缘层或云层,系统整体的能源消耗并未减少,甚至可能增加(如计算卸载过程中的耗能)。因此,越来越多研究和项目开始尝试低能耗物联网区块链,以减少系统的能耗,优化系统的整体用能效率。
这些可以通过使用基于低能耗共识算法的区块链来实现,如文献[74]中的去中心化能源交易系统采用基于资金的权益证明算法替代工作量证明。文献[75]则自主研发了低能耗的鉴定证明算法,通过引入少量可靠的节点建立起一套认证体系,并且使用基于鉴定证明的区块链对边缘计算系统实施去中心化的访问控制。这种低能耗的共识算法不但可以加快生成区块的速度,而且也能提升系统的灵活性和可拓展性。
区块链集成了点对点传输、DLT技术、智能合约等多种信息通信技术,但有不少文献中的能源系统也仅仅用到了区块链的分布式记账功能[76-81]。这种情况下,部署一套完整的区块链系统反而会大大增加系统的复杂度。因此,开始有研究尝试并提倡“去区块链化”,仅使用基于信息加密和共识算法的轻量DLT技术,满足对去中心化、信息安全、信息共享、信息不可篡改等性质的需求[52]。
文献[82]提出在可再生能源微网中加入轻量DLT技术,通过共识算法即可保障微网中个体安全地进行数据操作和信息交换。该文献提出的微网结构还加入了边缘计算层,承担微网中部分数据储存、预处理、分析等任务。在工业物联网场景中,基于共识的轻量DLT技术可以协助搭建分布式认证框架,用于对边缘层设备进行安全认证,防止对生产机器的恶意定向网络攻击[83]。
以上文献中使用的轻量DLT技术,可以视为“瘦身版”物联网区块链,在为能源网络提供灵活性和安全性的同时,降低区块链系统的复杂程度和实施难度,提升项目的可行性。
区块链与有向无环图是两种不同的DLT技术,二者的区别不局限于共识结果是全序结构还是偏序结构。事实上,大多数DAG技术(如IOTA)是“免区块”的。这种免区块DAG的优点在于,它可以将交易信息直接记入账本,无需生成区块。于是,每个个体都可以成为交易的记录者,可以避免区块链中因委托矿工生成区块而产生的中间费用,同时也克服了由于区块大小限制造成的交易延时。这与去中心化能源交易(或P2P(peer-to-peer)能源交易)的无中间费用和高效率交易的目标是一致的[84]。文献[84]同时还提出了一种基于IOTA的P2P能源交易平台(如图4所示),支持家庭用户间的周期性能源交易。
图4 基于IOTA的P2P能源交易平台示意图
除此之外,在智能充电基础设施建设领域,通过在充电桩与电动汽车之间的缆线可以实现机器对机器(machine-to-machine, M2M)交易和数据交换的自动化,而且这种基于IOTA交易平台的充电桩已在社区内试验性投入使用[85]。M2M互动模式有两方面的优点,一方面它无需建立传统的网络传输协议或设施,另一方面减少了人工介入的环节,因而更经济、安全、高效[86]。
边缘计算和共识是分布式计算中的2个热门课题。本文通过对将二者结合的文献的总结,分析了二者的互惠关系:边缘计算框架提高了共识算法的可行性和实用性,共识算法为边缘计算提供安全性和鲁棒性。
另外,本文正式提出“共识边缘计算”概念,并对其在能源互联网领域的应用进行展望,同时也为本文今后的工作指明了2个方向:一方面可以从理论上设计效率更高可拓展性更强的共识边缘计算系统,另一方面可以在能源互联网的背景下探索更多“共识边缘计算”的应用场景。