9
CSEE EIC 中国电机工程学会能源互联网专委会首届学术年会会议论文集 Proceedings of the First Academic Annual Meeting of Energy Internet Committee of CSEE 2019 8 Aug. 2019 Abstract: With the rapid development of distributed energy, the traditional centralized energy trading system encounters three major problems: the high cost of building and maintaining centralized database, the serious consequences caused by data tampering, and the difficulty of protecting user privacy. To solve these problems, this paper designs a decentralized energy trading system based on consortium blockchain. Firstly, this paper analyses the components of the system, and uses the access mechanism of consortium blockchain to supervise users. Then, this paper introduces the transaction flow of the system, including the configuration of network nodes, the use of digital certificate to register administrators and users, the realization of distributed transaction matching using the architecture of collaborating on-chain and off-chain and so on. Next, the distributed transaction matching algorithm used in the system is introduced. Then, the system is developed by using the Hyperledger Fabric platform, and the related software architecture is introduced. Finally, this paper analyzes the advantages of using consortium blockchain, compares the system designed in this paper with the centralized peer-to-grid trading system from three aspects: social welfare, new energy consumption rate in the park and carbon emissions, and proves the feasibility of applying the system to distributed energy trading. Keywords: consortium blockchain; decentralization; energy trading system 要:随着分布式能源的快速发展传统的中心化能源交 易系统遇到了建造和维护中心化数据库的成本较高数据被 篡改后会酿成严重后果和难以保障用户隐私这三大问题对这些问题设计了一种基于联盟链的去中心化能源交易系 首先分析了该系统的组成部分利用联盟链的准入机 制对用户进行监管然后介绍了该系统的交易流程括网络节点的配置使用数字证书注册管理员和用户借鉴 链上链下协同架构实现分布式交易撮合等接着介绍了 该系统使用的分布式交易撮合算法然后利用Hyperledger Fabric 平台研发了该系统介绍了相关的软件架构最后分析了使用联盟链的优点从社会福利园区内新能源消 纳率碳排放量3个方面将设计的系统与中心化的点对网交 易系统进行比较验证了该系统用于分布式能源交易的可 行性关键词:联盟链去中心化能源交易系统 0 引言 随着能源互联网的发展光伏风电这类具有能 源利用率高污染排放低等优点的分布式能源开始受 到世界各国的广泛关注2017国家发改委和国家 能源局出台了关于开展分布式发电市场化交易试点 的通知》,鼓励分布式能源参与到电力市场中提出 建立分布式发电市场化交易平台考虑到目前国家已 经在居民用户中试点分布式光伏发电未来的电力市 场中参与者的类型将变得更为丰富生产者和消费者 不再是互斥的关系用户将更多的以产消者的身份参 与到电力市场交易中传统的电力市场交易采用集中式模式发电商和 用户将报价数据传递给中心化交易系统然后再通过 集中撮合或者优化的方式进行匹配 [1] 但是随着分 布式能源的大量使用这种中心化交易系统存在着以 下问题首先交易的用户数量较多交易数据量极 基于联盟链的去中心化能源交易系统 周鑫 1 ,邓莉荣 2 ,王彬 1 ,潘昭光 1 1清华大学电机工程与应用电子技术系北京市 海淀区 1000892清华大学清华 伯克利深圳学院广东省 深圳市 518057Decentralized Energy Trading System Based on Consortium Blockchain ZHOU Xin 1 , DENG Lirong 2 , WANG Bin 1 , PAN Zhaoguang 1 (1. Department of Electrical Engineering, Tsinghua University, Haidian District, Beijing 100089, China; 2. Tsinghua-Berkeley Shenzhen Institute, Tsinghua University, Shenzhen 518057, Guangdong Province, China) 基金项目:国家自然科学基金51537006)。 National Natural Science Foundation of China (51537006).

基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

CSEE

EIC

中国电机工程学会能源互联网专委会首届学术年会会议论文集Proceedings of the First Academic Annual Meeting of Energy Internet Committee of CSEE2019 年 8 月 Aug. 2019

Abstract: With the rapid development of distributed energy, the traditional centralized energy trading system encounters three major problems: the high cost of building and maintaining centralized database, the serious consequences caused by data tampering, and the difficulty of protecting user privacy. To solve these problems, this paper designs a decentralized energy trading system based on consortium blockchain. Firstly, this paper analyses the components of the system, and uses the access mechanism of consortium blockchain to supervise users. Then, this paper introduces the transaction flow of the system, including the configuration of network nodes, the use of digital certificate to register administrators and users, the realization of distributed transaction matching using the architecture of collaborating on-chain and off-chain and so on. Next, the distributed transaction matching algorithm used in the system is introduced. Then, the system is developed by using the Hyperledger Fabric platform, and the related software architecture is introduced. Finally, this paper analyzes the advantages of using consortium blockchain, compares the system designed in this paper with the centralized peer-to-grid trading system from three aspects: social welfare, new energy consumption rate in the park and carbon emissions, and proves the feasibility of applying the system to distributed energy trading.

Keywords: consortium blockchain; decentralization; energy trading system

摘 要:随着分布式能源的快速发展,传统的中心化能源交

易系统遇到了建造和维护中心化数据库的成本较高、数据被

篡改后会酿成严重后果和难以保障用户隐私这三大问题。针

对这些问题,设计了一种基于联盟链的去中心化能源交易系

统。首先,分析了该系统的组成部分,利用联盟链的准入机

制对用户进行监管。然后,介绍了该系统的交易流程,包

括网络节点的配置,使用数字证书注册管理员和用户,借鉴

链上链下协同架构实现分布式交易撮合等。接着,介绍了

该系统使用的分布式交易撮合算法。然后,利用Hyperledger Fabric平台研发了该系统,介绍了相关的软件架构。最后,

分析了使用联盟链的优点,从社会福利、园区内新能源消

纳率、碳排放量3个方面将设计的系统与中心化的点对网交

易系统进行比较,验证了该系统用于分布式能源交易的可

行性。

关键词:联盟链;去中心化;能源交易系统

0 引言

随着能源互联网的发展,光伏、风电这类具有能

源利用率高、污染排放低等优点的分布式能源开始受

到世界各国的广泛关注。2017年,国家发改委和国家

能源局出台了《关于开展分布式发电市场化交易试点

的通知》,鼓励分布式能源参与到电力市场中,提出

建立分布式发电市场化交易平台。考虑到目前国家已

经在居民用户中试点分布式光伏发电,未来的电力市

场中参与者的类型将变得更为丰富,生产者和消费者

不再是互斥的关系,用户将更多的以产消者的身份参

与到电力市场交易中。

传统的电力市场交易采用集中式模式,发电商和

用户将报价数据传递给中心化交易系统,然后再通过

集中撮合或者优化的方式进行匹配[1]。但是,随着分

布式能源的大量使用,这种中心化交易系统存在着以

下问题:首先,交易的用户数量较多,交易数据量极

基于联盟链的去中心化能源交易系统周鑫 1,邓莉荣 2,王彬 1,潘昭光 1

(1.清华大学电机工程与应用电子技术系,北京市 海淀区 100089;

2.清华大学清华 – 伯克利深圳学院,广东省 深圳市 518057)

Decentralized Energy Trading System Based on Consortium Blockchain

ZHOU Xin1, DENG Lirong2, WANG Bin1, PAN Zhaoguang1

(1. Department of Electrical Engineering, Tsinghua University, Haidian District, Beijing 100089, China;

2. Tsinghua-Berkeley Shenzhen Institute, Tsinghua University, Shenzhen 518057, Guangdong Province, China)

基金项目:国家自然科学基金(51537006)。National Natural Science Foundation of China (51537006).

Page 2: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

106 中国电机工程学会能源互联网专委会首届学术年会会议论文集 2019 年 8 月

CSEE

EIC

大,建立中心化交易平台以及维护交易数据的成本很

高;其次,交易中心信息安全程度不高,容易受到恶

意攻击,数据被篡改后会造成严重后果;最后,交易

中心存在信息不对称的问题,现在用户越来越重视隐

私保护,而中心化交易系统难以保障用户隐私。为了

解决这些问题,一些学者将目光放到了新兴的区块链

技术上,提出使用区块链技术应对这些问题。

2008年,中本聪创立并发行了比特币[2],而区块

链作为比特币的核心底层技术,具有去中心、去信任

等优点,得到了人们的广泛关注。区块链是一种分布

式数据库,其技术框架的四大组成部分为:共享账

本、加密技术、共识机制、智能合约[3]。共享账本依

托于数据库技术,每一笔事务都会添加到共享账本

中。加密技术利用极高的计算复杂度来确保身份验证

和事务验证的可靠性。共识机制是区块链系统的核

心,区块链各个节点利用共识机制来验证事务,构建

区块链节点间的信任系统。智能合约是嵌入在区块链

系统中的商业条款,在智能合约中需要定义每一笔事

务的价值流动和状态变化。

目前已有许多文献探讨了区块链技术在能源交易

中的应用。文献[4]将区块链技术应用到大用户直购电

中,利用互联链的思想,分别记录直购电及其二级市

场交易、阻塞管理数据、日前市场交易。文献[5]使用

区块链建立了分布式能源P2P(peer to peer)交易架

构,基于连续双边拍卖机制建立了交易的结算机制,

并讨论了区块链技术在能源交易市场中的局限性。文

献[6]利用区块链中的联盟链建立了电动汽车间的P2P交易机制,该机制使用了基于PoW(proof of work)的共识机制增加了交易的安全性。文献[7]则使用联盟

链设计了电动汽车的V2V(vehicle to vehicle)电力交

易平台。文献[8]综述了分布式账本技术在局部能源市

场P2P交易中的应用,提出了一种能源交易系统的架

构,并在区块链PoS(proof of stake)共识机制的基础

上提出了PoE(proof of energy)共识机制。

上述文献中,大部分文献并没有明确区块链的类

型,只有少数文献具体讨论了区块链中的联盟链应

用。实际上,区块链可以分为公有链、联盟链和私

有链。通常人们所说的区块链指的是公有链,它是

完全去中心化的,节点可以随时加入或离开公有链

网络。联盟链是部分去中心化的,由各个组织机构共

同管理,用户需要经过身份验证才能进入到联盟链网

络中。而私有链类似于普通的数据库,并不适合应用

到分布式能源交易中。在分布式能源交易领域,联盟

链要优于公有链,原因为:首先,任何一个节点都可

以加入到公有链网络中,不利于能源系统的监管,而

联盟链具有准入机制,只有符合要求的节点才能加入

到联盟链网络中;其次,公有链的隐私保护依赖于匿

名机制,但公有链上传输的数据是公开可见的,而

联盟链可以通过权限控制防止恶意节点获得这些数

据;最后,在防止数据篡改方面,公有链通常使用

PoW或PoS共识机制,其中PoW机制具有速度慢和能

耗大的缺点,PoS机制则存在着马太效应的问题,而

联盟链可以采用基于PBFT(practical byzantine fault tolerance)或CFT(crash fault tolerance)的共识机制,

共识速度较快。

本文将在已有的研究基础上,设计一种基于联盟

链的去中心化能源交易系统,并使用Hyperledger(超

级账本)项目中的Fabric开发平台研发这一系统,结合

分布式交易撮合算法,通过算例体现该系统的优越性。

1 去中心化能源交易系统架构

本文设计的基于联盟链的去中心化能源交易系统

如图1所示,相关的组织机构包括生产者、消费者、

产消者、电网和支付机构。

图1中,生产者、消费者和产消者三大组织机构

中的用户直接参与到能源的生产和消耗。电网一方面

需要管理公共的电力设施,另一方面也需要弥补联盟

链本质上作为信息层面的数据库的不足,执行相关的

物理层面的操作。选择支付机构前需要先确定一个交

易介质,而通常的区块链交易平台都是使用了数字代

币作为交易介质,支付机构实际上就是区块链本身。

但是本文使用的是联盟链,而联盟链不一定需要使用

数字代币。考虑到央行正在研究使用联盟链发行央行

数字货币,本文认为可以将银行作为支付机构,交易

介质由银行决定,这里的联盟链交易系统只负责记录

电力交易的账本。

该交易系统中,wallet是各个组织机构用来管理

用户数字证书的身份管理系统,由相应的数字证书

颁发机构创建,5个组织机构都至少要在wallet中注册

1个管理员。然后,对于生产者、消费者和产消者来

说,管理员还需要审核用户资格,创建若干用户。在

交易时,用户需要将报价信息传递给联盟链,联盟链

再通过智能合约对报价进行撮合,将报价和交易信息

写入到联盟链数据库中。得到交易结果后,电网执行

相关的物理操作,支付机构对交易进行支付。可以看

Page 3: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

2019 年 8 月 周鑫 等:基于联盟链的去中心化能源交易系统  107

CSEE

EIC

到,联盟链的主要作用在于用户准入审核、记录交易

和报价数据以及通过智能合约进行交易结算。

2 能源交易系统交易流程

本文设计的能源交易系统的交易流程如图2所示,

接下来将具体介绍各个步骤的原理。

5 min

图2 交易流程

Fig. 2 Transaction flow

2.1 联盟链网络配置

联盟链网络的配置由整个联盟链的管理机构实

现,本文选择电网作为该管理机构。配置操作主要

包括定义参加联盟链的各个组织机构和分配各个组

织机构对应的节点。本文使用的联盟链开发平台为

Hyperledger Fabric,该平台中联盟链网络的节点分为

orderer节点、peer节点和client节点[9]。其中,orderer节点能够实现排序服务,将联盟链中发生的事务进行

排序,打包整理成区块发送给其他节点;peer节点拥

有一个区块链账本,所有peer节点会共同维护账本并

验证其可靠性;client节点会向联盟链网络提交事务申

请,并将需要改变联盟链账本的事务发送给orderer节点进行排序。

通常情况下,orderer节点对应着联盟链的管理机

构,所以本文研发时只为电网配置了一个orderer节点。在实际应用场景中,通常需要增加orderer节点的

个数,并且可以考虑为其他组织机构也配置orderer节点。关于peer节点的配置,由于peer节点是直接参与

记账过程,每个组织机构都应该配置peer节点。文献

[10]研究了peer节点个数对达成共识所需时间的影响,

指出当传输时延较小时,peer节点个数与平均达成共

识所需时间近似为线性关系,为了加快共识速度,本

文对5个组织机构都只配置了一个peer节点。而client节点本质上是用户与联盟链交互的接入点,是用户通

过调用智能合约创建一笔事务形成的[11],在能源交易

系统的背景下,只有生产者、消费者和产消者的用户

才会有client节点。

图1 能源交易系统架构

Fig. 1 Architecture of energy trading system

admin

wallet

admin

wallet

admin

wallet

cllient

admin

wallet

cllient

admin

wallet

cllient

Page 4: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

108 中国电机工程学会能源互联网专委会首届学术年会会议论文集 2019 年 8 月

CSEE

EIC

联盟链网络的配置信息在联盟链网络启动后会记

录到一个初始区块中,该初始区块只记录网络配置信

息,不会记录其他的事务信息。在实际运行过程中,

如果联盟链管理员需要修改网络配置,可以通过系统

链代码[12]将修改后的网络配置记录到初始区块中。

2.2 管理员与用户注册

管理员的注册实际上是基于公钥基础设施

(public key infrastructure)实现的。首先,联盟链的各

个组织机构都需要有一个证书颁发机构,颁发的数字

证书采用在互联网领域已经得到广泛应用的X.509标准[13],利用非对称加密技术验证身份信息。管理员在

注册时首先需要创建公钥PK和私钥SK,私钥SK会对

管理员的身份信息进行加密得到数字签名DS,当需要

验证管理员的身份信息时,可以通过公钥PK对数字签

名DS进行验证。管理员对应的组织机构会将管理员的

数字证书拷贝一份记录到如图1所示的wallet身份管理

系统中。身份信息的验证由MSP(membership service provider)提供,MSP不仅能够判断数字证书的有效

性,还能够判断数字证书是否来自受信任的证书颁发

机构[14]。

生产者、消费者和产消者的用户注册与管理员不

同,各个组织机构会以网站或APP的形式为用户提供

一个注册的接口,当用户提交注册申请后,证书颁发

机构并不会立刻向用户颁发数字证书,而是暂时记录

用户的注册信息,等待管理员的审核。管理员本身并

不会参与到能源交易中,而是作为政府监管功能的实

际执行者,对参与到能源交易中的用户进行资格审核。

2.3 管理员审核用户

管理员首先需要通过数字证书证明自己的管理员

身份,登录相应的组织机构的用户审核网站或APP。用户提交的注册信息应当包括需要管理员审核的资

料,管理员审核通过后,相应的证书颁发机构会为该

用户生成一组公钥和私钥,并为该用户颁发数字证

书。该用户的数字证书会拷贝一份记录到wallet身份管

理系统中。此后用户便可以凭借该数字证书加入到联

盟链网络中,以client节点的形式通过智能合约与联盟

链进行互动,按照权限查询或者修改联盟链的账本。

数字证书存在着过期的问题,当某个用户的数字

证书过期后,证书颁发机构会将该数字证书加入到证

书撤销列表中,管理员会重新审核用户的资格,审核

成功后证书颁发机构会为该用户颁发新的数字证书,

wallet身份管理系统会用新的数字证书替换掉原有的

数字证书。

2.4 用户提交报价与交易撮合

生产者、消费者和产消者的用户会通过相应的组

织机构的网站或APP提交自己的报价信息,这里的报

价信息应当包括价格与功率。这些报价信息会通过智

能合约写入到联盟链的数据库中。联盟链利用智能合

约对报价进行撮合,具体内容详见第3章。撮合的结

果也会通过智能合约写入到联盟链中。

用户提交报价或者写入交易时实际上改变了联盟

链记录的账本内容,由于联盟链的账本是由所有的

peer节点共同维护的,被修改的账本需要通过共识机

制达成一致。区块链主流的共识机制为PoW机制和

PoS共识机制。PoW共识机制是比特币采用的共识机

制,通过求解复杂的数学问题来达成共识,会消耗大

量的算力,共识速度慢,不能满足商业级别应用的需

要。而PoS机制中引入了权益的概念,共识结果以权

益最高的节点为准,但是权益最高的节点容易一直保

持最高的权益,产生马太效应。另外PoW和PoS共识

机制本质上是非确定性的[15],存在分叉问题[16],只能

以概率的形式描述各个节点账本的一致性。

本文使用的共识机制采用了Hyperledger Fabric提出的执行-排序-验证框架[9],能够以确定性的方式达

成共识。具体来说,联盟链首先检查用户的数字证

书,确定用户身份有效后,用户就会以client节点的形

式接入到联盟链网络中。通过联盟链提供的API,用

户可以调用联盟链的智能合约,向联盟链发出写入报

价或者写入交易的事务申请。联盟链的智能合约在部

署到联盟链中时,会配置几个组织机构中受信任的

peer节点,当智能合约被调用后,这些受信任的peer节点会先模拟调用智能合约产生的结果,对该事务进

行数字签名,此时它们并不会修改自身的账本。然

后,电网对应的orderer节点会收集这些被签名的事

务,并根据智能合约的配置判断是否集齐了受信任的

peer节点的数字签名。当集齐数字签名后,电网对应

的orderer节点利用Kafka或Raft排序服务,对这段时间

内收到的事务进行排序,并将这些事务打包成区块。

最后,电网对应的orderer节点会将打包后的区块发送

给所有的peer节点,peer节点根据收到的区块检查事

务的有效性,对有效的事务执行相应的更新账本的操

作。通过这种共识机制,联盟链各个peer节点能够保

证记录账本的一致性,以公开透明、不可篡改的方式

Page 5: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

2019 年 8 月 周鑫 等:基于联盟链的去中心化能源交易系统  109

CSEE

EIC

记录用户的报价和交易信息。

基于区块链的能源交易系统可以分为P2P模式和

集中出清模式[17]。P2P模式下各个用户之间直接达成

交易意向,不要通过智能合约进行撮合。这种模式

的问题在于如何处理交易不满足电网物理约束的情

况。而集中出清模式通过智能合约对用户的报价进

行撮合,在撮合时会引入电网物理约束,从而解决

P2P模式的问题。因此,本文设计的能源交易系统采

用集中出清模式,联盟链会对交易进行撮合。但是,

集中出清模式下的分布式撮合算法需要大量的迭代

操作,更新大量的中间数据,如果这些数据全部记

录在联盟链的账本中,会花费大量的时间,严重降

低交易速度。文献[18]提出了使用链上、链下协同架

构,将交易的部分过程放到链下,提升交易处理能

力。本文将借鉴这种架构,链上只记录用户的报价

和交易信息,在链下执行分布式撮合算法的迭代过

程,中间数据也在链下存储,能够极大提高交易撮

合的速度。

2.5 用户查询交易与付款

用户登录相关组织机构提供的网站或APP,能够

查询到自己的交易结果。这里的查询操作同样是通过

智能合约实现的,但是由于查询操作并不会改变联盟

链的账本,所以不会出现共识过程。交易付款是由支

付机构实现的,联盟链只负责对交易结果进行记账,

支付机构可以根据实际情况选择数字代币或者传统货

币实现支付操作。

3 交易撮合

假设本文采用的集中出清市场是完全竞争市场,

则该多边贸易问题可以形成一个类似于经济调度的问

题[19]。目标函数是总成本最小,即最小化负的社会福

利,具体包括3部分:生产者的发电成本,减去消费

者的效用,加上与大电网进行交易的成本。

{ }, ,min ( ) ( )

. . ( )

( ) 0

( , , , )

( )

G L sell buy

r r

r r

sell sell buy buyP P P P

r r

G L sell buy r r

sell buy

C U P P

s t

P P P P f

P P

γ γ

λ− − − −

+ + −

− + =

− + − + =

G L

G L

G L

P P

P P f Z 0 λ

Z

G P P 0 υ

H Z H 0 μ

(1)

式中:PG、PL分别为有功出力、有功负荷列向量,

PG、PL为相应的内部元素;Psell、Pbuy分别为电网卖给/买入社区的电量;γsell/γbuy分别为电网卖给/买入社区

的单位价格;Z为状态变量,代表电压幅值、相角等;

f(·)为潮流方程表达式,可以选择直流潮流、交流潮

流以及考虑网损项的直流潮流,本文选择直流潮流;

r表示电网所连接的节点;G和H分别为节点功率界限

和线路潮流界限表达式。模型(1)中的约束条件依

次为除参考节点以外的节点功率平衡约束、参考节

点功率平衡约束、生产设备或灵活性负荷变化范围

和线路潮流约束,每条约束后的变量为相应的对偶

变量。

定义原变量 : { , , , , }sell buyx P P= G LP P Z ,对偶变量

: { , , , }r ry λ−= λ υ μ ,本文采用原对偶梯度算法求解该

问题[20]。其中原变量按照负梯度方向进行梯度下降迭

代,对偶变量按照正梯度方向进行梯度下降迭代。具

体迭代格式如下

( 1) ( )( )i i ii

Lx k x kx k

ξ ∂+ = − ⋅∂ (2)

( 1) ( )( )i i ii

Ly k y ky k

α ∂+ = + ⋅∂ (3)

式中:L为模型(1)的拉格朗日函数;ξ i、α i分别

为节点i的原变量xi和对偶变量yi的迭代步长,xi∈x,yi∈y。

值得一提的是,该算法是完全分布式的。因为本

地代理i拥有本地数据(包括自身的目标函数Ci、Ui,

功率界限Gi),处理本地变量(xi,yi),并且与邻居节

点交换部分信息(xj,yj),即可实现本地优化,达到

与全局优化一致的最优解。

4 去中心化能源交易系统开发

本文使用Hyperledger Fabric联盟链开发平台研

发了基于联盟链的去中心化能源交易系统。该系统

的软件架构如图3所示,从底层到顶层分为网络配

置层、智能合约层、中间件层和网站应用程序层。

在这4层中,智能合约层和中间件层是最重要的部

分,智能合约层定义了用户与联盟链账本的交互方

式,而中间件层一方面能够处理注册问题,另一方

面能够调用智能合约以链上链下协同的方式实现交

易撮合。本文接下来将重点介绍智能合约层和中间 件层。

Page 6: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

110 中国电机工程学会能源互联网专委会首届学术年会会议论文集 2019 年 8 月

CSEE

EIC

orderer peer client

图3 能源交易系统软件架构

Fig. 3 Software architecture of energy trading system

在Hyperledger Fabric平台中,智能合约是部署

在各个peer节点上的,在智能合约中可以定义用户对

peer节点存储账本的读写操作。另外,与以太坊等区

块链开发平台不同,Hyperledger Fabric支持使用Java等通用编程语言编写智能合约。本文设计的智能合约

如图4所示,采用TypeScript语言编写。在智能合约中

首先需要定义联盟链数据库记录的内容,为此本文定

义了Transaction(交易)和Offer(报价)2种数据类

型,联盟链各个peer节点底层将使用CouchDB数据库

记录这些数据。然后本文定义了一个用于执行智能合

约操作的类,在这个类中定义了5个函数:instantiate、createTransaction、payTransaction、queryDatabase和writeOffer,分别代表初始化、创建交易、交易付款、

查询数据和写入报价。payTransaction函数中为了方便

起见本文只是简单的将该笔交易的状态从未付款改为

已付款,实际应用场景下还需要支付机构执行相应的

支付操作。

中间件层使用Hyperledger Fabric内置的Fabric-CA作为证书颁发机构,执行相应的身份验证以及注册

操作。中间件层调用智能合约需要使用Hyperledger Fabric提供的gateway类,利用gateway能够连接到联

盟链网络中,再调用API中的getcontract函数就能够

间接调用智能合约中定义的函数。中间件层的架构

如图5所示。链下交易撮合的流程为,wallet中的电网

管理员利用gateway调用智能合约中的queryDatabase函数,得到用户提交的报价信息,然后利用链下撮

合代码进行分布式的交易撮合,并得到交易结果。

而为了将交易结果写回到链上,链下撮合代码通过

wallet中的电网管理员利用gateway调用智能合约中的

createTransaction函数,将撮合结果写入到联盟链账

本中。

图4 智能合约架构

Fig. 4 Architecture of smart contracts

1 2 3

1 2 3

timebuyerNamesellerNameamountprice

timebuyerNamesellerName

query timeusernamepriceApriceBpMinpMax

interface Transaction { time:string; buyerName:string; sellername: string amount:number; money:number; paid:boolean;}

interface Offer { time:string; username:string; priceA:number; priceB:number; pMin:number; pMax:number;}

Page 7: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

2019 年 8 月 周鑫 等:基于联盟链的去中心化能源交易系统  111

CSEE

EIC

5 联盟链优点分析与效益比较

5.1 联盟链优点分析

1)部分去中心化:以去中心化的形式解决了传

统能源交易系统建造和维护中心化数据库成本高的问

题,并且联盟链部分去中心化的特点能够很好适配现

有的中心化商业模式。

2)数据防篡改:利用确定性的共识机制保证各

个peer节点账本的一致性,再结合联盟链的监管功能

能够及时发现数据被篡改的情况。

3)隐私保护:通过准入机制限制外部的恶意节

点加入联盟链网络,而当内部出现恶意节点时可以通

过其数字证书找出恶意节点并进行仲裁。

5.2 效益比较

为了验证本文设计的基于联盟链的去中心化能源

交易系统应用于分布式能源交易的可行性,本文从社

会福利、园区内新能源消纳率和碳排放量3个效益的

角度出发,将基于联盟链的去中心化交易系统与中心

化的“自发自用,余量上网”点对网交易系统进行比

较。这里的点对网交易系统指园区内的用户只能直

接与外电网交易,用户之间不会直接进行交易。本

文选取的园区电网拓扑模型如图6所示,相关参数见

文献[21]。本文首先比较了两种交易系统的社会福利,如图7

所示。

从图7中可以看到,本文设计的去中心化联盟链

交易系统的社会福利要高于中心化的点对网交易。这

个现象主要是与外电网售电和购电的价格有关。通常

图5 中间件层架构

Fig. 5 Architecture of middleware layer

admin

wallet

client

enroll

gateway

Fabric-CA

register

getcontract

1 2

1 2

图6 网络拓扑

Fig. 6 Network topology

PVPV ~

PV

1734

2

6

5

91011

8

图7 社会福利比较

Fig. 7 Comparison of social welfare

0 5

400

300

200

100

0

100

20010 15 20 25

$

h

Page 8: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

112 中国电机工程学会能源互联网专委会首届学术年会会议论文集 2019 年 8 月

CSEE

EIC

情况下,外电网的售电价格比园区内用户的发电成本

更高,而外电网的购电价格比园区内用户的购电效益

更低。去中心化的联盟链交易系统中用户会倾向于先

与其他用户进行交易再与外电网进行交易,所以去中

心化的联盟链交易系统的社会福利就会高于中心化的

点对网交易系统。

接着,本文比较了2种交易系统的园区内新能源

消纳率。定义园区内新能源消纳率等于园区内消纳的

新能源占园区新能源发电总量的比例。计算结果如图8所示。

0 5

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.210 15 20 25

h

图8 园区内新能源消纳率比较

Fig. 8 Comparison of new energy consumption rate in park

由图8可知,使用本文设计的去中心化联盟链交

易系统,能够增加园区内新能源消纳率。这是因为,

去中心化的联盟链交易系统中,新能源发出的电量在

满足自身需求后,会先在用户之间进行消纳,然后再

卖给外电网,而中心化的点对网交易系统中新能源只

能直接卖给外电网。从园区的角度来看,去中心化的

电力交易平台中新能源会优先供给园区内用户,所以

去中心化的联盟链交易系统的园区内新能源消纳率会

高于中心化的点对网交易平台。

最后,本文比较了2种交易系统的碳排放量,取

常规发电机组和外电网的碳排放量为822 g/kWh,新

能源的碳排放量为0。定义碳排放量指标等于每个发

电单元(含外电网)发出的电量乘以该发电单元的单

位碳排放量的乘积之和。计算结果如图9所示。

从图9中可以看到,本文设计的去中心化联盟链

交易系统的碳排放量要低于中心化的点对网交易系

统。这是因为,去中心化的联盟链交易系统中用户会

更多的使用园区内的新能源,相对而言园区内的常规

机组和外电网的发电量会更小,所以去中心化的联盟

链交易系统的碳排放量要低于中心化的点对网交易

系统。

0 5

1600

1400

1200

1000

800

600

400

200

010 15 20 25

kg/M

Wh

h

图9 碳排放量比较

Fig. 9 Comparison of carbon emissions

6 结论

本文分析了传统中心化能源交易系统的缺点,指

出了联盟链比公有链更适合应用于能源交易领域,设

计了一个基于联盟链的去中心化能源交易系统,使用

Hyperledger Fabric平台研发了该系统。使用联盟链能

够以部分去中心化的方式维护交易数据,防止数据被

恶意篡改,提高隐私保护能力。本文将联盟链交易系

统与分布式交易撮合算法相结合,从社会福利、园区

内新能源消纳率和碳排放量3个角度出发与传统的点

对网交易系统进行了比较,验证了该系统用于分布式

能源交易的可行性。下一步应当探究如何将该系统应

用到多能流的场景中。

参考文献

[1] Haring T W, Mathieu J L, Andersson G. Comparing centralized and decentralized contract design enabling direct load control for reserves[J]. IEEE Transactions on Power Systems, 2016, 31(3): 2044-2054.

[2] Nakamato S. Bitcoin: a peer-to-peer electronic cash system[J]. 2008.

[3] Gaur N, Desrosiers L, Ramarkrishna V, el al. Hands-on blockchain with hyperledger: building decentralized applications with hyperledger fabric and composer[M]. Packt Publishing Ltd, 2018.

[4] 欧阳旭,朱向前,叶伦,等.区块链技术在大用户直购

电中的应用初探[J].中国电机工程学报,2017,37(13):3737-3745.

Ouyang Xu, Zhu Xiangqian, Ye Lun, el al. Preliminary applications of blockchain technique in large consumers direct power trading[J]. Proceedings of the CSEE, 2017, 37(13): 3737-3745(in Chinese).

[5] 李彬,覃秋悦,祁兵,等.基于区块链的分布式能源交易

方案设计综述[J].电网技术,2019,43(03):961-972.

Page 9: 基于联盟链的去中心化能源交易系统 · 2019. 8. 15. · 周鑫 1,邓莉荣2,王彬,潘昭光 (1.清华大学电机工程与应用电子技术系,北京市

2019 年 8 月 周鑫 等:基于联盟链的去中心化能源交易系统  113

CSEE

EIC

Li Bin, Qin Qiuyue, Qi Bing, et al. Design of distributed energy trading scheme based on blockchain[J]. Power System Technology, 2019, 43(03): 961-972(in Chinese).

[6] Kang J, Yu R, Huang X, el al. Enabling localized peer-to-peer electricity trading among plug-in hybrid electric vehicles using consortium blockchains[J]. IEEE Transactions on Industrial Informatics, 2017, 13(6): 3154-3164.

[7] 王惠洲,于艾清.基于联盟区块链技术的V2V电力交易研

究[J].现代电力,2019,36(03):34-41. Wang Huizhou, Yu Aiqing. Study on V2V electricity trading

based on consortium blockchain technology[J]. Modern Electric Power, 2019, 36(03): 34-41(in Chinese).

[8] Siano P, De Marco G, Rolán A, et al. A survey and evaluation of the potentials of distributed ledger technology for peer-to-peer transactive energy exchanges in local energy markets[J]. IEEE Systems Journal, 2019.

[9] Androulaki E, Barger A, Bortnikov V, el al. Hyperledger fabric: a distributed operating system for permissioned blockchains[C]//Proceedings of the Thirteenth EuroSys Conference. ACM, 2018: 30.

[10] Sukhwani H, Martinez J M, Chang X, el al. Performance modeling of pbft consensus process for permissioned blockchain network (hyperledger fabric)[C]//2017 IEEE 36th Symposium on Reliable Distributed Systems (SRDS). IEEE, 2017: 253-255.

[11] Valenta M, Sandner P. Comparison of Ethereum, Hyperledger Fabric and Corda[J]. [ebook] Frankurt School, Blockchain Center, 2017.

[12] Hyperledger Fabric Document. System Chaincode[EB/OL]. (2019)[2019-06-10].https://hyperledger-fabric.readthedocs.io/en/latest/smartcontract/smartcontract.html#system-chaincode.

[13] Cooper D, Santesson S, Farrell S, et al, Internet X. 509 public key infrastructure certificate and certificate revocation list (CRL) profile[R]. 2008.

[14] Hyperledger Fabric Document. Membership[EB/OL].(2019)[2019-06-10].https://hyperledger-fabric.readthedocs.io/en/latest/membership/membership.html

[15] Androulaki E, Cachin C, De Caro A, el al. Cryptography and protocols in hyperledger fabric[C]//Real-World Cryptography Conference. 2017.

[16] Kiayias A, Russell A, David B, el al. Ouroboros: A provably

secure proof-of-stake blockchain protocol[C]//Annual International Cryptology Conference. Springer, Cham, 2017: 357-388.

[17] 王蓓蓓,李雅超,赵盛楠,等.基于区块链的分布

式能源交易关键技术思考 [ J / O L ].电力系统自动化:

1-12[2019-06-10].http://kns.cnki.net/kcms/detail/32.1180.TP.20190419.1055.006.htm.

Wang Beibei, Li Yachao, Zhao Shengnan, el al. Consideration on key technologies of distributed energy transaction based on blockchain[J/OL]. Automation of Electric Power Systems, 2019: 1-12[2019-06-10]. http://kns.cnki.net/kcms/detail/32.1180.TP.20190419.1055.006.htm(in Chinese).

[18] 孙毅,范灵俊,洪学海.区块链技术发展及应用:现状与

挑战[J].中国工程科学,2019,20(2):27-32. Sun Yi, Fan Lingjun, Hong Xuehai. Technology development

and application of blockchain: current status and challenges[J]. Engineering Sciences, 2019, 20(2): 27-32.

[19] Lirong Deng, Xuan Zhang, Hongbin Sun. Real-time Autonomous Trading in the Electricity-and-Heat Distribution Market Based on Blockchain[C]//IEEE PES General Meeting, 2019.

[20] Feijer D, Paganini F. Stability of primal–dual gradient dynamics and applications to network optimization[J]. Automatica, 2010, 46(12): 1974-1981.

[21] Github. bkcase[CP/OL].[2019-06-29]. https://github.com/fox-temp/bkcase.

作者简介:

周鑫(1997),男,博士研究生,

研究方向为综合能源系统和区块链在

能源领域的应用,E-mail:[email protected]

邓莉荣(1993),女,博士研究

生,主要从事电力市场和综合能源系

统研究,E-mail: [email protected]

(责任编辑 张宇)

(本文在《全球能源互联网》审核中)

周鑫