基於區塊鏈的航空器維修任務發佈系統研究(論文,附完整代碼)

基於區塊鏈的航空器維修任務發佈系統研究


摘要:民航是國家重要戰略產業。由於民航業務的隱私和可靠性,近年來各項民航服務系統一直蓬勃發展。其中航空器維修系統是現代民航體系重要的一部分。
特別是,基於密碼學的數字貨幣系統比特幣對個人交易高度公開透明。換句話說,任何人都可以通過區塊鏈訪問交易內容。另外,就匿名交易而言,比特幣的交易是難以追查的。
由於比特幣地址的假名和區塊鏈的安全性,這與部分民航業務要求相一致。本文利用環形簽名算法提出了一種基於區塊鏈的航空器維修任務發佈協議。這些要求可以滿足信息安全,個人可驗證性,資格,完整性,唯一性,和魯棒性。
爲了證明協議的可行性。該設計通過PHP和JavaScript編程語言實現了一個精細的航空器維修任務發佈軟件。

關鍵字:民航;航空器;維修;區塊鏈;

Blockchain-Based Aircraft Maintenance Task Release System

Abstract:Civil aviation is an important national strategic industry. Due to the privacy and reliability of the civil aviation business, various civil aviation service systems have been flourishing in recent years. The aircraft maintenance system is an important part of the modern civil aviation system.
In particular, Bitcoin, a cryptographic-based digital currency system, is highly transparent to individual transactions. In other words, anyone can access transaction content via a blockchain. In addition, Bitcoin transactions are difficult to track for anonymous transactions.
Due to the pseudonym of the Bitcoin address and the security of the blockchain, this is consistent with the requirements of some civil aviation businesses. In this paper, a blockchain-based aircraft maintenance task release protocol is proposed using the ring signature algorithm. These requirements can satisfy information security, personal verifiability, eligibility, integrity, uniqueness, and robustness.
In order to prove the feasibility of the agreement. The design implements a sophisticated aircraft maintenance task release software through the PHP and JavaScript programming languages.

Keywords:Civil Aviation; Aircraft; Maintenance; Blockchain;

  1. 引言
    1.1研究背景
    機務維修是民航業可持續健康發展的基石,是保持和提高航空器安全運行的必要條件。隨着我國民航業的發展和航空公司機隊規模迅速擴大,機務維修人員工作任務和壓力正在持續加大,機務維修不安全事件發生的起數也在逐年攀升。統計資料顯示,50%的航班延誤,50%的航班取消均與機務維修不安全事件有關。機務維修活動是複雜的系統工程,涉及到人員、設備工具、生產環境、自然環境和組織管理等諸多相互影響的因素,其錯綜複雜關係決定了維修不安全事件具有多因素耦合特徵。因此,在分析機務維修不安全事件發生機制時,需要從複雜系統耦合特性上進行探索,以便科學有效控制或規避不安全事件發生。
    機務維修生產控制系統是基於計算機軟件技術的軟件系統,自計算機誕生起就得到人們的重視。該系統支持航空器製造商,航空公司及維修廠商的的全功能維修生產控制管理,對整個操作進行記錄和統計。與傳統維修生產控制相比,軟件系統是一個更加經濟的體系,可以提高航空企業維修效率和成果。
    機務維修生產控制系統主要依靠互聯網平臺。軟件系統的關鍵挑戰是它可能導致的重大安全風險。爲了降低風險,在過去40年中,已經廣泛提出了與授權、入侵檢測系統、無線傳感網、異常檢測、防火牆、密碼術等有關的各種保障措施及協議。此外,已發佈的協議還實現了多種技術,如盲簽名,環簽名,同態加密,混合網絡,零知識證明等。特別是數字貨幣的應用現在已經逐漸成熟起來。
    基於參與者的共同安全需求,本文提出了基於區塊鏈的協議,該協議與機務維修生產控制系統安全,可驗證性,合格性,完整性,唯一性,和魯棒性的優先級相關聯。
    一個航空器維修區塊鏈軟件也被用來驗證這個協議的可行性,通過實現一個真實的維修計劃,任務發佈網站,允許員工接收維修任務和查看結果。
    1.2維修生產控制系統
    1.2.1相關工作
    國外典型航空公司機務維修企業大多使用企業資源計劃系統(ERP)。通過ERP系統把航空維修中的工程技術管理、維修生產管理、質量控制管理、航材管理、人力資源管理和財務管理等信息集成起來,從而實現信息的高度共享,能使航空公司在擁有幾百架飛機、多機種和跨地區的大範圍營運時,機務維修仍能夠運作自如,確保了飛行安全,並且還使公司的生產效率和管理水平得到了大大提高。
    多年前,我國各航空公司的決策層已經看到了企業信息化的巨大經濟效益和社會效益,重視信息技術在航空集團的應用和發展,積極開展企業信息化建設,在機務維修系統中進行了卓有成效的實踐。
    1998年4月份,“西南航空飛機維修工程系統”正式立項並組建領導小組和項目組,開始系統建設工作。該系統的建設,最終選擇了在引進瑞典INTENTIA軟件公司的航空版ERP產品MOVEX AEMation的基礎上進行二次開發的方案,這是國內首次在航空公司飛機維修業務領域實施ERP。2003年通過一期驗收,在立項初期提出的部分問題得到了解決,遺留問題將通過後續的二期建設得到全面解決。
    2002年9月4日,在民航總局規劃科技司的主持下,由清華大學、北京航空航天大學的教授和民航總局航安辦、適航司及各航空公司的專家們組成鑑定委員會,對由民航總局航空安全技術中心開發的中國新華航空公司機務維修信息系統進行了技術鑑定。該系統被認爲是當時國內第一傢俱有自主知識產權的機務維修信息系統。
    從上世紀九十年代中期開始,中國南方航空公司非常重視信息化建設。公司在1996年引進了具有維修生產管理、附件管理、航材管理等功能的管理信息系統(計劃管理I),在1998年至2002年,投資建設具有資料數字化模塊、工作流程標準化模塊、工卡/工作包自動化功能模塊、維修方案管理功能模塊、適航管理模塊等功能的飛機維修標準數字化管理系統(TDMS)。2000年至2002年,公司研發了具有自主知識產權的飛機遠程診斷實時跟蹤系統(ACRDRTS)。
    2003年,南方航空公司組織近30人的隊伍與美國優利公司共同開發機務航材管理系統,形成南航機務工程管理、維修、維修記錄的存貯的信息化管理系統。並從2005年自主研發了維修工程信息系統,到2010年自主研發了機務綜合信息管理系統,此係統功能包括機隊構型、飛機構型、在機部件清單、飛行時間、航線故障、拆換件、EO管理、維修方案管理、定檢組包、MEL管理、保留項目、航材計劃管理等。
    1.2.2相關軟件
    IBM公司,其MAXIMO產品(原屬於MRO公司,於2006年與IBM公司合併)以工單的創建、審批、執行、關閉爲主線,合理、優化地安排相關的人、財、物資源,將傳統的被動檢修轉變爲積極主動的預防性維修,與實時數據採集系統集成,可以實現預測性維修。通過跟蹤記錄企業全過程的維護歷史活動,將維修人員的個人知識轉化爲企業範圍的智力資本。集成的工作流與業務流程配置功能,使得用戶可以方便地進行系統的授權管理和應用的客戶化改造工作。東航、上航曾引進其航材管理等模塊。
    Sabre公司,其Mx Control系統結合維修控制、工程管理和飛行控制,根據每天收集的飛行小時和循環數,自動化計算維修需求。用戶包括大型航空公司(美國西部航空)和較小型航空公司(如加勒比海太陽航空公司)。而東航曾引進其AOC系統和Air Flite系統來進行航線規劃和運行控制。
    Sap公司,其機務管理系統包含航材管理模塊、維修管理模塊、工程管理模塊、質量管理模塊等,實現飛機及部附件整個生命週期的監控,保證飛機的可適航性。國航從2005年起陸續引起其部分模塊進行機務維修的生產管理。
    但是這一些國外公司的機務產品,據調查,在目前應用中並沒有達到預期的效果。
    市場環境差別明顯國內航空市場受到航空管理當局的嚴格控制,維修程序手冊都需要經過民航局的審批。而對於如東航、南航等國內大航空公司來說,其分子公司遍佈全中國,涉及程序審批的民航局也有多個,如華東民航局、華北民航局、西南民航局等,制定的程序流程也可能有差異,同一家航空公司名下的分子公司在使用同一套系統時,管理流程也有可能不一致,因此國外產品提供的固定流程往往無法在現實中滿足。
    單上海地區機務現正在使用的機務維修信息管理系統達十幾個之多,由於各系統開發相對分散、獨立存在、操作不統一,互相關聯程度較差,很多數據不能共享,導致數據繁雜、工作流程不暢、工作效率低、維護難度加大、維護成本過高,並且許多業務方面的需求還無法滿足。對內部系統的使用者來說,各不相同的顯示頁面以及複雜繁瑣的操作指令,不僅會降低處理業務的效率、加大了操作失誤的可能性,也在一定程度上提高了培訓、監控等方面的成本,並且不利於統計數據進而有效分析。而其它分子公司不光存在以上問題,更重要的是既要使用本地的老系統,又要使用上海總部的系統,致使使用人員的工作量增大,給工作帶來很大的不便。
    總體來說,目前機務系統存在以下問題:
    1)系統負荷接近極限。
    由於各分子公司都在使用上海現有的系統,致使系統用戶人數大幅增加,業務數據量也隨之劇增,系統無力承載,故障頻現,系統一度接近崩潰邊緣。
    2)系統功能亟待加強。
    當前使用的核心繫統已運行近十年,由於管理模式和工作流程的改變,致使老舊系統無法滿足目前和未來工作的需要,尤其是維修計劃控制功能無法實現。
    3)系統數據共享困難。
    由於各系統開發相對分散、獨立存在,系統之間的關聯度較差,致使數據不能有效的共享,並且不利於統計數據,從而進行有效分析。
    4)系統操作紛繁複雜。
    由於現行使用的系統比較多,使用者在使用時需要登錄不同的系統,各不相同的顯示頁面以及複雜的操作指令,不僅會降低處理業務的效率、加大了操作失誤的可能性,也在一定程度上提高了培訓、維護等方面的成本。
    通過先進的機務維修信息管理平臺提高資源的使用效率、減少重複投資、降低維修成本、合理配置資源、提高工作效率,充分發揮規模優勢。
    1.3區塊鏈
    1.3.1介紹
    2008年,比特幣S.Nakamoto的創始人發表了一篇文章,指定一個基於對等網絡的加密貨幣系統。比特幣改變了現金支付系統的傳統方式。隨着比特幣的發展,區塊鏈技術引起了人們的關注。區塊鏈是公共分類帳,所有個人都可以將最新的分類帳同步到本地,並且他們沒有權限篡改公共分類帳的內容。爲了區分各種區塊鏈,有兩種區塊鏈的分類。一個是根據網絡節點對驗證過程的要求分類的。
    •無權區塊鏈:在驗證過程中不需要中央服務或權限進行計算。通常,這個計算過程發生在任何人的設備上。
    •允許區塊鏈:有一箇中央網絡用於確認驗證節點。
    另一個是通過區塊鏈的宣傳進行分類的。
    •公開區塊鏈:世界上任何人都可以閱讀,下載,廣播區塊鏈交易。
    •私人區塊鏈:區塊鏈只屬於個人,政府或非公開組織。
    近年來,比特幣和以太坊越來越受歡迎。他們都是無許可的公共區塊鏈。
    對於比特幣,它有2個子網絡,比特幣網絡和測試網絡。測試網是比特幣網絡的測試環境。在這個網絡中,硬幣沒有任何價值。它可以自由使用並從Faucet(水龍頭)獲得測試硬幣。
    以太坊是一種類似比特幣的數字貨幣。它也是一套完整的分散式應用平臺。在使用以太坊進行數字貨幣交易時,任何人都可以在以太坊上發佈和使用分散的應用程序。以太坊的優勢在於它爲分散式應用程序開發和部署提供了完整的工具鏈。通過使用智能合約,它使基於塊鏈的應用程序開發非常方便。
    1.3.2 特點
    自區塊鏈誕生以來,區塊鏈具有分權,分散信任,共同維護,數據可靠性,隱私保護等特性。它受到了前所未有的關注,其發展非常迅速。
    •分散化:區塊鏈分散。沒有中央計算設備來存儲交易分類賬。區塊鏈的每個節點都存儲相同的副本。
    •很難僞造:由於其分散性,每個區塊都應該分佈到世界各地的每個節點。
    •可跟蹤交易:區塊鏈中的每個交易都是開放且透明的。每個交易細節都包含發件人地址和收件人地址,任何人都可以跟蹤交易。
    在本文中,我們提出了一個基於比特幣的協議。對於每筆交易,每個人都可以從區塊鏈下載信息。在比特幣中,每個比特幣地址與其個人身份無關。因此區塊鏈對任何人都是匿名的,並且具有透明交易,這對於使用此協議的維修任務下發屬性具有相同的要求。
    1.3.3實現機制
    區塊鏈由一組基於點對點網絡的節點組成。對於每個節點,它通過執行一致性算法來維護數據的一致性。爲了指定區塊鏈的機制,比特幣是區塊鏈的典型代表。要指定區塊鏈,我們應該有一個區塊的基本概念。該塊由塊頭和塊的主要部分組成,包括序列化的事務原始塊。事務任務管理包含唯一標識符(TxID),它是事務的散列值。每個塊上所有事務的標識值構成Merkel樹的每個葉節點。
在這裏插入圖片描述
在這裏插入圖片描述
圖1.1 環指令

通過將前一個塊TxID存儲到下一個塊中,所有節點都與塊頭鏈接,該塊頭也稱爲區塊鏈。在創建新的區塊時,區塊鏈將使用一致性算法來創建新的交易唯一標識符。一致性算法生成一個新塊,通過計算塊頭的散列值生成一個新塊。在大多數節點接受新塊之後,它將被添加到區塊鏈中。
1.4論文結構
本論文共5章。
第1章介紹了相關技術的問題和文獻回顧。
第2章是問題的方法論。本章詳細介紹了電子任務接收方案的特性和要求,以及協議中使用的其他技術或算法。
第3章是本文的重中之重。提議的協議表明了實施的整個設計方案。
第4章是協議的實現。通過創建名爲航空維修區塊鏈的應用程序,可以測試任何屬性。本章是用軟件工程的方法編寫的。
第5章是提議的協議和實施的結論。這部分討論了未來的工作。

  1. 方法
    2.1 維修生產控制系統屬性
    近30年來,越來越多的維修生產控制系統已經發布。維修生產控制系統的主要特性包括以下幾點。
    安全:對訪問系統的用戶進行授權管理,保證數據不被篡改。
    可靠:只有合法員工纔可以參加接收任務活動。
    及時:維修任務及時下發到各個員工。
    準確性/完整性:每項任務都應該正確記錄。
    提高工作效率:數據區塊可共享,各個區域的維修單位,各個系統成體系。
    減少人爲差錯:任何人在任務結束時都不能影響或修改最終的任務完成結果。
    公平:沒有任何東西可以影響任務接收的結果。如果系統泄漏了接收結果,則該事件可能被定義爲不公平。
    2.2區塊鏈
    2.2.1生成比特幣地址
    要在區塊鏈上廣播消息,參與者需要一個比特幣地址。通過使用SHA256,RIPEMD160哈希和Base58編碼,可以生成比特幣地址。
    1.通過橢圓曲線數字簽名算法生成私鑰,通常命名爲secp256k1。比特幣私鑰的大小是256位。
    2.使用DER格式從比特幣私鑰(x,y)生成比特幣公鑰。
    3.通過生成SHA256和RIPEMD160算法將比特幣公鑰作爲PKhash160散列到hash160中。
    4.根據表2.1在PKhash160的頭部添加版本的前綴。定義公鑰指紋的中間散列值=prefix+PKhash160,它也被命名爲指紋。
    5.定義Sha256(Sha256(指紋))作爲校驗位d。在指紋末尾添加d。
    6.通過使用Base65編碼算法編碼指紋+d生成最終的比特幣地址。定義地址=Base65(指紋+d)作爲最終的比特幣地址。
區塊 前綴
BITCOIN ‘00’
TEXTNET ‘08’

表2.1 不同區塊的版本前綴
2.2.2生成比特幣地址
討論區塊鏈的OP返回。我們應該首先考慮交易。對於比特幣上的每筆交易,它包含輸入腳本和輸出腳本,如圖2.2所示。該圖顯示了交易參與者Alice和Bob之間的交易。下面是Alice和Bob之間交易的例子,在testnet的區塊鏈上引用了“haha”。將Alice的比特幣地址定義爲mxLqfJvTTEojWVZVTanEcXs1kXaBkdoqfX,並將Bob的比特幣地址定義爲n4Kc1AwFos3aZRvD3Tc9imzeMpm8E9DEUr。
Alice用一個事務的輸入創建事務Y.爲了確認區塊鏈中的交易Y,輸入腳本[0]應該引用交易X.交易Y的輸出腳本包含2個部分。一個是交易Y的簽名,由Alice SK的私鑰簽名。另一個是OP RETURN代碼,它是“haha”的參考。OP RETURN是一個沒有循環的基於堆棧的腳本。由於它是在比特幣協議中定義的,它可以在交易中存儲多達80個字節。鎖定時間t意味着事務Y不應該放在時間t之前。
爲了在t之前確認此交易,交易創建者Alice應向採礦者支付採礦費。礦工可以使用PoW(Proof of Work)算法找到包含Verifypk(σ)的塊。最後,鮑勃將收到參考“haha”的錢。
此外,爲了說明這個例子,這個例子已經在testnet的網絡中進行過。細節可以列在表中。
從表2.2,我們可以看到output-script[0]表示OP RETURN是1634230632.要解碼OP RETURN,我們可以使用hex2bin()算法將其轉換爲字符。

信息 內容
交易ID 025e4fd916832c4028b1bcc446c8a41c10798fbpm49793ce245ccf700e621d4f
交易地址(輸入) mprsHi9HKpn9bH14ZZV7YC7mxdRJ6wws7r
輸入腳本(簽名) 3045022100b7a6e8aa5cd553e4c21ad68e851c140c3e87d3eefc4d0a 3045022100ae906a357c927d170f19710aca1de3c5ebcbe2c60fe9 626b24ed876d7f23fad40220354d0b0c254679817dpmc98f4fcfa 33be48pmf74c77a2e0b4db2046747cb2b3d0102ce592b293c66 88ca587dpm59780acca8da8215d4d3261db338e9pm39fc46ae19
輸出腳本 OP RETURN 1634230632
交易地址(輸出) n4Kc1AwFos3aZRvD3Tc9imzeMpm8E9DEUr
交易地址(輸入) mprsHi9HKpn9bH14ZZV7YC7mxdRJ6wws7r
輸出腳本(公鑰哈希) OP DUP OP HASH160 fa25611aeed75a33a9fc8cc83d2039059c37d837 OP EQUALVERIFY OP CHECKSIG
最終驗證結果數據 0100000001cfbd41e842b9f6752b8a76e4803ded991bdbf0c1ec193e5add bfc8467c1b6d1c010000006b483045022100ae906a357c927d170f19710a ca1de3c5ebcbe2c60fe9626b24ed876d7f23fad40220354d0b0c25467981 7dpmc98f4fcfa33be48pmf74c77a2e0b4db2046747cb2b3d012102ce592b 293c6688ca587dpm59780acca8da8215d4d3261db338e9pm39fc46ae19ffffffff020000000000000000066a046861686120e0b201000000001976a9 14fa25611aeed75a33a9fc8cc83d2039059c37d83788ac00000000

表2.2 比特幣測試網交易的一個例子
現在,有了簽名,公鑰和腳本,就可以運行這個腳本來驗證交易是否有效。
在這個例子中,通過解碼OP RETURN 1634230632,我們可以得到消息“haha”。OP RETURN可以存儲消息。在這個實現中,我們用它來存儲環簽名和維修計劃ID。
3. 需求分析
3.1系統的業務分析
提出的協議包括三個實體:員工,任務管理,計劃管理和比特幣地址池。
員工:員工應該是一套名單。對於每一個相關部門員工都可以被提交爲維修任務接收方。
任務:任務可以是一組列表。
任務管理機關:員工應該在接收任務前進行登記,並將他們的公共密鑰(PKI)和比特幣地址保存到這個系統中,系統將其傳送到數據庫。對於任務管理,它爲員工提供任務。
計劃管理機關:計劃管理負責清點計劃處理情況。計劃管理有自己的比特幣地址。當計劃發佈結束時,計劃管理應開始處理並將結果轉送給任務分發系統。
比特幣地址池:比特幣地址池是使用ECC算法隨機地從計劃管理系統生成的所有比特幣地址的列表。每個地址的私鑰將存儲在計劃管理系統中。
3.2系統需求分析
3.2.1大綱
整個協議開發由七個連續階段組成,每個階段由不同的參與者執行。
準備階段:首先,計劃管理應該首先建立一個新的任務接收項目,然後將比特幣地址作爲其私鑰存儲到計劃管理系統中。
第一階段註冊階段:由任務管理進行人員註冊。員工和有維修資格在認證後進行任務接收。隨機註冊碼將通過電子郵件發送給參與者作爲任務管理的鏈接。
第二次註冊階段:一旦參與者點擊任務管理髮送的隨機註冊碼鏈接,可以使用密鑰對工具或本地RSA工具生成公鑰和私鑰。新生成的公鑰應該存儲在系統中,而私鑰可以私下保存。
發佈階段:在任務接收截止日期,員工的每一個公鑰都將在監督下收集。只要點擊了開始任務接收按鈕,任務管理就不會再接受新的請求。
接收任務階段:當員工用自己的私鑰簽署有利的維修計劃時,他們將獲得一個獨特的環形簽名,並將其傳播到區塊鏈。
理貨階段:理貨階段嚴格受監督,人們可以進入理貨頁面查看或任務接收。
驗證階段:爲了監控任務接收結果的有效性,計劃管理交易記錄在區塊鏈上公開。
3.2.2準備階段
這個階段的細節可以按照如下順序來描述。
1.計劃管理將自己的比特幣私鑰保存到系統中。
2.系統將從他的比特幣私人密鑰生成計劃管理的比特幣地址。
3.計劃管理創建一個新的任務接收項目,其任務接收ID,標題,以及該任務接收項目的描述。
4.計劃管理系統會自動生成n個比特幣地址(A1,A2…An)作爲比特幣地址池。
3.2.3第一階段註冊階段
這個階段的細節可以按照如下順序來描述。
1.任務管理覈實維修計劃人員的身份,將其姓名,個人描述並將其保存到任務管理系統中。
2.任務管理將生成並給予他的維修計劃身份。
3.任務管理驗證員工的身份並詢問員工的電子郵件地址,然後向他發送一封帶有隨機註冊碼鏈接的電子郵件作爲LKi,以避免多次註冊。
4.LKi隨機生成,與員工姓名和電子郵件地址沒有任何關係。

在這裏插入圖片描述
圖3.1擬議議定書(主要階段)

3.2.4第二次註冊階段
這個階段的細節可以按照如下順序來描述。
1.員工打開註冊鏈接LKi。
2.員工生成他的密鑰對(SKi,PKi)。
3.員工將他的公鑰PKi保存到系統中。
3.2.5發佈階段
這個階段的細節可以按照如下順序來描述。
1.在任務接收截止日期,計劃管理決定開始任務接收,這意味着公鑰已經被確認,任務管理不應該接受任何註冊請求。
2.計劃管理在他自己的比特幣賬戶中創建k BTC。
3.計劃管理支付固定數量的比特幣k/n作爲每個Ai的任務接收費用,例如0.0001 BTC。(任務接收人任務接收後,任務接收費將發回計劃管理)
3.2.6接收任務階段
這個階段的細節可以按照如下順序來描述。
1.員工選擇維修計劃他任務接收和當前任務接收ID。
2.任務管理將公鑰集(PK1,PK2,PK3…PKn)返回給選舉人。
3.選舉人使用他的私鑰SKi和所有公鑰PK將候選者TASK的簽名簽名爲σ(TASK,SKi,(PK1,PK2,PK3…PKn))。系統同時保存(σ,sha256(σ))的集合。
4.員工選擇比特幣地址Ai從比特幣地址池發佈,計劃管理將該地址的私鑰SKAi返回給員工。
5.員工支付A到E的地址A計劃管理的所有餘額以及承諾的迴歸(sha256(σ(TASK,SKi,(PK1,PK2,PK3…PKn))),TASK,Li)。
3.2.6理貨階段
這個階段的細節可以按照如下順序來描述。
1.系統自動返回所有(σ,sha256(σ))和所有公鑰PK的集合。
2.系統自動獲取計劃管理比特幣地址A計劃管理中的所有交易。
3.系統從每次交易中提取OP RETURN表單並驗證簽名σ的有效性。
4.系統統計每筆有效交易並向維修計劃添加1。
3.2.7驗證階段
這個階段的細節可以按照如下順序來描述。
1.系統自動返回所有公鑰(PK1,PK2,PK3…PKn)。
2.對於每個員工,他可以使用一組所有公鑰(PK1,PK2,PK3…PKn),環簽名σ,候選TASK來驗證他的任務接收。
3.員工可以使用交易ID來獲取區塊鏈中的承諾,以驗證簽名是否以正確的方式發佈。

  1. 實現
    4.1規格說明
    任務接收系統使用上述名爲航空器維修區塊鏈的協議進行設計。該系統將具有安全,個人驗證,資格等特性。在開發該項目時,選擇迭代和增量開發作爲軟件開發過程模型。爲了實施,系統應該考慮電子任務接收的基本模型和屬性。一般來說,允許員工和維修計劃在系統中註冊。爲了節省採礦費用,我們建議計劃管理使用testnet網絡來節省採礦費用。員工可以在系統中任務接收,任何人都可以驗證任務接收結果。政府可以分爲兩個機構,計劃發佈機構和任務創建機關。系統應具有如下模型。
    1.用戶模型是登錄的邏輯。
    2.任務管理模型是包括其API在內的任務創建的模型。
    3.計劃管理模型是包括API在內的計劃發佈模型。
    4.任務接收模式是員工登記和任務接收的模式。
    5.驗證模型是驗證環簽名的模型。
    6.理貨模型是任務接收的重要組成部分,任何人都可以實時計算來自區塊鏈的任務接收結果。
    4.2功能要求
    要建立這樣一個系統,功能和非功能需求應該建立如下:
    功能要求
    1.1頁面必須分解爲登錄頁面,計劃管理頁面,任務管理頁面,公共頁面。
    1.2服務器必須爲不同的用戶角色顯示不同的頁面。
    1.3服務器必須擁有對不同用戶角色的權限控制。
    1.4用戶角色應該分爲3個角色:員工,計劃發佈結構,任務發佈機構。
    公共頁面
    2.1服務器必須有一個公共API來公開某些內容,例如員工PK的公鑰,選舉權的比特幣地址,計劃管理以及(σ,sha256(σ))的集合。
    2.2驗證頁面必須公開並根據協議進行監督。
    2.3根據協議,統計頁面必須公開並受到監督。
    2.4任務接收頁面必須公開。
    2.5任務接收頁面必須能夠使用環簽名算法來簽署消息。
    2.6任務接收頁必須能夠與計劃管理的區塊鏈賬戶地址進行交易,以在區塊鏈上廣播消息。
    2.7驗證頁面可以從事務id輸入選擇器中獲取OP RETURN代碼。
    2.8驗證頁面可以解碼OP RETURN代碼對維修計劃和簽名的承諾。
    2.9驗證頁面必須能夠通過公共API從區塊鏈OP RETURN代碼中獲取sha256(σ)中的簽名σ。
    2.10驗證頁面必須能夠驗證環簽名σ的有效性。
    2.11驗證頁面必須能夠驗證所有公鑰的完整性。
    2.12驗證頁應該能夠驗證簽名和簽名的哈希值之間的正確性(σ,sha256(σ))。
    2.13驗證頁面可以選擇一個任務接收項目,然後重定向到相應的驗證頁面。
    2.14理貨頁面必須能夠獲取計劃管理區塊鏈賬戶的所有交易。
    2.15理貨頁面必須能夠通過公共API從區塊鏈OP RETURN代碼中獲取sha256(σ)中的簽名σ。
    2.16統計頁面可以解碼OP RETURN代碼對維修計劃和簽名的承諾。
    2.17統計頁面應該能夠驗證簽名和簽名的散列值之間的正確性(σ,sha256(σ))。
    2.18理貨頁面可以選擇一個任務接收項目,然後重定向到其相應的理貨頁面。
    2.19理貨頁面必須能夠驗證環簽名σ的有效性。
    2.20理貨頁面必須能夠實時記錄和顯示任務接收結果。
    註冊頁面
    3.1註冊頁面必須驗證鏈接代碼的有效性,如果無效,則顯示禁止頁面。
    3.2註冊頁面可以使用RSA提供密鑰對生成器,並在前端運行。
    3.3註冊頁面應該將每個員工的公鑰存入註冊中心繫統。
    3.4如果任務接收未開始,註冊頁面可以編輯公鑰。
    3.5如果員工填寫了公鑰,註冊頁面可以顯示任務接收日期。
    3.6註冊頁面可以顯示該任務接收項目的描述。
    任務管理頁面
    4.1 任務管理系統必須建立一個任務管理帳戶,用於向員工發送電子郵件。
    4.2 任務管理系統必須有一個數據庫來存儲所有的鏈接代碼。
    4.3 任務管理系統必須能夠爲維修計劃添加他的名字和描述。
    4.4 任務管理系統必須能夠編輯或刪除維修計劃。
    4.5 任務管理系統必須能夠使用隨機算法生成鏈接代碼。
    4.6 任務管理系統必須爲員工提供一個API來獲取所有維修計劃的ID,姓名和描述。
    計劃管理頁面
    5.1 計劃管理系統應該能夠創建一個任務接收項目,其標題和描述。
    5.1 計劃管理系統應該能夠編輯或刪除任務接收項目。
    5.2 計劃管理系統可以查看所有維修計劃。
    5.3 計劃管理系統必須能夠存儲計劃管理的區塊鏈賬戶私鑰。
    5.4 計劃管理系統必須能夠將計劃管理的區塊鏈賬戶私鑰轉換爲計劃管理的比特幣地址。
    5.5 計劃管理系統可以設置不同的區塊鏈網絡,比如比特幣(BTC)和比特幣測試網(TESTNET)。
    5.6 計劃管理系統必須提供一個API讓員工從比特幣地址池獲取私鑰。
    5.7 計劃管理系統必須能夠隨機地在比特幣地址池中創建n個比特幣地址及其私鑰。
    5.8 計劃管理系統必須能夠在區塊鏈網絡上進行比特幣地址池地址與其自己的比特幣地址之間的交易。
    5.9 計劃管理系統必須能夠獲取計劃管理區塊鏈賬戶的所有交易。
    非功能性要求
    6.1後端應該使用MVC框架在PHP中開發。
    6.2前端應該用Javascript開發。
    6.3任務接收頁面的響應時間必須小於300ms。
    6.4公共API的響應時間必須小於300ms。
    6.5任務接收頁面的響應時間必須小於300ms。
    6.6系統可以使用第三方API在區塊鏈上進行交易。
    6.7理貨系統應足夠穩定,以顯示正確的結果。
    6.8任務接收系統應足夠穩定,可以向區塊鏈廣播承諾。
    6.9系統應該使用關係數據庫來存儲任務接收項目的信息,比特幣地址,維修計劃和員工。
    6.10系統應該使用不同的瀏覽器和OS系統進行測試。
    6.11公共頁面應該有一個友好的用戶體驗。
    4.3航空器維修區塊鏈的模型和第三方庫
    4.3.1用戶模型
    根據協議,用戶可以分解爲員工,維修計劃,任務管理,計劃管理。當計劃管理或任務管理想要登錄到系統時,他可以使用他的用戶名和密碼進入系統。如果密碼正確,系統將檢查密碼。如果它是正確的,它們將根據用戶的角色進入不同的頁面。如果密碼不匹配,系統會提示。
    通過使用框架的中間件,特權控制可以很容易地實現。中間件允許開發人員在加載框架之後但在運行應用程序控制器之前注入特定操作。爲了判斷用戶角色,系統應該從容器中獲取用戶角色。如果用戶角色不是計劃管理用戶的角色ID,系統將不允許用戶查看。
    以下是計劃管理和任務管理的登錄用戶界面設計。對於員工,他們不需要登錄並鍵入URL來進入該頁面。
在這裏插入圖片描述
圖4.1登錄界面

4.3.2 任務管理模型
對於註冊機構,他們登錄系統併爲員工和維修計劃提供服務。因此,系統必須滿足這些基本特徵。
•添加一個員工與他的電子郵件地址,併發送給他一封電子郵件。
•添加一個維修計劃名字,描述和圖片。
•編輯或刪除維修計劃。
發送電子郵件時,框架將首先加載包括任務管理服務器屬性的.env配置屬性。然後系統使用名爲Swift Mailer的第三方依賴關係與任務管理服務器建立連接並將電子郵件發送到目標電子郵件地址。

在這裏插入圖片描述
圖4.2 任務管理界面

要生成代碼鏈接,代碼必須是隨機的,並且與員工身份無關。代碼鏈接背後的技術是使用隨機算法。

在這裏插入圖片描述
圖4.3 新增任務界面

4.3.3 計劃管理模型
對於計劃管理機構,該系統必須滿足這些基本特徵。
•儀表板顯示計劃管理區塊鏈賬戶,區塊鏈網絡和任務接收信息的餘額。
•檢查從比特幣地址池生成的區塊鏈賬戶餘額。
•支付所有或單個區塊鏈賬戶地址的任務接收費用。
•使用標題,說明和圖像創建一個任務接收事件。
•編輯或刪除任務接收事件。
•開始或停止任務接收事件。
•查看任務接收事件的維修計劃。
•設置計劃管理區塊鏈私鑰的設置頁面。
當計劃管理創建任務接收項目時,系統將使用依存關係比特幣ECDSA創建輸入數量爲n的比特幣地址。

在這裏插入圖片描述
圖4.4 計劃管理界面

計劃管理可以檢查他之前生成的區塊鏈賬戶地址池(比特幣地址池)的餘額。爲了在兩個比特幣地址之間進行交易,系統使用名爲BitCotinJS的第三方Javascript庫創建序列化爲十六進制值的交易。通過使用第三方API在區塊鏈上廣播十六進制值,即進行真正的交易。

在這裏插入圖片描述
圖4.5 比特幣地址清單

以下是關於如何在比特幣測試網上從源地址到目的地址進行交易的代碼示例。

在這裏插入圖片描述
圖4.6 計劃發佈費用接口

4.3.4計劃模型
當員工在註冊機構註冊時,他必須從他的電子郵件中打開代碼鏈接。一旦他打開鏈接,系統將執行邏輯判斷,將他重定向到不同的頁面。員工應粘貼他的公鑰並將其保存到系統中。如果在任務接收日,員工應該打開鏈接,系統會讓他任務接收。通過輸入私鑰並選擇他任務接收的維修計劃,任務接收頁面將自動在區塊鏈上廣播他的任務接收。
要創建一個環簽名,系統使用名爲ringsignature的第三方Javascript庫。該庫包含有關創建環簽名和使用該消息驗證環簽名的方法。一些關鍵代碼可以寫成如下。

在這裏插入圖片描述
圖4.7 任務接收界面

4.3.5驗證模型
當員工任務接收時,員工將獲得環形簽名或區塊鏈ID作爲收據。要驗證任務接收是否正確計算,任務接收人應該進入驗證頁面。該系統提供2種方法來驗證任務接收結果。
1.交易ID:它可以自動從區塊鏈中獲取維修計劃ID,環形簽名散列。然後它可以根據其哈希值從公共API獲取環簽名。
2.環簽名:員工或任何人都可以輸入環簽名並手動選擇維修計劃ID。這個過程將不會與任何服務器連接。然後驗證頁面應該使用Javascript verfiy()函數來驗證維修計劃是否與環簽名匹配。此外,他可以檢查公鑰是否與從服務器獲取的API相匹配。

在這裏插入圖片描述
圖4.8 驗證接口

4.3.6理貨模型
理貨階段是任務接收中最關鍵的部分。這個階段必須發生在前端,以確保任何人都能實時收費。這個階段的細節可以描述如下。
1.獲取所有公鑰並將其存儲在本地。
2.獲取計劃管理的區塊鏈賬戶的所有交易。
3.將OP RETURN代碼的承諾解碼成環簽名的候選id和散列值。
4.驗證每個環簽名的有效性。

  1. 總結
    5.1概要
    本文主要探討了航空器維修任務發佈系統和區塊鏈的基本概念,比特幣地址算法和OP RETURN概念。後提出了一個基於區塊鏈的協議,定義以及主要階段的過程也已詳細解釋。
    整個協議開發過程也從過渡性描述軟件開發的角度,比如區塊鏈交易是如何發生的,還有一些維修生產控制系統的機理分析。
    5.2總結
    這個協議的主要優點是保證數據真實性。由於每次接收將在接收任務開始後向區塊鏈廣播。此外,由於區塊鏈是一個分散的公共分類賬,所以任務接收結果可以實時呈現並且不能由個人修改,這符合開放式審計的設計。
    選擇testnet作爲區塊鏈網絡,主要是免費的,比較比特幣和以太坊時更容易。
    基於區塊鏈的航空器維修區塊鏈協議仍有很大的改進餘地,如改進其透明度,在現狀中履行未完成的職能,並減少公共API。

[1]付鋒莉.基於“大數據+區塊鏈”技術的共享經濟模式構建研究[J/OL].科技經濟市場,2018(05):63-64[2018-06-29].http://kns.cnki.net/kcms/detail/36.1122.n.20180626.1306.074.html.
[2].區塊鏈:創新與顛覆[J].杭州金融研修學院學報,2018(06):4.
[3]湯必強. 區塊鏈技術及其在能源互聯網的應用[N]. 國家電網報,2018-06-12(008).
[4]黃俊飛,劉傑.區塊鏈技術研究綜述[J].北京郵電大學學報,2018(02):1-8.
[5]童毛弟,牛哲,陳庭強.區塊鏈技術及其在數字貨幣領域的應用[J].財會月刊,2018(08):137-142.
[6]高傑.SHA256加密算法在比特幣中的關鍵作用研究[J].納稅,2017(28):142.
[7]黃碩.RSA數字簽名算法在軟件加密中的應用[J].網絡安全技術與應用,2018(06):37+52.
[8]張玉磊,王歡,馬彥麗,劉文靜,王彩芬.可證安全的傳統公鑰密碼-無證書公鑰密碼異構聚合籤密方案[J].電子與信息學報,2018,40(05):1079-1086.
[9]韓英帥,崔新春.基於離散對數的廣義環簽名算法[J].網絡安全技術與應用,2017(12):48-50+60.
[10]張憲,蔣鈺釗,閆鶯.區塊鏈隱私技術綜述[J].信息安全研究,2017,3(11):981-989.
[11]李淑芳.航空機務維修生產控制預警系統[J].計算機工程,2005(S1):261-262+265.
[12]史亞傑,李敬.民航機務維修系統安全風險監測[J].中國安全科學學報,2009,19(11):110-116+178.
[13]苟立俊. 航空維修人爲因素數據管理系統的設計與實現[D].電子科技大學,2011.
[14]崔剛.民用航空器維修中的風險管理方略探討[J].科技創新與應用,2016(22):279.
[15]趙鬆鬆.民航航空器維修風險管理研究[J].科技資訊,2013(13):138.

完整代碼
鏈接:https://pan.baidu.com/s/10JkScrJIy5xWM-xTywQkQQ
提取碼:lt3m

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章