区块链技术下配电侧电力市场交易平台研究
2021-11-24刘维扬陈献慧
王 冰,刘维扬,陈献慧,孙 洲,孙 可
(1.河海大学能源与电气学院,江苏 南京 211100; 2.国网绍兴供电公司,浙江 杭州 312000)
近年来,以新能源发电和信息技术高度融合的能源互联网为各类能源的规模化利用和灵活接入提供了可能的解决方案[1-2]。越来越多的市场主体从传统单一能源消耗者或生产者转型为具有独立决策能力的电能产消者,以一种更加灵活多样的方式参与到电力市场竞争中。在此新形势下,如何构建合理有效的配电侧电力市场交易平台,充分保障各市场主体的不同利益和能源资源的有效配置,是目前亟待解决的重点问题。
区块链技术作为一种分布式共享数据库技术,其所具备的去中心化、透明性、公平性等特征与能源互联网理念相契合[3-4],可以一种互联网下的格局与模式,在保障信任、促进交易、达成认证等多优势的前提下高效运行,很好地弥补传统电力交易机制中交易成本高、交易信息不对称、交易数据效率和数据安全性低的不足[5],为搭建多主体形式的能源互联、信息与物理融合的电力交易平台奠定基础。
目前,对于区块链技术在电力交易市场中的应用,马天男等[6-7]以一种契合区块链思想的方法来解决配电侧电力交易和需求响应等问题,所提方法类似于区块链的技术思路;平健等[8-9]基于区块链以太坊平台建立电力交易平台,融合多方信息交互技术,实现智能合约与交易机制的结合;朱文广等[10-11]在建立配电网区块链架构的基础上,详细描述了区块链在需求侧资源交易中的重要过程与关键技术。上述研究详细探索了宏观上区块链的构建原理和应用设计,验证了交易模型在多种应用场景下的可行性,而对于区块链底层技术的实现与验证还不够翔实,市场主体的多元化需求与竞争未能与智能合约的优势充分结合。
本文将区块链分布式记账框架与电力交易智能合约模型相结合,在含多元市场主体的配电侧交易框架下建立电力交易平台。在满足各交易主体利益的基础上构建点对点的分布式共享网络架构,实现交易的去信任化和安全化。通过算例了验证本文所提电力交易平台的有效性,可为区块链技术应用于配电侧电力市场交易平台的搭建提供参考。
1 区块链下电力交易概述
1.1 区块链和智能合约技术框架
区块链实质上是一系列数据区块的列表,每个区块均记录了某一时段内的全部交易数据,运用了非对称加密、默克尔树数据结构、共识机制等技术。智能合约是区块链中一个重要技术分支,一个由计算机处理的、可执行合约条款的交易协议[12],其将电力市场主体之间的竞争关系以逻辑代码的方式进行匹配,一旦达成合约执行的判定条件则自动进行相应的交易。
区块链下电力交易框架如图1所示。上层模型中,参与交易的市场主体根据各自的目标、需求和约束形成业务逻辑,在多方博弈竞争下相互达成智能合约。底层模型中基于区块链的特征将达成的交易账单添加到分布式账本中,实现电力市场交易账单的安全性、共识性和透明化。二者层次之间通过相互达成的合约电量和电价联结。
底层所构成的区块链数据区块主体如图2所示。每个区块主要包含区块头(图中虚线框部分)和交易账单两部分。区块头包括序号、时间戳、Hash值等与上一区块连接的信息,交易账单主要包括一定时段内某一电力市场主体与其他市场主体通过智能合约达成的合约电价和电量记录。
图2 数据区块主体Fig.2 Main body diagram of data block
由此可整体上构成透明、安全、可追溯的区块链电力交易平台网络(以下简称交易网络),为相互之间的电力交易提供点对点的分布式架构;平台上任意网络节点地位对等,实现去中心化、数据共享的功能。
1.2 电力交易流程
针对每个市场主体,基于区块链的电力交易流程如图3所示。
图3 区块链下电力交易流程Fig.3 Flow chart of power transaction under blockchain
上层框架流程中,每个市场主体向平台注册唯一的网络节点和各自的私钥,获取相应的唯一公钥,然后向电力交易池中发布包含自己公钥、报价区间、电量需求等的请求信息;交易网络根据每个市场主体的利益与约束条件与其余市场主体进行点对点交易达成智能合约,并自动形成合约账单,包含售电主体、购电主体、合约电量和合约电价,还包括该笔账单的数字签名(由售电方的私钥加密产生)和购电方私钥加密而生成的数字签名。
底层框架流程中,购电主体用售电主体的公钥验证此交易的数字签名是否合法,如果解密后与加密前信息不一致,交易网络则拒绝此次交易账单的添加,并对其非法行为进行违约金惩罚;否则交易网络对即将加入网络的账单进行共识机制验证,从而形成新区块并成功添加到交易网络中,完成整个电力交易流程。
2 区块链分布式账本设计
本文基于区块链技术设计一种电力交易的分布式账本,即一种在区块链下各市场主体节点之间共享、复制和同步的数据库。主体账本结构包括账户信息层、安全加密层、共识机制层和交易激励层。各市场主体节点基于真实的账户和地址信息,通过加密技术和共识机制实现合法记账,并奖励交易参与者,使每个节点都获得一个唯一、真实账本的副本,防篡改且透明可追溯。
2.1 账户信息层
区块链网络中每个市场主体均拥有专属的公钥和私钥(16进制数串),公钥与交易者真实身份、地址绑定,可以公开地发布给全网用户,而私钥只有用户本人掌握。区块链私钥的设计保证了相应账户地址下唯一所有权,一个账户地址有且只对应一个私钥。私钥的使用采用Hash算法,即将一串字符串映射成另一段固定长度字符串的算法[13],且二者是非独立的关系,即私钥经过一系列加密运算之后,可以得到地址,但是无法从地址反推得到私钥。
2.2 安全加密层
不仅账户的公私钥具有加密关系,各节点下的交易账单也是加密的,体现在交易者的数字摘要和签名上。数字摘要是对数字内容进行Hash运算,获取唯一的字符串来指代原始完整的数字内容,可以确保原始内容未被篡改;市场主体可利用私钥对摘要信息进行签名。售电主体用私钥对交易账单进行加密后,其余用户根据售电主体的公钥解密来验证数据来源的真实性,可看作是签名过程的逆运算,其解密值如果与原始交易账单中的数字签名一致则说明此次交易有效,被许可加入区块链账本中。
2.3 共识机制层
区块链具有分布式、自治性、开放可自由进出等特性,所以不存在一个中心节点来保障各个节点记账的一致性[14]。本文采用工作量证明(proof of work,PoW)机制来保证加入区块链的交易账单达成共识。每个市场主体通过不断地在尚未加入链的新区块上加入随机数(nonce)进行Hash运算,以通过解决密码学难题(即工作量证明)竞争获得本轮唯一记账权。
因为每轮仅有一个节点可以成功记账,并将新区块信息添加到区块链网络中,所以其余竞争失败的节点将停止争夺记账权,复制新区块信息并添加到自己节点数据库下,由此保证了区块链总账本的唯一性和权威性,使全网节点均达成共识、数据共享。
2.4 交易激励层
随着交易量的增加,为避免过多无效交易,交易网络不断提升达成共识的难度与成本,即需要Hash计算得出的数字以0开头的位数不断增加。因此,在共识机制中可引入合理的激励机制,用于推动交易者积极地参与区块链的发展,鼓励有效记账行为,使得共识节点最大化收益的利己行为与保障去中心化系统的安全和有效性的整体目标相契合。在PoW机制中,交易网络对赢得记账权的节点添加一笔转账交易作为共识奖励。
3 区块链智能合约设计
微电网运营商可以生产和售卖电量,也可以在缺电时购电;负荷聚合商可以收集分散的负荷资源再售出,赚取购售差额收益;电力大用户以最小化购电成本为目标进行购电,不考虑售电过程。
3.1 市场主体需求合约分析
3.1.1 微电网运营商需求合约
微电网自身调度能力有限或者内部含有间歇性能源,其内部发电量不一定持续与自身负荷平衡,对外呈现一定的电量富余或缺额[15]。在负荷高峰期,考虑到机组运行、启停机等成本,微电网运营商会从负荷聚合商处购电,进行调峰来优化负荷平衡并降低成本;在负荷低谷期,微电网运营商会将多余的电量出售给负荷聚合商和电力大用户来获利。
a.电量缺额时向外购电成本:
(1)
式中:Cb, it——第i个微电网运营商在时段t内的购电成本;Pb, jit、Pb, ikt、Qb, jit、Qb, ikt——在时段t内从其余第j个微电网运营商、第k个负荷聚合商的合约购电价和电量;N1、N2——微电网运营商和负荷聚合商的数量。
b.电量富余时向外售电收益:
(2)
式中:Rs, it——第i个微电网运营商在时段t内的售电收益;Ps, ijt、Ps, ikt、Ps, imt、Qs, ijt、Qs, ikt、Qs, imt——在时段t内向其余第j个微电网运营商、第k个负荷聚合商、第m个电力大用户的合约售电价和电量;N3——电力大用户的数量。
3.1.2 负荷聚合商需求合约
为充分挖掘并利用大量中小负荷资源的响应能力,负荷聚合商的概念应运而生。负荷聚合商拥有灵活的负荷资源,既可以整合中小型需求响应资源以向微电网运营商提供备用,又可以将多余的资源对外再分配,通过购售差价来赚取利润。
a.向外购电成本:
(3)
式中:Cb, kt——第k个负荷聚合商在时段t内的购电成本;Pb, ikt、Pb, klt、Qb, ikt、Qb, klt——在时段t内从第i个微电网运营商、其余第l个负荷聚合商的合约购电价和电量。
b.向外售电收益:
(4)
式中:Rs, kt——第k个负荷聚合商在时段t内的售电收益;Ps, ikt、Ps, kmt、Ps, klt、Qs, ikt、Qs, kmt、Qs, klt——在时段t内向第i个微电网运营商、第m个电力大用户、其余第l个负荷聚合商的合约售电价和电量。
c.储能运行成本:
Cr, kt=Pr, kQr, kt
(5)
式中:Cr, kt——第k个负荷聚合商在时段t内的储能运行成本;Pr, k——第k个负荷聚合商的储能单位运行成本;Qr, kt——第k个负荷聚合商在时段t内需要存储的电量,即购售不匹配时的剩余电量。
3.1.3 电力大用户的需求合约
电力大用户直购电是新电改的重要一环,使得达到市场准入门槛的大用户可以与其余购售电企业以公平竞争、相互协商的原则直接进行电力交易。为简化模型并突出大用户作为能源消费者的角色,本文设计的交易网络只考虑大用户以最低购电成本为目标与其他市场主体达成智能合约的行为。
(6)
式中:Cb, mt——第m个电力大用户在时段t内的购电成本;Pb, imt、Pb, kmt、Qb, imt、Qb, kmt——在时段t内从第i个微电网运营商、第k个负荷集聚商的合约购电价和电量。
3.2 市场主体目标合约
各市场主体目标合约表达如下:
(7)
(8)
(9)
式中:Rt, M、Rt, A、Ct, U——在时段t内N1个微电网运营商总的收益、N2个负荷聚合商总的收益和N3个电力大用户总的成本。
3.3 市场主体约束合约
微电网运营商售电量、电价约束:
(10)
Pmin,it≤{Ps, ijt,Ps, ikt,Ps, imt}≤Pmax,it
(11)
式中:Ks, it、Pmin,it、Pmax,it——第i个微电网运营商在时段t内的售电能力、最低售价和最高售价。
负荷聚合商与电力大用户的电量与电价约束与之类似,在此不再赘述。
4 智能合约解法
本文采用罚函数处理约束条件并引入目标合约,基于多目标粒子群算法实现各市场主体间智能合约的达成。每个粒子代表一种市场主体间各竞价时段的购售电电价和电量曲线。最终寻优获得一系列的非劣解集,并采用模糊隶属度函数法选取适当的折中最优解决方案[16]。具体求解流程如图4所示。
图4 智能合约解法流程Fig.4 Solution flow of smart contract models
各市场主体的适应度函数表示为
(12)
式中:Ft——在时段t内各市场主体总适应度函数;ft——在时段t内各市场主体目标合约;Vr,t——在时段t内第r个约束的冲突函数;ωr——第r个约束条件的惩罚参数。
5 算例仿真
为验证本文所提交易机制的可行性,底层采用Python搭建区块链分布式记账系统,并用Postman进行交互式网络节点测试;上层采用Matlab仿真达成智能合约的过程并进行求解,最终的合约解记账在底层系统。选取3个微电网运营商(M1、M2、M3)、2个负荷聚合商(A1、A2)和3个电力大用户(U1、U2、U3)构成市场竞争的主体。1台PC机的主机IP地址(127.0.0.1)分别分配端口号5001~5008作为8个市场主体的网络节点,端口号8080作为市场主体注册平台的接口。
5.1 算例数据
a.假设微电网运营商和负荷聚合商内部各主体的售电能力相同,市场主体总需求与总售电能力一致,保证电力交易的供需平衡。其数据参考文献[6]中算例数据。
b.对于相同市场类型内部主体之间的交易,参考文献[17],简化分析以下关系:考虑3种市场主体内部之间设为统一的电价曲线,不同类型主体之间设置不同的交易价格曲线。假设微电网运营商、负荷聚合商和电力大用户之间的最低交易电价均取0.3 元/(kW·h),最高交易电价分别取1.1元/(kW·h)、1.5元/(kW·h)和1.25元/(kW·h),负荷聚合商的单位储能成本取0.1 元/(kW·h)。
5.2 智能合约交易结果
执行智能合约模型,各市场主体之间的合约电价结果如图5所示(图中,M-M表示微电网运营商内部之间的合约电价;M-A表示微电网运营商与负荷聚合商之间的合约电价;其余关系以此类推)。以M1为例分析微电网运营商的合约策略,求得其在各时段与其他市场主体之间的合约电量如图6所示(图中M1-M2为微电网运营商M1与M2之间的合约电量,正值表示微电网运营商M1从M2购电,负值表示售电,其余关系以此类推)。
图5 各市场主体间合约电价Fig.5 Contract electricity price among market subjects
图6 微电网运营商1与其他主体的合约电量Fig.6 Contract electricity volume of microgrid operator 1 with other market subjects
由合约电价与电量结果可知,微电网运营商是主要的电量售出方,在其内部系统负荷较低时段(如夜晚至凌晨时段),对外呈现电量富余,无购电需求。而此时负荷聚合商正收集闲置的资源,需求电量大,电力大用户作为消费者需求少。因此,微电网运营商以较高的合约电价卖电给负荷聚合商,且低于与电力大用户之间的合约电价,达到双方利益平衡。随着微电网运营商自身内部需求的提升,会产生一定程度的电量缺额,对外需求不断增加,售电能力逐渐降低。而此时负荷聚合商已收集并存储了一部分能源,具备一定售电能力,电力大用户的用电需求也逐渐接近高峰。因此,此时负荷聚合商作为主要的电力售卖方,以较高的合约电价卖电给微电网运营商与电力大用户获取最大利益。
负荷聚合商和电力大用户之间合约策略具体的分析过程与微电网运营商类似,在此不再赘述。
5.3 市场主体经济利益分析
以微电网运营商M1、负荷聚合商A1和电力大用户U1为例,图7为智能合约下各时段的最优利益分布。
图7 微电网运营商M1、负荷聚合商A1和电力大用户U1各时段最优利益分布Fig.7 Optimal interest distribution of microgrid operator 1, load aggregator 1 and large power user 1 at all times
M1在夜晚至凌晨时段主要进行售电行为,与A1达成较多的合约电量,收益高。M1在下午时段售电能力高,故图7中该时段内M1获得较高收益。随着M1处于自身负荷高峰时,呈现对外电量缺额,需通过对外购实现整体收益最优,如图7中12 h及20 h左右所示。A1的购售电行为与M1相反,A1在凌晨时段主要进行分散资源的收集与购取,导致利润亏损,而随着自身售电能力的逐渐升高和其他市场主体的需求变大,A1逐渐获得高售电收益,弥补购电成本从而获得最优利润。U1由于不具备对外售电能力,其达成的最低成本与其自身负荷需求变化相一致。
5.4 分布式账本记账结果
a.运行底层区块链分布式账本,以M1参与电力市场平台为例验证记账过程。M1在8080端口注册,获得相应的密钥地址:私钥(0x3082025b020……)、公钥(0x30819f300d0……)。
b.M1通过端口节点5001向交易池发布自身电量需求、报价区间等请求信息,与其余各市场主体相互进行交易需求匹配并达成智能合约,再以自己的私钥对交易账单进行加密获得交易数字签名。
c.以M1与A2在时段14h内达成的合约为例,Postman中测试得出的合约账单包括数字签名(0x22d2ec565……)、售电方地址(0x30819f300d0……)、购电方地址(0xa0b2e5e05……)、合约电价(“0.32”)、合约电量(“-2.07”)。
d.A2作为购电方,根据M1的公钥对合约账单进行解密验证。交易网络对验证通过的合约账单完成工作量证明共识机制,上述过程所形成的新区块信息包括当前区块号(2)、系统消息(“New Block Forged”)、随机数(377)、上一区块Hash值(0x5576057f40……)、新交易账单与奖励账单(假设奖励金额为1元)。
e.通过Postman软件查看端口5001下的区块链信息,软件返回的JSON格式的信息如图8所示。
图8 节点端口5001下的区块链信息Fig.8 Blockchain information under node port 5001
由图8可知,节点5001下已包含2个区块信息。block_number为当前区块的区块号,第一个区块称作创世纪块,nonce值为0,上一个区块Hash值previous_hash为0;第二个区块为本算例下新添加的交易区块。timestamp为该区块产生的时间;transactions为交易账单详情,与b、c、d中内容相对应:buyer_energy_address为购电方地址;price_contract为合约电价;seller_energy_address为售电方地址;volume_contract为合约电量;length为整个区块链的高度即区块的总数目。
至此,M1与A2在时段14h内达成的所有区块已成功被添加到交易网络中。以此类推,M1与其余市场主体在其余时段内所达成的智能合约也将以区块的形式被逐一添加到交易网络中,最终完成该算例下所有主体电力交易过程。
6 结 论
a.分析并概括了区块链技术的功能特征、优势和实现模型,搭建了基于区块链的配电侧电力市场交易机制框架,能有效实现各市场主体高效、安全、可信任的去中心化调度与交易。
b.建立了微电网运营商、负荷聚合商和电力大用户之间的智能合约模型,积极竞争交易形成最优合约电价和电量,并验证了区块链分布式账本的实现形式,为各市场主体的经济共赢提供完备的解决方案。