徐 濤 楊 陽 劉才華
(中國民航大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)(中國民航信息技術(shù)科研基地 天津 300300)
在多方協(xié)作場景中,多采用中心化架構(gòu)設(shè)計應(yīng)用系統(tǒng)。由于缺少信任機(jī)制,每一方都需要構(gòu)建單獨的數(shù)據(jù)庫,而多個數(shù)據(jù)庫之間易存在數(shù)據(jù)差異,可能導(dǎo)致繁瑣的人工對賬和爭議[1-2]。區(qū)塊鏈技術(shù)作為一種全新的分布式賬本技術(shù),具有去中心化、開放性、不可篡改等特點[3],是解決這些問題的一種有效方法。
目前區(qū)塊鏈技術(shù)在多種場景已得到廣泛應(yīng)用[4-6],然而鮮有針對民航應(yīng)用領(lǐng)域的區(qū)塊鏈技術(shù)研究。將區(qū)塊鏈應(yīng)用于民航業(yè)有以下優(yōu)勢:區(qū)塊一經(jīng)生成便無法修改,防止航班信息被篡改;區(qū)塊鏈的數(shù)據(jù)共享分布到各個節(jié)點之間進(jìn)行,部分節(jié)點或網(wǎng)絡(luò)受到損壞時對其他節(jié)點的影響很小,保障航班信息安全共享;每個參與者都將保存區(qū)塊數(shù)據(jù),比傳統(tǒng)數(shù)據(jù)庫更易于被所有成員共同維護(hù)和監(jiān)管。
在民航領(lǐng)域的信息共享中,尚未出現(xiàn)涉及民航具體業(yè)務(wù)流程的區(qū)塊鏈應(yīng)用架構(gòu),而直接應(yīng)用區(qū)塊鏈架構(gòu)無法滿足民航有機(jī)隔離的多方參與需求:區(qū)塊鏈中的參與成員對其他用戶的訪問無感,且無法直接追溯訪問信息,難以監(jiān)管區(qū)塊訪問;區(qū)塊鏈將數(shù)據(jù)公開透明的全部存儲在每個節(jié)點上,對僅部分用戶能夠訪問的數(shù)據(jù)沒有其他的管理機(jī)制,無法滿足不同用戶對提供的航班信息隱私保護(hù)需求;直接將區(qū)塊鏈架構(gòu)應(yīng)用在航班運行數(shù)據(jù)存儲上,存在多節(jié)點信息存儲量過大的問題。因此需結(jié)合航班保障流程,設(shè)計一種在滿足民航業(yè)務(wù)需求的基礎(chǔ)上,既能保障數(shù)據(jù)的有機(jī)隔離,又能保障航班運行數(shù)據(jù)防篡改、易追溯、保護(hù)隱私的系統(tǒng)架構(gòu)。
本文結(jié)合航班協(xié)同運行保障過程中的實際運行流程,提出基于區(qū)塊鏈技術(shù)的航班協(xié)同運行保障系統(tǒng)架構(gòu),主要貢獻(xiàn)如下:(1) 將航班運行過程中的實際數(shù)據(jù)與區(qū)塊鏈技術(shù)相結(jié)合,設(shè)計應(yīng)用于民航領(lǐng)域的航班信息共享鏈架構(gòu),為實現(xiàn)航班協(xié)同運行保障系統(tǒng);(2) 設(shè)計訪問事件監(jiān)管機(jī)制,通過自動執(zhí)行智能合約的方式將訪問記錄保存到區(qū)塊鏈中,以監(jiān)管和追溯訪問事件;(3) 根據(jù)航班運行具體業(yè)務(wù)流程和不同參與方的共享需要,設(shè)計既能共享數(shù)據(jù)又能隔離數(shù)據(jù)的多通道方案。
區(qū)塊鏈?zhǔn)怯啥鄠€獨立節(jié)點組成,用來維護(hù)區(qū)塊數(shù)據(jù)的分布式數(shù)據(jù)庫系統(tǒng)[7],也可稱之為分布式去中心化賬本。區(qū)塊鏈記錄所有數(shù)據(jù)事件信息,過程透明、數(shù)據(jù)安全性高,且區(qū)塊由所有參與節(jié)點共同維護(hù),不易篡改、難偽造、可追溯。
隨著區(qū)塊鏈技術(shù)的飛速發(fā)展,涌現(xiàn)了多種應(yīng)用場景下的區(qū)塊鏈解決思路,例如:Yuan等[8]提出基于超級賬本的排放交易系統(tǒng),通過在區(qū)塊鏈中設(shè)計特定的賬本結(jié)構(gòu)和智能合約來實現(xiàn)業(yè)務(wù)邏輯;Raikwar等[9]提出基于區(qū)塊鏈的保險處理平臺,給參與者提供細(xì)粒度的訪問控制;對于車載系統(tǒng),Yang等[10]提出基于區(qū)塊鏈的車載網(wǎng)絡(luò)中的分布式信任管理系統(tǒng)。顯然,區(qū)塊鏈在各個領(lǐng)域的應(yīng)用都在逐步拓廣與加強。
在民航領(lǐng)域,國際航空電訊協(xié)會(Societe International De Telecommunications,SITA)引入?yún)^(qū)塊鏈技術(shù),利用分布式記賬技術(shù)實現(xiàn)多個企業(yè)間的數(shù)據(jù)共享;新加坡航空公司為常旅客推出一個數(shù)字錢包計劃,成為“世界上第一個基于區(qū)塊鏈的航空公司忠誠度數(shù)字錢包”。在國內(nèi),以南方航空為代表的航空公司開展了區(qū)塊鏈技術(shù)在民航業(yè)的應(yīng)用探索,建立了積分和里程兌換系統(tǒng),實現(xiàn)實時積分兌換里程功能。民航在區(qū)塊鏈上的有許多可實現(xiàn)的應(yīng)用方向,例如航班運行系統(tǒng)、行李跟蹤系統(tǒng),但仍亟待需要結(jié)合具體業(yè)務(wù)和實際應(yīng)用流程,設(shè)計應(yīng)用架構(gòu)。
航班協(xié)同運行保障是航空運輸中民航領(lǐng)域的核心業(yè)務(wù),如何打破各個參與方之間的信息壁壘又能保障數(shù)據(jù)隱私是關(guān)鍵。目前民航領(lǐng)域多采用面向機(jī)場運行的協(xié)同決策系統(tǒng)A-CDM(Airport—Collaborative Decision Making)解決信息共享問題。A-CDM系統(tǒng)是由機(jī)場主導(dǎo),航空公司、空管、地服公司共同參與的協(xié)同決策機(jī)制,核心是航班運行數(shù)據(jù)的協(xié)同共享。其中心化架構(gòu)特點使數(shù)據(jù)易引起爭議,且參與方之間的數(shù)據(jù)隱私保護(hù)需求未考慮全面。
區(qū)塊鏈可在互不了解的聯(lián)盟成員之間和沒有第三方機(jī)構(gòu)的協(xié)調(diào)下建立可靠的信任,實現(xiàn)可信的數(shù)據(jù)共享。因此,將區(qū)塊鏈技術(shù)應(yīng)用于航班協(xié)同運行保障過程中,不僅給民航業(yè)帶來新的信息共享解決思路,還能針對性地解決其信息共享問題。
航班信息共享鏈架構(gòu)是基于區(qū)塊鏈技術(shù)的航班協(xié)同運行保障系統(tǒng)應(yīng)用的基礎(chǔ)架構(gòu),其主體為航空公司、機(jī)場、空管、地服公司。該架構(gòu)在區(qū)塊鏈基礎(chǔ)架構(gòu)和區(qū)塊鏈網(wǎng)絡(luò)節(jié)點分布上進(jìn)行改進(jìn)。
結(jié)合具體航班運行數(shù)據(jù)和區(qū)塊鏈基礎(chǔ)架構(gòu),將航班信息共享鏈的層次結(jié)構(gòu)分為數(shù)據(jù)層、區(qū)塊鏈服務(wù)層、智能合約層、應(yīng)用層(如圖1所示)。
圖1 航班信息共享鏈層次結(jié)構(gòu)
數(shù)據(jù)層主要是對航班運行保障數(shù)據(jù)進(jìn)行加密、存儲為區(qū)塊、數(shù)據(jù)驗證等,包含航班號、執(zhí)行日期、計劃出發(fā)時間、到港航班停機(jī)位、進(jìn)港跑道號、實際落地時間、配餐開始時間、配餐結(jié)束時間、擺渡車到位時間、計算撤輪擋時間、目標(biāo)撤輪擋時間等信息。為滿足民航業(yè)務(wù)不同形式的數(shù)據(jù)存儲需求,摒棄傳統(tǒng)區(qū)塊鏈中以key-value形式存儲數(shù)據(jù)的LevelDB數(shù)據(jù)庫[2],使用可存儲多種數(shù)據(jù)格式的CouchDB數(shù)據(jù)庫。
區(qū)塊鏈服務(wù)層包括節(jié)點管理、區(qū)塊管理和一致性管理。節(jié)點管理包括授權(quán)許可和主節(jié)點選取,其中授權(quán)許可是參與方各自對參與交易的節(jié)點給予許可,主節(jié)點用于對其他節(jié)點廣播區(qū)塊;區(qū)塊管理是對每個區(qū)塊數(shù)據(jù)的管理,即節(jié)點將每次請求所需存儲的數(shù)據(jù)存入對應(yīng)的通道中,不同數(shù)據(jù)對應(yīng)不同通道;一致性管理包括建立區(qū)塊、發(fā)送區(qū)塊、區(qū)塊投票,其中區(qū)塊投票采用拜占庭共識協(xié)議PBFT(Practical Byzantine Fault Tolerance)[11],通過PBFT共識機(jī)制使所有的誠實節(jié)點達(dá)成一致。
智能合約層包括航班運行流程中不同業(yè)務(wù)的合約條款。該層提供建立合約的環(huán)境,并由相關(guān)參與者進(jìn)行合法性和正確性驗證,最后部署在區(qū)塊鏈系統(tǒng)中。
應(yīng)用層是基于區(qū)塊鏈技術(shù)的應(yīng)用系統(tǒng),且根據(jù)數(shù)據(jù)層、區(qū)塊鏈服務(wù)層和智能合約層實現(xiàn),比如基于以太坊的旅客積分優(yōu)惠系統(tǒng)、旅客行李跟蹤系統(tǒng)、基于超級賬本[11]的航班信息共享系統(tǒng)等。
通過對民航業(yè)務(wù)需求分析,結(jié)合區(qū)塊鏈網(wǎng)絡(luò)節(jié)點,得到航班信息共享鏈的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。其網(wǎng)絡(luò)結(jié)構(gòu)由機(jī)場、地服、航空公司、空管四個參與方組成,每個參與方至少包括以下五個節(jié)點:證書頒發(fā)機(jī)構(gòu)、主節(jié)點、背書節(jié)點、錨節(jié)點、記賬節(jié)點。
圖2 航班信息共享鏈網(wǎng)絡(luò)結(jié)構(gòu)圖
證書頒發(fā)機(jī)構(gòu)是航班協(xié)同運行保障系統(tǒng)的證書頒發(fā)機(jī)構(gòu)節(jié)點,每個機(jī)構(gòu)都配置一個證書頒發(fā)機(jī)構(gòu)節(jié)點,且可根據(jù)自己的需求增加節(jié)點;背書節(jié)點負(fù)責(zé)對客戶端的交易提案進(jìn)行檢查和背書;主節(jié)點用于鏈接排序服務(wù),排序服務(wù)進(jìn)行交易排序后,主節(jié)點將區(qū)塊分發(fā)到所在參與方的其他節(jié)點上[12];錨節(jié)點用來與其他參與方交互,它能發(fā)現(xiàn)通道中所有節(jié)點,配置多個錨節(jié)點能防止單節(jié)點故障;記賬節(jié)點用來接收交易區(qū)塊,驗證區(qū)塊合格后保存到自己的賬本中。以上非證書頒發(fā)機(jī)構(gòu)節(jié)點除了默認(rèn)是記賬節(jié)點外還可擔(dān)任其他一到多種角色,即某個節(jié)點可以同時是記賬節(jié)點和背書節(jié)點,也可以同時是記賬節(jié)點、背書節(jié)點、主節(jié)點、錨節(jié)點。
以地服工作人員存儲目標(biāo)撤輪擋時間為例,說明在實際的航班信息共享鏈網(wǎng)絡(luò)中各個參與方之間的數(shù)據(jù)流通過程如圖3所示。
圖3 地服參與者存儲目標(biāo)撤輪擋時間具體過程
地服存儲目標(biāo)撤輪擋時間具體過程為:地服工作人員向其他參與方發(fā)送存儲目標(biāo)撤輪擋時間請求;航空公司、空管、機(jī)場的背書節(jié)點檢查其地服簽名,若正確,則給該請求簽名并將信息發(fā)送給地服;地服節(jié)點收到簽名后,若滿足背書策略則給排序節(jié)點發(fā)送簽名后的存儲請求;排序節(jié)點將該事件生成區(qū)塊后分發(fā)給各個參與方的主節(jié)點,主節(jié)點將其分發(fā)給同一參與方的其他節(jié)點,最后完成該區(qū)塊的存儲。
綜上,航班信息共享鏈的層次結(jié)構(gòu)結(jié)合實際民航業(yè)務(wù)和區(qū)塊鏈基礎(chǔ)架構(gòu),利用區(qū)塊鏈的特性保障航班協(xié)同運行,且其網(wǎng)絡(luò)結(jié)構(gòu)內(nèi)所有參與節(jié)點都是系統(tǒng)的重要組成,所有數(shù)據(jù)操作過程都由每個參與者維護(hù),能確保系統(tǒng)具有信任和分布式的特征。
訪問事件監(jiān)管機(jī)制可追溯用戶訪問信息,具體執(zhí)行方式是:用戶訪問航班協(xié)同運行保障系統(tǒng)時,系統(tǒng)通過自動執(zhí)行智能合約的方式將訪問記錄提交給區(qū)塊鏈網(wǎng)絡(luò),并將訪問記錄形成區(qū)塊,然后航班信息共享鏈分發(fā)該區(qū)塊給每個節(jié)點。
以參與成員修改目標(biāo)撤輪擋時間為例(如圖4所示),當(dāng)一個參與方修改目標(biāo)撤輪擋時間時,節(jié)點自動保存該條執(zhí)行修改的訪問記錄,此時其他參與方可以通過查詢操作來追溯網(wǎng)絡(luò)中的訪問事件。
圖4 參與成員修改目標(biāo)撤輪擋時間時自動保存訪問事件示例
訪問事件無時無刻都在發(fā)生,若將訪問信息全部存儲在節(jié)點上,會存在存儲量過大的問題,因此僅存儲訪問事件的關(guān)鍵要素:訪問者、時間、IP地址、操作、字段,其中操作為增加、刪除、查詢、修改,字段為訪問者訪問的航班運行數(shù)據(jù)。用戶訪問區(qū)塊數(shù)據(jù)后,訪問事件將以表1形式存儲在區(qū)塊鏈中。
表1 訪問事件示例
綜上,當(dāng)航班協(xié)同運行保障系統(tǒng)檢測到用戶對航班信息變更或訪問航班運行數(shù)據(jù)時,將自動生成一個區(qū)塊來保存訪問事件,不僅能保障每個參與者對每個航班運行數(shù)據(jù)的每項操作都是負(fù)責(zé)任的,還能使用戶對訪問事件可追溯,有效監(jiān)管訪問事件。
在航班運行過程中,因航班運行數(shù)據(jù)項較為固定,故根據(jù)航班運行具體流程中不同保障時間段劃分通道,其航班運行流程如圖5所示。
圖5 航班運行流程示例
首先,航班運行流程通常由進(jìn)港、過站和離港三個階段組成,為利用多通道優(yōu)勢減少存儲空間,可按與業(yè)務(wù)流程相關(guān)的信息分別單獨劃分通道,故將通道劃分為四大類:航班信息通道、進(jìn)港航班保障通道、過站航班保障通道、離港航班保障通道。其中航班信息通道存儲提前預(yù)知的航班基本信息,進(jìn)港航班保障通道、過站航班保障通道、離港航班保障通道分別存儲進(jìn)港、過站、離港的航班運行數(shù)據(jù)。
其次,由于進(jìn)港、過站、離港涉及到的航班信息并非所有參與方都能訪問,且參與方所需訪問信息不同,還可將進(jìn)港通道、過站通道和離港通道劃分為若干子通道(如圖6所示)。因航班運行數(shù)據(jù)過多,圖6僅給出空管、機(jī)場、航空公司、地服與部分子通道之間的關(guān)系。
圖6 多通道劃分
航班信息通道用于存儲提前預(yù)知的航班信息,包括航班號、執(zhí)行日期、計劃出發(fā)時間等。該通道保存所有參與方必須知道的信息,故所有參與方都加入。
進(jìn)港航班保障通道用于存儲進(jìn)港流程中所涉及的航班運行數(shù)據(jù),包括進(jìn)港跑道號、實際落地時間等。進(jìn)港跑道號和實際落地時間都是由空管提供,僅有機(jī)場能查看,故將這些數(shù)據(jù)單獨劃分子通道,且僅有空管和機(jī)場能訪問。
過站航班保障通道用于存儲過站流程中所涉及的航班運行數(shù)據(jù),包括配餐開始時間、配餐結(jié)束時間、擺渡車到位時間等。其中配餐開始時間、配餐結(jié)束時間由航空公司提供,僅地服需要,故僅地服和航空公司能訪問。擺渡車到位時間由地服提供,航空公司后續(xù)提供的數(shù)據(jù)需參考該數(shù)據(jù),故航空公司能訪問。因僅航空公司和地服擁有配餐開始時間、配餐結(jié)束時間、擺渡車到位時間的訪問權(quán)限,故將這些數(shù)據(jù)存儲于同一子通道中,且僅航空公司和地服可訪問。
出港航班保障通道用于存儲出港流程所涉及的數(shù)據(jù),包括計算撤輪擋時間、目標(biāo)撤輪擋時間等。因僅空管、機(jī)場、地服擁有計算撤輪擋時間和目標(biāo)撤輪擋時間的訪問權(quán)限,故將這些數(shù)據(jù)劃分到同一通道。
綜上,多通道設(shè)計的劃分規(guī)則是:根據(jù)參與方對航班運行數(shù)據(jù)訪問的需求,相同參與方的數(shù)據(jù)項配置到相同通道中。
本實驗包括四個參與方:航空公司、地服、空管、機(jī)場,實驗數(shù)據(jù)為首都機(jī)場的實際航班運行數(shù)據(jù)。針對多通道設(shè)計方案和非多通道模式進(jìn)行實驗對比,衡量通道設(shè)計對存儲空間的影響。
首先,在多通道設(shè)計方案下,分別記錄每個節(jié)點分別存儲航班信息、進(jìn)港航班信息、過站信息、離港信息的通道容量大?。黄浯?,對存儲同類通道信息的容量求和,得到航班信息容量、進(jìn)港信息容量、過站信息容量、離港信息容量;最后,記錄在非多通道模式下存儲相同信息的容量總和(如表2所示)。
表2 通道存儲容量比較
比較多通道設(shè)計下總?cè)萘亢头嵌嗤ǖ揽側(cè)萘靠梢缘贸觯?) 在整個航班信息共享鏈中存儲相同數(shù)據(jù)量時,多通道模式下所有節(jié)點的存儲容量總和跟非多通道設(shè)計模式比減少了46%的存儲空間;2) 隨著數(shù)據(jù)量線性增長,多通道模式下節(jié)省的容量也線性增加。
綜上,多通道方案將航班數(shù)據(jù)在不同的信息共享域之間隔離,不僅滿足了每個參與方的隱私保護(hù)需求,還縮減了節(jié)點通道數(shù),降低了節(jié)點存儲空間。
本文提出了一種基于區(qū)塊鏈技術(shù)的航班協(xié)同運行保障系統(tǒng)架構(gòu),根據(jù)實際航班運行數(shù)據(jù)監(jiān)管和隱私保護(hù)需求設(shè)計訪問事件監(jiān)管機(jī)制和多通道方案。在滿足航班運行具體流程的業(yè)務(wù)需求下,不僅為保障航班協(xié)同運行提供區(qū)塊鏈技術(shù)的架構(gòu)方案,還為民航業(yè)的數(shù)據(jù)共享問題提供了新的技術(shù)思路。