基于区块链的可再生能源消纳凭证交易系统性能优化

2021-03-18 07:46张圣楠薛文昊玄佳兴蔡元纪陈启鑫
电力需求侧管理 2021年2期
关键词:凭证合约区块

张圣楠,张 显,薛文昊,玄佳兴,蔡元纪,陈启鑫

(1. 北京电力交易中心有限公司,北京 100031;2. 国网电子商务有限公司,北京 100053;3. 清华大学 电机系 电力系统及发电设备控制和仿真国家重点实验室,北京 100084)

0 引言

随着用户低碳、环保意识的觉醒,其对于绿色电力消费的需求愈发清晰强烈。如RE100 组织中有37家成员企业实现了95%可再生能源的使用率,苹果、谷歌等公司已经实现100%可再生能源供电[1]。气候组织针对国内开展的“绿色电力使用和需求调研”也表明[2],电力用户积极支持可再生能源绿色电力消费,设立或计划设立量化的绿色电力消费增长目标,希望具有方便的绿色电力获取途径。

目前,用户获取绿色电力有3 种模式:① 自己建设屋顶光伏等可再生能源的“自发自用”模式;② 与就近分布式发电等可再生能源直接交易模式;③ 用户通过电网购买带有绿色属性的电力。由于场地安装条件、资源情况和投资回报率等因素,“自发自用”模式难以大规模普及;分布式直接交易尚处于试点阶段,未形成规模化推广。因此,通过电网购买绿色电力是最为可行,也最为用户接受的模式。然而,由电网传输的电力,本身不具备绿色属性,需要通过额外的凭证认证。2019年5月,国家发展和改革委员会、国家能源局联合印发的《关于建立健全可再生能源电力消纳保障机制的通知》指出[3]:电力用户在实际消纳可再生能源电量外,还可以通过购买其他市场主体超额消纳量、自愿认购绿色电力证书等方式,完成可再生能源消纳量,认定其消纳部分电力的绿色属性。

据此,超额消纳量交易成为一种新兴的交易品种,有助于满足用户对绿色电力的消费需求,同时提高用户履行可再生能源消纳责任的灵活性和积极性[4]。超额消纳量交易是一种凭证式交易,天然是去中心化和分布式的,不受任何物理约束影响,由其所有者决定具体的交易对象和交易价格[5]。随着交易规模的不断扩大,电网、监审机构、平台运营方、交易主体等海量参与方将涉及其中,对交易状态的准确追踪、验证具有较高的需求。交易产生的数据账本若以传统的中心化数据库方式存储,难以应对恶意攻击和篡改,面临安全性的挑战。

区块链是集成P2P 协议、非对称加密、共识机制、块链结构等多种技术的分布式账本,具有去中心化、时序数据、集体维护、可编程和安全可信等特点[6—7]。区块链在能源领域有巨大的应用潜力,除了提供去中心化的能源系统,执行分布式能源交易外,还可以为计量、计费和结算等流程提供基础环境,已有较多关于区块链+能源的理论、应用和工程实践研究[8—12]。将区块链技术应用于可再生能源消纳量的凭证交易,能够满足“统一设计、安全可靠、配置灵活、智能高效”的设计需求[13—14],为数据账本的安全性和一致性问题提供了解决方案。

本文提出了基于区块链的超额消纳凭证交易方法,分析了区块链在市场主体身份认证、凭证核发以及凭证链上交易等环节的应用模式。构建了基于区块链的超额消纳凭证交易平台,估算了平台的业务量需求,分析了区块链应用的潜在性能限制,提出了大票交易、原子合约等性能优化措施。之后,在实验室环境开展了系统性能测试验证。

1 区块链在可再生能源消纳凭证交易中的应用模式

完整的交易流程,包括市场主体的登记准入、身份验证、合同形成、交易执行、交易结算、信息披露等诸多环节,其中涉及到大量的安全、信任问题,可以应用区块链加以解决。

1.1 市场主体身份验证

交易平台的市场主体登记准入、身份验证和信息交互目前由中心数据库完成,数据库的拥有者掌握着数据库的访问和更新权限。中心数据库模式存在跨地区、跨部门应用流程复杂的问题,同时缺乏有效控制信息的保密制度,难以应对有目的性的指定授权攻击,被篡改和泄露的风险较大。

登记准入环节,在区块链系统上存储市场主体信息,以提升其身份可信度。首先,针对参与用户进行个体信息3 要素认证或对企业信息4 要素认证,确认用户实名信息,实现用户入市注册。认证成功后,通过区块链的密钥生成机制,为用户生成唯一的公私钥对,并基于区块链多方背书优势绑定用户信息与公钥,形成区块链身份凭证。

身份验证的流程如图1所示。查证用户向持证用户提出核验其市场主体有效身份的申请。如果持证用户拒绝了核验申请,则核验失败;如果通过请求,则会调出带有发证机构签名的电子证明,由查证用户用其公钥加密后,向全网其他节点广播核验记录。查证用户验证发证机构的签名,用私钥解密套用模板进行身份核验。将用户身份信息与链上对比,无误后再采用公私钥对配对的方法,确认用户身份,实现高可信度身份认证。

图1 市场主体身份验证流程Fig.1 Authentication process of market subject

区块链存储的用户信息透明且不可篡改,相较于传统方法,确保用户注册信息可信任、可追溯,让用户信息具有更高的可信度,也可以进一步避免因主体注册、验证不准确带来的计量不清、骗补等问题。

1.2 凭证核发

凭证核发的传统模式是通过中心化节点为各消纳主体颁发消纳凭证。这一模式下,凭证审核耗时耗力,各流程节点都可能存在假冒伪劣、不透明交易等问题,颁发的凭证记录不易追溯,且核发过程中发生失误时,容易引起相关主体利益损失。

利用区块链技术优化凭证核发流程。首先,在区块链上记录主体的可再生能源消纳量,并按周期进行消纳量的更新。然后,利用智能合约在链上计算各主体的超额消纳量,并记录在区块链上。最后,应用电子签名技术校验用户的身份凭证,为用户核发消纳凭证。凭证带有发电单位签名、购电单位签名、交易时间、电量、电价、通道等信息,其生成的全流程记录链上存证,便于溯源和统计,解决了凭证核发过程中的多发、少发、错发的问题。基于区块链的凭证核发模式改变了传统的中心节点管控模式,建立了通过分布式共识实现的凭证核发体系,能够确保凭证的正确性和唯一性。

1.3 基于智能合约的凭证链上交易

由中心节点统一组织消纳凭证交易,一方面不能及时撮合凭证交易,另一方面管控方法不透明,将导致交易双方出现信任问题。此外,中心化的数据存储机构受到恶意攻击后,数据可能被篡改或丢失,造成严重后果。利用区块链实现挂牌交易、双边交易等模式的链上交易,可以提升交易撮合效率、确保交易过程可信记录。

1.3.1 挂牌交易

在挂牌交易过程中,先基于智能合约在链上为超额消纳的机构核发消纳凭证。消纳凭证使用用户的私钥进行加密,随后凭证被公开至区块链上申报挂牌,所有购买者均可见。凭证在被摘牌或拥有者撤销挂牌信息前被锁定。

挂牌交易的流程如图2所示。首先对摘牌方身份信息进行验证,确认无误后为摘牌方匹配不同额度的消纳凭证,使用申报方的公钥进行消纳凭证的验证及鉴权,确定凭证的正确性及所属关系。双方达成共识即可进行交易,调用消纳凭证派生合约进行消纳凭证校验、派生、交易,随后调用摘牌交易合约,发起摘牌交易后进行交易凭证转移,同时更新双方账户状态信息,将所有信息记录在链上,完成挂牌交易。

图2 挂牌交易流程Fig.2 Transaction process of listed certificate

1.3.2 双边交易

双边交易的流程如图3所示。一般需要交易双方在线下先进行交易协商,达成一致。之后,由出售方先创建订单信息,并使用私钥对订单信息进行签名。凭证交易系统将订单信息和签名信息提交给智能合约网关,由智能合约网关调用身份凭证合约对出售方的签名信息进行校验,并对消纳量进行检验,检验成功后创建双边交易订单。订单创建后,购入方查询待处理的订单信息,并对订单进行确认,将用户确认的订单信息进行签名。同样使用智能合约网关校验购入方的签名信息,身份确定后调用消纳凭证派生合约进行消纳凭证余额校验、派生和交易。随后调用确认合约确认双边订单交易,生成交易凭证、完成消纳凭证转移,并更新双边账户信息,将所有信息记录在链上,完成双边交易。

图3 双边交易流程Fig.3 Bilateral transaction process

在区块链中定义并执行智能合约,将交易成交逻辑编写为脚本,根据预先设定的成交条件,自动在链上完成双边交易匹配,进而形成电子合同。交易双方电子签名确认,上链存证。通过智能合约自动执行设定步骤,提高交易效率。

总的来说:(1)应用区块链身份认证,通过区块链密钥生成机制,背书市场主体身份和公钥的绑定关系,替代现有的第三方数字证书认证方式,登录更便捷,能够节约认证成本;(2)应用区块链电子签名权威核发消纳凭证,保证数据不可伪造或篡改,凭证包含电量原产地、消纳地、消纳主体、消纳时间、消纳电量等信息,实现可再生能源消纳凭证全生命周期溯源管理;(3)基于区块链开展挂牌交易和双边交易,交易申报、出清全部通过调用智能合约完成,实现全业务链上运作,保障了交易透明、可信、高效。

2 基于区块链的可再生能源消纳凭证交易系统性能优化

全国范围的消纳凭证交易由北京电力交易中心负责,协调广州、内蒙古电力交易中心,搭建了统一的交易系统。交易系统的业务架构、应用架构和部署架构等情况,在文献[13]中有详细介绍。计划于2021年连续组织开展5个工作日的交易,交易方式包括双边协商、集中竞价和连续竞价(挂牌)。工作日9:00—17:00 开展双边协商交易;9:00—9:30 开展集中竞价交易;9:30—17:00 开展连续竞价交易,集中竞价交易阶段未成交部分的消纳量自动进入连续竞价交易阶段。

2.1 业务需求对系统性能的要求

消纳凭证交易的业务需求主要关注交易吞吐量上限、交易延迟等,同时对数据安全性、数据共享和查询服务有一定的要求。

根据全国电力市场的运营情况,参与消纳凭证交易的市场主体数量可能达到10 万。参考上海证券交易所的运营数据,一天的交易数与账户数目为同一数量级,可以估计消纳凭证交易的每日交易数为10 万笔。以比特币交易中单笔交易数据的大小0.25~0.50 KB 作为参考,消纳凭证交易系统单笔交易数据的大小可以估计为0.50 KB。在此基础上,考虑吞吐量和交易延迟的情况。

交易吞吐量方面,在9:30—17:00的7.5 h内,连续竞价平均交易量100 000次÷(7.5×3 600)s=3.70次/s。每工作日上午9:00—9:30 的集中竞价阶段,交易提交和处理比较集中。若按照9:25集中竞价结束,系统在9:25—9:30 的5 min 内处理集中竞价交易并将交易结果上链,则区块链交易吞吐量峰值估计为100 000 次÷(5×60)s=333.33 次/s。在 9:30—17:00的连续竞价阶段,不太可能出现更高的交易提交速度。因此系统支持的吞吐量上限需要达到300~400 TPS为宜[15—16]。

交易延迟方面,消纳凭证交易系统采用异步提交方式,即交易时间段内的所有交易实时提交,异步定时批量接收回执,且接受回执的定时长度初步设计为10~30 s。普通交易延迟可以合理设计为和接受回执的定时长度相近。考虑集中竞价阶段的处理时间为5 min,数十秒的单笔交易延迟可以忽略不计。因此系统的平均交易延迟设计在10~30 s,区块链底层平台容易满足这一要求。

区块链系统的性能瓶颈是凭证交易系统运行中必须考虑的问题。而且,主体数量和交易规模增长,交易场景多样性带来的智能合约开发复杂度增加等,都将进一步加剧系统性能压力。因此,需要提出针对性的解决办法。

2.2 凭证交易系统性能优化方法

2.2.1 原子合约

原子合约是不具备业务属性、单元化的、单一功能的工具型程序,通常分为:签名类、凭证类、查询类等类型。将智能合约拆解为较简单的原子合约,能够提升合约处理速度,并降低开发工作量。

图4 原子合约调用示意图Fig.4 Schematic diagram of atomic contract calling

原子合约调用示意图如图4所示。在链上进行交易时,不同的交易场景、不同的交易方法都需要调用相应的智能合约。在多种交易过程中,身份验证、签名校验、消纳量检查等是各类交易场景均需要的基础功能。具有独立功能的原子合约,基于微服务技术敏捷开发、快速演化、便捷容错与弹性伸缩的特性,能够为智能合约运行时的一致性对账提供事件监听功能,在提升合约服务效率的同时解耦部分应用场景与合约的部署。在交易过程中,将不同原子合约互相调用,组合为复杂交易功能的智能合约。

在开发层面,部分通用原子合约则无需重复开发。在出现新的交易场景或模式时,通过接口调用组合已有的原子合约,构成为新场景服务的基础服务;或在已有服务的基础上定制开发个性化合约以适应不同交易场景,能够减少合约开发的工作量。

2.2.2 大票交易

交易规则中,一张消纳凭证对应1 MWh的可再生能源发电量。而在实际操作过程中,往往存在较多的大规模交易,即相同的交易双方在短时间内进行十几份甚至几十份的凭证交易。此类交易增加了区块链系统的处理压力,也因为重复交易增加了购入方的操作复杂度。

大票交易方法,是指利用智能合约,将相同生产地、消纳地、电量类型的消纳量,整合颁发一个区块链凭证,凭证中记录该类电量的编号前缀和数量信息。

出售方将可再生能源消纳信息上传到区块链系统中,系统对其签名值进行校验。校验通过后,使用智能合约将相同生产地、消纳地、电量类型的消纳量合并签发一张区块链消纳凭证,凭证中记录该类电量的编号前缀和数量信息(包含多条消纳量的凭证即为大票)。同时更新区块链账户,将新产生的凭证编号存入该企业账户。

大票中记录了父凭证编号、凭证状态、子凭证信息、凭证前缀、起始编号、结束编号等信息。派生凭证间采用双向关联的方式,可以向上溯源,追查该凭证的父凭证,循环遍历,可以追查到凭证的初始创建信息。大票中包含凭证前缀、起始编号、结束编号,同样可以通过数据追溯到每1 MWh 电量。大票交易的流程如图5所示。

图5 大票交易流程Fig.5 Transaction process of large ticket

大票交易过程中,首先使用智能合约校验凭证交易条件,签名值正确性、出售方可用凭证数量是否大于凭证交易数量。校验通过后,进行凭证交易,购买方可以选择部分购入或全部购入。如果出售的凭证全部被交易,则产生新凭证,变更所有者;如果出售的凭证可用数量大于交易数量,派生出新交易凭证,该凭证的数量为交易数量,所有者为购入方;派生新的可用凭证,可用凭证的所有者为售出方,数量为原凭证数量减去交易数量,更新原凭证状态,记录子凭证编号,将原凭证作废。之后更新售出方、购入方账户,更新可用凭证、购入凭证数量,记录交易凭证、剩余可用凭证编号,完成凭证交易。

通过大票交易实现了小票交易的捆绑,减少了系统的运行压力,减轻了买卖双方短时间高频交易的复杂度,带来了更好的交易体验。

3 基于区块链的可再生能源消纳凭证交易系统测试

在实验室搭建了测试环境,对凭证交易系统的运行压力情况和系统性能优化方法进行了测试。采用4台8核16 G内存服务器搭建区块链测试实验环境,同时部署了6台服务器实现身份验证、电子签名验证等服务。由于区块链系统分布式共识特性,区块链硬件读写速度是限制交易的重要影响因素。测试环境下,系统吞吐量上限为130 TPS。若同时产生过多并发交易,则采用队列的方式,异步记录交易凭证的发生。

开展了对于双边交易及挂牌交易两种交易类型的测试,测试过程中2 种交易模式均可按照设置规则正常完成。

对于系统进行压力实验。设置100万用户使用系统,在7 d 的实验周期内,系统满负荷运转,系统运行正常,未出现交易错误。实验周期共发生约2 600 万条交易,每个交易凭证大小不超过10 KB,最终占各节点208 GB的存储空间。经压力实验,研究提出的可再生能源消纳凭证系统功能完备,可满足可再生能源消纳凭证交易的需求。

测试大票交易的优化效果。2019年,全国可再生能源总消纳量达1.4 亿MWh,按照10%为可交易的超额消纳量考虑,即1 400 万MWh。实验环境设置发生2 000 万条凭证交易(小票)进行测试,共产生了160 GB 的节点存储量。采用集中上链的方式进行处理,上链速度最高为130 TPS,按理想速度60%计算,上链时间共需要71 h,数据包传输的大小对系统的负荷较大。在采用大票交易对系统优化后,将2 000 万份小票整合到约450 万份大票,共产生了36 GB 的节点存储量,集中上链方式下,上链时间约16 h,优化了系统处理性能,减轻了系统负荷压力。

测试原子合约的优化效果。双边交易的开发环境采用传统方式,需要80人·d的工作时长。挂牌交易的开发环节使用原子合约方式,身份凭证核发、身份凭证验证、电子签名、交易参数检查、数据审核、消纳量分配、消纳量转移、主体信息审核、凭证核发、出清、存证、核算信息发布、吊销、更新、消纳核发等无需二次开发,仅需要20 人·d 的工作时长,同时合约运行服务效率提升了约10%。减少了系统开发成本,提高了系统运行效率。

4 结束语

本文分析了区块链在可再生能源超额消纳凭证交易中的应用模式,提出了凭证交易系统的性能优化方法并在实验室环境开展了系统性能测试。研究的主要结论如下:

(1)将区块链应用于市场主体身份认证、凭证核发以及凭证链上交易等环节,能够节约认证成本,实现凭证全生命周期溯源管理,保障交易透明、可信、高效,以及数据账本的安全性和一致性。

(2)构建了基于区块链的超额消纳凭证交易平台,提出原子合约和大票交易方法,减少了区块链系统的压力和系统开发工作量,优化了交易的流程,提升了区块链系统的运行性能。

(3)通过实验室测试证明了系统的抗压能力和性能优化方法的可行性,为下一步的平台正式上线提供了有力支持。

研究为建设公开透明可信的消纳凭证交易市场打下坚实基础,有助于进一步打通绿色电力获取渠道,帮助更多园区和企业从消费端提高可再生能源的利用比例。

猜你喜欢
凭证合约区块
区块链:一个改变未来的幽灵
2021年《理财》《财经审计法规选编》征订单
区块链:主要角色和衍生应用
《中国农业会计》(月刊)收款凭证
《中国农业会计》(月刊)收款凭证
区块链+媒体业的N种可能
读懂区块链
畅捷通T3凭证处理常见问题解析
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望