孫一萌,范洪博,彭慢煜,莊金玉
(昆明理工大學信息工程與自動化學院,云南 昆明 650000)
隨著我國對“一帶一路”高質量發展的不斷深化,航運作為推動國民經濟發展和全球一體化的關鍵要素,其連接國際的重要橋梁作用越發顯著,中國在全球航運業的地位也舉足輕重。我國航運業成績顯著,港口規模穩居世界第一,在2020 年我國有8 個港口位列全球港口貨物吞吐量前十,另有7 個港口位列全球集裝箱吞吐量前十[1]。國際航運作為歷史悠久的傳統行業,也在科技浪潮中進行著變革,由各種技術驅動的“智慧航運”時代正在影響傳統的商業模式。雖然數字化建設在國際航運領域已經初見成效,但由于國際航運業相對保守和傳統、航運活動涉及多個利益相關者、航運活動國際性較強,航運業仍依賴基于紙質文件的貿易和人工文件處理方式,若無法使數據在各利益方之間及時共享,則勢必會影響效率、造成信息質量低下等諸多問題。
區塊鏈技術在航運業中已經有了一些初步落地應用,其中,智能電子提單、資源和數據共享和貨物追蹤溯源是區塊鏈在航運業務中的典型應用。區塊鏈具有去中心化、公開透明、永久存儲且不可篡改和可溯源性等特點,這些特點非常適合解決航運業數字化道路中正面臨的各種問題[2]。2021 年6 月,《關于加快推動區塊鏈技術應用和產業發展的指導意見》指出要加快推動區塊鏈技術和產業創新發展,積極推進區塊鏈和經濟社會發展,涉及供應鏈管理和航運物流等多個領域。本文結合區塊鏈技術,針對航運業的應用場景,設計了各港口間物流交易數據的共享模型。利用變色龍哈希函數,在某些特定情況下,數據所有者可以對上傳的敏感信息或亟需修改的交易數據進行修改。既滿足了航運業中信息的共享,也滿足在信息監管、隱私保護、數據更新等方面存在的編輯需求。
區塊鏈技術在應用中被視作一個分布式的共享賬本和數據庫,具有去中心化、公開透明[3]、不可篡改、可以追溯、集體維護等特點。區塊鏈涉及包括密碼學、P2P(peer-to-peer)網絡、共識機制等相關技術,其中密碼學技術賦予了區塊鏈上的數據信息極高的穩定性和安全性,P2P 網絡架構幫助實現數據的傳輸和通信,共識機制保證了數據的一致性[4]。
傳統的哈希函數可以將任意長度的消息壓縮到某一固定長度的消息摘要,該函數具有強抗碰撞性;而Krawczyk 等人提出的變色龍哈希算法[5]可以人為設下陷門,只要掌握該陷門即可輕松找到碰撞。這種算法允許區塊鏈修改交易內容但不改變其哈希值。變色龍哈希函數由5 個子函數組成:
初始化函數:輸入安全參數λ,輸出公共參數pp。
密鑰生成函數:輸入公共參數pp,輸出公鑰h、私鑰s,其中私鑰s 也稱為陷門信息。
哈希計算函數:輸入公鑰h、明文m、可變參數r,輸出變色龍哈希值CH,CH=Hash(h,m,r)。
可變參數鍛造函數:輸入私鑰s、原明文m、原可變參數r、新明文m’,輸出與m’匹配的新可變參數r’。
哈希驗證函數:輸入公鑰h、明文m、可變參數r、變色龍哈希值CH,驗證CH 與m,r 是否匹配,如果匹配輸出1,否則輸出0。
變色龍哈希的特點如下:
(1)掌握公鑰的人可以計算出原始數據的變色龍哈希值;
(2)當一個人掌握陷門私鑰時,就可以找到使其哈希值與原始數據對應的哈希值相同的碰撞;
(3)對于沒有陷門私鑰的人來說,變色龍哈希函數仍然具有抗碰撞性,即無法找到一個碰撞與原始數據對應的哈希值相同。
作為歷史悠久的傳統行業,航運業涉及復雜的利益主體,其運輸效率可通過增進各方信任、實現物流溯源、優化各項流程及增強網絡協調等方面來提升。區塊鏈的網絡結構可以用來改善不同航運企業之間由于系統不互通而產生的信息孤島問題。區塊鏈去中心化、數據公開的特點也可以用于解決傳統航運網絡中心化程度高導致的數據交換和共享程度低、成本高等問題,比如貨物追蹤系統的數據失真和信息篡改嚴重。
隨著區塊鏈應用場景和用戶需求的變化,可能會出現需要對區塊數據進行編輯管理的情況。譬如在港口運營的場景中,若貨運商、船東、中介各自對應的數據資源發生了變化,可能會產生編輯或更新數據的需求。而“可編輯”并不會挑戰區塊鏈本身的安全性,它是對“不可篡改”造成的應用局限性的補充。編輯操作必須合法才能被完成,否則修改后的區塊數據無法通過全網驗證。可編輯區塊鏈仍具有去中心化、不可篡改的特點,同時亦可合法修改、合法刪除。
系統建立在P2P網絡上,連接各個港口物流服務商。模型架構自底向上分為數據層、網絡層、共識層、合約層和應用層,如圖1 所示。

圖1 系統分層架構
其中數據層負責存儲物流交易記錄,通過加解密技術、哈希函數、時間戳來實現數據加密、身份標識、封裝區塊等功能。網絡層通過P2P 網絡,實現去中心化的各港口物流數據快速同步。共識層對物流交易信息進行排序處理,提供高吞吐、低延遲的處理能力,并在集群內部支持節點故障容錯,保證數據的一致性。合約層通過用戶在鏈上布置智能合約,來實現對鏈上數據的合法修改,同時實現安全可信的物流交易數據共享。在應用層上,可以進行物流交易信息查詢、新數據上鏈、物流交易數據或敏感數據的更改,實現不同港口之間可信數據共享等功能。
區塊鏈中參與其維護的每一個節點都擁有全賬本,其中通過哈希函數來實現完整性驗證。以比特幣系統為例,其區塊結構包含兩個部分:區塊頭和區塊體。區塊頭中包含6 個參數分別是區塊版本號、父區塊哈希值、時間戳、難度、隨機數Nonce 值和Merkle 根;區塊體中保存每個節點的交易數據。每個子區塊的區塊頭中都存有父區塊的哈希值,若父區塊中數據發生更改,則前后哈希值就無法對應,該結構保證了交易數據的完整性以及不可篡改性。傳統區塊結構如圖2 所示。

圖2 傳統區塊結構
在可編輯區塊鏈中,將交易數據的哈希函數替換為變色龍哈希,若要修改第i 個區塊的某個交易,只需要重新算出和該交易相關的可變參數,從而更改交易內容之后,該交易的哈希值不變,不會影響Merkle 根。在港口物流業務管理系統中,需要多方參與其中,不同的參與者會被賦予不同的角色與權限,只有獲得修改權限的節點能拿到公鑰對交易進行修改。而修改請求的合理性需要通過所有節點對該修改請求進行共識來保證。
本文通過對當前航運數字化進程的分析,利用區塊鏈的去中心化、不可篡改等特性來解決航運業中的痛點,提出系統架構模型實現對港口物流數據的管理和共享,以此將區塊鏈技術和航運業進行了結合。同時結合變色龍哈希在不破壞區塊鏈特性的前提下,使區塊鏈可以進行細粒度的編輯,使其能應用在更復雜的應用場景中。