基于私有区块链的校园消防管理模型研究

2018-05-18 05:51苏芮裘炅
现代计算机 2018年11期
关键词:校验共识区块

苏芮,裘炅

(杭州电子科技大学计算机学院,杭州 310000)

0 引言

近几年来,各大高校的消防管理体系在多元化地发展中,逐渐凸显了两方面的问题:消防部门与部门之间、二级单位与子组织之间弱信任问题;消防各部门之间没有形成数据的互联、互通,导致消防数据孤立、不可靠。这些问题导致校园各部门消防数据不可信,火灾预测数据不准确,对火灾的应对决策起不到关键作用,从而发生了多起高校宿舍、实验室等的校园火灾,给学校人员和财产造成严重损失[1]。而私有区块链技术[2]运用数据加密、时间戳、分布式共识等为校园消防管理提供了安全、可追溯、不可篡改、自动执行的运算平台,解决了校园消防中突出的信任和数据互通互信问题,而传统消防管理模式很难实现[3]。目前区块链技术在其他领域中也得到了广泛的应用,如,张亚娇等人研究了基于私有区块链的医疗数据安全存储模型,并验证和评估了该模型,很好地解决了传统医疗个人与医院之间数据信任和安全的问题[4];陈志东等人研究了基于私有区块链的众筹业务,在数据安全和公信方面得到极大加强,目前已经在实际应用[5]。由此可以看出私有区块链技术可以很好地解决校园消防中存在的弱信任和消防数据不可靠问题。

1 基于私有区块链的校园消防管理模型架构设计

本文设计的校园消防管理模型,主要是解决校园消防部门间的弱信任和数据不可信问题。通过使用私有区块链技术,将校园消防数据区块向各个消防部门节点公开,各节点之间通过共识机制,保证消防数据的及时更新和透明性,提高了部门之间信任度和数据的可信度,校园消防管理模型架构图如图1所示。

2 校园消防管理共识机制模型研究

基于私有区块链技术的校园消防管理系统是一个去中心化的分布式系统,而私有区块链最紧要的问题是消防部门节点间的共识问题,也就是消防各部门节点之间的如何达成相同协议,增强消防各部门之间的信任关系。本文针对校园消防的应用,提出基于PBFT[6]的校园消防管理共识机制,并对该共识机制做了改进,以减少了共识算法中的计算量和检查点校验,减少了通讯资源开销,加快区块校验速度并保证消防数据的高度一致性。

2.1 消防管理共识机制问题假设

本文是基于私有区块链的校园消防系统,其场景情况如下:

(1)有M个消防部门节点,分别为{M1,M2,M3,M4,M5,M6,…,Mm},各部门节点相互独立。部门节点之间去中心化,在系统运行中,消防部门节点不存在动态添加和退出的情况。

(2)消防部门节点之间建立连接采用以太坊提供的校验方式,认为该校验是安全的,并且恶节点不能冒充其他节点连接到网络中。

(3)当消防部门节点断开连接时,系统会尝试重新连接该节点,但超过超时时间仍没连接成功,本文认为该消防部门节点发生错误,即为错误节点。

图1 校园消防管理模型架构图

2.2 消防数据区块生成协议模型

在私有区块链中,消防数据以区块的形式提交并永久记录到区块链中。本文采用以太坊交易校验协议,自身节点先校验消防数据的有效性后,将消防数据写入区块中,并发送区块,该区块中的消防数据经过全网其他消防部门节点校验通过,并添加到区块链中则认为消防数据被执行。消防数据区块生成流程如图2所示。相关定义如下:

(1)timespan(时间间隔):当消防数据列表为空时,各消防部门节点监听区块链中最新消防数据区块(LatesetBlock)的时间戳与系统的时间间隔。

(2)△t:消防数据区块从生成到达成共识并添加到区块链的最长时间,这个时间中包含信息传输过程会造成网络延迟。

(3)LatestBlock:当前消防数据区块链中最新添加成功的消防数据区块。

(4)开始生成消防数据区块判定条件:当前生成的消防数据区块为空、或当前消防数据区块正要添加的区块号不大于LatestBlock区块、或提交新的消防数据。

(5)上一消防数据区块添加成功判定条件:节点监听区块链中的timespan,当timespan超过△t会生成一个空的消防数据区块并添加到区块链中,timespan需要满足timespan>△t,这样可以保证在生成空区块时,所有交易已经在全网达成一致。

图2 消防数据区块生成流程图

2.3 消防管理PBFT 一致性协议模型

消防管理区块链系统的共识机制中,采用一致性协议和区块校验分离的策略,来缩短系统网络中各部门节点达成共识的时间,以加快消防数据区块添加速度,且保证区块链中即使出现坏部门节点,仍能保证消防管理区块链系统去中心化可信的运行。

一致性协议通信模式如图3所示,一致性协议包含五个阶段:请求(request)、序号分配(pre-prepare)、交互(prepare)、序号确认(commit)、响应(reply)。消防管理共识机制系统采用两两交互的方式在服务器中达成一致之后再执行客户端的请求。消防管理共识机制的一致性协议通信模型中,C:客户端节点,即消防数据提交节点;N0~N3:消防管理系统网络中其他部门节点;N0:消防管理系统中的主节点;N3:消防管理系统网络中存在的故障消防部门节点。

图3 消防管理共识机制通信协议模型

当主节点中满足生成消防数据区块条件时,主节点接收新生成消防数据区块的请求,启动序号分配阶段、交互阶段、序号确认阶段的协议,并向各消防部门节点广播发送请求;

序号分配阶段:主节点给请求赋值一个序列号n,向网络中广播序号分配消息和客户端的请求消息m,并将构造pre-prepare消息发送给网络中其他消防部门节点;

交互阶段:从节点接收pre-prepare消息,向其他部门节点广播prepare消息;

序号确认阶段:当发现该信息通过了2m个消防部门节点反馈并同意某一条证书时,即该消防数据区块信息通过了一个Quorum的同意,那么对于这条证书该部门节点进入Commit的状态,并向其他部门节点发送Commit消息客户端等待来自不同消防部门节点的响应,若有2m+1(包括自身)个响应相同,则认为该消防数据区块的信息在消防管理系统中达成共识,并尝试将该消防数据区块添加到系统区块链中。

通过以上这种提交方式,实现了发送的区块信息达成一致,以图为例考虑到当N3节点发生拜占庭错误,由于另外两个是安全的消防部门节点,因此仍可以满足2m+1个消防部门节点通过验证,安全的消防部门节点之间可以保证消防数据区块的一致性,正确的区块会成功添加到区块链,并触发下一个区块的生成,循环执行该过程。

2.4 消防数据区块校验

消防数据区块的校验过程主要针对区块头部信息进行校验,本文结合以太坊中区块结构进行区块校验,消防数据区块校验是整个区块链校验的核心内容,区块校验流程如图4所示。

图4 校验流程图

3 校园消防区块数据结构存储优化

针对校园消防的特殊性,校园消防系统需要提供高效的查询服务,以满足对消防设备、消防水压、消防报警的历史查询。本文研究设计了一种树状结构的区块链来加速查询,结合了Patricia树和Merkle树[7]的特点,形成消防管理MPT(Merkle Patricia Tree)链,可以保证分布式数据索引的一致性和查询结果的正确性。Patricia[8]树的更新并不需要花费太多的计算资源,只需要修改叶节点即可。

3.1 消防管理MPT 链的节点结构

消防管理MPT链包括四种不同类型节点的树结构,节点结构如图5所示。根节点的结构由两部分组成:分支指针和值。分支指针讲指针指向分支节点,值中存储消防管理MPT链的Merkle根,当创建区块时,存储在块头中的值将被改变。分支节点是一个列表,以十六进制编码格式的HolderID作为搜索关键字,所有的分支节点都有16个用于存储子指针的键值。当搜索路径到达这个分支节点时,秘钥的索引号表示搜索码的值。分支节点的value字段以分支节点为根时,存储Merkle树的Merkle根值。

图5 不同类型节点的树结构

3.2 消防管理MPT 链的结构模型

本文通过建立消防管理MPT链,以holderID为索引关键字加速查询。如图6中的消防管理PM链结构,数据交易指针存储在叶子节点的tx指针中,当使用holderID进行查询时,MPT逐个读取holderID,并匹配从根开始到叶子节点或者扩展节点的holderID。其中图6使用灰色来表示搜索路径,通过使用holderID,并显示tx指针指向区块链中的事务。另外MPT链的最新Merkle根也存储在最新区块的块头中,图6中用虚线表示了这种关系。

图6 MPT链结构

4 实验结果分析

本文的实验主要对消防管理共识机制和消防管理MPT链进行验证,实验主要从吞吐量,网络延迟和区块创建速度的角度讨论区块生成达成共识的速度、区块储结构的查询效率,而评估的指标是每秒消防数据区块成功添加的次数(TPS)。区块链中创建块的时候,网络的延迟是一个非常重要的因素,而Decker和Wattenhofer[9]提出的测量研究解决了这个问题。本文以他们的实验数据作为理论估计,我们选择的块大小为200kb,并为共识过程设置时间阈值,块的时间阈值为20s。

本文使用的实验数据是来自某高校的消防数据。我们比较消防数据区块的创建时间和区块添加成功的吞吐量。图7显示了吞吐量,它可以达到每秒300个。图8表示块的创建时间,根据实验数据,我们可以看到实体可以承受的事务延迟大约是10秒。毫无疑问,消防管理共识机制和消防管理MPT链可以加快节点共识和历史数据查询的速度。消防管理MPT链同时可以加速区块的验证,消防数据区块的验证过程需要验证Merkle根的正确性,中间值可以重复使用。通过上述实验结果,可以得出本文提出的校园消防共识机制和消防管理MPT链可以应用于基于私有区块链的校园消防管理系统中,它不仅能够满足延迟和吞吐量的要求,而且支持毫秒查询时间,提供更便捷,高效的校园消防服务。

5 结语

随着互联网的高速发展,校园消防局限于中心化数据库、不可扩展、不可互相监管以及中心数据库数据可随意更改的系统越来越难以处理当前越来越多样化的校园消防数据。区块链技术在去中心化、不可篡改、可追溯、可扩展趋势的发展过程中得到了广泛关注[10]。它作为一个大规模的协作工具,将对校园消防数据的存储产生深远影响。本文中分析和研究了基于私有区块链技术的校园消防管理模型,解决了传统系统中存在的部门与部门之间若信任的问题、数据缺乏透明化和可信度,无法和学校其他相关部门互联互通互信、相互监督的问题,对于未来的消防事业的发展和研究具有一定的借鉴意义。区块链技术在解决传统问题的同时,自身也有一些问题需要解决[11]。首先,智能合约程序的表达范围有限,并不能像自然语言合约那样制定严格的约束,将阻碍其发展。最后,区块链所造成的过度的资源消耗、高度数据冗余形成性能瓶颈。区块链技术仍处在发展阶段,还未形成一定的产业标准,需要学业界产业界的进一步推动。

图7 吞吐量

图8 区块的创建时间

参考文献:

[1]朱彤,傅贵,张苏.高校火灾事故行为原因分析及预防[J].工业安全与环保,2014,40(3):33-35.

[2]Castro M,Liskov B.Practical Byzantine Fault Tolerance[C].Proc of OSDL Berkeley,USENIX Association,1999:173-186

[3]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.DOI:10.16383/j.aas.2016.c160158.

[4]张亚娇,王枞.区块链技术在医疗数据安全存储中的应用[J],2016.

[5]陈志东,董爱强,孙赫,等.基于众筹业务的私有区块链研究[J].信息安全研究,2017,3(3):227-236.

[6]Platania M,Obenshain D,Tantillo T,et al.On Choosing Server-or Client-Side Solutions for BFT[J].Acm Computing Surveys,2016,48(4):1-30.

[7]Merkle R C,Protoools for Public Key Cryptosystems[C].Proc of IEEE Symp on Security&Privacy.Los Alamitos,CA;IEEE Computer Society,1980:122-122.

[8]Xu Y,Zhao S,Kong L,et al.ECBC:A High Performance Educational Certificate Blockchain with Efficient Query[M].Theoretical As-pects of Computing-ICTAC 2017,2017.

[9]Decker,C.,Wattenhofer,R.:Information propagation in the Bitcoin network.In:13th IEEEInternational Conference on Peer-to-Peer Computing(P2P),Trento,Italy,September 2013

[10]Zhao He,Li Xiao-Feng,Zhan Li-Kui,Wu Zhong-Cheng.Data Integrity Protection Method for Microorganism Sam-pling Robots Based on Blockchain Technology.Journal of Huazhong University of Science and Technology(Natural Science Edition),2015,43(Z1):216-219

[11]蒋润祥,魏长江.区块链的应用进展与价值探讨[J].甘肃金融,2016,(2):19-21.DOI:103969/j.jssn.1009-4512.2016.02.003

猜你喜欢
校验共识区块
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
共识 共进 共情 共学:让“沟通之花”绽放
论思想共识凝聚的文化向度
《红楼梦》的数字化述评——兼及区块链的启示
商量出共识
区块链助跑财资管理
一场区块链引发的全民狂欢
区块链助力企业创新
精通文件校验的“门道”