杨春燕,宾冬梅,黎新
工程与应用
基于PBFT区块链技术的电网企业仓储系统
杨春燕,宾冬梅,黎新
(广西电网有限责任公司电力科学研究院,广西 南宁 530012)
提出了一种基于实用拜占庭容错(PBFT)算法的区块链技术,首先对传统的实用拜占庭容错算法原理进行了阐述,该传统算法包含前期、需求、预准备、准备、确认、答复6个阶段,但传统算法具有实时性差、缺乏惩罚机制、带宽高的缺点。针对出现的这些问题,又对传统算法进行了改进,具体涉及记账节点、共识过程以及视图切换过程。通过测试进一步证明了该改进算法的实用性,并将该算法应用于电网企业中,构建的虚拟仓库实现了联储联备,降低了库存资金的耗费,并且提高了电网企业库存管理的效率。
实用拜占庭容错算法;区块链技术;虚拟仓库
区块链技术是目前最受瞩目的技术之一,电网、物流等相关领域都有其身影,随着其技术的发展,人们的社会生活变得更加智能化。目前在我国,越来越重视区块链技术,中国科学院等研究机构都在研究提高区块链技术的性能,参与到区块链技术研究中的科研单位变得越来越多[1-5]。就区块链的算法来说,实用拜占庭容错(PBFT)算法具有吞吐量高、交易时延低等特点,是目前公认解决拜占庭问题最优秀的算法[6]。PBFT对原先拜占庭容错算法而言,在口头协议和书面协议的时间复杂度方面有了极大进步,其复杂程度也大大降低,因此从理论层面解决拜占庭问题过渡到了实际应用的层面。系统做出准确判定的前提是当拜占庭节点的数量为时,副本节点的数量为3+1。主节点在一个视图中是独一无二的。新的主节点只能在原主节点达成共识,系统重新执行视图更换协议后产生。电网企业的分散式采购形成了相对封闭的物资储备信息,使得应急情况下物资无法在分子公司间进行高效调配。本文采用基于PBFT的区块链技术的电网智能虚拟仓库平台,解决以上问题。
实用拜占庭容错算法包括前期阶段、需求阶段、预准备阶段、准备阶段、确认阶段、答复阶段,算法流程[7-8]如图1所示。
下面对该6阶段分别进行阐述。
(1)前期阶段,设定相关时间节点,每通过一个时间节点时,利用投票法随机挑选一个副本节点使其成为主节点,其余的节点作为备份节点使用。
(2)需求阶段,相关服务的请求命令被传送给区块链系统客户端的主节点。
图1 实用拜占庭容错算法请求命令的传送流程
(3)预准备阶段,当用户端的请求命令到达后,主节点会整编其相应的信息,整编完成后,把该请求继续传递给余下的副本节点,而得到的预生成区块则当作特殊的共识请求处理。
(4)准备阶段,副本节点得到相关的命令后,首先分析命令的合法性,分析通过后,就会对其余的节点传递信息。
(5)确认阶段,对其余节点向相关副本节点传递的信息再进行分析,当接收到的请求命令一致时,再继续进行信息传递。
(6)答复阶段,当相关副本节点收到其余节点传递的肯定命令后,才会对相关请求命令进行执行,此时各个节点会把相关数据保存到区块链中,给客户端发送分析后的结果,当大部分的数据一致时,最终确认请求正确。
同时满足:
基于拜占庭容错特性的共识需求,使其得到满足,则有:
式(4)说明,在PBFT算法网络下,当出现个非确认节点时,此时要确保有3+1个共识节点系统才能正常运行,所以PBFT算法允许的容错率是33%,区块链系统确保正常运行的前提是至少有2+1个无误的副本节点。
PBFT算法是目前应用于区块链中比较好的算法[9],但是该算法存在许多问题,例如:PBFT算法的实时动态性较差,增减节点都需要初始化共识网络;算法不具备惩罚机制;算法对带宽要求较高,带宽会由于节点数的增多而出现多项式级别增长的趋势。
针对传统算法的实时性差、缺乏惩罚机制、对带宽要求过高等问题进行改进,包含记账节点的选取、记账节点之间的共识过程,以及视图切换过程。
区块链网络中制定智能合约,用来对候选节点进行选举,并且该智能合约是不可以对其进行修改的,故在该网络中,包含的节点可以参与选举,进而成为候选节点,并可以在合约中提前设置好系统的通过率。为了防止系统中的拜占庭节点作恶,需要将通过率设置为大于2/3。
区块链中的任何节点都可作为候选节点,并且在系统中的其他任何节点都可以投票给候选节点,投票选出的前个节点则可作为记账节点,记账节点的选取过程如图2所示。这样与传统区块链相比,其安全性得到了一定提升。
图2 记账节点选取过程
用户首先要对需要共识的部分进行签名,并将签名发送到区块链的网络中。用户对共识请求进行广播,若某个节点收到该共识请求,则接下来会对请求内容进行判断,只有当内容满足预先设定的条件时,才会对该交易进行转播,之后再将该交易放入共识缓存序列。
当进行新一轮的共识时,区块链系统首先会初始化本轮共识,之后网络节点会在共识流程中体现,并且共识信息的封装和签名由PBFT的主节点来完成,主节点再将签名后的消息进行全网广播,网络中的副节点要对该消息进行判断,满足条件的消息才会被副节点认可。
接下来副节点会对其进行判断,如果该消息有效,则此节点会步入“准备”阶段,对消息进行封装和签名,并向全网广播,同样副节点要在接收“准备”消息前判断其有效性,当满足判断条件后,副节点会发出“确认”消息,接着还要进行下一步的判断,判断成功的“确认”消息会被加入“确认”序列,该“确认”消息表示共识网络达成一致,至此共识过程完成。
视图切换是指在规定的时间段内,主节点在区块链中没有响应,或在己经达成一定协议后,为了进入下一个共识阶段而获得新区块的过程,视图切换流程如图3所示。可以将PBFT的视图切换过程分为5步。
步骤1 大多数副节点在网络中将共识视为不灵活或结束状态时,会自动进入下一轮的共识过程中;如果是在不灵活状态下,则该轮交易会被共识交易集合转移。
步骤2 副节点创建“视图改变”消息,会传播在之前已经建立好的共识网络中。
步骤3 副本网络会接收“视图改变”,但是在接收前依然要对其进行判断。
步骤4 当“视图改变”集合中存在2+1个“视图改变”消息时,网络会创建一个“新视图”消息。
步骤5 当网络中的副节点接收该“新视图”消息之后,依然要判断该消息的有效性。若满足预先设定的条件,则该副节点进入下一个视图状态,并进入下一轮共识中。
图3 视图切换流程
改进后的PBFT算法的创新之处在于与传统方法进行结合,在不需要所有节点都参与的情况下很好地解决了共识网络的动态性和带宽高的问题;并且由于该投票数据无法进行篡改,投票结果更具可靠性;网络中的每个副节点需要满足一定的判断条件并添加了惩罚机制,使得网络的安全性有所提高;记账节点之间可以轮流分配到区块权力,增加了区块链的出块效率;共识网络中增加的超时重发机制可在一定程度上增加消息的到达率,进一步提高了网络的共识效率。
各个电网分子公司可以根据需求提出仓单的申请,但必须在货主仓储资产价值内。仓库审核仓单申请所填的仓储资产情况,如实批准或拒绝该申请;监管公司进行商品质检和仓储资产确认,批准或拒绝该申请;平台对仓单进行登记,并根据仓库和监管的审核意见,决定批准或拒绝该申请。仓库、监管、平台分别审核,只要有一方审核失败,此次申请就不通过并反馈给货主,若三方都审核通过,则生成仓单。此外,每次审核后的数据都经过PBFT算法进行处理,并存入区块中,形成一条完整的区块链。
电网企业是资产密集型企业,分散式采购导致物资储备在各分子公司,形成了相对封闭的物资储备信息、地理隔离及系统壁垒,使得应急情况下物资无法在分子公司间进行高效调配,导致物资库存居高不下、周转缓慢等问题[10-12]出现。
现阶段通过基于PBFT算法的区块链技术构建物资联盟网络、搭建平台、固化智能合约、持续优化并推广应用,实现在省级分子公司范围内对物资进行的统购统配和联储联备[13-14]。进一步在区块链技术的基础上构建一种虚拟仓库平台,该平台可以使电网系统中涉及的物资库存进行实时查询,再进一步实现共享和多形式的调拨。该方法能够在一定程度上提高库存物资的使用效率,并改善其自身的周转率,在保证网络正常运转的前提下,降低了占用库存物资的资金成本,进而也减少了储备管理消耗。设计推进步骤如图4所示。
系统采用分层和模块化的技术体系,包括网络通信层、网络实体层、网络服务层和智能合约层,公共支撑组件和安全防护组件,RPC API和Java SDK,最上层是区块链应用和区块链管理[15]。系统架构如图5所示。
基于PBFT算法的区块链技术在电网企业中具有良好的应用,通过基于PBFT算法的区块链技术建立虚拟仓库平台,所有该区域分子公司的物资需求和库存信息全部在虚拟库层面共享,提高了库存物资的统一管理水平,同时为区域内物资的调度调剂提供了可能,减少了库存资源分布不均、信息不透明导致的过度订货和重复储备[16-18]。库存管理模式的改变提高了管理效益。虚拟库的建立弱化了分子公司的二级库存管理职能,整合了各分子公司相对独立的库存管理孤岛。同时,物资库存信息上链也大大提高了各分子公司的信息真实性和信任程度,降低了库存信息更新滞后以及对供应商准时送货不信任所导致的过度储备,从而在一定程度上降低了占用库存资金,并且实现了更好的供应链协同合作管理的效果。
图4 设计推进步骤
系统基于联盟区块链平台进行开发,通过物资虚拟仓库管理平台,建立在公司内部实时查询、统一调配的共享机制,适用于电网公司全网。对应的架构及场景示意图如图6和图7所示,系统分别由联盟链层以及应用层两大部分组成,其中指令的传递、应用数据的存储、智能化协议的调配、基于智能化协议提供对应的应用服务等由联盟链层负责。在这个联盟链中,物资部和物资供应商一起构建联盟,将省区市物资部和供应商之间、不同地市局物资部之间达成的商业协议,以智能合约代码的形式进行定义,将流通环节的每一个部分都做好数据的登记与共享,其中包括物资的采购、运输、入库、出库、转储、结算等。因为区块链具有信息共享、透明、防篡改、可追溯特性,通过平台运行,可以达到降低物资采购成本、降低库存水平、提高物资供应效率的目的。
系统应用主要包括功能模块如下。
(1)身份授权与权限管理
系统具有密钥调配、权限管理以及身份认证等功能,运行模式与安全受限的联盟链方式一致,只有经过身份授权与权限管理验证的组织才可访问使用虚拟仓库管理平台。
图5 系统架构
图6 应用结构
图7 场景应用示意图
(2)物资补库业务管理
系统按照采购预算资金和耗费比例调配物资的补库比例,主要是由于系统允许物资补库业务上链。当物资数据上链以后,便可在区块链环境下的不同部门之间流转、共享。
(3)物资入库与出库
系统支持物资数据在区块链上共享,物资所有权组织可以对链上物资进行入库和出库的管理。当物资入库、出库时,将相关信息写入区块链。
(4)库存物资转储购销
系统支持库存物资信息在不同组织之间进行流转,实现物资在全系统内的共享使用,降低库存成本。区块链上的流转支持实时结算,拥有物资所有权的组织可以对物资进行出库使用。
(5)分析看板
系统支持授权部分组织查询区块链上的数据信息,包括物资采购周期、库存信息、数量和状态信息,并且可以在区块链上追溯物资的流转过程。
(6)外部系统接口
系统还支持对物流系统的对接功能,可以在一定范围内查询到物资流转和承接的信息。系统支持对接资金系统,可以跟踪查询统购统配资金流转及状态等信息。系统支持对接物联网系统接口,可以实现物资流转信息和状态可信接入上链,保证数据的可靠性。
表1 区块链模型产生的平均TPS
(7)消息推送
系统支持物资库存更新消息推送,如果链上库存金额、状态或流转信息进行了更新,可以主动推送消息到相关组织。支持资金信息更新消息推送,当链上资金信息有更新时,可以主动推送消息到相关组织。
相较于传统的解决方案,区块链技术赋能的虚拟仓库,可以将分散在电网的各分子公司的库存信息加密后进行开放、共享,既保证了企业数据的保密性,又实现了一定区域内的物资储备信息共享,更好地应对紧急情况。同时,区块链防篡改的优势,也保障了物资库存数据的真实性。
通过使用Python软件对交易数为500~10 500的处理请求进行发送,在一定的时间内,区块链完成了HTTP的请求,并按照请求创建了账户。由此可以看到在部分情况下,由于事务队列的限制以及机器性能等问题,出现了事务处理失败等问题。因此在这几种情况下需要重新发送HTTP指令,保证事务处理都是成功的。进行一次测试得到的数据具有一定的随机性与不确定性,因此需要再次进行测试情况下的生成账号事务处理,并取两次测试结果的平均数作为该情况下的TPS(transactions per second,每秒传输的事物处理个数,吞吐量)性能。每次计算HTTP的请求时,区块链模型产生的平均TPS见表1。
通过表1可以看出区块链通过请求发送单个HTTP交易数量所表现出来的吞吐量。在此基础上可以通过HTTP请求使得区块链可以进行资产交易。由于机器硬件的限制,现将单个HTTP请求中的事务处理数量从1 500增加到4 500,经过试验后得到的结果基本一致。现对资产交易状况进行与创建账户交易同样的分析,当单个HTTP请求的交易数量为1 500~4 500时吞吐量的变化情况见表2。
表2 吞吐量变化情况
利用Python脚本对区块链的资产交易能力进行测试,得到测试结果后再进行分析与讨论。同样,利用HTTP请求对区块链进行资产交易,并且逐步増大单个HTTP请求中的事务处理数量的要求。进行了多次重复实验之后的数据基本相同。现将资产交易情况下的数据进行一定的处理,从而便于分析吞吐量(TPS)的情况。
由于环境和局域网等多方面限制,HTTP请求的发送时延可以在一定程度上被忽略,因此HTTP命令中存在的事务处理请求时延可以被看成只源于区块链自有的共识过程时延,创建账户状态下的数据整合见表3。
表3 创建账户状态下的数据整合
通过以上数据能够看出,在创建账户时区块链模型的共识过程时延只是毫秒级别,只要请求的TPS在可控的范围内,系统的平均时延只有2 ms左右。区块链模型在一定程度上避免了共识时间伴随节点数量变化呈指数升高的问题,这体现出了区块链技术在TPS性能和时延性能方面都表现得十分优秀,即使在现实的生产需求中,区块链依然能表现很好,并且在虚拟仓库管理中扮演着十分重要的角色。
通过区块链技术在电网企业中的实施,电网在以下方面得到了改变。
(1)物资需求计划与预测
基于节点中的存储数据等相关信息都相同的特点,各基层单位所看到的需求量与当前的库存水平是完全相同的,所以在此基础上做出的全局预测会更为精准,并且该特点能够有效降低当前库存水平。
(2)物资采购
将物资与供应商关系,以及供应商各项数据上链,为决策提供数据支撑。
(3)物资结算管理
通过智能合约运作,7×24 h自动审核,减少相关人力投入,提升效率。
(4)物资储备管理
企业的各基层单位能够实现对于物资信息的共享,通过物资分析看板,能够多方面地分析物资采购周期、库存、数量和状态等信息,进而可以实现全方位的统筹管理,提高物资储备资金的应用效率,在一定程度上降低了物资储备的管理成本。
(5)物资调配管理
通过智能合约的固化,减少人工干预,自动审批,提升效率。
基于PBFT算法的区块链技术在电网企业中具有良好的应用,通过基于PBFT算法的区块链技术建立虚拟仓库平台,所有该区域分子公司的物资需求和库存信息全部在虚拟库层面共享,提高了库存物资的统一管理水平,同时为区域内物资的调度调剂提供了可能,减少了库存资源分布不均、信息不透明导致的过度订货和重复储备。库存管理模式的改变提高了管理效益。虚拟库的建立弱化了分子公司的二级库存管理职能,整合了各分子公司相对独立的库存管理孤岛。同时,物资库存信息上链也大大提高了各分子公司的信息真实性和信任程度,降低了库存信息更新滞后以及对供应商准时送货不信任所导致的过度储备,从而在一定程度上降低了库存资金占用,并且达到了更好的供应链协同合作管理的效果。
本文通过将区块链中的智能合约技术思想和PBFT算法在一定程度上进行结合,并在此基础上对PBFT算法的实现过程进行改进,从而达到了对基于PBFT的区块链技术的优化。此外,对于区块链的优化使得该技术能够更快投入使用,进而使得企业的生产效率有所提升。
[1]NAKAMOTO S. Bitcoin: a peer-to-peer electronic cash system[J]. Consulted, 2009: 256-259.
[2]AZARIA A, EKBLAW A, VIEIRA T, et al. MedRec: using blockchain for medical data access and permission management[C]//Proceedings of the 2nd International Conference on Open and Big Data. Piscataway: IEEE Press, 2016: 135-138.
[3]袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4): 481-494.
YUAN Y, WANG F Y. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494.
[4]Blockchain. Putting theory into practice[EB]. 2016.
[5]工业和信息化部信息化和软件服务业司, 中国区块链技术和产业发展论坛. 中国区块链技术和应用发展白皮书(2016)[R]. 2016.
Department of Information Technology and Software Services, Ministry of Industry and Information Technology, China Blockchain Technology and Industry Development Forum. White paper on China’s blockchain technology and application development (2016)[R]. 2016.
[6]甘俊, 李强, 陈子豪, 等. 区块链实用拜占庭容错共识算法的改进[J]. 计算机应用, 2019, 39(7): 2148-2155.
GAN J, LI Q, CHEN Z H, et al. Improvement of blockchain practical Byzantine fault tolerance consensus algorithm[J]. Journal of Computer Applications, 2019, 39(7): 2148-2155.
[7]黄秋波, 安庆文, 苏厚勤. 一种改进PBFT算法作为以太坊共识机制的研究与实现[J]. 计算机应用与软件, 2017, 34(10): 288-293.
HUANG Q B, AN Q W, SU H Q. Study and realization of an improved PBFT algorithm as an ethereum consensus mechanism[J]. Computer Applications and Software, 2017, 34(10): 288-293.
[8]方维维, 王子岳, 宋慧丽, 等. 一种面向区块链的优化PBFT共识算法[J]. 北京交通大学学报, 2019, 43(5): 58-64.
FANG W W, WANG Z Y, SONG H L, et al. Study and realization of an improved PBFT algorithm as an ethereum consensus mechanism[J]. Journal of Beijing Jiaotong University, 2019, 43(5): 58-64.
[9]孙一蓬. 基于联盟链的多链式区块链共识性能研究[D]. 上海: 华东理工大学, 2019.
SUN Y P. Research on consensus performance of multi-chain blockchain based on league chain[D]. Shanghai: East China University of Science and Technology, 2019.
[10]张译, 张广德, 于连城, 等. 基于数据仓库的电网数据分析系统的设计与开发[J]. 电子测量技术, 2018, 41(15): 35-39.
ZHANG Y, ZHANG G D, YU L C, et al. Design and development of grid data analysis system based on data warehouse[J]. Electronic Measurement Technology, 2018, 41(15): 35-39.
[11]李莉. 电网企业资产管理模型及应用研究[J]. 经济管理: 文摘版, 2016(8): 120.
LI L. Research on asset management model and application of power grid enterprises[J]. Economic Management: Abstract Edition, 2016(8): 120.
[12]陈李荃. 基于长期价值目标的电网企业固定资产管理研究[D].北京: 华北电力大学, 2016.
CHEN L Q. Research on fixed assets management of power grid enterprises based on long-term value objectives [D]. Beijing: North China Electric Power University, 2016.
[13]陈亮, 吴善杰. 基于Flexsim仿真技术的电力企业物资联合储备库存问题研究[J]. 计算机光盘软件与应用, 2012(20): 57-58.
CHEN L, WU S J. Research on the joint stock of materials in electric power enterprises based on Flexsim simulation technology[J]. Computer CD Software and Applications, 2012(20): 57-58.
[14]王科清, 张昊, 于梦瑶, 等. 基于联合储备的应急电力物资管理模式研究[J]. 科技创新与应用, 2018(2): 133-134.
WANG K Q, ZHANG H, YU M Y, et al. Research on the management mode of emergency power materials based on joint reserve[J]. Technology Innovation and Application, 2018(2): 133-134.
[15]黄志强. 电力企业物资计划管理策略探讨[J]. 科技创新与应用, 2015(36): 192.
HUANG Z Q. Discussion on material planning and management strategy of electric power enterprises [J]. Scientific and Technological Innovation and Application, 2015(36): 192.
[16]陈磊, 鲁伟东, 曾琳, 等. 计划信息交互引领统购统配新模式[J]. 湖州师范学院学报, 2017(S1): 240-244.
CHEN L, LU W D, ZENG L, et al. Plan information interaction leads the new mode of unified purchase and distribution[J]. Journal of Huzhou University, 2017(S1): 240-244.
[17]HOUY N. It will cost you nothing to “kill” a proof-of-stake crypto-currency[J]. Social Science Electronic Publishing, 2014, 34(2): 167-170.
[18]李董, 魏进武. 区块链技术原理、应用领域及挑战[J]. 电信科学, 2016, 32(12): 20-25.
LI D, WEI J W. Theory, application fields and challenge of the blockchain technology[J]. Telecommunications Science, 2016, 32(12): 20-25.
[19]梅海涛, 刘洁. 区块链的产业现状、存在问题和政策建议[J]. 电信科学, 2016, 32(11): 134-138.
MEI H T, LIU J. Industry present situation, existing problems and strategy suggestion of blockchain[J]. Telecommunications Science, 2016, 32(11): 134-138.
Storage system of power grid enterprise based on PBFT blockchain technology
YANG Chunyan, BIN Dongmei, LI Xin
Electric Power Research Institute of Guangxi Power Grid Company, Nanning 530012, China
A blockchain technology based on practical Byzantine fault tolerance (PBFT)algorithm was proposed. First of all, the traditional practical Byzantine fault tolerant algorithm was explained. The traditional algorithm included six phases: pre-stage, demand, pre-preparation, preparation, confirmation, and response. However, traditional algorithms had the disadvantages of poor real-time performance, lack of penalty mechanisms, and high bandwidth. In response to these problems, the traditional algorithm was improved, which specifically involved the accounting node, the consensus process, and the view switching process. The feasibility of the improved algorithm was further proved by testing. Applying this algorithm to power grid enterprises, the federal reserve system was implemented by the constructedvirtual warehouse, which also reduced the consumption of inventory funds. And the efficiency of inventory management in power grid enterprises was improved.
practical Byzantine fault tolerance algorithm, blockchain technology, virtual warehouse
F724
A
10.11959/j.issn.1000−0801.2021023
2020−06−23;
2020−10−02
广西电网公司科技项目(No.GXKJXM20180280)
The Science and Technology Project of Guangxi Power Grid Co., Ltd.(No.GXKJXM20180280)
杨春燕(1991−),女,广西电网有限责任公司电力科学研究院工程师,主要研究方向为网络安全管理、电子信息技术、信息与信号处理。
宾冬梅(1990−),女,广西电网有限责任公司电力科学研究院工程师,主要研究方向为网络安全管理。
黎新(1987−),男,广西电网有限责任公司电力科学研究院高级工程师,主要研究方向为网络安全管理。