随着电力体制改革的深化及分布式能源渗透率的提高,分布式能源在发电侧售电侧的有效配置面临着机遇和挑战,传统的集中式电力交易模式存在维护成本高、处理效率低、资金结算不及时等缺点,无法适应高频小额的分布式能源交易场景。首先,回顾区块链技术发展历程,深度探究区块链技术相关理论,同时结合对分布式能源发展状况的分析,总结了建设分布式能源交易市场的若干要求;然后,构建考虑安全约束的分布式电力交易的机制与模型;最后,提出基于区块链的分布式电力交易方法,确保交易的公开透明、信息对称,并设计分布式电力多边交易的智能合约。通过以太坊区块链的算例表明,所提出的分布式电力交易方法可实现潮流的越限修正、电力的多边交易,便于电力能源的数字化管理。
0引言
随着比特币的发行普及,区块链技术作为比特币的底层基础,逐渐为人们所熟知。学界对区块链( blockchain)概念具有普遍共识:区块链技术是一种公开透明的、去中心化的分布式数据库,数据库中的信息由所有的网络节点共享,而数据的管理方全权负责数据更新,同时数据更新过程也面向所有网络节点公开,因此区块链具有公开透明的特性;而去中心化体现在该数据库没有一个中央集权的负责人,所有网络节点作为用户均能访问数据库并更新数据,同时确保数据公开,供其他用户确认新数据的安全可靠性[1-2]。
2016 年 2 月,国家发改委、能源局和工信部共同发布了《关于推进“ 互联网+” 智慧能源发展的指导意见》,试图建立“ 一种互联网与能源生产、传输、存储、消费以及能源市场深度融合的能源产业发展新形态”,实现“ 设备智能、多能协同、信息对称、供需分散、系统扁平、交易开放”,而在分布式能源迅猛发展的时代,区块链技术作为去中心化的交易平台,将促进各类能源、各交易方的协作,实现电力市场交易的多元化和可靠管理[3-5]。
目前国内的学术界对基于区块链的电力交易研究尚处于起步阶段。文献 [6] 提出了产消者余量交易的配电网去中心化多边交易模型,设计了可执行偏差电量多边拍卖的智能合约。文献 [7] 探讨了区块链技术在大用户直购电方面的具体应用机制。文献 [8] 提出了基于区块链的弱中心化电力交易方案及阻塞管理机制,并具体分析了其交易效率。文献 [9] 分析了区块链与电力交易的匹配度,建立了基于智能合约的电力市场交易模型。
国内的工业界方面的相关应用均还处于试点阶段。上海链昱科技能源有限公司(Energo Labs) 研发了基于区块链技术的微电网内清洁能源计量、登记、管理、交易与结算的去中心化系统[10]。上海能链科技研发了绿色资产证券化云平台,在实现电力资产生产过程公开透明的同时,也保证了信批的及时透明[10]。国外也有多家公司在探索并实践基于区块链的去中心化电力交易机制。美国能源公司 LO3 Energy 与西门子合作建立了基于
区块链的电力交互平台— TransActive Grid,并在布鲁克林试点, 可实现绿色能源的用户间直接点对点交易[11]。美国 NAD Grid 公司基于联盟链与以太链研发了可帮助用户实现电力交易与优选购电的双链单币系统— NAD 平台,目前该平台已在加州、伊利诺伊州试点运行[12]。
以上研究着眼于区块链在分布式电力交易中的应用机制,缺乏具体实现形式的探究,对电力交易中的电力潮流等物理约束限制未作出全面考虑。
本文在区块链技术的基础上,依托以太坊和智能合约系统,通过编程构建在电力交易方面的典型运用场景,为电力系统融合区块链技术做充分的理论分析,为能源区块链重构考虑安全约束下的分布式电力交易提供可行的方案,实现电力能源的数字化管理。
1区块链技术与分布式能源
0.1区块链技术探究
区块链属于互联网时代新兴的信息技术,通过信用、证据以及交易记录跟踪并分析参与方的行为,适用于任何去中心化的信任网络[13]。区块链的定义有狭义、广义之分。狭义上,区块链是一种将系统中产生的数据区块按时间先后顺序以链的形式组合成特定数据结构,并以密码学原理保证其不可篡改、不可伪造的去中心化共享总账,能够安全存储简单的、有时间先后顺序关系、能在系统内验证的数据;广义上,区块链是利用加密链式区块结构验证和存储数据,利用分布式节点共识算法来生成和更新数据,利用自动化脚本代码(即智能合约)来编程和操作数据的一种全新的去中心化基础架构和分布式计算范式[14]。
以太坊是可编程的区块链,提供了一套图灵完备的脚本语言,因此,开发者可以直接用 C 语言等高级语言编程,转换成汇编语言,大大降低了区块链应用的开发难度。智能合约是区块链技术最重要的部分,极大地扩展了区块链的功能。本质上,智能合约是写在区块链上的一段代码, 当某个事件触发了合约中的条款时,代码将自动执行。因此,智能合约也称为链上代码[15]。
0.2分布式能源的新形势
能源工业是中国经济发展的重要基础。目前中国持续推进能源的供给侧改革,由传统的大电源-大电网集中供能模式向着分布式能源、可持续能源、传统集中供能融合的方向转变。分布式能源相比传统能源,有四大明显的优势。其一,分布式能源可以相互配合,实现能源的梯级利用, 利用效率相对较高;其二,分布式能源可实现就近消纳,电力传输损耗相对较少;其三,目前的分布式能源主要包括天然气、光伏、生物质能、潮汐能等,均为绿色可持续能源,对环境的影响远小于煤炭等传统能源;其四,分布式能源根据所在地区的特点可对能源实现因地制宜地利用, 从而能有效解决某些偏远地区供能供电问题[16-17]。然而,尽管近年来中国的分布式能源有了一定的进步,但分布式能源市场化交易的发展还较为缓慢,受到电力市场主体积极性不高、相关政策不健全、公共服务落后等因素的制约。
0.3区块链的解决方案
建设安全、高效的分布式电力交易市场有很多可能性。分布式电力交易系统具有如下 3 个特点。
(1))精确测量。计算测量是运行多种数字感知的各种能量系统,是控制的基础和能量信息的来源。然而,虽然互联网的计算测量能力是准确的,但仍不能解决数据信任的问题。
(2))自主控制。为了应对大量分布式本地能源的使用,设备和系统应根据本地指令实现动态响应,提高系统的运行效率和可靠性。但是, 在现有的自动化系统中,不可能确定外部数据是否应该受信任。如果信任外部数据,事故责任归属后的指令执行情况未知,则会影响系统的效率和可靠性。
(3))优化决策。在决策过程中,容易滥用决策权,损害其他主体利益,因为大量的能量直接在互联网设备之间进行点对点的交互作用,导致共识效率低下,对死循环的后果尚无共识[18]。
针对以上特点,学界对分布式电力交易系统参与者的组成、系统架构以及交易模式提出了许多设想,大多认为可以借鉴输电侧市场交易经验,建立交易中心,采用双向拍卖等集中式交易出清方案。但配电系统内的分布式电力交易数量庞大而交易规模较小,同时电能产消者对交易的公平透明、自身隐私保护具有更高要求。因此, 集中式交易中心的发展面临以下 3 个问题:一是大量交易数据的涌入给中心机构带来了单点故障的风险,威胁分布式电力交易系统安全稳定运行;二是交易中心与产消者之间存在信任问题, 难以保证电力交易的公平性、透明性与信息有效性;三是大量产消者的存在导致交易中心运行效率低、决策耗时长,难以满足实时运行的需求。
区块链为分布式电力交易系统面临的技术问题提供了行之有效的解决方案。
(1))从准确计量升级到可信计量。数据储存在区块链上,以确保非篡改公钥和非对称加密组合保护隐私,以此切实保护电能产消者的隐私。
(2))从自动控制升级到智能控制。通过以智能合约形式实现逻辑功能,生成可信的本地命令,完成控制过程以处理外部环境的变化,以此解决交易中心与产消者之间存在的信任问题, 防范中心机构的舞弊现象。
(3))从优化决策到民主决策。分布式电力设备之间的本地共识和区域间共识避免了大规模分布式设备的复杂迭代和死循环,以产生直接的共识,从而实现分布式决策,提高交易效率及速度。
(4))从单点控制到多点维护。电力产消者采用去中心化和去信任的方式集体维护一个可靠分布式数据库,而不再依赖于中心机构的单点控制,共同维护分布式电力交易的安全稳定运行。
目前对区块链在电力交易中应用的研究多数以简单的集中撮合交易为主,不支持电力系统含安全约束的电力交易。本文的主要贡献之一是如何在区块链上实现含安全约束的分布式电力交易。另外,目前区块链的计算及响应速度有限,基于区块链的大量交易行为很容易造成拥堵。区块链开发人员目前正在探索对策,如增加区块大小、开发分片( sharding)、侧链( sidechains)和支付通道( payment channels)等技术,来保证交易的即时完成。此外本文所述交易机制只涉及少量节点,部署在挖矿难度可调的以太坊私有链上, 能有效提高区块链交易速度。
2分布式电力交易模型及机制
分布式供电方和用户之间存在动态平衡,采用配电网去中心化交易机制可以使各产消者间灵活交易,消除分布式供电方、用户自身实际出力(或负荷)与发用电计划的偏差值,最终实现配网内部的供用电平衡,为能源区块链重构电力交易提供可行方案,实现电力能源的数字化管理。
在多边交易中,分布式供电方和用电方需要发起买/卖偏差电量交易请求,以消除实际发用电量与计划值的偏差。供电方卖出剩余电量,作为投标方。用电方收购投标方卖出的剩余电量。上述场景对于卖方市场而言,交易目标是售电方以最高价格出售电能,如果是买方市场,则要求购电价格达到最小,本文以卖方市场为例,表示为
如图 1 所示,本文所设计的分布式电力交易平台架构中,电力资源作为可交易的数字资产, 在 P2P( peer-to-peer)交易市场中完成针对报价和数量的购售交易,同时通过区块链完成在电力产消者之间的信息交互和价值转移。由于无法及时获取未来时段电力产消者的准确电力需求,本文将一天划分为 48 个时段,在每个时段交易下一个时段的电力资源。考虑安全约束,基于区块链的分布式电力交易流程如下。
(1))配电网中各用户拟定自身用电量、发电量计划,通过智能合约提交区块链,由区块链矿工将信息写入区块记录。
(2))当某用户实际用电量或发电量与既定计划有偏差时,该用户将通过智能合约发起交易, 如果供电过剩,则请求卖电;如果耗电过多, 则请求买电。请求周边用户改变供电量或耗电量计划,协助消除偏差值。
(3))周边用户收到交易请求,计算配电网供求总偏差值,并根据总供/用电量偏差值,给出卖电或买电的报价。
(4))区块链矿工收集所有产消者的报价并对报价集合排序,在买方市场中,将供电方的有效报价由低至高排序;在卖方市场,将用电方的有效报价由高至低排序。在出清队列中按照报价排序结果,选择供电量/用电量交易额度并且选择输送线路,直至满足供电量/用电量平衡约束。
(5))此时所有产消者可开展 P2P交易,该阶段可开展 3种交易行为。①限价交易:买/卖方指定成交价格及电能数量,出现等于或高于该价格的卖方/买方报价,则成交,成交价格为双方报价的平均值;②市价交易:买/卖方不设定价格但指定数量,以当前市场最优卖/买方报价成交;③ 撤单:放弃出售/购买电能,清除自身报价信息。
所有产消者可查看公布在区块链上的买卖双方投标数量及价格。若 P2P 市场参与者放弃电力交易,则可选择撤单,清除自身报价信息;若自身下一阶段电力需求发生变化,则可发布限价订单,修改报价及数量,在市场中等待响应;若购售需求非常急迫,则可发布市价订单,指定成交数量而不限定价格,区块链可为其选择当前市场最优报价完成交易配对。
(5))考虑线路裕度对输送的限制。首先根据功率转移分布因子,计算配电网潮流。若不存在线路裕度越限情况,则通过安全校核,确定交易结果;若存在线路裕度越限情况,则未通过安全校核,调整潮流,结合各方报价、可供/求电量分析,重新计算配电网潮流。
(6))经过安全校核,若产消者无法通过内部交易维持平衡,则系统备用被调用,以弥补该产消者的偏差。
(7))交易主体之间完成多边交易结算,费用结算在区块链上完成。
(8))配电网中所有用户按照电力 P2P交易的结果调整自身发用电,各个用户安装可运行区块链节点的智能电表,由智能电表检测产消者的发用电情况,并通过内置的通信模块与区块链上的智能合约产生数据交互,由矿工对数据打包并写入区块链,该过程由智能电表自主完成,无需电网公司的参与。若分布式发电方实际发电数量少于交易结果,则给予一定的经济处罚,以此维护配电网的安全稳定运行。
对于一个 n 节点的配电网络树图,其中包含n–1 条线路,可以利用如下方法计算线路潮流。
( 1) 对 n– 1 条线路编号 1~n–1 ,另规定有n– 1 行 n 列的二维数组 A。每一行代表一条线路, n 列则表示 n 个节点。
( 2)规定线路正方向,本文选定从根节点向叶节点延伸的方向为正方向,即潮流流向为从根节点到叶节点,靠近根节点的节点为上游;反之为下游。
( 3)在二维数组 A 对应行列中填入 0 或 1, 第 i 行第 j 列填入 0 代表第 j 个节点处在第 i 条线路的上游, 第 i 行第 j 列填入 1 代表第 j 个节点处在第 i 条线路的下游。其中 1≤i≤n–1,1≤j≤n。
( 4) 创建 n 行 1 列的一维数组 B, 第 n 行元素代表该节点计划流入的电能,数值为正表示用电方流入电能,数值为负表示供电方供出电能。
(5)将二维数组 A与一维数组 B 相乘,得到一个 n– 1行 1列的一维数组 C,其中每 k(1≤k≤ n–1)行的元素代表第 k 条线路的潮流流向,若为正,则表示从上游到下游;若为负,表示从下游到上游;若为 0,则该条线路不存在潮流裕度越限隐患。
至此,可以得到无线路容量裕度下的潮流理论计算值,比对线路的安全裕度与潮流理论计算值,发现有越限的线路则修正潮流。设 Pαβ为线路 αβ的潮流数值,按如下方法描述为:(1)对于 一 条 正 向 越 限 , 即 P αβ> 0 的 线 路 而 言 , Pαβ> Pαβ,移除上游的供电方,按照报价从低到高排序,选择已加入供电范围的最高价投标者, 降低其输出电量,同时在越限线路下游增加最低价供电方的输出电量(若最低价投标者已经达到最大输出,则选取第二低价者)。如此往复循环,直至目标越限线路的潮流达到安全裕度范围内。(2)对于一条负向越限, 即 Pαβ< 0的线路而言,– Pαβ> Pαβ,移除下游的供电方,按照报价从低到高排序,选择已加入供电范围的最高价投标者,降低其输出电量,同时在越限线路上游增加最低价供电方的输出电量(若最低价投标者已经达到最大输出,则选取第二低价者)。如此往复循环,直至目标越限线路的潮流达到安全裕度范围内。
对于一个正向越限的线路而言,上述方法将减小线路上游某一投标者(最高价为最优)的输出电量,增大下游某一投标者(最低价为最优) 的输出电量,以上步骤均需确保不增加更多的越限支路,否则考察优先级队列中下一顺位者。这样的调整将降低上、下游这两个节点之间的线路传输功率,最终达到安全裕度范围内。
3分布式电力交易合约设计
基于区块链的智能合约是实现区块链技术应用的关键,通过智能合约中定义的状态变量
( state variables)、结构类型( struct types)、函数( functions)、事件( event)等内容实现具体应用的开发。
本文设计的用于电力交易的智能合约按照时间 顺 序 可 以 分 为 4 个 阶 段 : 交 易 信 息 投 标 、P2P 交易、安全校核、交易清算。
买卖双方的信息在区块链智能合约中定义为结构体类型,包含:用户信息结构体( struct buyer、struct seller)、地址( address owner)、报价( uint price)、电量( int amount)、节点在网络中的位置(uint position)。
结构体 Buyer/Seller 通过映射( mapping)建立用户地址与信息的关系。
本文针对分布式电力市场交易流程的 4 个阶段设计了不同函数,具体函数如下。
3.1电力需求提交阶段
3.1.1标准设定函数(Standard)
由区块链上的成员(包括电网公司、充电站等)在新的交易周期开始前调用,用于设定/修改市场标准电价、以太币和交易平台支付货币Token 之间的汇率,市场电价具体数值一般以地方分时电价为准。以太币市场价格波动较大,因此本文选择基于以太坊的 ERC20 Token 作为支付货币,通过区块链成员在每个交易周期初期根据以太币与人民币的汇率修正以太币(单位为 eth, 以太币与人民币的汇率在 2018 年 10 月 15 日为1eth≈1 349 元)与 Token 的汇率,将充电站交易平台内 Token 的价格锚定在 1 元=100 Token,平抑以太币的价格波动。
3.1.2交易信息投标
本阶段包含买方预报价函数( BuyerAmount) 和卖方预报价函数(SellerAmount)。各个用户通过预报价函数提交交易,将用户欲购/售电量存入positionToamount[_position] 之中,与用户在电力网络中节点位置映射确定。在提交报价申请的同时需要提交一定的保证金。
用户提交的保证金主要用途有:
( 1)用于P2P 交易市场中,产消者之间电费的支付结算;
( 2)用于交割时段,产消者发用电量的保证。若生产者产出电能不符合交易时段结果,则保证金扣除。
3.2电力 P2P交易阶段
3.2.1报价排序
本阶段包括报价投标函数( blindBid)、报价排序函数(revealBid)和成交函数(bidSuccess)。
各个用户若想购/售电能,为了保证投标过程的安全公平,用户调用 blindBid 开展报价,该函数利用哈希函数将报价与自设字符串加密形成字符串。随后用户将调用 revealBid,提交 blindBid 中输入的报价、字符串以及欲购数量,由区块链核准,若和先前加密形成字符串一致,则投标成功并揭露报价,同时完成买/卖报价集合的排序;反之则用户投标失败并丧失保证金。
3.1.1P2P交易
本阶段包括限价交易函数、市价交易函数以及撤单函数。
(1))限价交易函数(LimitOrder)。若购/售方决定修改自身报价或者数量,可调用该函数修改报价、数量并向区块链发布限价订单。限价订单发布之后, 在 P2P交易结束之前,该订单可被其他产消者响应,并以限价订单设定的价格成交相应数量,直到成交数量达到限价订单设定数量时交易终止。订单响应后,矿工将通过智能合约函数运算完成交易结算转账,并修改交易双方交割时段充电权。
(2))市价交易函数(MarketOrder)。若购/售方决定按照当前市场最优价成交,则调用该函数,输入自身计划成交数量,由矿工执行智能合约函数逻辑,按照市场最优价为其匹配交易, 直到满足计划成交数量或者匹配完全、报价队列清空,交易终止。矿工同时完成结算转账并修改成交双方充电权,最后将所有相关信息在区块链上更新。
(3))撤单函数(DeleteOrder)。若购/售方决定退出交易市场,可调用该函数,清空自身报价队列中的报价信息。
3.1安全校核及修正
本阶段包括安全校核函数( securityCheck)及潮流修正函数(modify)。
通过 security Check 函数,得到无线路容量裕度下的潮流理论计算值,将其与线路容量裕度对比,反馈是否越限。随后调用 modify 函数对各条线路修正潮流,同时修正各中标用户可购/ 售电量。
3.2交易清算
本阶段包括交易结算函数( transSettlement), 用户通过该函数完成交易转账,由区块链确认结果,未支付的用户将无法取回保证金。
实际上,目前以太坊智能合约还存在无法主动执行、安全性较差等问题。因此本文在智能合约中添加了区块链行业开发中最常用的 safemath 库,防止数值计算溢出等安全问题,并使用函数修饰符限制相关函数操作权限,防止恶意调用等安全问题。随着智能合约技术的进一步完善和发展,基于以太坊智能合约的充电权多边交易方法也会随之完善和改进,实现安全性和高效性的协调统一。
4算例分析
为验证本文所述机制的有效性,本节在实验室环境下将考虑安全约束下的多边电力交易智能合约发布在以太坊私有链,模拟配网环境进行测试。其中配电网结构采用改进的 IEEE 33 节点配电系统。该配电系统中包含 9 个电力产消者,如图 2所示。
以买方市场为例,其中设定分布式供电(卖电)方为 1、2、10、22、24、28 号节点,用电(买电)方为 3、6、20 号节点,本文选择基于以太坊的 ERC20 Toke n 作为结算货币,单位为token。由于以太坊区块链本身计算性能有限,本算例只考虑电力系统有功功率平衡问题。报价与电量如表 1 所示,无线路容量约束条件下的结算如表 2、3所示。
由以上可知,在不考虑线路传输裕度的情况下,由报价低的售电投标节点优先供电,由报价最低的 1、24、10 向 3、6、20 节点售电,节点1 和 24 出售完全部的电量,节点 10 出售 0.71 kW·h 的电量满足购电用户的总需求,此时买卖双方所购售下个周期的电量均为 13.27 kW·h,可满足电量平衡,进而可满足配电网功率平衡。成交单价按照式(4)计算为 195 token/(kW·h)。配电网各支路传输容量裕度如表 4所示。
由表 4 及表 2 可知,线路 1—2 、3—2 4 存在潮流越限情况,需要修正。按照文中第 2 节潮流修正机制及第 3节智能合约功能对线路潮流修正,智能合约计算结果及 Matpower计算结果如表 5 所示,潮流修正后电力交易结算情况如表 6 所示。
由以上可知,在考虑线路传输裕度的情况下,节点售电数量受到线路裕度限制,修正潮流越限情况后, 1节点及 24节点分别出售 4.2kW·h、1.27 kW·h 电能,未能完全出售投标数量;10 节点出售了更多的电量,达到 1.23 kW·h; 22 节点和28 节点作为新的出售方,分别出售 2.96 kW·h、
3.61 kW·h 电能。此时买卖双方所购售下个周期的电量均为 13.27 kW·h,可满足电量平衡,进而满足配电网功率平衡。
通过在以太坊私有链上的仿真表明:(1)潮流越限情况下,成功实现了售电方的传输电能自调整;( 2)用户可在以太坊区块链上使用以太坊代币 Token 完成电力交易,该过程公开透明, 结算由智能合约自动完成,保证了安全性;
( 3)考虑安全约束下基于区块链的分布式电力交易智能合约可顺利完成交易投标、报价排序、安全校核及修正、交易清算等功能。
5结语
本文设计了“ 多买多卖,分布式电能交易” 去中心化的交易模型与机制,在以太坊区块链上,依托智能合约实现了配电网去中心化电能多边交易流程,并引入配电网的潮流约束限制条件,将理论进一步贴合实际应用。
区块链在分布式电力多边交易中的运用值得深入研究,后续可能的方向包括:基于区块链的分布式电力多边交易最优规模研究,适用于分布式电力交易的区块链共识机制设计等。