徐 涛 杨 阳 刘才华
(中国民航大学计算机科学与技术学院 天津 300300)(中国民航信息技术科研基地 天津 300300)
在多方协作场景中,多采用中心化架构设计应用系统。由于缺少信任机制,每一方都需要构建单独的数据库,而多个数据库之间易存在数据差异,可能导致繁琐的人工对账和争议[1-2]。区块链技术作为一种全新的分布式账本技术,具有去中心化、开放性、不可篡改等特点[3],是解决这些问题的一种有效方法。
目前区块链技术在多种场景已得到广泛应用[4-6],然而鲜有针对民航应用领域的区块链技术研究。将区块链应用于民航业有以下优势:区块一经生成便无法修改,防止航班信息被篡改;区块链的数据共享分布到各个节点之间进行,部分节点或网络受到损坏时对其他节点的影响很小,保障航班信息安全共享;每个参与者都将保存区块数据,比传统数据库更易于被所有成员共同维护和监管。
在民航领域的信息共享中,尚未出现涉及民航具体业务流程的区块链应用架构,而直接应用区块链架构无法满足民航有机隔离的多方参与需求:区块链中的参与成员对其他用户的访问无感,且无法直接追溯访问信息,难以监管区块访问;区块链将数据公开透明的全部存储在每个节点上,对仅部分用户能够访问的数据没有其他的管理机制,无法满足不同用户对提供的航班信息隐私保护需求;直接将区块链架构应用在航班运行数据存储上,存在多节点信息存储量过大的问题。因此需结合航班保障流程,设计一种在满足民航业务需求的基础上,既能保障数据的有机隔离,又能保障航班运行数据防篡改、易追溯、保护隐私的系统架构。
本文结合航班协同运行保障过程中的实际运行流程,提出基于区块链技术的航班协同运行保障系统架构,主要贡献如下:(1) 将航班运行过程中的实际数据与区块链技术相结合,设计应用于民航领域的航班信息共享链架构,为实现航班协同运行保障系统;(2) 设计访问事件监管机制,通过自动执行智能合约的方式将访问记录保存到区块链中,以监管和追溯访问事件;(3) 根据航班运行具体业务流程和不同参与方的共享需要,设计既能共享数据又能隔离数据的多通道方案。
区块链是由多个独立节点组成,用来维护区块数据的分布式数据库系统[7],也可称之为分布式去中心化账本。区块链记录所有数据事件信息,过程透明、数据安全性高,且区块由所有参与节点共同维护,不易篡改、难伪造、可追溯。
随着区块链技术的飞速发展,涌现了多种应用场景下的区块链解决思路,例如:Yuan等[8]提出基于超级账本的排放交易系统,通过在区块链中设计特定的账本结构和智能合约来实现业务逻辑;Raikwar等[9]提出基于区块链的保险处理平台,给参与者提供细粒度的访问控制;对于车载系统,Yang等[10]提出基于区块链的车载网络中的分布式信任管理系统。显然,区块链在各个领域的应用都在逐步拓广与加强。
在民航领域,国际航空电讯协会(Societe International De Telecommunications,SITA)引入区块链技术,利用分布式记账技术实现多个企业间的数据共享;新加坡航空公司为常旅客推出一个数字钱包计划,成为“世界上第一个基于区块链的航空公司忠诚度数字钱包”。在国内,以南方航空为代表的航空公司开展了区块链技术在民航业的应用探索,建立了积分和里程兑换系统,实现实时积分兑换里程功能。民航在区块链上的有许多可实现的应用方向,例如航班运行系统、行李跟踪系统,但仍亟待需要结合具体业务和实际应用流程,设计应用架构。
航班协同运行保障是航空运输中民航领域的核心业务,如何打破各个参与方之间的信息壁垒又能保障数据隐私是关键。目前民航领域多采用面向机场运行的协同决策系统A-CDM(Airport—Collaborative Decision Making)解决信息共享问题。A-CDM系统是由机场主导,航空公司、空管、地服公司共同参与的协同决策机制,核心是航班运行数据的协同共享。其中心化架构特点使数据易引起争议,且参与方之间的数据隐私保护需求未考虑全面。
区块链可在互不了解的联盟成员之间和没有第三方机构的协调下建立可靠的信任,实现可信的数据共享。因此,将区块链技术应用于航班协同运行保障过程中,不仅给民航业带来新的信息共享解决思路,还能针对性地解决其信息共享问题。
航班信息共享链架构是基于区块链技术的航班协同运行保障系统应用的基础架构,其主体为航空公司、机场、空管、地服公司。该架构在区块链基础架构和区块链网络节点分布上进行改进。
结合具体航班运行数据和区块链基础架构,将航班信息共享链的层次结构分为数据层、区块链服务层、智能合约层、应用层(如图1所示)。
图1 航班信息共享链层次结构
数据层主要是对航班运行保障数据进行加密、存储为区块、数据验证等,包含航班号、执行日期、计划出发时间、到港航班停机位、进港跑道号、实际落地时间、配餐开始时间、配餐结束时间、摆渡车到位时间、计算撤轮挡时间、目标撤轮挡时间等信息。为满足民航业务不同形式的数据存储需求,摒弃传统区块链中以key-value形式存储数据的LevelDB数据库[2],使用可存储多种数据格式的CouchDB数据库。
区块链服务层包括节点管理、区块管理和一致性管理。节点管理包括授权许可和主节点选取,其中授权许可是参与方各自对参与交易的节点给予许可,主节点用于对其他节点广播区块;区块管理是对每个区块数据的管理,即节点将每次请求所需存储的数据存入对应的通道中,不同数据对应不同通道;一致性管理包括建立区块、发送区块、区块投票,其中区块投票采用拜占庭共识协议PBFT(Practical Byzantine Fault Tolerance)[11],通过PBFT共识机制使所有的诚实节点达成一致。
智能合约层包括航班运行流程中不同业务的合约条款。该层提供建立合约的环境,并由相关参与者进行合法性和正确性验证,最后部署在区块链系统中。
应用层是基于区块链技术的应用系统,且根据数据层、区块链服务层和智能合约层实现,比如基于以太坊的旅客积分优惠系统、旅客行李跟踪系统、基于超级账本[11]的航班信息共享系统等。
通过对民航业务需求分析,结合区块链网络节点,得到航班信息共享链的网络结构如图2所示。其网络结构由机场、地服、航空公司、空管四个参与方组成,每个参与方至少包括以下五个节点:证书颁发机构、主节点、背书节点、锚节点、记账节点。
图2 航班信息共享链网络结构图
证书颁发机构是航班协同运行保障系统的证书颁发机构节点,每个机构都配置一个证书颁发机构节点,且可根据自己的需求增加节点;背书节点负责对客户端的交易提案进行检查和背书;主节点用于链接排序服务,排序服务进行交易排序后,主节点将区块分发到所在参与方的其他节点上[12];锚节点用来与其他参与方交互,它能发现通道中所有节点,配置多个锚节点能防止单节点故障;记账节点用来接收交易区块,验证区块合格后保存到自己的账本中。以上非证书颁发机构节点除了默认是记账节点外还可担任其他一到多种角色,即某个节点可以同时是记账节点和背书节点,也可以同时是记账节点、背书节点、主节点、锚节点。
以地服工作人员存储目标撤轮挡时间为例,说明在实际的航班信息共享链网络中各个参与方之间的数据流通过程如图3所示。
图3 地服参与者存储目标撤轮挡时间具体过程
地服存储目标撤轮挡时间具体过程为:地服工作人员向其他参与方发送存储目标撤轮挡时间请求;航空公司、空管、机场的背书节点检查其地服签名,若正确,则给该请求签名并将信息发送给地服;地服节点收到签名后,若满足背书策略则给排序节点发送签名后的存储请求;排序节点将该事件生成区块后分发给各个参与方的主节点,主节点将其分发给同一参与方的其他节点,最后完成该区块的存储。
综上,航班信息共享链的层次结构结合实际民航业务和区块链基础架构,利用区块链的特性保障航班协同运行,且其网络结构内所有参与节点都是系统的重要组成,所有数据操作过程都由每个参与者维护,能确保系统具有信任和分布式的特征。
访问事件监管机制可追溯用户访问信息,具体执行方式是:用户访问航班协同运行保障系统时,系统通过自动执行智能合约的方式将访问记录提交给区块链网络,并将访问记录形成区块,然后航班信息共享链分发该区块给每个节点。
以参与成员修改目标撤轮挡时间为例(如图4所示),当一个参与方修改目标撤轮挡时间时,节点自动保存该条执行修改的访问记录,此时其他参与方可以通过查询操作来追溯网络中的访问事件。
图4 参与成员修改目标撤轮挡时间时自动保存访问事件示例
访问事件无时无刻都在发生,若将访问信息全部存储在节点上,会存在存储量过大的问题,因此仅存储访问事件的关键要素:访问者、时间、IP地址、操作、字段,其中操作为增加、删除、查询、修改,字段为访问者访问的航班运行数据。用户访问区块数据后,访问事件将以表1形式存储在区块链中。
表1 访问事件示例
综上,当航班协同运行保障系统检测到用户对航班信息变更或访问航班运行数据时,将自动生成一个区块来保存访问事件,不仅能保障每个参与者对每个航班运行数据的每项操作都是负责任的,还能使用户对访问事件可追溯,有效监管访问事件。
在航班运行过程中,因航班运行数据项较为固定,故根据航班运行具体流程中不同保障时间段划分通道,其航班运行流程如图5所示。
图5 航班运行流程示例
首先,航班运行流程通常由进港、过站和离港三个阶段组成,为利用多通道优势减少存储空间,可按与业务流程相关的信息分别单独划分通道,故将通道划分为四大类:航班信息通道、进港航班保障通道、过站航班保障通道、离港航班保障通道。其中航班信息通道存储提前预知的航班基本信息,进港航班保障通道、过站航班保障通道、离港航班保障通道分别存储进港、过站、离港的航班运行数据。
其次,由于进港、过站、离港涉及到的航班信息并非所有参与方都能访问,且参与方所需访问信息不同,还可将进港通道、过站通道和离港通道划分为若干子通道(如图6所示)。因航班运行数据过多,图6仅给出空管、机场、航空公司、地服与部分子通道之间的关系。
图6 多通道划分
航班信息通道用于存储提前预知的航班信息,包括航班号、执行日期、计划出发时间等。该通道保存所有参与方必须知道的信息,故所有参与方都加入。
进港航班保障通道用于存储进港流程中所涉及的航班运行数据,包括进港跑道号、实际落地时间等。进港跑道号和实际落地时间都是由空管提供,仅有机场能查看,故将这些数据单独划分子通道,且仅有空管和机场能访问。
过站航班保障通道用于存储过站流程中所涉及的航班运行数据,包括配餐开始时间、配餐结束时间、摆渡车到位时间等。其中配餐开始时间、配餐结束时间由航空公司提供,仅地服需要,故仅地服和航空公司能访问。摆渡车到位时间由地服提供,航空公司后续提供的数据需参考该数据,故航空公司能访问。因仅航空公司和地服拥有配餐开始时间、配餐结束时间、摆渡车到位时间的访问权限,故将这些数据存储于同一子通道中,且仅航空公司和地服可访问。
出港航班保障通道用于存储出港流程所涉及的数据,包括计算撤轮挡时间、目标撤轮挡时间等。因仅空管、机场、地服拥有计算撤轮挡时间和目标撤轮挡时间的访问权限,故将这些数据划分到同一通道。
综上,多通道设计的划分规则是:根据参与方对航班运行数据访问的需求,相同参与方的数据项配置到相同通道中。
本实验包括四个参与方:航空公司、地服、空管、机场,实验数据为首都机场的实际航班运行数据。针对多通道设计方案和非多通道模式进行实验对比,衡量通道设计对存储空间的影响。
首先,在多通道设计方案下,分别记录每个节点分别存储航班信息、进港航班信息、过站信息、离港信息的通道容量大小;其次,对存储同类通道信息的容量求和,得到航班信息容量、进港信息容量、过站信息容量、离港信息容量;最后,记录在非多通道模式下存储相同信息的容量总和(如表2所示)。
表2 通道存储容量比较
比较多通道设计下总容量和非多通道总容量可以得出:1) 在整个航班信息共享链中存储相同数据量时,多通道模式下所有节点的存储容量总和跟非多通道设计模式比减少了46%的存储空间;2) 随着数据量线性增长,多通道模式下节省的容量也线性增加。
综上,多通道方案将航班数据在不同的信息共享域之间隔离,不仅满足了每个参与方的隐私保护需求,还缩减了节点通道数,降低了节点存储空间。
本文提出了一种基于区块链技术的航班协同运行保障系统架构,根据实际航班运行数据监管和隐私保护需求设计访问事件监管机制和多通道方案。在满足航班运行具体流程的业务需求下,不仅为保障航班协同运行提供区块链技术的架构方案,还为民航业的数据共享问题提供了新的技术思路。