基于区块链的电动汽车共享充电桩平台设计
2020-09-29刘维扬曹智杰
刘维扬,王 冰,曹智杰
(1.河海大学 能源与电气学院,江苏 南京 211100;2.南京豪庆信息科技有限公司,江苏 南京 210006)
0 引 言
随着电动汽车产业的跨越式发展,充电需求量与日俱增。在现有技术下,电动汽车续航能力的问题仍有待解决,并且相较于现有的加油站服务系统,充电基础设施及运营模式发展相对滞后,存在设施数量少、规划布局不完善、管理服务不成熟的问题[1],特别是缺乏有效统筹管理的私人充电桩的大量涌入,在增加经济管理成本的同时导致高比例的闲置率,造成车主充电难、运营商难盈利的困境,严重制约了电动汽车市场的发展。因此,如何构建合理有效的电动汽车充电桩资源配置平台,充分调动各市场主体的资源优势、提高闲置充电桩的使用率,是目前亟待解决的问题。
共享经济模式能够极大地促进资源的有效利用,而充电桩作为有偿的公共共享社会资源,使私人充电桩也具有明显的共享经济特征[3]。然而传统的共享平台都依赖于中心化机制,存在征信成本高、信息不对称、数据泄露与篡改风险高的弊端,无法保障共享经济的安全性和可信性[4]。具备去中心化、共识信任机制、不可篡改可追溯等特点的区块链技术与充电桩共享模式有很好的契合点,可为电动汽车的共享充电服务创新奠定坚实的基础。
区块链在共享经济领域的应用包含物品共享交易服务[5]、集装箱共享模式[6]、隐私共享保护机制[7]等。针对电动汽车充电桩的研究,文献[3]基于闪电网络和智能合约技术为充电桩构建了区块链共享经济生态环境;文献[8]利用区块链技术为电动汽车用户与电力市场构建有效的双边交易与竞价体系;文献[9,10]基于区块链技术为车主与充电站之间的交易提供了有效的隐私保护机制。上述文献大多侧重于电动汽车与充电桩之间隐私保护与交易安全的问题,所提区块链技术多体现在理论设计的安全性验证,对于共享充电桩完备的平台设计与应用涉及较少,未能在共享经济领域实现区块链与充电桩的有效融合。
基于上述背景,本文将区块链技术引入电动汽车充电桩共享应用研究。基于结合区块链和智能合约体系的以太坊平台,首先对电动汽车充电桩共享系统进行框架设计,建立了多层次的应用架构;接着,根据电动汽车用户、充电桩运营商和电动汽车管理商各自所具备的逻辑需求,实现充电积分和充电桩相关智能合约的设计;最后,通过算例验证本文所设计的区块链下共享充电桩平台的可行性。
1 重要概念与技术
1.1 共享经济
共享经济是在“互联网+”背景下发展出的全新经济模式,以一种合作消费的形式将所有者闲置的物品出租给需求方,在提升物品资源利用率的同时获取一定的经济效益[11]。在现有电动汽车充电产业中引入共享充电桩的经济模式,一方面缓解了公共充电站充电设施不足的难题,另一方面弥补了用户因购买私人充电桩而造成的高额闲置成本。
而现有的共享经济模式平台大多需要第三方中介机构进行集中式的数据传输与保护。随着私人充电桩数量的急剧增多,其规模大、随机性强的充电行为会导致租用者与被租用者的交易信息存在很大程度上的隐私泄露与篡改风险,大大增加了系统管理成本和数据保护成本。为此,作为分布式账本的区块链技术应运而生,其本质恰恰能够消除对第三方机构的依赖,共享体和市场主体相对区块数据都是平等的,能够实现对等的直接交易,推动真正的充电桩共享经济的发展[12]。
1.2 区块链与以太坊技术
区块链实质上是一系列数据区块的列表,区块链上的每个区块均记录了某一时段内的全部交易数据,运用了账户公私钥之间的非对称加密安全技术、Hash算法保障下的默克尔树数据结构、点对点的分布式网络架构、区块之间取得信任的共识机制等技术。由于缺乏相应的支持系统和技术,其应用广度和深度一直未能充分发掘。
随着具有智能合约功能的公共平台以太坊的诞生,区块链技术得到了天然的应用扩展,且二者相辅相成:以太坊平台底层封装了区块链的各项技术与调用接口,并为其提供了灵活多样的智能合约部署空间,为交易者权利和义务的法定执行提供了自动程序化的保障平台;区块链作为底层分布式账本,在无第三方中心机构参与的情况下,形成相互共识、不可篡改、安全透明化的区块数据结构,并在每个参与节点保留一份区块数据副本,去中心化地保障交易的安全、透明和可追溯。
2 电动汽车充电桩共享平台框架设计
2.1 设计框架
考虑到目前共享服务行业存在大量的优惠积分推广政策,本文以充电积分的形式购买相应的充电需求,激励电动汽车车主参与、扩大充电桩的普遍应用。本文在此共享平台中引入充电优惠的积分模式(如1充电积分可抵1元购买力),以充电优惠积分作为支付媒介参与共享充电桩的资金流动,并参与各市场主体间的转让或兑换操作,提供灵活多样的业务逻辑,增加用户粘性。其整体框架如图1所示。
图1 共享充电桩平台框架
参与到区块链共享平台中的市场主体包括电动汽车用户、充电桩运营商和电动汽车管理商,作为区块链网络中独立节点。每个市场主体基于含IP地址、公钥和私钥等加密信息的节点参与区块链网络交互,构成点对点的分布式共享交易系统。电动汽车管理商以发布和清算充电积分的方式来简化管理用户和充电桩运营商的支付交易情况:电动汽车管理商仅能向用户发布充电积分以优惠用户,充电桩运营可向管理商兑换充电积分以获得相应的真实资金;电动汽车用户和充电桩运营商均可根据自身需求在各主体之间灵活转让充电积分,实现资源共享与最优配置;充电桩运营商向区块链网络发布充电桩的寻租需求信息,用户根据自身需求既可以租用充电桩进行充电服务,也可以共享闲置的私人充电桩进行寻租服务。各市场主体之间的交互式业务逻辑均以智能合约的形式部署在区块链网络中,一旦满足合约执行的判定条件则达成智能合约,在区块链共享平台中自动执行相应的交易,并将交易合约信息记录在底层区块链分布式账本中。
2.2 系统技术架构
本平台采用Truffle应用开发架构。Truffle是以太坊应用开发中分层可扩展的开发技术框架,上层可用JavaScript语言方便地进行应用开发,底层内置了智能合约编译器,可实现编译、部署、测试的整个流程。本文所设计的具体开发架构如图2所示。
图2 共享充电桩系统开发架构
如图2所示,本文所设计的共享系统架构由3部分组成:基于区块链网络的数据层、基于智能合约的业务逻辑操作层、基于Web3技术的中间接口层和面向各市场主体操作的应用层。
2.2.1 数据层
数据层由基于以太坊平台的区块链分布式交易账本作为数据存储环境,支持并存储上层智能合约操作所达成的各项区块信息。各市场主体节点之间通过POW(proof of work)共识机制和非对称加密技术实现合法记账,每个节点都获得一个唯一、真实账本的副本,防篡改且透明可追溯。
2.2.2 智能合约层
各市场主体间的需求与可执行的业务逻辑均以智能合约的形式载入区块链以太坊平台,作为一套完整的交互式协议,规范各主体的交易模式,且合约一旦达成并部署就不可修改。
2.2.3 中间接口层
采用Web3技术实现上层应用与智能合约具体操作的接口API(application programming interface),封装智能合约的操作协议,使底层业务逻辑操作与上层应用的交互式界面相对接,构成完整有效的应用操作架构。
2.2.4 应用层
通过HTML语言构成的Web浏览器界面为参与的市场主体提供可视化的交互式操作界面,使各市场主体能够方便快捷地实现各智能合约操作的交互。
3 智能合约设计
3.1 合约属性设计
各市场主体作为独立的智能合约执行者,以电动汽车用户为例,其各项属性信息见表1。采用配对的公私钥作为账户模型,账号即公钥地址,密码即私钥地址。充电桩信息的添加与查询以充电桩编号为索引。充电桩的属性信息见表2,其中充电桩类型表示交/直流和充电功率的区别。
表1 电动汽车用户合约属性
表2 单个充电桩属性
3.2 合约功能模块设计
3.2.1 客户端登陆合约
客户端登陆合约主要包括电动汽车用户和充电桩运营商的密钥获取、注册登陆、账户管理。各市场主体通过配对的公钥和私钥作为账号和密码注册并登陆各自智能合约操作客户端。
3.2.2 充电积分操作合约
充电桩运营商之间积分转让与兑换操作流程如图3所示。其余市场主体的积分操作与之类似。
图3 充电桩运营商充电积分操作流程
3.2.3 充电桩操作合约
电动汽车用户共享私人充电桩和租用可用充电桩的操作流程如图4所示。充电桩运营商的充电桩操作与之类似。
图4 电动汽车用户充电桩操作流程
4 实验与验证
采用以太坊作为区块链环境平台,在Ubuntu 16.04操作系统下测试,采用Solidity语言编写智能合约。对于以太坊私有链的搭建,以Ganache-cli客户端所提供的公钥和私钥地址作为测试账户,以本机IP地址的3个端口号作为3个市场主体的测试节点地址,构成局部点对点的以太坊区块链私有网络。
4.1 以太坊私有链的搭建
登陆Ganache-cli客户端,在本机IP地址的8545端口上监听并搭建以太坊私有链,所申请的10个测试账户如图5 所示,即对应的公钥和私钥地址。为了防止代码指数型爆炸和无线循环,以太坊在执行每笔交易时以消耗一部分Gas值的方式对计算步骤做出限制[13]。故每个地址默认已提供100ETH(以太币)的账户余额,用来支付以太坊网络对Gas费用的收取。
图5 区块链测试账户
为简化代码、防止默认的Gas值过大导致产生Out of Gas的错误,本文在充电积分支付与转让智能合约方法中显式定义Gas值,保证消耗的Gas值足以支付所有的交易逻辑方法,仅在共享或租用充电桩时通过Metamask钱包动态地定义Gas值并设置交易确认对话框,体现以太坊区块链平台下用户交互式应用模式。
4.2 应用界面设计
各市场主体以账号和密码的形式注册并登陆共享充电桩平台,电动汽车用户的登陆界面如图6所示。其余市场主体登陆界面与之类似。
基于智能合约有关登陆的逻辑调用方法,以Ganache-cli所提供的第5个测试账号0x9ffabb9cedb9ffcb5 ddd765f5e7b1e29615a364d作为电动汽车用户的用户地址,相应的私钥作为密码,登陆后的界面如图7所示。具体包括当前登录的用户信息查询、转让充电积分的设置、租用和共享闲置充电桩的设置。顶端状态栏信息为当前电动汽车用户账号地址。其余市场主体登陆客户端后的界面与之类似。
图6 电动汽车用户登陆界面
图7 电动汽车用户管理操作界面
4.3 系统实现
4.3.1 充电积分操作
电动汽车管理商通过发行与清算充电积分的形式间接体现各市场主体的充电桩共享使用情况,因此本文以管理商的视角验证充电积分的操作。图8(a)为管理商向前文所注册的用户账户地址发行100个充电积分操作,点击发行按钮后上侧状态栏显示“发行积分成功”。
查看该账户下电动汽车用户充电积分余额,如图8(b)顶端状态栏“当前余额”信息显示,已由初始余额为零获得100个充电积分,验证管理商发行充电积分成功。与之类似,其余市场主体间的充电积分转让与查询均可通过相应的操作实例获得。
图8 发行积分操作
4.3.2 充电桩租用与发布/共享操作
电动汽车用户或充电桩运营商在进行充电桩操作时会显示如图9(a)所示的共享充电桩状态列表。以此为例展示了目前已发布到区块链网络中的所有共享充电桩状态与属性信息,状态分为已租用(Used)或待租(Rent)状态,属性信息包含充电桩交/直流类型与充电功率、编号、充电价格等,以供用户个性化选择。
图9 共享充电桩操作界面
同样,以账户号为0x9ffabb9cedb9ffcb5ddd765-f5e7b1e29615a364d的电动汽车用户为例,登陆浏览器插件Metamask钱包,以浏览器扩展的形式让用户通过浏览器与以太坊进行人性化的交互式账户管理。例如电动汽车用户根据自身需求点击“Rent”按钮租用编号为0002的充电桩,跳出如图10所示的交易确认信息,包含向以太坊本地私有网络提交的Gas费用价格与限制设置等信息。
图10 Metamask交易确认界面
为测试智能合约逻辑,选择默认设置点击“SUBMIT”确认交易后,共享充电桩列表如图9(b)所示。编号为0002的充电桩已由待租状态“Rent”转变为灰色的“Used”的已租用状态,相应的Gas交易信息记录在Metamask中。区块链网络根据电动汽车用户在客户端中设置的所需充电量,扣除相应的费用即充电积分,完成充电桩租用费的支付。与充电积分转让、扣除之类操作类似,在此不在赘述。
4.4 共享充电桩区块数据
基于以太坊智能合约逻辑方法,各市场主体之间的充电积分交互和充电桩的共享/发布与租用信息将记录在底层区块链分布式账本中,形成共享充电桩区块链。以上文电动汽车用户租用充电桩的测试验证为例,所形成的共享充电桩区块数据如图11所示。包含区块号、交易者地址、交易费用、交易详情等信息。
图11 共享充电桩区块数据
至此,本实验通过具体的实例操作展示了区块链电动汽车共享充电桩平台的应用流程,并验证区块链在电动汽车共享充电桩中应用的可行性。
5 结束语
(1)基于共享经济模式与共享充电桩契合度的分析,突破区块链固有特征下的应用局限,采用以太坊实现区块链下电动汽车共享充电桩平台的落地应用,无中心化的存储机构,构建了不可篡改、透明、可追溯、高可信的区块链数据体系。
(2)各市场主体间充电积分与充电桩的业务操作逻辑以智能合约的形式部署在以太坊中,形成相互共识的共享交易协议,在充分调动各市场主体需求的同时,有效实现各市场主体高效、安全、可信任的去中心化共享交易。
(3)设计了各市场主体间的交互式应用界面,并以具体实例操作验证区块链共享充电桩平台的可行性,为区块链在电动汽车共享充电桩中的应用提供切实参考。
本文后续工作中,还将继续完善智能合约的逻辑需求功能,并与数据库和移动端开发相结合,进一步实现平台的多适用性与可靠性。