基于区块链的需求侧响应方案设计与实现

2022-05-09 03:01:38卜飞飞王圆圆白宏坤华远鹏韩丁王涵贾一博辛玉华
电力建设 2022年5期
关键词:合约身份区块

卜飞飞,王圆圆,白宏坤,华远鹏,韩丁,王涵,贾一博,辛玉华

(1. 国网河南省电力公司经济技术研究院,郑州市 450052;2.北京恒华伟业科技股份有限公司,北京市 100011)

0 引 言

世界电力市场改革不断推进,电力行业由过去的供应侧管理走向供应侧和需求侧双向管理[1]。我国需求侧管理工作自2004年启动以来,其管理手段已经发展包括分时电价、移峰填谷、能效电厂、需求侧响应等[2]。需求侧响应强调电力用户根据市场情况对自身的负荷需求或者用电模式做出主动调整。电力产品丰富化、电力价格差异化[3]、参与主体多样化才能在竞争环境下使市场各方做出最优投资决策,发挥需求侧响应兼顾稳定市场和保证电网稳定性的作用。

需求侧响应的参与者涉及电力用户、负荷集成商、政府部门和电力公司等主体,需求侧响应涉及负荷控制、效果判定、补贴分配等流程,参与者、执行者及收益获得者之间存在利益分配不均的矛盾,不同主体之间信任成本高、响应频次低、交易效率低是当前需求侧响应效果发挥的障碍。

自2008年比特币被提出以来[4],区块链技术经过区块链1.0、区块链2.0,现已发展到区块链3.0[5]。区块链底层核心技术仍在不断发展,当前较为公认的区块链平台架构分为5层,即应用层、合约层、共识层、网络层和数据层,现有多个能源领域的区块链平台设计方案基于此框架结构延伸[6-9]。区块链在能源行业的应用研究在国内走在前列,已在电动汽车充电桩共享[10-12]、综合能源服务[13]、分布式电力交易[14-15]等能源领域开展研究。

已有部分研究人员研究需求侧响应中的区块链应用问题。文献[16]从电力管理交易系统架构、交易系统模块以及交易流程框架3个方面提出了基于区块链技术的综合需求侧响应资源交易体系框架。文献[17]从信息注册、信息更新、自动交易和自动结算方面探讨了需求侧区块链的安全性、全局效率和智能合约全局优化问题。文献[18]在分析了自动需求侧响应业务运行规则、业务流程基础上,探讨了补贴结算、违约惩罚等的安全性,操作行为公证性等方面的技术保障,及工作量证明机制、互联共识、智能合约、信息安全等方面区块链应用的关键问题。文献[19]提出将区块链技术应用于需求侧响应计划管理,利用区块链技术存证能量消耗信息,基于智能合约实现财务结算,保障交易的灵活性。文献[20]分析了区块链与需求侧响应的契合点,设计了基于区块链的需求侧响应系统。文献[21]提出了基于区块链的需求侧管理资源信用管理方法,设计了交易各阶段的智能合约并部署在以太坊测试链上,探讨在不同信用值下用户的响应效果。当前研究缺乏将需求侧响应应用的各个环节都详细设计呈现(如网络设计方案、跨链设计方案等)、落地指导性及对区块链应用效益的全面研究。

本文提出基于个人通用身份账户,利用联盟链的方式解决需求侧响应中,纳入各主体监督、验证数据可信性的解决方案的关键技术环节,即区块链需求侧响应的整体架构、交易流程、数据上链设计、智能合约设计、网络搭建方案等,并仿真搭建由7个节点组成的区块链联盟链网络实验环境,验证设计的可行性;最后以河南情况为例对构建需求侧响应区块链应用的效益进行测算,说明区块链技术在需求侧响应上的应用经济可行。

1 区块链通用技术原理

1.1 区块链数据

区块链是由按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,是区块链技术体系的核心[22],这一特性可解决需求侧响应过程中主体身份数据认证及身份数据、响应数据、激励数据的不一致性检测、溯源等问题。

区块链信息模型包含UTXO(unspent transaction outputs)、基于键值对和账户模型3种类型[23]。数据以区块链信息模型存储前,需要进行默克尔树处理,处理过程如图1所示,即对所需存证上链的原始数据进行哈希处理,再对相邻数据进行加和,重复哈希处理的过程,直至剩余一个根哈希。

图1 默克尔树处理过程示意Fig.1 Schematic diagram of Merkle tree processing process

区块链数据结构的关联验证性赋予存储于区块链的数据特有的防篡改性,数据的关联验证过程如图2所示,即区块N-1的哈希值和区块N的存储内容作为区块N整体的存储内容,区块N整体存储内容的哈希存储于区块N+1,其中一个区块内容变更会引起其他区块数据的变化,以此完成区块间的关联验证。

图2 区块链数据关联验证示意Fig.2 Schematic diagram of blockchain data association verification

数据加密现常用算法包括Rabin(一种非对称加密算法,基于计算模合数平方根困难性问题的公钥密码算法)、椭圆曲线加密算法(elliptic curve cryptography,ECC)等。A使用B的公钥对交易签名,B仅能通过私钥验证数字签名才可创建一笔交易,这种以公钥基础标识用户,以私钥验证身份的机制,较大程度保护了交易者的隐私。

1.2 共识机制

共识机制是区块链的关键技术,直接影响区块链系统的性能效率、可扩展性、资源消耗[22]。现在常用的共识算法有证明(proof of X,PoX)类、拜占庭容错(Byzantine fault tolerance,BFT)类和非拜占庭容错(crash fault tolerance,CFT)类基础共识协议[23]。PoX类共识协议包含工作量证明(proof of work,PoW)、股权证明(poof of stake,PoS)协议,这类协议特点为设计证明依据,以令诚实节点证明其合法性。BFT类协议包含实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)、BFT-SMaRt(一种基于SSL/TLS标准的BFT算法)等协议,其特征为解决了拜占庭容错问题。CFT类协议包含Raft(一种基于分布式共识算法)、Paxos(一种基于消息传递且具有高度容错特性的一致性算法)、Kafka(时间轮算法)等协议,以身份证明等手段规避节点作恶,实现崩溃容错目的。

本文方案的搭建采用联盟链,由于联盟链节点数量有限,需要使用具有高度优化的共识机制,故采用适合联盟链使用的改进的伊斯坦布尔拜占庭容错(Istanbul Byzantine fault tolerance,IBFT)共识算法作为需求侧响应区块链平台的共识机制,其容错率为1/3,在保留即时确认关键特性的同时,极大地提高了去中心化的程度。其共识可以保证上链的区块是确定的,也就是说链不会出现分叉,同时每一个有效的区块都会插入到链上。区块链需求侧响应平台共识机制基于IBFT做了改进,可以实现无交易不出块,改进的IBFT共识机制的投票过程如图3所示。

图3 改进的IBFT共识机制状态切换示意Fig.3 Schematic diagram of IBFT consensus mechanism design

IBFT分为3个阶段:

1)预准备阶段:每次进入到新一轮投票时,就会开始三阶段中的第一个阶段,即预准备阶段。在该阶段中,提议节点生成一个提议区块,并广播给所有的验证节点。接着区块提议节点进入到预准备状态。其他验证节点接收到有效消息后进入到预准备状态。

2)准备阶段:在这一阶段,验证节点广播准备消息给其他验证节点,并等待接收超过2/3的有效准备消息从而进入到准备完毕状态。

3)确认阶段:在这一阶段,验证节点广播确认消息给其他验证节点,并等待接收超过2/3的有效确认消息从而进入到完成确认状态。

1.3 智能合约

智能合约最初于1994年由尼克·萨博[24]提出,智能合约是合同条款的程序体现,区块链技术去中心化为智能合约提供了天然的分布式可信执行环境[22]。现有常见区块链平台的智能合约对比如表1所示。

表1 现有区块链平台智能合约对比Table 1 Comparison of smart contracts in existing blockchain platform

智能合约技术的引入在保证安全的前提下大大提高了交易速度,尤其针对复杂交易场景,优势更为突出,智能合约在区块链上的部署如图4所示。

图4 基于区块链的智能合约部署方式Fig.4 Intelligent contract deployment based on blockchain

1.4 点对点传输

区块链网络基础通信方式是对等网络,区别于传统中心化的服务端和客户端的服务模式。区块链的组网结构可以分为混合对等网络、结构化对等网络、无结构对等网络[25]。通信机制建立在TCP(transmission control protocol)和UDP(user datagram protocol)之上,位于计算机网络协议的应用层。区块链点对点的传输机制中数据和消息的传输直接在节点之间完成,节点可以选择在任意时刻加入或退出网络。

2 区块链需求侧响应平台设计

2.1 整体框架设计

考虑技术经济性,在基于中心化的管理方式的需求侧响应平台现有功能的基础上,利用区块链技术进行分布式存储、智能合约改造,另外考虑到当前区块链技术发展限制,区块链存储数据有限,采用链下管理源数据、结果数据、哈希值数据,仅将默克尔树处理得到的根哈希数据存证上链的方式进行数据存证。改造模式及区块链需求侧响应系统数据交互及服务处理框架如图5所示。

图5 区块链需求侧响应平台关键数据交互及服务框架Fig.5 Key data exchange and service framework of blockchain demand response system

2.2 基于区块链的需求侧响应交易流程

需求侧响应活动整体可划分为前期准备、响应执行、效果评估和补贴核发4个阶段,在利用区块链技术对需求侧响应系统进行改造后,在需求侧响应前期准备阶段,基于区块链的需求侧响应前期准备阶段流程如图6所示。

图6 区块链需求侧响应前期准备阶段流程Fig.6 Flow chart of blockchain demand response in pre-preparation stage

基于区块链技术改造后,可以通过智能合约自动结算补贴费用(此处考虑补贴模式的需求侧响应模式),区块链需求侧响应响应执行及核算阶段流程如图7所示。

图7 区块链需求侧响应响应执行及核算阶段流程Fig.7 Flowchart of the preparatory phase of the blockchain demand response

业务数据存证至需求侧响应链过程如图8所示。当前的数字身份存在身份数据分散、不同机构需重复认证、身份数据被冒用或盗用的风险较高、容易造成个人信息大规模泄露等痛点。W3C分散式标识符(W3C decentralized identifiers,W3C DID)[26]利用规范、生产和可验证的一种新型标识符为解决参与者身份全局唯一性、高可用性、可解析性和加密可验证性提供了解决方案。去中心化标志符的架构如图9所示,用户在分布式服务器注册响应主题的DID,DID代表了DID主题,可解析为DID文档,DID和DID文档均录制于验证数据注册表;DID URL引用DID文档的内容,并包含DID的内容;DID控制器控制DID文档。

图8 业务数据存证至需求侧响应链过程Fig.8 The process from business data storage to audit chain

图9 DID架构概述和基本组件的关系Fig.9 Overview of DID architecture and the relationship of the basic components

DID规范定义的数据模型如图10所示。基于区块链的去中心化标识符具有全局唯一性、高可用性、可解析性和加密可验证性,具有分布式、自主可控、跨链复用等优势。基于区块链分布式存储,避免了身份数据被单一的中心化权威机构所控制,即使存储于单一中心化节点,也可以设置调阅过程记录在册;身份自主可控,基于分布式公钥基础设施(decentralized public key infrastructure,DPKI),个人能自主管理自己的身份数据;可信的数据交换,身份数据锚定于区块链上,认证过程简单可信,不容易被盗用,同时可以实现多个信息系统的数据互通,无需重复认证。

图10 DID文档数据结构条目Fig.10 The entries in a DID document

2.3 智能合约设计

智能合约作为合同条款的程序体现,在可信的基础上较大程度提高了合约的履行效率。本文给出智能合约中的主要函数,即身份认证函数、存证函数、自动响应函数、自动结算函数。

1)身份认证函数。基于W3C DID标准,个体可根据需要生成用特定场景验证的DID身份认证文档。基于身份认证函数,对用户身份进行认证,判断用户身份类别,如判断用户为电力用户还是负荷集成商,进而对用户进行响应权益分配。

2)数据存证函数。数据存证函数用于按照规则监听数据变化和接受系统指令及时将数据默克尔树根哈希值存证。需求侧响应事务中,关键数据存证采用所在表根哈希存证的策略,不同数据的存证合约时机不同,如表2所示,其中基线负荷数据的存证时间视其计算方式而定。

表2 需求侧响应存证的关键数据Table 2 Key data of demand response certificate

3)自动响应函数。用于按照约定的触发条件自动开展需求侧响应。对于自动开展响应的情况,需要电力用户的设备支持远程控制功能。在约定响应或实时情况下,基于用户设备的响应条件,触发自动调用响应智能合约。

4)自动结算函数。自动结算函数用于按照约定的触发条件自动开展需求侧响应。不同的省份自动结算的规则不同,故需要按照各省份的结算规则进行结算。对于自动开展进行自动结算的情况,设计通过跨链机制与银行金融链的资金信息进行交互,设计的落地需要多方在管理制度、技术平台等多方面达成共识,方可实现在约定响应或实时情况下基于基线负荷情况自动结算用户补贴费用。

2.4 网络搭建方案

按照准入机制,现有区块链形式可分为3种类型,即公有链、联盟链和私有链[3],联盟链是目前普遍认为最具有应用前景的区块链类型。本文采用的搭建方案为公有链。

基于当前需求侧响应平台内外网数据分离的管理机制,可以通过各省公司搭建覆盖内外网子节点互通的自有链,与其他公司通过跨链机制进行信息交互,搭建方式如图11所示。

图11 需求侧响应区块链网络层级设计Fig.11 Hierarchical design of demand response blockchain network

当需求侧响应区块链网络具有跨链需求时,需要明确需求侧响应任务内容及跨链业务合约(需要连接的区块链名称及数据内容),提交至区块链跨链服务,由区块链服务模块跨链事件Handler(处理)服务模块、跨链交易构造及签名服务模块提交服务至跨链服务Agent(代理),以此模式完成与外部区块链网络的交互,如图12所示。

图12 需求侧响应区块链与外部区块链跨链转换示意图Fig.12 Schematic diagram of cross-chain conversion between demand-response blockchain and external blockchain

3 区块链技术应用方案效益分析

3.1 成本分析

假定区块链技术应用之后的信息化系统未增加运维费用,故成本分析时,未计入运维成本;假设平台节点复用现有硬件设备;故而效益分析中仅考虑了平台建设成本。以现有技术开发团队的时间、人工单价平均值核算平台建设成本,建设成本Cdl计算方式为:

Cdl=WTeNSUM

(1)

式中:WTe为项目管理、需求分析、开发及测试等技术人员公司均值,取10 000元/(人·月);NSUM为以上开发过程涉及的所有工种的人月总和。

3.2 效益分析

区块链技术的利用可节约以往合同签订的人力成本、耗材成本,提高合约签订和执行效率,提高用户体验和利于环境的可持续发展。为了简化分析,本文仅从财务角度对经济效益开展分析,并假定除了合同管理、送审材料审核环节是基于纸质介质开展,其他环节均已通过信息化方式进行管理。另外,对时间效益进行分析。

1)经济效益Btotal。Btotal表示年成本缩减经济效益。

Btotal=Bau+Bco+Bac

(2)

式中:Bau为上链前审核阶段费用缩减效益;Bco为上链前签合同阶段费用缩减效益;Bac为上链前补贴结算阶段费用缩减效益。

Bau=N1[Hk+(Tfi+Tsu)W]

(3)

式中:N1为年新增用户申报量;Hk为申报、合同签订、补贴核算所需邮寄、打印耗材、设备折损等费用;Tfi为审核人员资料归档时间;Tsu为送审人员打印、邮寄、签订的时间;W为各个主体所需要消耗的人工成本均值。

Bco=XN2[Hk+(Tco+Tma)W]

(4)

式中:X为每年需求侧响应活动启动次数;N2为单次需求侧响应活动参与用户数;Tco为资料管理人员合同归档时间;Tma为电力用户或负荷集成商打印、修订合同、邮寄及签订的时间。

Bac=Y(Hk+TseW)

(5)

式中:Y为一年补贴结算的次数;Tse为补贴结算材料打印所用时间。

2)年时间缩减效益BT。BT表示基于区块链技术的电力需求侧响应交易可节约年度作业时间。

BT=N1(Tfi+Tsu)+N2(Tco+Tma)+YTse

(6)

3)安全效益分析。区块链以其特有的技术特性,为需求侧响应业务提供用户身份、数据、流程模型等多方面的安全可信保障。

(1)身份安全可信。基于W3C DID标准管理数字身份标识,利用区块链技术的身份合约为每一个需求侧响应用户生成链上数字身份标识DID,在需求侧响应业务中可基于用户DID标识在链上唯一确定用户身份信息;基于需求侧响应用户数字身份标识DID的唯一性,为用户的用电信息以及需求侧响应数据进行加密确权,只有经过授权认证后才被允许访问,为用户数据和交易安全提供保障。

(2)数据安全可信。将业务数据加密处理,可以通过分布式存储的哈希值变化情况,及时发现需求侧响应数据变更情况。针对数据不同版本情况,用户可按照时间线追溯数据的变化情况。

(3)流程模型可信。将数据存证、自动响应、自动结算等业务处理过程均通过智能合约(确定状态、变量)构建可执行的程序,买卖双方完全自治,处理过程均有迹可循,保证了交易的安全。

3.3 投入产出分析

考虑效益及成本的时间价值,计算动态投资回收期和投入产出比。

1)投入产出比。

n年费用缩减效益折现值P计算公式为:

(7)

式中:P为区块链技术应用n年的累计费用缩减效益折现值;Btotali为区块链技术应用第i年的费用缩减值,简化认为每年的费用缩减效益折减值相同,简称Btotali为A;n为折算年数。

假设区块链研发费用发生在第1年年初,后期运维费用较之研发费用较少,n年的研发成本现值以Cdl计。

n年投入产出比R的计算公式为:

R=P/Cdl

(8)

2)投资回收期。

动态投资回收期Pt=(累计净现金流量现值出现正值的年数-1)+上一年累计净现金流量现值的绝对值/出现正值年份净现金流量的现值,即满足式(9)条件出现的年份。

P-Cdl≥0

(9)

4 算例分析

4.1 平台搭建

需求侧响应链节点搭建数量须遵循IBFT共识机制要求,节点总数为3F+1,其中F为拜占庭错误节点,取值范围为[1,2,3,…],则节点数量至少为4。仿真采用7台电脑作为节点(节点符合3F+1的要求)进行响应活动的仿真,在需求侧响应链的运行和维护阶段,可以动态添加注册新的链节点。节点中的硬件配置为内存2核8 GB,硬盘配置为1 TB;软件操作系统均为Windows。依据需求侧响应区块链节点程序,为需求侧响应链每个节点生成节点账户和私钥,并放到了节点服务器指定目录下。联盟链涉及的各主体确定需求侧响应自有链的区块链网络ID、出块策略、共识节点账户等参数,基于这些信息,为每个节点提供需求侧响应链创世块配置文件。对系统进行了简单测试,区块链原生需求侧响应数据存证TPS达到1 000笔/s,需求侧响应智能合约交易执行TPS达到300笔/s。

场景设定:仿真需求侧响应的类型为约定响应,响应的目标为降低负荷,提前4 h进行邀约。邀约过程中的应邀容量数据、实际响应容量数据由前端页面人工模拟输入产生。为体现市场化,仿真中使用最高限价与需求侧响应主体报价相结合的方式,需求侧响应最高限价15元/(kW·h)。需求侧响应用户的出价数据如图13所示,可见在报价中耗时最长的为120 s,由于当前需求侧响应过程中,对时间要求相对宽裕,120 s在可接受的范围内。结算确认耗时与补贴费用数据如图14所示,可见结算确认耗时整体均较短,最高耗时由用户1产生为48 s,最短耗时由用户3产生,为即时结算确认。

图13 需求侧响应用户的出价数据Fig.13 The demand responds to the bid data of the user

图14 结算确认耗时与补贴费用数据Fig.14 Settlement confirmation time-consuming and subsidy cost data

平台前端展示在现有页面基础上进行完善,增加了数据的溯源及不一致性比对,功能设计如图15所示,如不同用电表的用电数据存证时间均有记录,存证中的电表数值显示“等待中”,当有业务数据与存证数据不一致时,在不一致检测栏中显示“×”,并可查看不同数据存证前后版本值。

图15 电力用户电数据溯源及不一致性检测设计示例Fig.15 Design example of traceability and inconsistency detection of power consumption data of power users

4.2 效益分析

以河南省2019年、2020年的需求侧响应数据为计算依据,该省2019年约定响应用户为145户,2020年约定响应用户为455户,其他参数设定如表3所示。

表3 效益分析参数设定Table 3 Parameter setting of benefit analysis

将以上参数代入式(6),计算得BT=763.1 h/a。由此可见,年度可节约各环节成本为763.1 h,可大大降低相关环节职责人员的工作强度。将表3的参数代入式(2),得到:

Btotal=(12 245+77 805X+55.5Y)元

(10)

假设收益率i取值为3%,暂考虑10年内的效益情况,即n∈[1,2,…,10],(P/A,i,n)见年金现值系数表,此处不赘述。假设年需求侧响应活动X=1,Y=1,R随着区块链技术应用年限的增加变化如图16所示。

由图 16可见,在区块链技术应用投资的第3年,即达到R>1的情况,表明区块链技术应用的经济效益明显。当Y=1时,R随着X的变化趋势如图17所示。

图16 R随区块链技术应用年限n的变化趋势Fig.16 The changing trend of ROI with the technical reform years n of blockchain

当前由于种种原因,各省份年度启动的需求侧响应活动次数有限,为了充分挖掘需求侧响应潜力,可以适当增加需求侧响应的频次,由图 17可见,需求侧响应平台区块链技术应用R随着X值的增加而增加,故可以适当增加需求侧响应活动频次。经计算,投资回收期Pt=1.59 a,即在1.59年可以收回投资成本。

图17 R随需求侧响应活动启动次数X的变化趋势Fig.17 The changing trend of ROI with the start-up times X of demand response activities

5 结 论

区块链技术可用于解决需求侧响应常态化运行中用户参与需求侧响应困难及运营成本比较高的问题。本文研究将区块链智能合约应用于需求侧响应流程链条,设计了区块链需求侧响应平台的整体框架、交易流程、数据上链策略、智能合约、网络搭建方案、共识机制等,并给出了需求侧响应电力用户进行数据溯源和不一致性检测的设计参考,解决了目前电力用户、负荷集成商需求侧响应数据被动获知、无法验证和溯源的问题,并分析了区块链技术应用的效益性。仿真算例表明,在现行的区块链技术服务方式下,需求侧响应的投入产出比R随区块链技术应用时间和需求侧响应活动的增加显著增加,相关信任环节的人工耗时显著下降。需求侧响应价格博弈机制目前尚不完善,希望本文能为进一步研究区块链技术在完善价格机制下需求侧响应的广泛应用提供参考。

猜你喜欢
合约身份区块
区块链:一个改变未来的幽灵
科学(2020年5期)2020-11-26 08:19:12
区块链:主要角色和衍生应用
科学(2020年6期)2020-02-06 08:59:56
区块链+媒体业的N种可能
传媒评论(2018年4期)2018-06-27 08:20:12
读懂区块链
跟踪导练(三)(5)
他们的另一个身份,你知道吗
互换身份
放松一下 隐瞒身份
今日教育(2014年1期)2014-04-16 08:55:32
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望