李 強,彭 勇
(中國人民解放軍66350 部隊,河北保定 071000)
飛機是一個復雜的系統,成千上萬個零部件協同工作才能確保飛行安全。隨著現代化程度越來越高,分工越來越細,各個部門的協作越來越廣泛。鑒于當前飛機每飛行1 h 都會生成大量數據的情況,確保如此復雜系統的維修過程質量是一項挑戰。為了滿足當前的質量要求,有必要利用新技術改進航空維修記錄的存儲方式。真正的革命不是計算機系統的擴展,而是存儲、使用和分析數據的方式。在航空工業中,更好的維修記錄數據不僅有助于商業決策,而且有助于提高安全性。只有在發布證明維修工作已完成的文件后,飛機才被視為適航。目前,這些文件以實物形式保存,存在記錄錯誤、證據搜集困難和缺乏透明度等問題。通過全面準確地了解整個維護過程及其對航空法規和維修規程的執行情況,可以采取針對性措施減少計劃外停機時間。
區塊鏈是一種前沿技術,在未來一段時間內可能會顛覆許多行業的商業運作模式,也會對航空業產生重大影響。維護過程涉及到諸如基層維護、部件供應商或專業第三方等各方。準確的維護記錄對于飛機的適航性至關重要,可以通過使用分散的數據庫(如區塊鏈)來實現。本文在航空維修數據存儲領域引入區塊鏈技術,為確保飛行安全提供一種切實可行的實用解決方案。
區塊鏈技術最初是為加密貨幣交易開發的,但其應用遠不止于此。區塊鏈是私人或公共網絡成員之間的分布式數據庫。沒有一個中央機構負責數據存儲管理。任何數據交易都是基于先前所有參與者都接受的共識協議進行的。它產生了一個由無數相互連接的區塊組成的安全數字賬本。每個數據塊通過加密哈希與前一個數據塊連接,形成可靠的按時間順序排列的記錄鏈,如圖1 所示。每個塊存儲前一個塊的散列,確保任意兩個連續塊之間的連接。結果數據庫是不可修改的,這意味著它不能被逆轉或篡改[1]。

圖1 區塊之間的連接
共識協議的核心是一種算法,它確保每個交換的數據都經過所有成員的驗證。區塊鏈是通過創建具有多層安全性的準確且分散的分類賬來建立信任。每個區塊的數字簽名是區塊鏈最重要的特征之一,其中包括使用加密哈希。哈希就像數字文檔的指紋。區塊鏈技術使用安全哈希算法,最常見的算法就是SHA256,它可以生成唯一的單向哈希,非常有用。這意味著不可能逆轉加密過程并返回原始文檔。此外,SHA256 滿足雪崩效應屬性,即如果需要加密的文件中只有一位發生更改,算法將觸發一系列更改,新生成的哈希將與未更改文檔的哈希完全不同。使區塊鏈技術強大的另一個安全層是“工作證明”概念[2]。只有在解決了計算難題后,才能向鏈中添加新的區塊。此外,還需執行區塊鏈有效性檢查來驗證添加的區塊的正確性。
研究探索一項新技術給經濟社會發展帶來的巨大效益,對于人們接受新技術是至關重要的。航空維修記錄中使用區塊鏈技術具有如下主要優勢[3]。
航空維修記錄在飛機的整個壽命周期中都很有價值。未來的維護任務是基于飛機歷史數據來組織的。過去記錄中的錯誤將導致未來更多的錯誤,就像雪崩一樣。錯誤的維護記錄會對飛機履歷文件的完整性產生負面影響。區塊鏈提供了一個安全的賬本,其中包含的數據不會被可擴展的硬件設施所破壞。
飛機維護記錄很復雜,涉及許多紙質文件和電子文件,存儲在不同的位置。有了區塊鏈技術,工程師、技術人員和管理人員可以在幾秒內輕松訪問公共或私人數據庫中的信息。
跟蹤飛機運行和維護活動的進程是一項具有挑戰性的任務。在區塊鏈中記錄飛機數據將為參與者創造一個數字環境,將非結構化、復雜的數據轉換為結構化、易于理解的信息。在進行調查或審計時,很容易提取相關和準確的信息。
分散的航空網絡將由各方組成,包括航空管理局和其他確保飛機正常運行的所有業務參與者。共享飛機記錄將增加維護和運營的透明度。這將迫使參與者改進自身的活動,千方百計提供高質量的服務,進而帶來更安全的飛行和獲得更多的客戶。在網絡上共享數據是建立信任的關鍵因素,根據共識協議對敏感信息進行保護,每個成員根據自己的角色只能獲得特定的信息。
區塊鏈系統最重要的特征之一是不可變屬性。一旦添加了有效的信息區塊,就不能對其進行更改。準確的數據庫要有結構化、精確的、按時間順序排列的和完整的數據,以便能夠開展不同類型的分析。區塊鏈技術可以在這一方面發揮重要作用。
無論從短期還是長遠來看,提高企業的效益和獲得客戶的信任都是行之有效的業務策略。在航空領域,區塊鏈技術可以擴大許多業務的規模,并將整個行業提升到一個新的水平。飛行記錄、維護任務、部件更換歷史記錄、故障、維修服務通報、適航指令等可以存儲在公共或私人區塊鏈中[4-6]。
對于航空業參與者而言,共享數據是互利共贏的。共享數據可以提高網絡信息的價值,也可獲得有價值信息數據。在航空業部署分散系統可能有以下參與者:制造商(Original Equipment Manufacturer,OEM)、航空公司、維護、維修和大修(Maintenance Repair and Overhaul,MRO)或專業第三方、航空管理局(Civil Aviation Authority,CAA)、零件供應商。所有這些成員都可以相互交互(表1)。

表1 參與者之間的互動
因為“智能合約”存儲在區塊中,區塊鏈中所有語言腳本都是可執行的。這些數字合同就像是負責處理操作/數據事務的可信第三方。但是,它不是參與第三方,而是分布在網絡中的一段代碼,可以自動執行某些任務。這些程序不是人為控制的,而是由網絡中所有成員事先擬定智能合約中的條款和條件。
考慮區塊鏈網絡中智能合約應用的示例:某個型號的飛機必須每飛行200 h 必須進行某一項目的維護檢查。飛行和維護記錄都存儲在區塊鏈中。如果及時進行維護檢查,飛機狀態將保持“完好可飛”,否則其狀態將變為“地面定期維護”。自動執行的邏輯操作將被編碼在智能合約中,任何人都無法更改。這項措施將防止飛機在維修任務期間執行飛行任務。
選擇區塊鏈解決方案似乎增加了成本,但對航空公司、制造商以及乘客來說都是益處頗多。鑒于空中新飛機的數量呈指數級增長,獲得客戶的信任是航空公司一個持續的目標。使用區塊鏈技術方案的公司將更好地跟蹤其流程,改進其活動,并為其客戶提供更可靠的服務。因此,安全事故的數量將減少,而收入將大幅增長。
創建區塊鏈應用程序的方法包括以下步驟:
(1)第一步是使用Spyder 軟件(可通過Anaconda 平臺獲得)設置Python 開發環境。
(2)第二步是組織文件結構,包括:①3 個python 文件,每個節點對應一個腳本,對應于網絡中涉及的各方。每個腳本僅通過運行應用程序的端口不同于其他腳本;②包含節點地址列表的json 文件;③1 個json 文件,包含5 個關鍵元素(“FlightHours”“Landings”“AircraftEfficiencyStatus”“StartMaintenanceTask”“End-MaintenanceTask”),每次在區塊鏈中記錄飛機事件時都需要這些元素。當前軟件是為2 個飛機事件開發的:①飛行事件,指飛機剛剛完成一次飛行,其壽命周期的一些相關信息可添加到區塊鏈中;②維修事件,指飛機剛剛開始或結束維修任務。
(3)第三步是開發具有以下結構的主腳本:①導入必要的庫;②構建區塊鏈類;③創建web 應用程序;④分散區塊鏈;⑤運行應用程序和結果。
在基于面向對象編程(Object Oriented Programming,OOP)概念創建計算機程序的過程中構建區塊鏈類。為了定義執行區塊鏈類時應該發生什么,重寫了構造函數來初始化對象的狀態。因此,注冊了若干實例的屬性,如未來塊的空列表、未來飛機事件的空列表和網絡節點的空列表。此外,在構造函數中稱為“create_block”函數,負責創建創世紀塊。
構造函數中調用的“create_block”函數定義如下:該函數有兩個參數:nonce,這是一個先前通過解決加密難題確定的數字,以及前一個塊的哈希值。該函數獲取所有信息:當前索引、前一塊的哈希、預定的nonce 和飛機事件列表,將它們轉換并連接成一個字符串,在“Haslib”庫中的SHA256 加密哈希函數的幫助下對其進行編碼并將其轉換為唯一的十六進制哈希,這樣就創建了每個塊的哈希值(圖2)。

圖2 創建塊進程
區塊應當按照以下格式返回(圖3)。區塊鏈中的主要安全層之一是通過將前一塊的哈希存儲在當前塊中,從而提供任意2 個連續塊之間的連接。

圖3 區塊的格式
如上所述,區塊鏈系統包括所謂的“工作證明”以防止攻擊,它包括解決計算難題。這個過程也被稱為“挖礦”。
在開發的區塊鏈中,工作證明函數將前一個區塊作為參數。然后,在“while”循環中,nonce 與索引、前一個塊的哈希和飛機事件列表放在一起,并生成十六進制哈希,就像在“create_block”函數中一樣。為了驗證nonce,得到的十六進制哈希必須以3 個0 開始。否則,迭代將繼續,nonce 將遞增,直到滿足條件為止。目標是在多次迭代后找出正確的“nonce”,它將對應于一個前3 位為0 的哈希值。此外,還定義了一個“is_chain_valid”函數,以便在鏈中循環并驗證當前塊的上一個哈希值是否等于上一個塊的哈希值。除此驗證外,該函數還將檢查每個塊的哈希值,以確保它以3 個0 開始,作為區塊鏈一致性協議的一部分。
區塊鏈類中的另一個重要方法是“add_aircraftEvent”函數,該函數包含5 個參數:“FlightHours”“Landings”“AircraftEfficiencyStatus”“StartMaintenanceTask”“EndMaintenanceTask”(圖4)。此函數旨在收集用戶輸入,處理并將其附加到AircraftEvents 列表中,然后一起添加到未來塊中。

圖4 飛機事件列表格式
一方面,目的是在跟蹤飛機壽命的過程中獲得兩個最相關的參數:飛行小時數和起落次數。顯然,在實際產品區塊鏈應用中應收集更多參數,以便更好地跟蹤飛機使用情況。另一方面,飛機的壽命也受到維修方式的影響。在航空工業中,準確的時間線維修記錄是至關重要的。為此,又收集了2 個參數。當用戶開始維修操作時,將使用“StartMaintenanceTask”字段添加到飛機事件列表中。類似的,結束維護操作時,將通過“EndMaintenanceTask”字段創建一個新事件來完成維修記錄。第五個參數表示飛機狀態(有效/無效)。
區塊鏈類開發的下一個核心是包含共識算法,這是一種可確保所有節點在任何時候都包含相同鏈的算法。每當添加新塊時,分散網絡中的所有其他節點都將使用相同的鏈進行更新。這是區塊鏈應用的基本原則之一。共識函數將在分散網絡中的所有節點之間循環,檢查每條鏈,找出最長的鏈,并在包含比最長鏈短的鏈的任何節點中,用最長的鏈替換該鏈。
在航空領域,數據量呈指數級增長,細節可以決定飛行的安全。區塊鏈技術是航空業的解決方案,將徹底改變確保資產可追溯性的方式。航空業引入區塊鏈技術,不僅可以提高安全性,也是建立一種新的商業模式的嘗試,讓航空公司獲得客戶更多的信任同時也增強透明度。因此,傳統的數據管理方法不再是航空業的最優選擇。本文介紹了一種利用區塊鏈技術存儲和管理航空維修記錄的新方法。分析了區塊鏈技術對可能涉及的組織的影響。作為概念證明,搭建使用Python 編程語言開發區塊鏈的架構,以展示區塊鏈功能及其在航空行業的實用性。