1. 引言
随着市场的开放与能源互联网的发展,绿色低碳的太阳能、风力发电等多种分布式能源得到大量的应用。分布式能源的发电设备种类较多、设备安装灵活、可靠度高、绿色经济环保等优点使分布式能源成为能源结构中的重要组成部分,同时分布式能源间的交易也成为我们需要关注的重点 [1] 。传统的电力交易特点是中心化、双向参与者少等,而分布式能源交易具有参与用户数量多、交易者可以进行买卖双向操作、交易较为分散、交易的容量小和频率高等特点。分布式能源海量的交易同时带来了很多难题,如:交易安全的不确定、交易效率不足以及交易成本过高等,传统的交易模式满足不了分布式能源交易的需求,因此提出了基于区块链技术的分布式能源交易研究。区块链技术作为一项前沿的数据库技术,将分布式数据存储、点对点传输、共识机制和加密算法等一系列新兴计算机技术进行深度结合,使其具有去中心化、公开透明、可追溯和不可篡改性等特点 [2] 。区块链技术从最开始应用于加密货币到逐渐应用于金融、物联网、能源等领域,其发展逐步成熟,如今,区块链技术可以比较好的应用于分布式能源交易面临的问题 [3] 。
目前已有一些文献对区块链技术应用于分布式能源交易进行了初步研究,文献 [4] 介绍了区块链技术在能源互联网中的研究进展,讨论了目前区块链技术存在的问题。文献 [5] 根据国内外研究现状,分析给出区块链技术在分布式能源交易方面的建议。文献 [6] 对应用于分布式电力交易中的区块链算法进行分析研究,比较区块链核心算法的优缺点。文献 [7] 提出贡献值和信誉度的改进PoW (Proof of Work,工作量证明)工作量证明共识机制,改进了算力浪费的问题。文献 [8] 设计基于配对制度的改进DPoS (Delegated Proof of Stake,委托权益证明)共识机制,提高了节点积极性与安全性。文献 [9] 提出基于信用值的DPoS方法用于分布式光伏的交易。
上述文献研究了区块链共识机制的设计,其中DPoS委托权益证明面临着投票不积极,不能有效去除恶意节点等缺点,一些研究对这些问题提出改进,一定程度上提高了安全性积极性,但是这些改进仍存在积极性提高不足,错误节点去除速度慢,应用于分布式交易中不够匹配等问题。文献 [10] 介绍了区块链技术在能源互联网中的研究进展,讨论了目前区块链技术存在的问题及未来研究方向。文献 [11] 重点分析了分布式能源交易中的区块链技术,根据国内外研究现状,给出区块链技术在分布式能源交易方面的建议。文献 [12] [13] 介绍了区块链技术应用于分布式能源交易的可行性与优越性。文献 [14] 对应用于分布式电力交易的区块链算法进行分析研究,总结区块链核心算法应用的优缺点,为未来核心算法的应用提供思路。以上文献表明,区块链技术与分布式能源交易的需求比较匹配,但未提出明确的算法解决分布式能源系统交易问题。
基于以上问题,本文提出基于区块链技术改进DPoS共识机制的分布式能源交易研究。首先分析了分布式能源交易面临的痛点问题,传统的交易模式很难满足现如今分布式能源交易的需求,分析了区块链技术的特性与应用场景,选择用区块链技术应用于分布式能源的交易。比较分析了常见的几种共识机制,对委托权益证明机制中节点投票积极性不高,恶意节点等存在的问题,提出一种基于动态信任的委托权益证明机制DT-DPoS (Dynamic Trust-Delegated Proof of Stake),利用建立的动态信任模型对系统内节点的行为进行评价,加入动态激励和刷新机制,改进投票机制把节点的历史信任度、动态信任度、保证金和投票数等信息加入分析过程,使得系统内节投票积极性更高,对恶意节点的去除加快,使系统的安全性进一步提高。通过仿真实验表明,本文提出的改进的DT-DPoS共识机制与传统DPoS机制相比,提高了节点的积极性,加快了恶意节点去除的速度同时提高了系统的安全性。
2. 区块链技术与分布式能源交易需求分析
2.1. 区块链技术
区块链技术是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,包含了密码技术、分布式存储、共识算法、智能合约等技术。其中共识机制算法作为区块链技术的核心,起着维持区块链系统稳定运行和节点相互信任的作用,区块链技术还具有节点平等、交易透明、信息安全、去中心化、不可篡改等特点。
2.2. 分布式能源交易
分布式能源是指分布在用户端的能源综合利用系统。不仅可以利用多种能源,满足用户的使用需求,还可以减少能源的损失,有效的提高能源的安全性与灵活性。

Figure 1. Compatibility analysis of distributed transaction and blockchain technology
图1. 分布式交易与区块链技术兼容性分析
传统的能源交易是一种集中式的,依赖中心或第三方机构来维护交易,容易受到攻击。交易的信息不对称,不透明,成本较高,隐私和安全性比较低。与传统的能源交易相比,分布式能源交易有以下特征:1) 节点平等,分布式能源交易中的节点都是平等的,可以独立的参与能源的交易。
2). 交易透明,分布式能源交易中各节点交易过程透明。
3) 信息安全,分布式能源的交易信息安全。
所以对区块链技术的特点和分布式能源交易的特性进行分析,如图1所示。由于区块链技术具有的众多特性可以比较好的兼容目前分布式能源交易存在的问题,应用区块链技术的分布式能源交易能够实现去中心化交易,数据具有安全可靠,不可篡改等优点。系统节点地位相同,公开透明,通过共识机制和智能合约使节点互相信任,还可降低交易成本。
2.3. 共识机制
区块链共识机制可以保证区块链中的每一笔交易在所有节点上的一致性和正确性。除了智能合约与密码学技术外,共识机制是区块链中最重要的技术,是区块链系统安全正常运行的关键。
现在常用的共识机制有PoW (Proof of Work,工作量证明),PoS (Proof of Stake,权益证明),DPoS (Delegated Proof of Stake,委托权益证明),PBFT (Practical Byzantine Fault Tolerance,实用拜占庭容错)。
PoW是根据节点在网络中完成的工作量来确定节点获得打包区块权力的概率,每个节点都可以通过算力挖矿来竞争打包权。PoS的思想是通过节点持有的代币和时间来分配打包权,一定程度上减少了算力损耗,但是算法安全性较差,容易出现垄断。DPoS共识机制不在通过挖矿来竞争记账权,通过选举投票的方式来选举节点,拥有代币的节点可以参与投票,选举产生代理节点,代理节点记账维持区块链稳定,不需要浪费算力竞争,节点的出块速度也达到秒级。
共识机制是区块链技术的重要算法,下表1列出并比较了PoW、PoS、DPoS、PBFT等常见共识机制的优缺点。

Table 1. Comparison of four consensus mechanisms: PoW, PoS, DPoS and PBFT
表1. PoW、PoS、DPoS、PBFT四种共识机制性质对比
从表1可以看出,对于涉及分布式能源交易的区块链技术,采用PoW共识机制的算力消耗过大,交易的吞吐量低,达成共识周期长,不适合分布式能源中大量高频的交易需求。使用PBFT算法节点容量小,使用PoS共识机制存在股权集中问题,DPoS机制把节点的利益与系统结合起来。PoW、PoS共识机制不能满足分布式能源交易中交易次数多、参与用户节点数量大、交易的时延需求短等问题。
根据对现有共识机制的分析,对比得出DPoS共识机制比PoW、PoS更适合大规模,时延要求高的场景,可以更好地保持区块链的安全与稳定。现在DPoS共识机制还存在一些缺点,如节点参与投票积极性不高,影响区块链的去中心化和安全性,同时对错误节点的处理措施不足,导致投票周期加长,影响区块链系统的安全。所以本文针对这些不足提出基于动态信任的DT-DPoS共识机制。
3. 基于区块链的分布式能源交易管理
3.1. 共识机制设计
本文提出的DT-DPoS共识机制改进了原来通过投票选出记账节点的方式,把更多的因素考虑进去,如节点的历史投票情况、保证金、信任值等,设计一个综合的评价模型。通过设计的综合评价模型可以更加全面公平的选出记账节点,选出更合适的节点成为区块记账节点。
交易系统中包含风力发电节点、光伏发电节点、水力发电节点、综合能源发电等分布式能源发电方,还有电网系统节点、个人用户节点等输电用电节点和系统监管节点。首先要对各节点进行审核评估,符合标准的节点可以参加系统交易与后续区块的记账,考虑节点的参与度和信任值,对整个系统运行的贡献,设计出综合评价模型。系统的流程主要是由综合评价、监管、执行组成的循环过程,其中包括综合信任值评价、节点性质划分、奖惩机制等环节,流程图如图2所示。

Figure 2. Workflow diagram based on DT-DPoS
图2. 基于DT-DPoS的工作流程图
系统通过综合评价选出代理节点,综合评分越高代表节点可以更好的维护系统运行。综合评价模型包括节点历史信任值、动态信任值、保证金和投票数四部分。保证金的设定,保证了节点参与投票的准入门槛,减少了恶意节点的参加数量。
3.2. 基于节点动态信用值的共识机制设计
原始的DPoS算法将系统中的节点分为见证人节点和受托人节点两种,见证人节点投票给受托人,见证人节点的选票是其持有的币龄。系统根据投票的结果选择代理节点,共识值越大选为代理节点的概率越高。针对现有DPoS共识机制存在的不足,本文提出的改进DT-DPoS共识机制,动态信任值共识机制设计如下。
1) 综合计算信任值
综合共识值
引入包括节点历史信任值
,节点获得投票值
,节点参与的保证金
,节点动态信任值
四个部分。节点历史信任值
部分是通过节点过去的投票表现,历史情况得出评价。节点投票
是根据其他节点的投票情况进行计算。引入节点保证金
则是为了提高节点投票的真实性,避免节点恶意行为。节点动态信任值
则是对节点行为进行评价,当节点积极完成行为则获得奖励,当进行恶意消极行为时则扣除信任值。
(1)
(2)
其中:
为综合计算信任值,
是节点的历史信任值,
为节点获得的选票,
为节点参与投票的保证金,
为节点动态信任值,
,
,
,
分别为历史信任值,投票数,保证金、节点动态信任值等因素的权重。
2) 节点历史信任值
节点历史信任值是根据节点过去一段时间的共识表现评估得到的信任度,节点i的历史信任度评价
为:
(3)
(4)
其中:
与
分别为节点i的静态行为因子与静态参与度因子。静态行为因子
是表示节点i的近期共识行为对信任度的影响程度,节点近期的共识表现越好,静态行为因子越高。静态参与度因子
是根据近期参与投票的比例来评价节点的活跃程度。
,
为静态行为因子与静态参与度因子的权重。
3) 静态共识行为因子
静态共识行为因子
是体现节点i的近期共识行为对信任度的影响程度。
(5)
其中:
是节点在近期行为中正确行为的次数,
是其权重,
是节点在近期行为中恶意行为的次数,
是其权重,
是近期总共识行为次数。
随着
的增大,节点在近期参与共识行为越多,节点静态共识行为因子越大。
4) 静态共识参与度因子
静态共识参与度因子
是根据近期参与投票的次数来评价节点的活跃程度。
(6)
其中:
是近期发生的共识总数,
是节点近期中参与过的次数,
反映了节点的参与程度,参与度越高,静态共识参与度因子越大。
5) 动态信任度
动态信任度
是根据节点在最近一段时间的行为表现,动态的调整节点的信任度,对正确的行为进行奖励,对恶意行为进行惩罚。节点i的动态信任度评价可以表示为:
(7)
其中:
为节点正确完成投票获得的动态奖励,
为信用值损耗,指某个节点若长时间都没有参与成链,节点信用值会随时间推移而降低。
(8)
其中:
为信用值损耗,若距离上次参与投票在时间
内,不产生信用值损耗,若距离上次参与投票超过时间
,则根据设定的损耗因子N产生信用值损耗。
通过奖惩机制的设计,对消极节点,不主动为交易系统服务或有恶意行为的节点进行惩罚,使其减少成为代理节点的可能。对积极参与的节点奖励,使其在后续选取代理节点的概率变高,可以记录所有交易信息,动态信用值增加,可以在下一周期竞选中更具优势。
3.3. 系统框架
国家能源局发布的电力交易文件,把电力交易成员分为市场主体和市场运营机构,市场交易主体包括各类发电企业、售配电公司电、电网企业、电力用户等。接入区块链的各用户通过密码机制、智能合约、DT-DPoS共识机制来完成交易。设计的基于区块链共识机制的分布式能源交易架构如下图3所示。

Figure 3. Architecture of distributed energy trading system based on blockchain
图3. 基于区块链共识机制的分布式能源交易系统架构
4. 实验仿真分析
通过仿真实验,对改进的DT-DPoS共识机制进行验证,文中区块链系统使用Python语言编写,通过模拟搭建一个6节点的测试区块链,来实验测试改进后算法对恶意节点的剔除能力、能否提高节点的积极性、加入动态信任值奖惩机制的影响、对比改进算法与传统共识算法的吞吐量和时间等性能。
4.1. 节点积极性与恶意节点测试
实验对每个节点初始信任值均为100,六个节点分别设置不同的算力大小来模拟节点不同的积极性,记录在前250个区块中各节点获得代理节点的次数。如图4(a) 所示。从实验结果可以得出,算力最大的节点6获得代理节点45次,算力最小的节点1获得40次。六个节点获得代理节点次数相差不大,说明通过对积极参与的节点信任值奖励,可以一定程度提高节点积极性,平衡各节点的差距,有助于区块链的去中心化。
设置每个节点的初始信任值均为100,记录在前250个区块中各节点获得代理节点的次数,取节点6为恶意节点,在区块链生成中多次产生恶意行为,影响系统安全,其余节点保持正常投票。如图4(b)所示,实验结果可以得出,由于节点6的恶意行为,通过动态的信任值惩罚,节点6获得代理次数为9次,节点6获得代理节点的次数大大减少。所以引入的动态信任值奖惩机制,有助于区块链系统剔除恶意节点,有效的保持系统的安全。
(a) 不同算力节点获得代理次数
(b) 存在恶意节点时获得代理次数
Figure 4. Statistics of the number of times the node obtains the agent
图4. 节点获得代理次数统计
4.2. 共识时间与吞吐量测试
在区块链中,从开始计算到最后生成区块所用的时间代表了算法的性能,所用时间越短,共识算法性能越高。通过仿真实验,对改进的DT-DPoS共识机制与PoW、PoS、DPoS四种共识机制在相同条件下进行50次实验。如图5所示,随着共识次数的增加四种算法所用时间都增加,其中PoW所用时间最长,DPoS与DT-DPoS所用时间基本相等,说明加入动态信任值奖惩机制环节后,算法所需时间基本没有增长。
吞吐量是区块链中单位时间处理的交易数量,是衡量区块链算法性能的一个指标,对改进的DT-DPoS共识机制与PoW、PoS、DPoS四种共识机制在相同条件下进行50次实验。如图6所示。PoW的吞吐量最低,DT-DPoS的吞吐量与DPoS比较接近,DT-DPoS算法有着更好的吞吐性能。因为改进的DT-DPoS算法对恶意节点的剔除,所以随着时间增加系统中恶意节点的减少,算法吞吐性能得到提高。
5. 结论
针对分布式能源交易中面临的安全性、经济性和时效性等问题,分析区块链技术与分布式能源交易

Figure 5. Time consumption comparison of consensus algorithm
图5. 共识算法耗时对比

Figure 6. Consensus algorithm throughput comparison
图6. 共识算法吞吐量对比
的优缺点,提出应用区块链技术解决分布式能源交易存在的问题。本文提出基于区块链技术改进的共识机制,是针对目前存在的节点投票积极性不高,节点可能存在恶意行为,记账权分配不合理等问题,通过引入保证金、历史信任值和动态信任值奖惩的方法进行优化改进。实验结果说明,改进的DT-DPoS可以提高节点参与投票的积极性,更好的维护系统运行,通过引入的动态信任值奖惩机制,使系统中正确投票的节点获得更多奖励,增加成为代理节点的可能,对系统中消极的节点和存在恶意行为的节点识别并信任值惩罚,加强对恶意节点的剔除。后续可以进一步对算法稳定性和信任值优化,提高算法的性能,扩大算法的应用环境。