郭佳程,宁德军,李泱丞,沈 建
(1.中国科学院上海高等研究院,上海 200120;2.中国科学院大学电子电气与通信工程学院,北京 100049;3.中南大学计算机学院,长沙 410083)
随着能源互联网的发展,将风电、光伏发电等分布式能源发电并入电网系统是必然趋势,但是分布式能源容量小且具有间断性、随机性和波动性等特点,直接并网使用会降低能源稳定性和利用率[1]。为构建集广泛聚合分布式能源、需求响应、分布式储能等功能于一体的分布式能源共享网络,需对分布式能源进行集中管理和统一调度,并对能源供应者和消费者身份进行耦合,进而实现不同供能资源的协同及分布式能源的消纳。然而在构建分布式能源共享网络的过程中,由于难以实现能源信息的公开透明,网络中各能源主体间存在信息获取不对称问题,能源调度规则、利益分配机制等信息始终由能源公司掌握,用户在交易过程中处于弱势地位,极大地增加了分布式能源共享网络达成互信的难度。
区块链技术[2]能够较好地解决分布式能源共享网络主体间的互信问题,基于区块链技术建立分布式能源共享网络可以实现各参与主体在信息平台上的双向选择[3]。在共享网络中,能源信息被记录于区块链账本中,支持合理的计量和认证,确保共享网络面向全部主体公开透明[4]。在交易平台中,各参与主体之间的交易过程通过智能合约实现并对交易行为加以约束。但是,将区块链技术应用于分布式能源共享领域依然存在网络性能较差、隐私保护机制不够完善、能源调度效率与透明度不高等问题。
本文在分布式能源共享网络中引入区块链技术中的侧链技术[5],提出一种可信分布式能源共享网络,形成由交易链与调度链组成的姊妹链,并通过硬件终端与物理世界的能源设施相连接得到三层网络结构,最终利用三层网络协同工作链码体系实现网络的透明化运行。在能源调度方面,设计一种分布式能源动态调度机制,为用户调度当前状态下最优的储能站并将其与链码体系相结合,实现能源调度全过程无人为干扰,以减少能源损耗,提升共享网络透明度和整体能源利用率。
自2008 年中本聪提出区块链这一概念以来[2],区块链首先在金融领域取得了重要突破,进而向物联网、供应链、工业互联网等众多领域辐射。在能源领域,近年来得益于技术的成熟和政策的推动,国外出现了众多将区块链应用于能源领域的探索与研究。利用区块链对交易数据与交易过程真实性进行保护是将区块链应用于能源领域的最根本出发点,因此交易安全、网络性能与信息系统安全成为研究的重点。在分布式能源交易方向,澳大利亚Power Ledger 公司构建了基于区块链的太阳能电力交易平台[6-7],美国能源公司LO3 与西门子公司以及区块链技术公司ConsenSys 共同合作开发了名为“布鲁克林微电网”的能源区块链项目[8-9],能源公司Innogy 和Oxygen Initiative 联合推出区块链EV 充电平台Share&Charge[10-11]。在阻塞管理与辅助服务方向,欧洲输电系统运营商TenneT 为提升电网供电稳定性,以Hyperledger Fabric 私有链为底层架构,在德国以及荷兰建立了能源区块链试点项目[12]。在需求响应方向,针对能源生态系统中需求响应时延大及单一需求被多次重复响应的缺陷,Bittwatt 项目组基于以太坊建立了智能化需求响应平台[13-14]。在信息系统安全方向,英国Future Cities Catapult 机构联合区块链平台公司Guardtime 开发了一种无密钥签名基础设置(Keyless Signature Infrastructure,KSI)的区块链技术[15],该技术旨在提高电网在面临网络攻击时的安全性。
国内针对能源区块链的研究主要为网络和数据处理性能以及网络结构安全等方面,同时对于分布式能源网络运行模式的研究也取得了一定进展。文献[16-18]分别以区块链为核心架构构建了能源交易平台以及与其相匹配的平台运行策略,其中文献[17-18]基于各自平台分别提出一种市场模型和竞价策略。文献[19]致力于区块链与智慧能源在商业模式上的结合,提出一种基于区块链的智慧能源商业模式。文献[20-21]关注能源区块链中的信息安全问题,文献[20]设计并实现基于区块链技术的电力系统信息交换平台,文献[21]提出一种基于区块链的电子数据保全方案。文献[22]基于区块链对能源电力调度网络的供需规则进行优化。文献[23]针对基于区块链的电力物联网中的接入认证技术进行研究,提出一种基于区块链的分布式认证模型。文献[24]对RAFT 共识算法进行改进,提出一种分布式新能源接入下的改进型RAFT 算法。
目前,侧链技术多用于解决数据压力与隐私保护问题。文献[25]基于供应链溯源系统,提出一种用户数据转移的侧链模型,以解决区块链数据存储问题。文献[26]提出一种基于侧链的智慧能源交易模型,该模型利用资金交易与能源调度分割思想,本文受其启发,将该思想融入基于侧链的可信分布式能源共享网络设计中。
在传统区块链能源网络环境下,高冗余的数据存储模式决定其必须在数据存储量与网络整体性能间进行取舍,而分布式能源共享网络中主体众多、交易频繁,同时对网络性能和数据存储量提出了更高的要求。此外,能源交易与调度所产生并依赖的数据在很大程度上并不重合。在区块链公开透明的环境下,如果直接将上述信息记录在链上,则会发生部分主体获取到与之不相关信息的情况,产生隐私泄露等问题。本文基于区块链侧链技术提出一种可信的分布式能源共享网络,其基本网络架构如图1所示。
图1 基于侧链的可信分布式能源共享网络架构Fig.1 Architecture of trusted distributed energy sharing network based on sidechain
在基于侧链的可信分布式能源共享网络中,根据职责差异将主体分为3 类:
1)能源公司:存在于交易层和调度层,职责包括向用户收取用能费用(通证),将通证转化为能源权益发放给用户,调度下属储能站等。
2)储能站:存在于调度层和物理层,职责包括能源权益与传输命令转化,通过物理设施向用户输送能源或接收用户输出的能源。
3)用户:存在于交易层、调度层和物理层,是共享网络所触达的终端,职责包括能源权益获取与变现,能源权益与传输命令转化,通过物理设施接收并使用能源并将富余能源或自生产能源向储能站输送。
与主体相对应,在基于侧链的可信分布式能源共享网络中,根据网络结构与职责的差异,将整体网络设计成纵向的三层网络结构,由下至上分别为物理层、调度层、交易层,其中调度层与交易层通过侧链技术构成姊妹链,又称为调度链与交易链,两者通过交易锁合约进行信息传递和价值交换。基于侧链的可信分布式能源共享网络融合了区块链侧链、链码、通证、复合式存储策略等技术,具有以下特征:
1)高可信与高透明。通过区块链技术对能源公司、储能站和用户的实时状态以及发生于链上的所有交易进行记录,确保交易记录真实无篡改且可追溯,保障了能源共享网络中信息的可靠性。交易与主体状态信息面向链上全体节点透明公开,有助于打破能源公司对能源数据的垄断,使用户和能源公司在交易中处于平等地位。通过链码技术,简化业务流程,大幅压缩人工介入的空间,确保交易规则清晰、交易执行过程透明无人为干扰。
2)提升网络性能并加强隐私保护。通过侧链技术,将交易数据与调度数据进行拆分:一方面降低了单个节点需要维护的账本数据量和针对单个节点的无价值信息比例,减轻了单条链上的数据存储压力,一定程度上弥补了区块链在数据存储方面的短板,提升网络整体性能;另一方面将资产与能源储备信息相互隔离,也隔绝了部分主体接触无关数据的途径(如调度层储能站节点无法获得与资金相关的交易信息),加强了网络隐私保护。
3)实现能源供需主体的耦合。基于侧链的可信分布式能源共享网络对能源供给者与消费者主体身份进行耦合,即各主体既能购买和使用能源,又能通过售卖剩余或自产能源赚取相应的能源权益转换为资产,以减少能源网络中的能源浪费,实现能源利用率最大化。
三层网络协同工作链码体系是针对基于侧链的可信分布式共享网络设计的链码体系,通过建立一套跨越三层网络的链码体系,实现链上主体间无人工介入环境下的条件-响应式工作协同。该链码体系定义了基于侧链的可信分布式能源共享网络中通证交易、能源调度、能源命令响应等行为的逻辑规则,重点关注交易链与调度链间状态的一致性,基于简化支付确认(Simplified Payment Verification,SPV)[27]模式设计的交易锁合约应用于跨越姊妹链间的一致性通信,能有效防止因信息传递过程中的时间延迟而导致的一致性问题发生。图2 为三层网络协同工作链码体系,与交易层与调度层的姊妹链结构相对应,“Transaction”与“Schedule”分别为部署于交易链和调度链的链码,两者均包含Initialization、Transaction、Token、Query、DB、Apps 模块,Schedule链码额外包含Algorithm 模块。三层网络协同工作链码体系由能源供给和能源收购两套规则组成,如图3 和图4 所示。
图2 三层网络协同工作链码体系Fig.2 Three-layer network cooperative work chaincode system
图3 三层网络协同工作链码体系的能源供给规则Fig.3 Energy supply rules of three-layer network cooperative work chaincode system
图4 三层网络协同工作链码体系的能源收购规则Fig.4 Energy acquisition rules of three-layer network cooperative work chaincode system
三层网络协同工作链码体系的能源供给规则具体步骤如下:
S1:交易链用户向能源公司发送能源购买申请并支付一定数额的通证。
S2:交易链能源公司执行交易锁合约,将用户支付的通证转换为调度链上的能源权益。
S3:调度链能源公司将转换的能源权益分配给用户。
S4:调度链执行分布式能源动态调度机制选择合适的储能站,向储能站发送供能申请并支付能源权益。
S5:调度链储能站向物理层终端发送供能命令。
S6:物理层储能站向用户供能。
S7:调度链在周期结算时,储能站将全部能源权益支付给能源公司。
S8:调度链用户和能源公司根据需要执行交易锁合约,将能源权益转换为交易链上的通证。
三层网络协同工作链码体系的能源收购规则具体步骤如下:
S1:交易链在周期结算完成后,能源公司根据需求扩充调度链的能源权益储备,执行交易锁合约,将通证转换为调度链上的能源权益。
S2:物理层用户向能源动态调度机制分配的储能站输送剩余或自产能源。
S3:调度链储能站核实数据。
S4:调度链向用户支付相应数额的能源权益。
S5:调度链用户和能源公司根据需要执行交易锁合约,将能源权益转换为交易链上的通证。
能源供给的步骤S2 与S8 以及能源收购的步骤S5 使用了基于SPV 模式的交易锁合约。该合约的作用是保证交易链和调度链资产的一致性。交易锁合约由通证转换能源权益规则和能源权益转换通证规则组成,两者在步骤上相互对应,在此以通证转换能源权益为例对交易锁合约的具体规则进行说明,如图5 所示。
图5 基于SPV 的交易锁合约规则Fig.5 Transaction lock contract rules based on SPV
基于SPV 模式的交易锁合约规则具体步骤如下:
S1:交易链主体发起交易锁交易,将一定数额的通证发至随机指定的交易锁地址进行锁定。
S2:交易链将交易锁交易写入链上,并经过若干区块(一般为6 个)对其进行确认,等待交易锁交易被确认后,按照交易锁合约内置的数据结构将交易锁交易信息打包为数据包发送至调度链。
S3:调度链接收数据包,并按照数据包内的区块路径验证交易链对应区块上的交易锁交易信息是否与数据包信息一致。
S4:调度链验证通过后执行解锁指令,按照通证与能源权益的兑换比例将原先存于调度链某一交易锁地址内的能源权益解锁发送至主体在调度层的钱包内,等待调度链将交易锁交易写入链上,并经过若干区块(一般为6 个)对其进行确认,通证转换能源权益完毕。
在能源权益转换通证时,反向执行上述规则,即先在调度链锁定能源权益,再在交易链解锁相应比例的通证即可。
交易锁合约保证了同一价值的资产,同一时间内只能在一条链上流通,先锁定再解锁的机制也杜绝了因为通信延迟而导致的双花问题发生,确保了整个能源共享网络中价值的整体一致性。
三层网络协同工作链码体系在网络运行之初即写入区块链中,任何对链码规则的更改都将在区块链上留下完整记录,以确保链码体系在规则层面的透明。在执行过程中,无论是能源供应还是能源收购都完全由事先部署的链码体系控制,可操作空间仅限于交易链和调度链中的钱包账户,同时每一笔交易都将记录在其发生的区块链侧链上,无法被篡改或伪造且不可抵赖,以确保链码体系在执行层面的透明。综上,三层网络协同工作链码体系的部署大幅度加强了基于侧链的可信分布式能源共享网络的透明性,使其在规则和执行层面真实可信。
能源在传输和存储的过程中,由于天气、海拔、温度、距离、设备老化等原因会产生一定程度的损耗,降低能源利用率,这一现象在分布式能源网络中尤为明显。此外,虽然能源调度规则可以通过上链的方式向网络中所有主体公开,但在规则执行的过程中依旧存在人为介入的情况,这将削弱能源调度的透明度,降低能源共享网络的整体可信度。
本文在基于侧链的可信分布式能源共享网络环境下,提出一种分布式能源动态调度机制,其目的是通过宏观调度,为用户分配合适的储能站进行能源供给或收购,以降低能源损耗,提升能源共享网络中能源的整体利用率,并且通过链码技术实现能源调度全过程的透明化。分布式能源动态调度机制由能源供给和能源收购两部分组成,机制流程如图6 和图7 所示,其中,E表示储能站剩余能源量,n和m表示用户数,X表示储能站供给能源的次数,x表示用户接收能源的次数,S表示储能站剩余储能空间,Y表示储能站接收能源的次数,y表示用户出售能源的次数。
能源供给和能源收购分为以下两阶段:
1)储能站分配。能源公司根据储能站列表为用户分配储能站,储能站列表执行局部被动更新策略,即能源公司不主动大范围更新储能站列表,而是当储能站状态发生变化时,由储能站向能源公司发出通知,能源公司更新该储能站的状态(available/unavailable)。与全局性质的更新相比,局部被动更新策略在保证储能站列表实时准确的同时,减少了无状态变化的储能站与能源公司间不必要的状态询问通信,压缩了数据量,减轻了能源共享网络的通信和存储负担。
2)能源传输。储能站与用户建立连接,实际执行能源供给或收购的命令。值得注意的是,储能站与用户的连接并不是长期不变的,其执行延迟主动更新策略,即当储能站储能量及剩余储能空间充足时,每传输k个单位能源,用户就主动断开与储能站的连接,回到储能站分配阶段,由能源公司根据当时最新的储能站列表重新分配储能站。该策略既减少了当网络中出现更优的available 储能站时用户长期无法与当前储能站断开连接而转为与更优储能站建立连接产生的不必要损耗,又由于用户必须传输k个单位能源才能更换储能站,因此杜绝了网络剧烈变动而导致的频繁更换储能站这一情况的发生。通过对参数k的设定,能够在能源损耗与通信成本间建立动态平衡。
图6 分布式能源动态调度机制的能源供给流程Fig.6 Energy supply flow of distributed energy dynamic scheduling mechanism
图7 分布式能源动态调度机制的能源收购流程Fig.7 Energy acquisition flow of distributed energy dynamic scheduling mechanism
应用分布式能源动态调度机制能够使用户在绝大部分时间内与最优储能站建立连接并传输能源,有效减少分布式能源共享网络中的能源损耗。与三层网络协同工作链码体系类似,分布式能源动态调度机制通过与链码技术结合,实现基于区块链的条件式自执行。一方面,最大限度降低能源调度过程中的人为干扰,确保能源调度在执行层面的透明性;另一方面,对调度规则和调度行为进行记录并将数据记入区块链,确保能源调度在规则和数据层面的透明性。综上,通过分布式能源动态调度机制能够较好地提升网络透明度和整体能源利用率。
本文针对三层网络协同工作链码体系和分布式能源动态调度机制设计三组实验,分别验证网络结构和链码体系的有效性与安全性以及动态调度机制的合理性与高效性,以证明本文提出的基于侧链的可信分布式能源共享网络合理可行、安全可信且能实现提升能源利用率的目标。
本文在Hyperledger Fabric[28]联盟链环境下搭建实验网络并编写链码体系和算法,同时利用如表1所示的软硬件环境进行实验。为简化实验流程,本文设定在固定时间内向每个用户供给的能源量固定,如在单位时间1(如1 min)内向用户1 供给的能源量为1 个单位。
表1 实验环境的软硬件配置Table 1 Software and hardware configuration of experimental environment
实验1三层网络协同工作链码体系跨链价值交换验证实验,具体实验步骤如下:
1)在链码体系中设置观察点。
2)在基于侧链的可信分布式能源共享网络环境下运行链码体系,分别执行:购买能源权益;能源权益转换为通证,观察预设的观察点是否给出正确反馈。
3)查询区块链交易记录,验证步骤2 中的操作是否被真实记录。
实验2三层网络协同工作链码体系能源传输验证实验,具体实验步骤如下:
1)在链码体系中设置观察点。
2)预设储能站列表并按照算法规则预先手动推算能源传输过程。
3)在基于侧链的可信分布式能源共享网络环境下运行链码体系,分别执行:能源供给;能源收购,观察预设的观察点是否给出正确反馈。
4)对比实际能源传输过程与步骤2 中推算的能源传输过程是否一致。
5)查询区块链交易记录,验证步骤3 中的操作是否被真实记录。
实验3多用户条件下能源损耗率对比实验,具体实验步骤如下:
1)预设储能站列表。
2)制定多用户的用能脚本。
3)在基于侧链的可信分布式能源共享网络环境下按照步骤1 中的脚本模拟用户进行能源交易。
4)待步骤3 运行完毕后,统计网络中的整体能源使用量和能源损耗率。
5)移除分布式能源动态调度机制,采用随机选择储能站的方法,反复执行步骤3 和步骤4 达到预设次数后,对能源使用量和能源损耗率取均值。
6)对比步骤4 和步骤5 中的能源使用量和能源损耗率。
7)设定不同储能站列表和用户规模,多次执行步骤1~步骤6,以获得在不同环境下能源损耗的对比情况。
实验1购买能源权益和能源权益向通证转换实验。在购买能源权益实验中,transaction 表示交易链,schedule 表示调度链,如图8 中①所示,通证与能源权益的转换比为1。该实验首先分别获取用户在交易层与调度层以及能源公司在交易层的钱包初始情况,如图8 中②所示,用户在交易层拥有1 000 枚通证,在调度层的能源权益为0,能源公司在交易层拥有1 000 枚通证。现用户通过交易链向能源公司支付73 枚通证以换取73 个单位的能源权益,如图8中③所示。图8 中④与⑤分别为交易锁合约在交易层执行锁定和在调度层执行解锁命令。执行完成后再次获取用户在交易层与调度层以及能源公司在交易层的钱包情况,如图8 中⑥所示,用户在交易层拥有的通证数量已减少73 枚,目前为927 枚,在调度层的能源权益为73 个单位,能源公司在交易层拥有的通证数量依旧为1 000 枚并未增加,其原因是用户支付的73 枚通证已通过交易锁合约发送至交易锁地址进行锁定。实验结果符合预期。
图8 购买能源权益实验结果Fig.8 Experimental results of purchasing energy rights
能源权益向通证转换实验验证用户将20 个单位的能源权益转换为20 枚通证,在图9 中,①为交易层与调度层中用户钱包的初始状态,②为转换命令,③与④分别为锁定与解锁命令,⑤为转换完成后用户钱包的最终状态。实验结果符合预期。
图9 能源权益向通证转换实验结果1Fig.9 Experimental results 1 of energy rights conversion to general certificate
实验验证能源公司将300 个单位的能源权益转换为300 枚通证,在图10 中,①为交易层与调度层中能源公司钱包的初始状态,②为转换命令,③与④分别为锁定与解锁命令,⑤为转换完成后能源公司钱包的最终状态。实验结果符合预期。
图10 能源权益向通证转换实验结果2Fig.10 Experimental results 2 of energy rights conversion to general certificate
图11 和图12 展示了交易链和调度链在实验1中产生的交易记录。两条链上的记录相互印证且符合实验过程,说明区块链对交易的记录真实有效。
图11 实验1 交易链记录Fig.11 Transaction chain record of experiment 1
图12 实验1 调度链记录Fig.12 Scheduling chain record of experiment 1
图13 为在与侧链结构相对的单链结构上同时执行资金交易和能源调度的对比实验的交易记录。可以看出,在单链结构中,资金交易和能源调度的交易记录混杂在一起,且储能站a 能额外获得用户与能源公司的资金交易信息,能源公司也能了解用户与储能站a 之间的能源调度情况。而在图11 和图12 的姊妹链结构中,两条链上只存有发生于本链的交易记录,一条链上的主体无法获取到另一条链上的交易记录,同时各条链上的记录逻辑清晰,在总数据量基本不变的前提下,各条链上的数据压力较小,说明侧链较好地实现了提升网络性能及保护主体隐私的目标。通过实验1,验证了基于侧链的可信分布式能源共享网络和三层网络协同工作链码体系跨链交易模块的有效性与安全性。
图13 实验1 单链对比Fig.13 Single chain comparison of experiment 1
实验2能源供给和能源收购实验。在能源供给实验中的初始化储能站列表如表2 所示,其列出了用户和储能站间传输能源的损耗率,其中:∞表示用户与储能站间无有效线路,不可传输能源;available/unavailable 表示储能站储能是否充足且符合供能要求。实验2 中的两个子实验均设定单次连接的供能/收能上限k=10。用户1 申请供能和申请用能过程如图14、图15 所示。
表2 能源供给实验储能站列表1Table 2 Energy supply experimental storage station list 1
图14 能源供给实验结果1Fig.14 Energy supply experimental results 1
图15 能源供给实验结果2Fig.15 Energy supply experimental results 2
如图16 所示,按照分布式能源动态调度机制,选定储能站b 为用户1 供能,储能站b 核对自身储能信息储能量为20个单位(大于4个单位),储能站b可供能。
图16 能源供给实验结果3Fig.16 Energy supply experimental results 3
用户1 与储能站b 建立连接,储能站b 为其供能。在达到单次供能上限后,用户1 与储能站b 断开连接,重新申请供能。此时储能站列表如表3 所示,可以看出储能站列表并未改变。用户1 申请供能如图17 所示。
表3 能源供给实验储能站列表2Table 3 Energy supply experimental storage station list 2
图17 能源供给实验结果4Fig.17 Energy supply experimental results 4
如图18 所示,按照分布式能源动态调度机制,选定储能站b 为用户1 供能,储能站b 核对自身储能信息储能量为10个单位(大于4个单位),储能站b可供能。
图18 能源供给实验结果5Fig.18 Energy supply experimental results 5
用户1 与储能站b 建立连接,储能站b 为其供能。当供能量达4 个单位后,储能站b 不再符合供能要求,储能站b 与所有用户断开连接,用户1 重新申请供能。此时储能站列表如表4 所示,可以看出,此时储能站b 的状态已更新为unavailable,而此时储能站a 通过储能已符合供能要求,因此状态更新为available,恢复供能。能源供给实验完毕,实验结果符合预期。
表4 能源供给实验储能站列表3Table 4 Energy supply experimental storage station list 3
在能源收购实验中的初始化储能站列表如表5所示,设定储能站a 的储能上限为20 个单位。用户3申请能源收购过程如图19、图20 所示。
表5 能源收购实验储能站列表1Table 5 Energy acquisition experimental energy storage station list 1
图19 能源收购实验结果1Fig.19 Energy acquisition experimental results 1
图20 能源收购实验结果2Fig.20 Energy acquisition experimental results 2
如图21 所示,按照分布式能源动态调度机制,选定储能站a 为用户3 供能,储能站a 核对自身空余的储能空间为15 个单位,储能站a 可收能。
图21 能源收购实验结果3Fig.21 Energy acquisition experimental results 3
用户3 与储能站a 建立连接,储能站a 收购用户3的能源。在达到单次供能上限后,用户1 与储能站b断开连接,重新申请供能,此时储能站列表如表6 所示,可以看出储能站列表并未改变。如图22 所示,按照分布式能源动态调度机制,选定储能站a 为用户3 供能,储能站a 核对自身空余的储能空间为5 个单位,储能站a 可收能。
表6 能源收购实验储能站列表2Table 6 Energy acquisition experimental energy storage station list 2
图22 能源收购实验结果4Fig.22 Energy acquisition experimental results 4
当收能量达3 个单位后,储能站a 的储能空间已满,不再符合收能要求,储能站a 与所有用户断开连接,用户3 重新申请能源收购,此时储能站列表如表7 所示。可以看出,此时储能站a 的状态已更新为unavailable。与此同时,储能站c 的储能量也达到上限,状态更新为unavailable。能源收购实验完毕,实验结果符合预期。
表7 能源收购实验储能站列表3Table 7 Energy acquisition experimental energy storage station list 3
图23 展示了实验2 中调度链产生的交易记录。实验2 中用户1 与储能站b 交易14 次,用户3 与储能站a 交易13 次,与调度链中的交易记录吻合,说明区块链对交易的记录真实有效。
图23 实验2 调度链记录Fig.23 Scheduling chain record of experiment 2
通过实验2,验证了基于侧链的可信分布式能源共享网络以及三层网络协同工作链码体系能源传输模块的有效性与安全性。
实验3以网络规模为基准设计5 轮实验,每轮实验的用户数和储能站数固定,储能站列表各不相同,随着网络规模的扩大,各储能站列表中的最大线路损耗率也逐渐扩大,符合能源损耗与距离正相关的实际情况。每轮实验中用户使用能源供给/能源收购服务的行为按照每轮实验的脚本进行,不同轮次实验脚本各不相同,相同轮次中使用调度算法与随机选择储能站的脚本相同。
实验使用Python 语言的Simpy 库,对于每组实验设定用户的到达服从特定泊松分布并设定对应数目的储能站,每个电站的基础储能量服从均值为40 个单位的正态分布,假设用户与储能站之间的损耗服从特定正态分布。每组实验中每名用户请求的电量数目服从均值为10 个单位的正态分布,电站与用户之间进行电量交换的时间服从均值为60 s 的正态分布。在具有使用能源收购服务的用户实验中,售电量服从均值为5 个单位的正态分布,售电用户与电站进行电量交换的时间均值为30 s 的正态分布。从表8 可以看出,在相同网络环境下,使用调度机制选择储能站的能源损耗率约为随机选择储能站的能源损耗率的60%~80%,并且随着网络规模与复杂度的提升,该数据逐步减小,说明本文提出的分布式能源动态调度机制在基于侧链的可信分布式能源共享网络环境中的效果较好,且当处于规模大和线路复杂的分布式网络时效果将进一步提升。
本文所有实验中的主要时延在于两条侧链间进行代币与能源权益的价值转移以及各节点形成共识生成区块所需的时间,而前者的主要时延在于执行交易锁合约对代币或能源权益进行锁定或解锁的行为写入区块链中并被证实有效所需的时间,即自锁定或解锁行为产生起生成6 个区块的时间,其本质上也是各节点形成共识生成区块所需的时间。与以太坊等公有链采用PoW 等共识机制不同,本文实验在Hyperledger Fabric 联盟链网络环境下采用Raft 共识机制,区块生成时间能够达到秒级,并且支持人为设置单区块交易数量上限和最大出块间隔,实验设置的单区块交易数量上限为10 条,最大出块间隔为1 s,因此锁定或解锁行为被证实有效的时延约为6 s,侧链间一次完整的价值转移操作的时延约为10 s。Hyperledger Fabric 吞吐量可达1 000 transaction/s以上,在实际生产环境下能达到300 transaction/s~500 transaction/s。经过测算,本文实验环境下的区块链网络能够满足200 名用户的实时用电需求且整体运行时间在可接受范围内。在实际生产环境中,网络整体性能受硬件条件、网络规模等因素的影响较大,与实验环境相比存在一定的差异。
表8 分布式能源动态调度机制实验结果Table 8 Experimental results of distributed energy dynamic scheduling mechanism
综上,三组实验分别验证了基于侧链的可信分布式能源共享网络环境下三层网络协同工作链码体系的有效性与安全性,以及分布式能源动态调度机制的合理性与有效性。通过实验可以得出,基于侧链的可信分布式能源共享网络具有较高的有效性与安全性,能够实现交易公正透明、减轻数据存储压力、非相关信息分离的隐私保护和主体供需身份耦合等目标,并且在提升网络整体能源利用率方面也有较好的性能表现。
针对分布式能源共享网络中隐私保护和能源调度等问题,本文提出一种基于区块链的可信分布式能源共享网络,以区块链中的侧链技术为基础构建三层基本网络,并设计应用于该网络环境的三层网络协同工作链码体系和分布式能源动态调度机制,通过三组实验验证了该网络设计的合理性、有效性与安全性。实验结果表明,三层网络协同工作链码体系实现了分布式能源网络中主体间的可信交易,并且在减轻数据存储压力、保护交易隐私以及提升能源利用率等方面均有较好的性能表现。下一步将对交易锁合约及调度层链码体系进行优化,并结合前沿能源调度算法设计真实环境下的分布式能源动态调度算法。