基于可插拔式区块链的生态流量监测系统设计

2024-02-28 07:33吴海燕李永峰于婉宁刘逸凡
水利信息化 2024年1期
关键词:监测数据区块流量

吴海燕 ,李永峰 ,于婉宁 ,刘逸凡 ,毕 胜

(1. 甘肃省水利厅信息中心,甘肃 兰州 730030;2. 长江水利委员会长江科学院,湖北 武汉 430012)

0 引言

河湖生态流量是为维系河流、湖泊、沼泽给定的生态环境保护目标,需要保留在河湖内的水量[1],是控制水资源开发强度和水生态安全的重要指标。河湖生态流量保障是我国推进生态文明建设,推动新阶段水利高质量发展的重要工作,水利部将河湖生态流量保障工作纳入全面推行河(湖)长制、实行最严格水资源管理制度的重要内容,定期通报河湖生态流量保障目标落实情况并进行年度考核[2]。

生态流量保障工作通常需要多部门、多层级、多机构的协同参与,涉及流域管理机构、地方各级水行政主管部门,以及水库、水电站、闸坝等水工程管理单位,水工程管理单位需要建设或完善生态流量监测设施,并将生态流量下泄监测数据传入水行政主管部门的监控平台。生态流量监测的多主体和数据的多源性要求数据真实、透明、可溯源,保证可信性与公信力。区块链集成了分布式链式存储、点对点传输、共识机制、加密算法等技术,为解决传统服务架构下存在的安全和信任问题提供了新思路。

区块链技术是近年来快速发展起来的新兴信息技术和全新的分布式基础架构及计算范式[3],起初作为比特币数字加密货币体系的核心支撑技术,后续逐步被应用到各个领域,如医疗[4]、物流[5]、档案管理[6]、版权[7]、物联网[8]、能源交易[9]等领域,催生了许多新的商业模式,但区块链技术在水利行业中的应用尚处在探索阶段。刘云杰等[10]针对水权交易系统在安全性、联动性等方面的需求,分析了区块链与水权交易系统的契合点,探讨了区块链在国家水权交易系统中的应用。围绕区块链技术在去中心化、不可篡改、可追溯等方面的特性,徐建等[11]分析了区块链在智慧水利体系建设中的应用前景,贾宁霄等[12]研究了区块链在水利工程智慧建管领域的应用,谢敏等[13]探讨了区块链在水利数据共享平台中的应用,杨非等[14]设计了一种基于区块链的水利行业政府网站防篡改系统,以保障水利行业政府网站信息安全,降低入侵风险。

随着区块链技术的不断发展,多种开源的区块链平台陆续涌现,其中超级账本(Hyperledger)吸引了众多国内外企业与组织的关注和加入。在超级账本中,Hyperledger Fabric 平台具有高度模块化和可配置的架构,支持可插拔的共识协议,可插拔的身份管理协议、密钥管理协议、加密库等均满足多样化的用例需求,可为已建系统的区块链技术改造提供极大便利。为此,本研究通过分析区块链技术在生态流量监测应用中的适用性,基于传统的生态流量监测模式,借助区块链系统的全过程留痕、异常数据可信追溯、公开透明、冗余存储便于集体维护等特征,将生态流量监测、日志等数据存储在区块链上,设计一种基于可插拔式区块链的生态流量监测系统,以期为区块链技术在水资源监管领域的落地应用提供参考。

1 区块链技术在生态流量监测系统中的优势分析

目前,区块链技术已发展出公有链、私有链和联盟链,其中公有链已在金融[15]、医疗[16]、物流[17]、物联网[18]等领域逐渐得到应用,而涉及多部门、多层级机构共同参与的应用常采用联盟链,故在生态流量监测与监管系统建设方面采用联盟链对落实生态流量保障目标具有独特的优势。

1.1 数据公信力

生态流量监测数据是生态流量保障目标落实的重要依据,但不同机构采集的生态流量数据可能存在差异较大或相互矛盾的现象,因此对监测数据的真实可信提出了极高要求。与传统的中心化数据库相比,由于区块链利用哈希(Hash)函数的单向性、数字签名、防伪认证功能和分布式共识的容错能力,极大增加了人为恶意篡改的难度和成本。区块链中 Hash 算法和链式存储方式的应用,使得链上数据一旦发生篡改,区块链会从该区块处断开,从而无法生成可通过核验的新区块,且因共识机制的存在,数据修改者除非同时控制网络中绝大多数节点,否则无法对链上数据进行修改。因此,在生态流量监测系统中引入区块链技术,对保障监测数据传输和共享阶段的真实性,提高数据的公信力具有重要意义。

1.2 自主易扩展性

生态流量保障工作通常涉及流域管理机构、各级水行政主管部门、水工程运行管理机构等单位,应满足流域上下游协调、干支流均衡的原则。生态流量监测系统需要同时服务多部门和多层级业主,因此对自主易扩展性提出了更高要求。区块链没有单一的实体控制或管理网络,通过设置统一的平台协议和技术规范,任何节点都可以签署交易并发布,在被网络中其他节点接受的情况下可随时审查交易,能有效提升整个系统的自主扩展性。此外,每个节点都可以加入共识过程,从而将新区块扩展到区块链中,且可以自由退出或加入系统。

1.3 数据留痕与溯源能力

生态流量监测系统在实际运行过程中通常经历水量(水位、流速)数据采集,流量计算、存储、传输、审(校)核、统计等步骤,部分系统还涉及人工设定和修改断面平均流速关系线、监测设备在线或离线状态等,数据全过程留痕与溯源尤其重要。在分布式区块链网络中,区块由区块头和区块体构成,具有读写权的区块链节点在创建新区块时,会将版本号、时间戳、Merkle 根节点、交易数量、区块大小等信息存储在区块头中,区块体包含交易数据及其 Hash 值构建成的Merkle 树等内容。区块链使用密码算法保障交易数据防篡改,包括数字签名确保信息的真实性、Merkle根确保区块内记录信息的完整性、多节点的分布式记账和共识机制确保链上信息难以被篡改。此外,Merkle 树能快速对交易合法性进行验证,进而为监测数据留痕与溯源提供便利。

1.4 公开透明性

监测数据的公开透明有利于考核河湖生态流量保障目标落实情况。区块链最显著的技术优势是去中心化,上链数据的验证、记账、存储、维护和传输等过程均基于分布式系统,而不是依靠中心化权威机构在大量节点间建立信任关系,故极大增加了监测数据的透明程度。去中心化系统中不存在具有超级权限且可控制其他节点的中心节点,系统节点及其计算资源的控制权分散归属不同的所有者,每个节点都可以独立决策并呈现多样化的行为,且这些行为均公开透明。

1.5 异地容灾能力

区块链本身为一种异地容灾解决方案,去中心化的系统架构使得所有节点既是客户端也是服务器端,不存在具有特殊功能和不可或缺的节点,链上数据同步备份,因此整个系统节点的任何子集构成的子系统都可以独立运转,不会因为损失部分节点而出现整体系统失效的情况。此外,单个节点故障排除后,对链上信息进行同步可快速恢复丢失的数据,极大提高了系统的容错能力。

2 生态流量监测系统设计

2.1 常用框架设计

目前常见的生态流量监测系统普遍采用 B/S 架构,选用 Oracle 或 SQLServer 数据库作为数据库管理系统,并设计专用数据库表实现数据的统一存储和管理。总体来说,系统框架一般包含以下 5 层[19-20]:

1) 信息采集层。通过建立水、雨、工情自动监测站,实现各类业务数据的实时监测、监控,包括水位、流量、闸门开度、现场图像、设备状态等的监测,有的系统还进行水质和气象数据的监测,主要目的是为系统业务应用提供数据支撑。

2) 网络通信层。一般可运用 4G,5G,NB-IoT,光纤和卫星等多种通信方式,实现感知数据的实时传输、高效汇聚、内外共享等,还可通过数据采集器提供数据清理、预处理功能。

3) 数据资源层。实现各类数据的管理,主要包括实时、历史、文件等数据库,以及数据备份、数据库管理、视频信息资源管理等系统,是信息采集层和应用支撑层或第三方平台交互的纽带。

4) 应用支撑层。为支撑数据展示或业务应用提供所需的算法和服务,如均值和极值等各类统计算法、生态流量计算方法、报表、图形、消息服务、报警服务等。

5) 业务应用层。根据用户需求提供数据的展示、查询、审核、报表管理、用户管理等功能,实现大屏展示、用户管理和手机 App 等业务应用。

2.2 区块链系统设计

区块链是一种用大量技术单元包裹的分布式共享账本和数据库,一切技术单元均为安全、透明地维护账本,去中心化是最主要特征。目前区块链与物联网结合常采用联盟链[21],因此生态流量监测引入区块链技术后,区块链系统组织使用框架设计如图1 所示。

图1 生态流量监测区块链系统组织使用框架

在区块链系统组织框架中,各生态流量监测及监管系统均为区块链系统中的节点。监测系统通过采集层获取监测数据并传入各自网关,网关向区块链平台发起数据上链请求,经智能合约通过后将数据上链。在整个系统中,除需要的生态流量监测数据外,智能合约还可以将中间数据、修改日志等数据指纹信息上链。监测数据上链后会同步至区块链系统的所有节点中,根据共识机制,单个节点不能控制和更改区块链的内容,存储在链上的数据不能被随意篡改,可确保监管系统同步获取的监测数据和修改日志均具有可信力和透明溯源性。与传统的集中式系统架构相比,去中心化的系统架构使链上数据同步备份到所有节点中,单个监测或监管系统出现故障不会对链上数据产生影响,故障节点恢复运行后很快会同步链上的所有数据。

生态流量监测区块链系统可在系统设计之初将区块链作为支撑平台纳入整体考虑,也可在拟建或已建的监测系统中嵌入区块链模块。本研究考虑一种可插拔式联盟链支撑组件,在已建信息化平台的基础上嵌入区块链技术进行系统改造,改造后的区块链系统总体框架设计如图2 所示。

图2 生态流量监测区块链系统总体框架设计

生态流量监测区块链系统中,可插拔区块链组件集成了分布式链式存储、点对点传输、共识机制、加密算法、智能合约等技术,可独立开发并布署。区块链组件是整个监测系统的底层支撑平台,通过智能合约支撑以下各个层面:

1) 信息采集层。各监测站采集数据并将数据上传到区块链上。区块链通过智能合约根据数据的重要性采取不同的上链方案,除水位、流量、闸门开度等实时监测数据上链外,还可以将监测节点身份和数据相关摘要、修改日志等行为监控信息,以数据标签的形式上链。以数据标签的方式上链,可大幅度提升区块链系统的存储效率,且有效提升监测数据可信力和溯源取证能力,通过数据标签中的数据链接,能获取数据区块链中该数据详细信息的 Hash 值,并根据Hash 值判断数据是否被篡改。

2) 网络通信层。区块链系统通过点对点的传输方式,将各监测站点上链的数据当成一笔交易,通过区块链网络和共识协议将链上数据同步至其他所有节点中。在联盟链中,各节点均为已知、已认证且经过审查的参与者,可使用崩溃容错(CFT)或拜占庭容错(BFT)等共识协议确保交易完成。考虑到上链的数据量直接影响网络开销,如果区块链中仅记录数据摘要或修改日志等行为监控信息,不会造成很大的网络开销,可使用实用拜占庭容错(PBFT)作为共识算法,该算法共识结果的一致性程度高,确认时间短,但算法复杂度较高,通信量大;若每个节点的实时监测数据均有上链需求,数据交易频繁,对区块链性能要求更高,可使用可扩展 BFT 算法,该算法具有高性能、低延时、可扩展等优势[22]。

3) 数据资源层。数据以区块的形式进行存储,其中:区块体用于存储数据,如水情监测数据和数据修改日志等信息;区块头存储前一区块的 Hash 值,用于形成链式数据结构,还可存储 Merkle 树(二叉树或多叉树)根的 Hash 值,一旦监测数据异常或被篡改,新产生的Hash 值与 Merkle 树根的 Hash 值必然不同,从而达到灵活校验数据的目的。当节点需要使用链上数据时,节点本地数据库可将链上数据同步至本地服务器,借助区块链的特点实现数据的可信存证。

4) 应用支持层。依托数据资源层的可信存证,将均值和极值等统计算法、评级标准、预警阈值写入智能合约中,系统可依据这些算法对链上的生态流量数据进行可信计算,如生态基流和最低生态水位保证率、水电站最小下泄流量统计值等,并在业务应用层展示计算结果,有利于生态流量保障目标落实考核的公开透明。此外,对于存疑的考核结果,区块链平台能通过相应的算法对存证数据进行反向溯源,保证取证过程是可信的。

5) 业务应用层。可设计、开发区块链节点管理模块。区块链的去中心化保证系统中不存在超级权限,但可通过智能合约给各节点分配相应权限。系统可在区块链平台中确定各参与者的身份,并对各节点进行管理,根据身份给予各节点不同的访问控制权限,如对监管节点(水行政主管部门或流域管理机构等)开放链上数据校核、查询、溯源、应用等权限,对水工程运行管理单位或监测机构开放数据采集、审核、传输上链、修改及操作日志等权限。

对于区块链系统改造,Hyperledger Fabric 平台提供了较为契合的解决方案。Hyperledger Fabric 平台是一个开源的企业级许可分布式账本技术平台,具有高度模块化和可配置的架构,支持以 Java,Go和 Node.js 等通用编程语言编写的智能合约,通用性较强,改造成本较低。另外,Hyperledger Fabric 平台支持可插拔的共识协议,能有效定制特定用例和信任模型,对已建生态流量监测系统进行区块链技术改造比较便利。

3 结语

区块链技术在分布式存储、不可篡改和数据追踪等方面的特性,可有效支撑生态流量保障考核工作。本研究基于区块链技术的分布式链式存储、点对点传输、共识机制、加密算法等特点,分析了区域链技术在生态流量监测系统中的优势,从生态流量监测系统的常用框架出发,围绕监测数据和仅日志信息 2 种上链方式,结合 Hyperledger Fabric 平台的高度模块化和灵活配置架构,针对通信开销需求建议 2 种拜占庭容错共识机制,确保无信仼节点间快速达成共识,用区块体存储水情监测和数据变化监控等信息,区块头保证数据的链式数据结构,防止数据在传输过程中被篡改。在智能合约中写入生态流量统计、考核、预警阈值等算法,保障数据的可信应用与溯源。

研究表明,采用区块链技术可提升监测数据的公信力、安全性和透明性,能较好地支撑生态流量保障工作,并且随着我国对生态流量保障要求的不断提高和数字孪生工程的大力推进,越来越多的部门或机构建立了与生态流量相关的信息化系统,采用可插拔式区块链支撑组件,在已建信息化平台的基础上嵌入区块链技术进行系统改造,可降低区块链系统的开发和运维成本。

猜你喜欢
监测数据区块流量
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
区块链:一个改变未来的幽灵
寻找书业新流量
区块链:主要角色和衍生应用
GSM-R接口监测数据精确地理化方法及应用
区块链+媒体业的N种可能
读懂区块链
GPS异常监测数据的关联负选择分步识别算法
基于小波函数对GNSS监测数据降噪的应用研究