基于链式区块技术的环境监测系统研究

2022-09-06 05:52李毓琛李娟花
关键词:监测数据数据包合约

李毓琛,白 雪,李娟花,张 哲*,余 祥

(1.中国环境科学研究院 生态文明中心,北京 100012; 2.中华人民共和国生态环境部 机关服务中心,北京 100006;3.国防科技大学 计算机学院,湖南 长沙 410073)

环境监测是环境保护的基础,是生态文明建设的重要支撑[1].面对日益严重的环境污染问题,世界各国都在使用各种信息化技术,努力提高环境污染治理信息化水平[2].生态环境监测作为环境保护的基础,既是环境管理的重要手段,又是环境决策的重要依据[3].目前的生态环境监测系统建立在数据中心化存储的基础上,存在数据易破坏、易篡改的风险,容错能力较差,数据信息不可溯源等弊端,导致环境监测数据可信任度不高.因此,在生态环境监测系统的研制中,要考虑其数据信息的分布式存储、可溯源、不可修改的问题.区块链技术的出现,为生态环境监测系统数据信息的分布式存储、可溯源、不可修改问题提供了解决方案.

论文提出一种基于区块链(blockchain)技术构建的生态环境监测系统,利用区块链信息分布式存储记录与验证的特性,保证生态环境监测数据的真实性、完整性和客观性;建立更便捷的生态环境监测系统数据管理模式,便于真实、客观、合理地使用生态环境监测系统数据,促进生态环境监测系统进一步发展.

1 生态环境监测系统

1.1 概 述

相关文献[1-6]建立量化评价指标体系,构建面向生态环境治理体系与治理能力现代化的智慧监测体系,实现决策智慧化、信息公开化、服务便民化.区块链是一种全新的去中心化基础架构与分布式计算范式,具有分布式、去中心化、不可篡改、不可抵赖的特点[7-16].引入区块链技术对这些传统生态环境监测系统进行技术改造,能极大地提升生态环境监测系统数据信息的真实性、完整性和客观性.

文献[17]提出了基于物联网和云计算的环境监测系统架构;文献[18]探讨了我国环境检测统筹机制建立的方法和途径;文献[19]研究了国家环境保护野外观测研究台站的建设目标与定位、空间分布、运行机制、监测与评价技术体系构建、监测指标体系框架等;文献[20]采用数据仓库技术构建了一个土壤环境监测与数据挖掘模型;文献[21]基于模糊评价方法,设计了一个环境检测评价系统;文献[22]采用远程通信获取环境检测数据的方法,研究了环境检测系统;文献[23]为了保护环境监测数据的安全性,提出了一种用户撤销的安全机制.这些生态环境监测系统采用了不同的技术手段及指标体系进行建设,为生态环境监测的现代化、信息化、智能化提供了理论依据.

1.2 生态环境监测系统分析

生态环境监测系统是以生态环境为对象,采用一定的技术和方法,监测生态环境组成成分和污染物,为生态环境保护提供数据支撑.因此,生态环境监测系统包含了监测对象和监测手段两个基本要素.根据监测对象的不同及使用的监测手段各异,形成了不同的生态环境监测系统,如大气、地表水、海洋、土壤与地下水等专项监测系统.环境监测对象是指环境状况和污染源.论文构建的环境监测系统是以水体、大气、噪声、土壤和工业污染源为监测对象,以物理、化学、生物、生态等为环境监测手段.生态环境监测系统,应根据国家标准建立环境监测数据指标体系.环境监测系统监测的地表水、空气、土壤数据分别执行《GB 3838-2002 地表水环境质量标准》《GB 3095-2012 环境空气质量标准》《GB 15618-1995 土壤环境质量标准》,构建的生态环境监测系统的功能组成如图1所示.

图1 生态环境监测系统的功能组成

2 基于区块链系统的生态环境监测系统体系结构设计

2.1 生态环境监测系统体系结构

生态环境监测系统的体系结构由下至上共5层组成,包括物理层、数据层、网络层、服务层和应用层.生态环境监测系统的体系结构如图2所示.物理层基于区块链系统将大量传感结点分布在监测区域,采集监测对象的相关数据传输至网络层,获取更为完备的各类生态环境监测数据;数据层是将物理层采集,将获取的生态环境监测数据存储于数据库中,通过网络层传输到服务层;网络层负责传递和处理数据层的生态环境监测数据信息,将数据层各类生态环境监测数据进行初始化和融合;服务层提供应用服务和管理,对各类生态环境监测数据进行分类、处理、关联、分析和管理;应用层提供用户登录、监测任务管理、生态环境监测感知与显示、信息查询和状况信息发布等.

图2 生态环境监测系统体系结构

2.2 区块及区块链的设计

2.2.1 区块结构

每个区块引用前一个区块块头的散列并存储在链表中形成区块链,生态环境监测系统数据区块结构包括区块头(block header)和区块体(block body).区块头包含前一生态环境监测系统数据区块的Hash散列(pre-Hash),其功能是把当前生态环境监测系统新的数据区块连接到前一区块;时间戳(timestamp)表示此生态环境监测系统数据区块的创建时间;merkle根(merkle root)是由生态环境监测系统数据区块创建过程中的事务记录,通过merkle树的哈希过程生成.区块体由监测数据包组成,包括监测设备类型、监测内容、监测数据、监测时间、处理节点标识和处理数据名等信息.生态环境监测系统数据存储使用的区块基本结构如图3所示.

图3 生态环境监测系统数据区块基本结构

生态环境监测系统数据的区块链结构如图4所示.

图4 生态环境监测系统数据的区块链结构

2.2.2 共识机制

共识机制解决的是区块分布式数据存储所产生的一致性问题.基于区块链的生态环境监测系统中的数据是由所有区块节点独立存储,通过共识机制的协调与控制,同步各节点数据,实现生态环境监测系统数据节点的采集、数据一致性验证和数据同步控制等功能.

根据基于区块链的生态环境监测系统数据的特性,采用联盟链的区块链类型构建基于区块链的生态环境监测系统,共识机制使用的就是“先共识后写入”的实用拜占庭容错算法PBFT(practical byzantine fault tolerance).基于区块链的生态环境监测系统PBFT在区块链网络中的共识算法如算法1描述(f为可容忍的恶意节点数).

算法1基于PBFT的区块链网络共识算法

(1) 在基于区块链的生态环境监测系统网络节点推选一个称之为主节点的节点,负责生成系统中的新区块节点;

(2) 在基于区块链的生态环境监测系统网络中,向全网广播需要存储的新数据包,主节点把从网络收集到的需存储于新区块内的数据包排序后存入列表,向全网广播这个列表;

(3) 每个节点接收这个列表后,依据排序模拟执行新区块内数据包的存储,所有数据存储执行完后,基于数据存储结果计算新区块的哈希摘要再向全网广播;

(4) 如果一个节点收到的2f条其他节点发来的摘要都和自己相同,向全网广播一条commit消息;

(5) 如果一个节点收到2f+1条commit消息,即可正式提交新区块数据到本地的区块链和状态数据库中.

基于PBFT的区块链网络共识算法阻止了不可信任、有恶意行为的数据进入基于区块链的生态环境监测系统的可能,筛选出可信任、无恶意行为数据,解决了基于区块链的生态环境监测系统数据获取的问题.

2.2.3 智能合约

基于区块链的生态环境监测系统的智能合约是为生态环境监测数据及其响应事件进行构件化定制.所有生态环境监测设备都建有各自的智能合约,有数据处理节点预先定制好的阈值(threshold).只有智能合约的管理者拥有更改阈值的权限,智能合约通过阈值分析生态环境监测数据,根据分析结果发布环境状况等级,并将该等级和生态环境监测数据一起发送至上级的环境数据展示平台.

基于区块链的生态环境监测系统的智能合约算法,通过对输入环境监测数据包进行阈值分析,得到的环境状况等级,如算法2描述.

算法2智能合约算法描述

输入:data,the object of transaction

输出:level

(1) List [ ]Threshold;

(2) Procedure analyze (data)

(3) if data.sender ==owner then

(4) level=Threshold [data];

(5) send To(data,level,Node);

(6) return level;

(7) end if

(8) end Procedure

数据处理节点根据生态环境监测设备所传数据进行合约策略的制定,随后将创建好的智能合约上传到生态环境监测区块链.合约在部署后不能再次编辑,若要更新或替换合约必须将原合约“删除”并部署新的合约.因此,这种构件化结构易于替换设备的合约,而不会影响其他合约的运作.生态环境监测设备可以通过无线传感网络(wireless sensor networks,简称WSN)将监测数据上传到数据处理节点,数据处理节点将根据数据的不同调用对应的智能合约.智能合约分析的结果写入生态环境监测区块链,同时将结果发送到上级生态环境数据展示平台.

2.3 基于区块链系统的环境监测系统体系结构

引入区块链技术的生态环境监测系统体系结构采用物理层、数据层、网络层、服务层和应用层的5层结构,如图5所示.与传统的环境监测系统体系结构相比,基于区块链系统的环境监测系统的变化在服务层.

图5 基于区块链的生态环境监测系统结构

基于区块链系统的生态环境监测系统通过与区块链网络相连,实时地将数据传送到数据处理节点.所有数据处理节点执行共识机制,验证海量生态环境监测数据的有效性,并将它们打包为不同的数据区块并链入生态环境监测区块链,用户可以通过查询区块链的方式获取需要的监测数据资源;利用智能合约自动化、强制性的处理能力,分析、上传生态环境监测数据服务层.基于区块链系统的生态环境监测系统服务层除原有的服务管理和应用服务外,增加了所需的区块链技术,包括区块链网络和区块链服务.区块链网络是网络层与服务层的接口,由若干高性能的数据处理节点组成区块链网络,负责处理、分析、传输数据层获取的环境监测数据信息.网络层可视为基于区块链系统的生态环境监测系统的数据处理后台.基于区块链系统的区块链服务提供了区块存储、智能合约、共识机制、访问控制、SDK(software development kit)开发包等功能,将区块链网络和区块链服务部署于服务层.

3 关键技术

构建基于区块链的生态环境监测系统的关键技术有:监测数据上传、监测数据正确性验证、监测共识数据上链及生态环境状况等级判定上传等技术.

3.1 生态环境监测数据上传技术

传统的生态环境监测系统对采集的数据先上报至生态环境监测管理中心,再进行处理分析.基于区块链的生态环境监测系统采用的是建立在区块链网络基础上的监测数据上传技术,通过使用无线传感网络WSN控制各类不同传感器等生态环境监测设备,完成水体、大气、噪声、土壤等监测数据采集的同时,对相关生态环境监测数据进行实时监控,再进行生态环境监测数据的分选、签名、打包和上传,将数据格式不统一、相互独立的生态环境监测数据整合为格式统一、相互关联的生态环境监测数据包,称之为生态环境监测数据上传技术.

生态环境监测数据上传的过程如图6所示.

图6 监测数据上传技术时序图

生态环境监测系统对部署在不同监测区域的生态环境监测设备下达数据采集指令,各个生态环境监测设备开始对空气、水质、噪声等生态环境监测要素进行数据采集;按设备类型、监测内容、监测数据、监测时间的统一格式将不同监测数据打包为数据包data,并使用随机的非对称私钥对数据包进行签名,得到签名值sig=h(data)sk,其中h表示Hash散列运算;上传数据集s至网络层的数据处理节点.

3.2 生态环境监测数据正确性验证技术

由于生态环境监测数据在传输过程中可能受到来自内部或外部的恶意篡改影响,需对传输的数据进行加密、签名处理.生态环境监测数据正确性验证就是区块链网络的数据处理节点在接收到生态环境监测设备上传的生态环境监测数据包后,对生态环境监测数据包格式的合法性、Hash散列的完整性以及数字签名的有效性进行验证,确保生态环境监测数据包在传输过程中未受恶意的篡改.生态环境监测数据正确性验证技术是执行区块链共识机制的前序技术,它的执行为后续生态环境监测数据共识和区块产生、上链过程提供有效、正确、一致和完整的生态环境监测数据.

生态环境监测数据正确性验证过程如图7所示.

图7 数据正确性验证技术时序图

数据处理节点对接收到的环境数据集进行解包处理,分别得到原始数据包data和签名值sig;对数据包data的格式进行分析,即判断data的格式是否符合设备类型、监测内容、监测数据、监测时间的统一格式,并且每一项不得为空.如果验证成功,则继续执行;数据处理节点继续对签名值sig的签名有效性进行验证,使用私钥sk对应的公钥pk解密签名值,判断(sig)pk=h(data)是否成立.如果成立,则说明签名值有效性判断成功,生态环境监测数据在传输过程中没有受到恶意篡改.

3.3 生态环境监测数据共识上链及环境状况等级判定上传技术

生态环境监测数据共识与上链,是指接收生态环境监测数据的区块链网络数据处理节点在成功验证数据的正确性后,需要将这些数据进一步广播至全网,由全区块链网络的其他数据处理节点继续验证数据的有效性,并将数据打包至新的区块中,与生态环境监测区块链尾端的区块Hash建立连接,链入区块链的尾端.环境状况等级判定上传是指由区块链网络数据处理节点调用预先部署在节点上的智能合约,分析已接收的生态环境监测数据,计算当前环境状况等级,并将此环境状况等级上传到环境态势感知与显示系统中.生态环境监测数据共识上链及环境状况等级判定,通过区块链共识实现生态环境监测数据不可篡改、不可抵赖的全冗余存储,保证生态环境监测结果的正确性、完整性、安全性和可信性;利用智能合约的自动化逻辑处理模式,得到当前的环境状况等级判定信息数据,并实时上传到环境态势感知与显示系统,进一步实现生态环境监测结论数据的综合化和智能化的使用能力.

生态环境监测数据共识上链及环境状况等级判定上传过程如图8所示.数据处理节点调用预先设置的智能合约,通过智能合约算法对生态环境监测数据进行分析,得到当前不同环境类型要素(水质、空气、噪声等要素)的环境状况等级信息;完成智能合约的执行后,计算得到PBFT主节点p=vmod |R|,其中,v表示当前视图编号(接收生态环境监测数据包的节点的编号作为初始视图编号),|R|表示节点个数,p表示主节点编号;主节点将生态环境监测数据包向全网广播,由区块链网络的其他节点对数据进行再一次的全网广播(广播地址去除主节点),当节点收到来自全网|R|-1数量的数据包后,对数据包继续执行正确性验证操作,并附加节点的数字签名;全网节点将数据包验证结果反馈主节点,当主节点收到全网超过2/3的“赞成”反馈时,将此数据包打包为区块,并链接入生态环境监测区块链中;如果“赞成”反馈未超过2/3,则令p=(v+1) mod |R|,执行更换主节点操作,重新执行一次PBFT共识,当p重新回滚至初始主节点时,将结果置为“拒绝”,结束共识;区块上链完成后,该数据处理节点将数据包和得到的环境状况等级上传至上级环境质量数据展示平台中.

图8 数据上链及环境状况等级判定上传技术时序图

4 分析验证

为验证所构建的基于区块链的生态环境监测系统的可行性,基于联盟区块链系统Hyperledger Fabric构建一个包含若干生态环境监测数据节点的分布式网络环境,使用“chaincode”(中文名称为“链码”,是Fabric系统的智能合约)实现智能合约的算法策略,由Hyperledger基准测试工具Hyperledger-caliper模拟基于区块链的生态环境监测系统网络中的监测数据区块产生过程,对基于区块链的生态环境监测系统单位时间数据吞吐量(transactions per seconds,简称TPS)、正确事务数量和命中率进行测试.正确事务数量是衡量基于区块链的生态环境监测系统网络数据发包质量的一个指标,将在相同单位时间事务请求速率条件下未发生丢包、没有格式残缺等错误的生态环境监测区块链事务数量称为正确事务数量,命中率[24]是指Fabric系统中成功生成正确事务占总事务请求的百分比.正确事务数量的设置能够验证生态环境监测区块链事务的稳定性,即在标准的“单位时间事务请求速率”下,生成生态环境监测区块链事务的错误率能够保持在“可控”的范围,通常随单位时间事务请求速率的变化而变化,命中率也是如此.

配置生态环境监测区块链的事务结构信息,包括监测设备类型、监测内容、监测数据、监测时间、处理节点标识项和处理数据名项,通过Hyperledger-Caliper提供的数据流API为每一组实验发送包含事务结构属性的5 000个事务请求包,数据包流速设置为300 TPS,检查该方法的执行效果.10次实验的结果如表1所示.测试结果表明,该方法的检测在单机环境下的系统TPS均值达到了290.56,均方差为5.11,与Fabric的单机TPS期望值基本持平.

表1 生态环境监测区块产生结果

通过设置不同的智能合约及仿真环境监测数据的不同,对系统可行性进行验证.设置了2个用户节点Cli1,Cli2,设置3类数据文件Jfile1,Jfile2,Jfile3,其中Jfile1,Jfile2位于虚拟局域网VLAN 1中,Jfile3位于虚拟局域网VLAN 2中,将数据操作动作ACL=[r,a,sd]写入智能合约中,其中r表示“读”操作、a表示“写”操作、sd表示“数据迁移”操作.通过Hyperledger-Caliper提供的数据流API为每一组实验发送包含不同策略属性的5 000个事务请求包,数据包流速设置为50 TPS,检查策略的执行效果.策略执行的实验结果见表2.

表2 策略执行效果

由表2可知,基于智能合约的策略能够自动识别用户请求并执行相应的区块链事务逻辑,命中率普遍在90%以上,从而证明了该方法具有较高的数据利用率,具备实际应用的可行性.该方法的优势有:①建立了去中心、无法篡改、不可抵赖的权限执行记录,对生态环境监测数据的执行结果进行有效记录的同时,提高了生态环境监测系统的容灾备份能力;②充分利用了区块链智能合约强制性、原子性和自动化的特点,使得环境状况等级的决策执行过程不会受到人为不可控因素的影响;③利用区块链数据公开化、透明化的特点,使得生态环境监测数据的执行结果公开可见,便于第三方监督机构对用户的权限执行记录进行实时的验证、审计.

5 结束语

论文研究了基于区块链的生态环境监测系统问题,分析了生态环境监测系统数据和功能组成,设计了基于区块链系统的区块结构、共识机制和智能合约等技术的生态环境监测系统.基于区块链的生态环境监测系统事务平均命中率是94%,具有事务命中率高、延迟小的特点.实验验证表明,基于区块链的生态环境监测系统可行、稳定和正确,解决了生态环境监测系统中心化、时间戳、可篡改等问题,保证了生态环境监测数据的正确性、安全性和完整性,为环境科学研究和决策提供可靠、可信的数据信息.

下一步的研究方向是基于区块链的生态环境监测系统数据的电子存证,对生态环境监测系统网络身份认证机制、生态环境监测系统电子存证数据等问题做进一步研究,结合生态环境监测系统的特点,综合应用区块链、电子认证、访问控制等技术,构建基于区块链的生态环境监测信息网络身份认证系统、基于区块链的生态环境监测电子存证数据系统,使生态环境监测系统成为安全、智能、可信的多功能融合的信息化系统.

猜你喜欢
监测数据数据包合约
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
C#串口高效可靠的接收方案设计
浅谈环境监测垂直管理的优势
环保验收监测异常数据的分析与处理探讨
北京经济社会发展月度监测数据(2008年11月)