李孟特,顾春华,温 蜜
1.上海电力大学 计算机科学与技术学院,上海 200090
2.上海理工大学 光电信息与计算机工程学院,上海 200093
据文献[1]指出,预计到2020年末,中国国内各类电动汽车保有量将达到500 万辆以上。随着电动汽车行业的蓬勃发展,电动汽车将会变得越来越普遍,与此同时充电桩也成为了越来越重要的基础设施。近年来,作为智能电网的重要入口,我国政府高度重视和积极引导充电桩建设。我国政府在2015—2020年充电基础设施建设规划目标指出:建成专用充电桩430 万个,分散式公共充电桩50 万个。在政策大力推动下,越来越多消费者选择购买电动汽车并使用充电桩进行充电。而作为智能电网的重要组成部分,充电桩业务具有巨大的潜在市场价值。
目前,多家运营商推出的充电桩共享平台,均采用中心化运营模式。当车辆连接到充电桩时,充电桩将收集与该车辆及其所有者有关的数据,例如位置和相关支付信息,然后上传到一个中心节点进行存储。但这种模式存在以下弊端[2]:(1)中心节点易面临集中式恶意攻击,从而导致单点失效,造成数据丢失;(2)充电桩采集的数据可能会泄露客户的个人隐私信息;(3)数据中心的存储数据可能会被恶意篡改酿成严重后果。针对以上弊端,因此需要设计一种安全的去中心化数据存储方案以保证充电平台的交易数据安全。
区块链是一种点对点的去中心化交易账本,自2008年由中本聪提出之后[3],因其透明化、去中心化、可追溯性等特点一直备受国内外爱好者与研究者的关注[4]。区块链在数据存储中主要有以下优势:(1)去中心化:区块链去除了中心节点,所有交易数据采用去中心化存储,可以有效避免单点失效问题;(2)匿名性:区块链的用户都是采用匿名方式参与交易,可有效保护用户个人隐私;(3)安全性:区块链由于采用安全系数较高的加密技术,可防止链上数据被恶意更改,用户可随时对交易数据进行验证。区块链的技术优势与充电桩平台数据存储的需求具有很好的结合点,可以避免中心化模式带来的弊端。
近年来,区块链技术在数据安全存储以及电动汽车充电平台等领域的研究已经有了初步成果,然而很少有人关注在电动汽车充电平台中交易数据的安全性问题,因此,本文提出了一个基于区块链的电动桩数据安全存储平台。使得电动汽车充电平台可以使用区块链技术将充电平台获得的交易数据去中心化存储在各充电站内的数据中心之中,并且用户可通过授权机制决定是否将个人相关的交易数据分享给他人使用,以此防止个人隐私数据泄露。
随着现代信息技术的飞速发展,电力与信息技术开始深度融合。齐林海等人[5]提出了基于区块链生态系统的充电桩共享经济模式,文中先指出了当前私人充电桩运营商在中心化运营模式下存在的不足,然后基于区块链技术、闪电网络技术提出了一种全新的充电桩共享模式,但该方案依旧是采用最初的共识算法,效率上有待提升。Kang 等人[6]提出了一种基于区块链技术的智能家居能源交易平台。文中先描述了区块链的属性特征,然后讨论了基于区块链的智能家居中的能源管理和使用情况测量,最后使用区块链技术在微网中建立一个安全、自动化的去中心化可再生能源交易平台。Aitzhan等人[7]通过把区块链和数字签名技术相结合,使得电能交易数据可被验证已达到安全存储的目的。李燕等人[8]阐述了区块链技术的发展现状和应用场景,同时总结了当前区块链技术在安全、效率、隐私保护等方面所存在的不足,针对共识机制、匿名性和系统吞吐量三个方面提出了有效的改进方法。王浩然等人[9]提出了基于区块链的充电权交易机制与模型。文中引入了充电权的概念,针对电动汽车的有序充电控制问题,设计了可行的以以太坊区块链为基础的充电权多边交易智能合约技术。杨德昌等人[10]对区块链技术在能源互联网中的应用进行了分析和展望。文章首先从区块链特征入手分析了区块链的技术架构和交易过程,然后基于国内外的区块链研究热点,结合新兴货币、技术产业等典型领域,对区块链在能源互联网中的应用进行了系统的总结,最后对区块链技术对我国的能源互联网建设和电力体制改革中的应用前景进行展望。Knirsch 等人[11]提出了一种基于区块链技术的电动汽车充电站隐私保护协议,该协议可以根据价格和与电动汽车的距离等因素,自动寻找最佳充电站。以区块链技术来构建该协议,具有较强的可靠性和透明度,同时保留电动车所有者的隐私。王丽丽等人[12]利用Python 工具建立了电动汽车行为模型,来分析北京市充电站布局的合理性。文中分析了影响充电站布局的因素,然后建立以总出行时间最短为目标函数的模型,利用Python 的Agent 仿真,分析不同区域充电桩的访问频率来得出最合理的布局方案。甘俊等人[13]提出了一种改进的实用拜占庭容错(EPBFT)共识算法。文中指出了现有的PBFT算法中存在的网络结构类型静态、主节点选举方式随意、主节点可信度低、网络开销过大、数据同步过程不够完善等方面的不足,并针对这些问题进行了算法上的改进。
本文针对相关学者所作的研究工作进行深入研究,对其所提方案中普遍存在共识时间过长、安全性能有所欠缺、用户无法掌握自身信息使用权等问题,提出了电动桩数据安全存储方案。该方案基于区块链技术实现点对点交易;用户可通过授权机制决定是否将个人相关的交易数据分享给他人使用,有效保障了用户的信息安全,以此防止个人隐私数据泄露。
区块链是一种可信的、完全去中心化的对等数据存储技术,一旦数据被提交到区块链中,将无法对其进行随意篡改。因此,区块链可以被描述为一个去中心化的、不变的数据库。如图1所示。
图1 区块链结构
该数据库是按照时间顺序将数据生成区块[14]。每个区块记录了一段时间内的交易信息被打包存储于区块体中,每个区块的头部块包含了前一个区块经过哈希函数处理后的哈希值,各区块以此哈希值顺序相连构成区块链。因此,这些交易将永久链接到以前的一系列交易。为了提高区块链中各节点验证交易信息的效率,区块体内交易信息以默克树形式保存并用其根节点连接区块头和区块体[15]。整个区块链信息是对所有节点开放的,各节点可以通过检查新区块的完整性和计算哈希值来进行验证区块内信息是否正确。区块链既可以是公开的,其中交易由一些独立的节点组或者矿工进行验证记录;也可以是私有的,其中只有一组授权的个人节点可以验证并记录新的交易[16]。区块链网络中的各节点都拥有自身的公私密钥对,并以此作为账号表示自己的身份进行匿名交易,因此交易双方可以有效保护自身隐私。
根据当前电动汽车充电平台运行模式,设计了一种采用P2P架构的数据存储方案。在该方案中,电动汽车到达充电站后需要连接充电桩充电,充电桩可提供电能同时将会采集该电动汽车相关信息并记录充电数据进行身份认证和结算。各充电桩会将记录的数据整合到充电站节点内的数据中心中保存。该数据中心会作为一个节点与数据存储系统通过有线网络连接通信,将数据安全地记录于区块链平台上。该数据存储平台由设置在各充电站内的数据中心构建,各数据中心作为节点相互连接组成区块链系统[17]。在数据存储平台中,使用一个共识过程对该平台的数据进行审核验证,最后将这些充电桩记录的包含充电汽车识别号、充电时间、充电地点、使用电能量等信息的交易数据记录于该安全存储平台上。该存储平台结构如图2所示。
电能交易平台运行于一个微电网公有的区块链服务器上,其内有若干个区块链节点,用户使用储能装置连接去中心化应用(DApp)接入区块链交易平台来参与电能交易。
充电站面向广大电动汽车用户开放,电动汽车用户是交易数据生产者。为保护用户数据隐私,用户第一次加入充电站平台时,需要先在交易平台进行注册。具体注册流程如图3所示。
图2 交易数据安全存储平台
图3 注册过程
希望对自身的交易数据进行保护的用户首先在该平台相关部门进行注册申请,在对其信息核实之后,该平台将给予新加入的成员注册许可。
在获得注册许可之后,注册先设置其个人私钥,也就是通常意义上的密码,然后采用高效安全的secp256k1椭圆曲线加密算法由该私钥生成对应的公钥,并以此获得一个该交易系统使用的专属账户配发相应的个人证书,每个用户的公钥将保存在该区块链平台上。而用户个人则保管自己的私钥,通过非对称加密算法可保证恶意用户无法推算出该用户的个人私钥,从而无法伪造某个参与用户窃取其个人交易数据。
用户每次使用充电桩之后,可使用公钥对该次相关交易数据进行加密,自主掌控数据所有权,然后由充电桩留存在数据存储平台上。若后续需要使用相关数据,则需要用户进行授权之后才可共享相关数据。
本文中所提充电桩类似智能电表功能,除可向电动汽车输送电能之外,还集成了相关传感器节点及通信系统。充电桩可收集电动汽车充电时相关的交易数据,车主在充电完成支付电费时可审核该次交易数据,确认无误后使用生成的个人公钥对该数据进行加密,确保数据安全。
经用户加密的交易数据将传送到该充电站数据中心之中进行审计,审计通过之后,全网节点达成共识。之后将数据打包成一个区块,并在区块头加入上一个数据区块的哈希值与之相连,进而去中心化地存储于数据存储平台的各数据中心内。
充电数据存储平台的电动汽车充电站内设置的数据中心中存储各用户所产生的数据。该充电数据由充电桩收集并上传到数据中心,用户对该数据审核后进行加密,以此保护数据安全。下文详细表述以上运行过程,其中所使用符号及其含义见表1。
表1 各符号对应意义
(1)系统初始化和密钥分发:系统初始化时,各充电桩被系统管理员设为区块链节点,并将各节点对应的乱序编号和公私钥发放给各充电桩,表示为。
(2)上传充电数据:充电桩CS1在采集数据被用户确认加密后,将向充电站内的数据中心DC1请求交易数据上传,该请求消息包含CS1的数字签名Sig1,以此证明该交易数据有效。DC1在接收到该消息后,进行验证核实,确认无误后允许该CS1上传加密后的充电数据。用户U首先对CS1的充电数据Data进行验证后使用其个人公钥加密,然后CS1使用当前代号假名的公钥加密,并使用自身私钥对其签名,最后由DC1的使用自身公钥PKDC1对该记录消息加密得到可被写入区块链的最终数据FR_data,以上所述具体过程如下:
其中:
(3)充电站数据中心聚集充电桩上传数据:DC1对所有充电桩上传的FR_data验证之后,如若数据Data安全有效,即可储存到DC1中;如果验证未通过,则直接丢弃该数据。
(4)充电站数据中心工作流程:经过一段时间后,本地数据中心DC1将这段时间中所有合格的FR_data打包为一个数据集表示为:
(5)充电站内数据中心之间的区块共识过程:该共识过程采用EPBFT共识算法[17],该数据存储平台可将任一数据中心指定为主节点(不妨设为DC1,标记为Leader),其余m个数据中心将成为从节点。具体共识过程如图4所示。
图4 EPBFT算法流程图
步骤1某一从节点数据中心向区块链平台中所有节点广播发送一个Dataset,各共识节点(包括主节点)收到交易后验证交易的合法性,若合法,则缓存起来。主节点待收到足够的数据或者到一段时间间隔以后,生成一个区块Block。
步骤2DC1为产生的区块生成提案消息M,分配一个编号n,并附加上DC1的签名信息SignSKDC1以及该区块经哈希之后的哈希值HashBlock以用于其他节点审核验证其内容。之后向区块链中设置的所有从节点广播该消息,该消息的格式为<n,SignSKDC1,HashBlock,Block,timestamp>,其中Block是需要共识的区块。从节点i∈{0,1,…,m}在接收到提案消息后对其进行检验,如果同意提案消息,则进入快确认阶段。以上所述具体过程如下:
其中:
步骤3快确认阶段。该数据存储平台在进入快确认阶段后,各数据中心将把它们的审计结果及各自的数字签名广播给其他数据中心从节点,以达到互相监督及查验的目的。快确认消息格式为<Fast_Confirm,n,j>,其中j是其他数据中心自身编号。快确认阶段完成的标志为DC1收到2f+1 个从其他不同数据中心收到的与M一致的快确认消息,若到时间超时为止未收到足够快确认消息,则将该区块丢弃。其具体表述如下:
其中:
步骤4当数据中心DC1完成快确认阶段后,将该区块连同所有相对应的数字签名发送给区块链上的从节点。此后,该数据区块将以区块内时间戳顺序被写入区块链平台中。以上所述具体过程如下:
其中:
(6)用户数据授权共享过程
数据存储平台上数据的真正持有者是运营平台和相关用户,各用户在数据产生时便使用其个人私钥已对其进行加密,用户有权控制其个人数据是否与他人共享。本文中数据共享通过用户授权写入区块链保证使用该数据的合法性和公平性。
数据共享主要包括以下流程:当该运营平台向用户请求使用数据并取得用户同意后,需要用户接入该数据存储平台使用私钥对其数据揭秘并写入区块链。各数据中心首先需要验证用户身份,达成共识后,该用户将相应数据解密后,重新使用平台数据中心的公钥进行加密写入该存储平台中。具体表述如下:
其中:
本文实验使用计算机配置为Interi7-8550U 1.8 GHz处理器和16 GB 内存,Windows10 64 位操作系统,采用Java语言编写程序模拟读取电动车充电数据,模拟界面如图5所示。
图5 模拟充电
图5 中显示的是使用Java 语言编程模拟CAN 协议读取充电桩充电时电能数据。
本实验中私有区块链平台采用Pyhthon3.6 编程语言使用Flask网络框架搭建,在本地部署区块链后,采用Git-Bash模拟用户转账支付。模拟交易内容如图6所示。
图6 交易等待确认
图6中,正使用账户:1d6f36cc1c9d41 05ac72a0c8f7 b39ede(即图中代码sender部分所示)向账户:8f7b39ede(即图中代码recipient部分所示)支付10单位货币(即图中代码amount 部分所示)的交易。图中显示正在等待取得共识完成交易,其中Time spent部分显示的是等待取得共识的时间,图中表示已等待了4 s。当取得共识后,该交易数据存储于区块链中,如图7所示。
图7 区块链
图7 所示区块链内记录了交易的内容、时间戳、节点签名等内容,并显示了该条链上的区块3 以及区块4的交易内容。Block_number 表示区块的序号、power表示模拟充电的电能、previous_hash 表示前一个区块的hash值、sign表示对应数据中心的签名、transaction则表示发生交易的具体信息,如图7 区块4 中则显示了图6中所使用的账户:1d6f36cc1c9d4105ac72a0c8f7b39ede向账户:8f7b39ede支付10单位货币的交易信。
此外,为检验该平台使用EPBFT 共识算法的共识效率,将其与PBFT算法进行吞吐量性能比较。将一个块中包含的交易数固定为10 个。测试了在4、5、6、7 个共识节点下的三组对照实验。多次测试取平均值,得出统计结果如图8所示。
图8 吞吐量性能比较
从图8 可以看出,实验中随着节点数增加,采取两种共识算法的系统吞吐量逐渐减少,但是采用EPBFT算法吞吐量相对更高,随着共识节点不断增多,EPBFT吞吐量优势更加明显。由此可见,该方案是可行的。
本文所提基于区块链的充电数据存储平台利用成熟的密码学技术,对传统的安全攻击具有良好的抵御能力。且与相关研究所提方案在信息安全保护特点上有所不同,相关比较由表2列出,其中部分性能由下文详细说明。
表2 安全性能对比
(1)交易数据去中心化存储。与传统的数据存储方式不同,本文所设计的交易数据存储平台采用基于区块链架构的去中心化方式存储交易数据,来保证数据安全,去除了第三方中心化存储中心。各数据中心之间使用P2P的通信方式,可以有效防止中心化模式下出现的计算资源不足的问题;而若该区块链存储平台中部分数据中心节点遭遇到DDOS攻击时,而其他正常的数据中心节点中依旧可以正常工作并保存着所有的充电数据,可有效避免该存储平台全面崩溃。
(2)用户身份匿名。本文设计的存储平台中用户以及充电桩均采用匿名方式通信,用户身份信息只是由一串数字表示不记录真实身份信息,充电桩由平台分发的代号表示。仅通过充电数据根本无法获知用户身份;而且,相关数据在存储时使用了用户和充电平台各自的密钥加密数据,最大限度地保证了数据安全。
(3)用户掌握充电数据使用权。用户在平台注册后会得到自己的个人密钥,每次使用完充电桩后可使用个人公钥使用加密技术对产生的充电数据加密存储。若无用户授权则无法使用该数据,从而保证数据信息安全。
(4)充电交易数据防篡改。对于该充电站内的普数据中心节点而言,即便某个数据中心节点被攻击者控制来篡改部分数据,但通过共识机制,这些被篡改的数据也会被其他数据中心节点验证哈希值时发现问题,保证数据的合法性与真实性。
随着电动汽车保有量的快速增长,充电平台数据量势必会大幅增加。传统的中心化数据存储方法将越来越难以应对日益增加的海量数据,数据存储方式将会向去中心化的模式转变。而区块链技术天然具备去中心化的存储模式,本文所提的充电数据存储平台可将充电站数据实现去中心化存储,且具有较小成本,解决了交易数据在中心化模式存储下面临的安全问题。且由于用户可使用自己非对称公钥加密交易数据,通过授权机制允许他人使用自己的交易数据,可有效限制不法分子私自使用该数据。通过安全性能分析,表明本文所提设计方案安全有效。在未来工作中,可考虑提升底层设备安全防护性能、改进平台共识机制提高共识效率以及探究实现在线电能交易的方法。