“矿山物联网”专题
【编者按】矿山物联网是适应现代工业结构转型升级趋势、保证矿山经济可持续增长、实现矿山智能化建设的核心技术支撑。进入21世纪以来,随着物联网、云计算、大数据及人工智能等技术与矿山“人、机、环”等要素的深度融合,矿山建设实现了从自动化、信息化向智能化的发展,为我国矿山安全生产与高效管理提供了可靠的解决方案。目前,我国矿山物联网尚处于初级阶段,存在数据结构和通信方式不统一、通信方式复杂且网络传输性能不稳定、数据利用率不高、信息安全度低等问题。为促进矿山物联网建设相关理论与技术研究,提升矿山数据集成、加密、传输、分析及知识提取等能力,本刊组织策划了“矿山物联网”专题,报道了基于区块链技术的物联网数据传输与存储、物联网自动语义标注、矿山信息全面感知与智慧决策、矿山多节点智联、网络传输性能优化、网络中继选择等方面的研究成果。衷心感谢各位作者为本专题撰稿!
秦晓伟1,王立兵2,汪磊1,李敬兆1,张小波3
(1.安徽理工大学 电气与信息工程学院,安徽 淮南 232001;2.大同煤矿集团有限责任公司 安全监管五人小组管理部,山西 大同 037003; 3.安徽科艾网络技术有限公司,安徽 淮南 232001)
摘要:针对矿山物联网中数据传输和存储过程中存在易丢失和被篡改等问题,将区块链技术应用于矿山物联网的数据传输与存储中。构建了以数据层、传输层、共识层为核心的矿山私有区块链架构;设计了基于共识模块和数据区块的矿山物联网数据传输与存储防护方案;应用实用拜占庭容错(PBFT)算法设计了数据共识过程,通过在分布式结构化P2P网络每2个节点间设置共识模块并优化P2P协议,实现了矿山数据安全性共识。测试结果表明,私有区块链的应用保证了矿山物联网数据的准确传输和可靠存储。
关键词:矿山物联网;矿山私有区块链;PBFT算法;共识模块;分布式P2P
近年来物联网发展取得了显著成果,被广泛应用于智能矿山、健康医疗、交通运输等领域[1-2]。煤矿企业通过物联网技术对采集的数据进行传输,但在数据传输过程中,由于人为隐瞒和疏忽会造成数据丢失。同时,矿山物联网中数据库的不完善使得存储的数据存在被篡改的风险。高效、安全地对煤矿企业生产过程数据进行传输和存储,保证数据的完整性及安全性,对于煤矿安全生产具有重要意义。
区块链作为一种计算机技术的新型应用模式,以去中心化、可信赖性和匿名性等特点迅速成为研究热点,在分布式环境中建立信任而不需要授权,链上数据能够实时共享[3-7]。区块链以分布式网络为基础,拥有独特的信任机制和区块数据的不可篡改性,符合物联网对信息安全技术的去中心化、去信任化需求,在物联网信息安全应用上具有天然的优势[8]。现阶段国内针对区块链技术在物联网工程中的应用研究,主要是利用区块链的加密技术和共识算法对物联网的信息共享安全机制进行改进,或是对物联网在应用区块链技术存储数据时的数据膨胀问题进行探索,解决存储数据时的资源消耗问题。葛琳等[9]提出了一种基于区块链的轻量级物联网信息共享安全框架,采用数据区块链和交易区块链的双链模式,在数据区块链中实现数据的分布式存储和防篡改,通过基于部分盲签名算法的改进算法,提升了交易效率,实现了隐私保护;但由于是基于公有区块链、联盟区块链和私有区块链的结合应用,且采用双链机制,信息交互复杂,在一些交易场景中会造成验证节点的资源浪费。乔蕊等[10]为解决大量物联网设备产生的动态数据安全存储与共享问题,提出了用于实现操作实体多维授权与动态数据存储的双联盟区块链结构,设计了基于验证节点列表的共识算法,给出了一种基于联盟区块链的动态数据溯源机制优化方案;但是联盟区块链相对于私有区块链和公有区块链来说,并不是完全去中心化的,理论上存在联盟之间联合起来修改数据的可能。
本文将区块链技术应用于矿山物联网数据传输与存储,通过基于实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法的共识模块和优化P2P传输协议,完成数据的全网共识,实现物联网数据传输安全防护,同时可节省网络资源;利用数据区块实现数据存储的去中心化,保证物联网数据可靠存储。
矿山私有区块链包括数据层、传输层、共识层、合约层和展示层,如图1所示,其中数据层、传输层及共识层是私有区块链的核心。
图1 矿山私有区块链架构
Fig.1 Architecture of mine private blockchain
数据层的功能是数据记录。利用默克尔树将采集的数据分成很多小的数据块并放在最底层,对这些小的数据块进行哈希处理,将2个最底层数据块的哈希值合并后再次哈希,得到一个高级别的数据块,重复上述过程直到最后只有1个根哈希。将默克尔树所产生的根哈希、时间戳等记录在数据区块,数据区块在进行连接时,新形成的数据区块会存储上一个数据区块的根哈希。通过数据区块和链式结构,数据能够在去中心化的情况下高效存储。
传输层的功能是让区块链上的节点共同对数据区块的内容和真实有效性进行判断及维护。传输层工作流程:区块链网络中1个节点将自身数据向其他节点进行广播,其他节点对该节点的数据进行验证,验证通过后继续传播。通常的数据获取以服务器和客户端为组成方式进行,服务器分发数据,客户端只有对其访问才能获得数据,中心化程度高。采用P2P协议后,每一个节点都可以既充当服务器又充当客户端,节点之间能进行交互,大大缩短了数据获取时间,提高了数据获取效率。
共识层的功能是让区块链网络中分散的节点快速、有效地达成共识。区块链网络中的节点依据共识算法制定的规则来更新区块链数据,保障区块链网络正常运行。目前常见的共识算法主要有PBFT,PoW(Proof of Work,工作量证明),PoS(Proof of Stake,股权证明)和DPoS(Delegated Proof of Stake,委托股权证明)[11-12],其特点对比见表1。本文采用PBFT算法。
表1 不同共识算法特点对比
Table 1 Characteristics comparison of different consensus algorithms
矿山物联网的3层架构中,感知层主要利用无线传感设备采集数据,网络层实现感知层与应用层之间的数据交互传输,应用层对接收到的数据进行分析处理并向终端推送[13-15]。根据矿山物联网的3层架构,其安全防护体系也分为3层,如图2所示。矿山物联网的3层安全防护可通过区块链技术来实现,例如:在对感知层的感知节点设备安全进行防护时,区块链中的数据签名、节点认证、密钥管理等是可被利用的防护手段;对于网络层的无线安全传输来说,可利用区块链中的共识算法与P2P协议对需要传输的数据进行共识、验证操作;应用层中的数据存储可直接通过区块链中具备存储空间的节点来完成。其中矿山物联网中网络层数据安全传输和应用层数据可靠存储防护,是应用区块链技术提升矿山物联网安全性能的重点。
图2 矿山物联网安全防护体系
Fig.2 Security protection system of mine Internet of things
矿山物联网中数据传输是否执行由区块链网络中具备相应算力的所有节点根据共识算法共同决定。在数据传输过程中,区块链网络节点分工、数据加密及数据共识是3个重要环节,如果采取集中式处理会极大提升数据传输的复杂程度。本文将矿山物联网中数据传输的3个环节进行模块化处理,即设置节点管理模块、加密模块和共识模块。节点管理模块对区块链网络各节点进行管理,实现节点鉴别、权限控制、节点划分等功能。加密模块对传输的数据进行加密,防止数据在传输过程中被恶意篡改、伪造甚至窃取,保证数据的真实性及可信任程度。共识模块的设计基于区块链网络相应节点的算力,不需要引入新设备。共识模块利用具备相应算力的区块链网络节点完成数据有效性的共识过程,减少虚假数据上传。
考虑到矿山物联网中存在节点计算能力不均、部分节点没有足够空间进行数据存储等问题,提出一种基于私有区块链的数据存储结构,如图3所示。数据区块层临时存储经区块链网络上传的数据,区块链网络中的节点可通过该层实时传输数据。信息验证层依据PBFT算法对数据区块层中临时存储的数据进行验证,当数据被规定数量的验证节点验证通过,才会被存储在存储节点中并同步更新到整个私有区块链。存储层的存储节点需要有足够的存储空间来存储数据。
图3 基于私有区块链的数据存储结构
Fig.3 Data storage structure based on private blockchain
PBFT算法源于拜占庭问题(也称拜占庭将军问题),该问题的核心思想:假设系统中节点总数为x,恶意攻击节点数为y,如果系统整体满足x≥3y+1,则恶意攻击节点所产生的干扰决定(错误决定)就不会对系统的正常决定制定产生影响。PBFT算法在本质上是一种状态机副本复制算法,副本节点执行操作是在视图变更中执行的。以系统选取1个主节点为例,其余的作为副本节点,主节点一旦失效则会采取视图变更过程,此时副本节点会在试图变更中推选出1个新的主节点。副本节点在经过请求、预准备、准备、提交、应答之后完成验证通过的信息收集工作,并且判断是否达成全网共识(判断依据:当副本节点收到2y+1个验证通过的信息,且客户端收到超过y+1个相同的应答消息时,表明客户端发起的请求已经达成全网共识)。现实应用中可能会出现副本节点发送完消息,其他节点来不及作出反应的现象。因此设置响应阈值L和响应区间[o,s],状态o代表接收节点正在处理其他响应,状态s代表接收节点处理请求已完成,s=o+hL(h为正整数)。如果副本节点先到达状态s,副本节点对接收节点的传送就会停止,等待其余节点到达状态s后,副本节点与其余节点进行状态同步。
基于PBFT算法的矿山物联网数据共识过程如图4所示。首先,选取部分主节点作为记忆节点,依据设定好的记忆策略,对传输的数据分别进行签名。然后,按照时间戳信息对接收到的已签名数据进行排序(利用主节点充当排序节点),并确定数据的数量,将已经排序好的数据传送给指定的接收节点。最后,当接收节点接收到数据内容,且数据的签名信息及内容核对正确时,执行节点会生成数据区块并向整个私有区块链进行广播,接收节点完成对客户端发送数据的响应。
图4 基于PBFT算法的矿山物联网数据共识过程
Fig.4 Mine Internet of things data consensus process based on PBFT algorithm
P2P网络具有可扩展性极强、去中心化程度高、负载均衡的特点。P2P网络结构按照集中程度可划分为分布式、集合式和混合式3种。相较于集合式与混合式P2P网络结构,分布式P2P网络结构中的节点既可以充当服务器又可以充当客户端,更加有利于数据的传输与存储。分布式P2P网络结构分为结构化和非结构化2种。分布式结构化P2P网络采用的维护算法相比于分布式非结构化P2P网络采用的泛洪算法,能更有效地避免网络拥堵。在分布式结构化P2P网络中,所有资源通过1个具有唯一性的资源关键字来进行标志,资源关键字与资源的存储位置通过算法来进行映射[16]。网络中的节点只需要保存少量的路由信息,在需要查询网络中某个资源时,通过向后继节点发送关键字数据来查询所需资源的具体位置,对于减轻网络拥堵非常有利。
但分布式结构化P2P网络存在节点管理上的问题,各节点之间缺乏固定规则约束,且无法精确定位节点信息,进行节点查找时,会对网络资源造成极大的消耗。因此,在分布式结构化P2P网络中每2个节点之间设置1个共识模块,如图5所示。节点A与节点B之间通过共识验证后,如果节点B具有存储空间,则数据可直接存储在节点B中。
图5 P2P中的共识模块
Fig.5 Consensus module in P2P
根据应用共识模块的分布式结构化P2P网络结构,在基础的P2P协议上进行优化,内容如下:节点管理模块根据区块链网络中各节点的算力,分别确定主节点、接收节点和执行节点;利用加密模块在数据传输开始时为数据加密;共识模块中的节点能够完成基于PBFT算法的共识过程,同时由共识模块中主节点赋予数据不可伪造的签名,一旦有签名的数据发生改变,通过区块链网络很快就能检测到节点位置。
数据被赋予签名使得共识模块能够处理多个主节点,即能对多组数据进行排序、传输。数据上传过程中,客户端首先提交数据,数据传到主节点时,主节点先进行数据排序,然后在排序好的数据上加入签名信息并进行打包,随机发送给某个接收节点。该接收节点接收到数据后添加新的签名信息并进行打包,再发送给其他接收节点。最终的接收节点接收到数据后根据所有的签名信息对数据进行判断,若判断数据为不真实,则数据被丢弃。由于所有接收节点随机产生,所以要求共识模块有尽可能多的选择函数Selection(M)(M为接收节点选择集合)来随机选取接收节点。选择函数包括以下2种情况:① 如果M中只有1个参数m,则Selection(M)=m;② 如果M是1个空集,则Selection(M)=retreat。共识模块对数据进行处理的流程如图6所示,其中i为虚报或瞒报的客户端节点数。
图6 共识模块数据处理流程
Fig.6 Data processing flow of consensus module
利用矿山物联网相关感知设备对某矿数据进行采样,将21 000条数据分为7组,每组3 000条数据。利用开源区块链平台搭建矿山私有区块链架构,在每2个发送端与接收端之间设置共识模块,测试共识模块中各节点对于各组数据传输的平均容错率与消耗时间,同时与未应用共识模块时的传输结果进行对比,结果见表2。可看出应用共识模块后,在数据传输过程中提高了容错率、减少了时间消耗。
表2 数据传输过程中平均容错率与时间消耗对比
Table 2 Comparison of average fault tolerance rate and time consumption during data transmission process
为测试优化的P2P协议的有效性,与未优化的P2P协议在1组数据传输时的准确率、瞒报率和T-correct值(虚假数据上传风险率)进行对比,结果见表3。可看出应用优化的P2P协议后,收集到的数据更全面,准确率更高,瞒报率和T-correct更低,保证了数据传输时的完整性,降低了隐瞒数据的风险。
表3 不同协议下数据传输的准确率、瞒报率与T-correct对比
Table 3 Comparison of data transmission accuracy, concealment rate and T-correct under different protocols
注:准确率=收到的数据条数/实际上传的数据条数;瞒报率=未收到数据条数/所有数据条数;T-correct=(3×准确率×瞒报率)/2×(准确率+瞒报率)。
私有区块链中存储节点的数据存储情况见表4。可看出随着数据量的增加,数据存储的可靠程度基本保持在较高水平。
表4 数据存储可靠程度
Table 4 Reliability of data storage
注:可靠程度=正确存储数据条数/目标存储数据条数。
将区块链技术应用于矿山物联网,建立了矿山私有区块链架构,设计了基于共识模块和数据区块的矿山物联网数据传输与存储防护方案;应用PBFT算法设计数据共识过程,通过在分布式结构化P2P网络节点间设置共识模块并优化P2P传输协议,实现数据的安全性共识。测试结果表明,通过私有区块链的应用,数据传输准确性高、数据存储可靠,保障了煤矿安全生产。
参考文献(References):
[1] 王辉,周明明.基于区块链的医疗信息安全存储模型[J].计算机科学,2019,46(12):174-179.
WANG Hui,ZHOU Mingming.Medical information security storage model based on blockchain technology[J].Computer Science,2019,46(12):174-179.
[2] 申雪,刘驰,孔宁,等.智慧矿山物联网技术发展现状研究[J].中国矿业,2018,27(7):120-125.
SHEN Xue,LIU Chi,KONG Ning,et al.Research on the technical development status of the intelligent mine base on Internet of things[J].China Mining Magazine,2018,27(7):120-125.
[3] BELLINI V,PETRONI A,PALUMBO G,et al.Data quality and blockchain technology[J].Anaesthesia Critical Care & Pain Medicine,2019,38(5):521-522.
[4] MANSFIELD-DEVINE S.Beyond bitcoin:using blockchain technology to provide assurance in the commercial world[J].Computer Fraud and Security,2017(5):14-18.
[5] KHAN A S,BALAN K,JAVED Y,et al.Secure trust-based blockchain architecture to prevent attacks in VANET[J].Sensors,2019,19(22):49-54.
[6] FREDERICK D E.Blockchain, libraries and the data deluge[J].Library Hi Tech News,2019,36(10):1-7.
[7] STEINWANDTER V,HERWIG C.Provable data integrity in the pharmaceutical industry based on version control systems and the blockchain[J].PDA Journal of Pharmaceutical Science and Technology,2019,73(4):373-390.
[8] 于仁飞.基于区块链的物联网信息安全技术研究[D].成都:电子科技大学,2019.
YU Renfei.Research on information security technology of Internet of things based on blockchain[D].Chengdu:University of Electronic Science and Technology of China,2019.
[9] 葛琳,季新生,江涛,等.基于区块链技术的物联网信息共享安全机制[J].计算机应用,2019,39(2):458-463.
GE Lin,JI Xinsheng,JIANG Tao,et al.Security mechanism for Internet of things information sharing based on blockchain technology[J].Journal of Computer Applications,2019,39(2):458-463.
[10] 乔蕊,曹琰,王清贤.基于联盟链的物联网动态数据溯源机制[J].软件学报,2019,30(6):1614-1631.
QIAO Rui,CAO Yan,WANG Qingxian.Traceability mechanism of dynamic data in Internet of things based on consortium blockchain[J].Journal of Software,2019,30(6):1614-1631.
[11] 张亮,刘百祥,张如意,等.区块链技术综述[J].计算机工程,2019,45(5):1-12.
ZHANG Liang,LIU Baixiang,ZHANG Ruyi,et al.Overview of blockchain technology[J].Computer Engineering,2019,45(5):1-12.
[12] 甘俊,李强,陈子豪,等.区块链实用拜占庭容错共识算法的改进[J].计算机应用,2019,39(7):2148-2155.
GAN Jun,LI Qiang,CHEN Zihao,et al.Improvement of blockchain practical Byzantine fault tolerance consensus algorithm[J].Journal of Computer Applications,2019,39(7):2148-2155.
[13] 赵小虎,张凯,赵志凯,等.矿山物联网网络技术发展趋势与关键技术[J].工矿自动化,2018,44(4):1-7.
ZHAO Xiaohu,ZHANG Kai,ZHAO Zhikai,et al.Developing trend and key technologies of network technology of mine Internet of things[J].Industry and Mine Automation,2018,44(4):1-7.
[14] 丁恩杰,施卫祖,张申,等.矿山物联网顶层设计[J].工矿自动化,2017,43(9):1-11.
DING Enjie,SHI Weizu,ZHANG Shen,et al.Top-down design of mine Internet of things[J].Industry and Mine Automation,2017,43(9):1-11.
[15] 吴立新,汪云甲,丁恩杰,等.三论数字矿山——借力物联网保障矿山安全与智能采矿[J].煤炭学报,2012,37(3):357-365.
WU Lixin,WANG Yunjia,DING Enjie,et al.Thirdly study on digital mine:serve for mine safety and intellimine with support from IoT[J].Journal of China Coal Society,2012,37(3):357-365.
[16] 林敏.基于区块链的视频分享关键技术研究与应用[D].成都:电子科技大学,2019.
LIN Min.Research and application of key technologies of video sharing based on blockchain[D].Chengdu:University of Electronic Science and Technology of China,2019.
QIN Xiaowei1, WANG Libing2, WANG Lei1, LI Jingzhao1, ZHANG Xiaobo3
(1.School of Electrical and Information Engineering, Anhui University of Science and Technology, Huainan 232001, China; 2.Safety Supervision Five-Person Group Management Department, Datong Coal Mine Group Co., Ltd., Datong 037003, China; 3.Anhui Keri Network Technology Co., Ltd., Huainan 232001, China)
Abstract:Aiming at problems of data loss and tampering during data transmission and storage of mine Internet of things(IoT), blockchain technology was applied to data transmission and storage of mine IoT.Mine private blockchain architecture with data layer, transmission layer and consensus layer as core was constructed.Protection schemes for data transmission and storage of mine IoT based on consensus module and data block were designed.Practical Byzantine fault tolerance algorithm was used to design data consensus process.Consensus module was set up between every two nodes of distributed structured P2P network and P2P protocol was optimized to achieve mine data security consensus.The test results show that application of private blockchain guarantees accurate transmission and reliable storage of mine IoT data.
Key words:mine Internet of things; mine private blockchain; PBFT algorithm; consensus module; distributed P2P
中图分类号:TD67
文献标志码:A
收稿日期:2019-12-27;修回日期:2020-03-09;责任编辑:盛男。
基金项目:国家自然科学基金项目(51874010);北京理工大学高精尖机器人开放性研究项目(2018IRS16);物联网关键技术研究创新团队项目(201950ZX003)。
作者简介:秦晓伟(1996-),男,安徽滁州人,硕士研究生,主要研究方向为物联网应用,E-mail:lingxu0812@126.com。
通信作者:李敬兆(1964-),男,安徽淮南人,教授,博士研究生导师,博士,主要研究方向为物联网工程技术、嵌入式系统,E-mail:jzhli@aust.edu.cn。
引用格式:秦晓伟,王立兵,汪磊,等.区块链技术在矿山物联网中的应用研究[J].工矿自动化,2020,46(3):21-26.
QIN Xiaowei,WANG Libing,WANG Lei,et al.Research on application of blockchain technology in mine Internet of things[J].Industry and Mine Automation,2020,46(3):21-26.
文章编号:1671-251X(2020)03-0021-06
DOI:10.13272/j.issn.1671-251x.17542