高志偉,范洪博,劉錦江
(昆明理工大學信息工程與自動化學院,云南 昆明 650000)
航運交易涉及大量紙質文件, 例如銷售合約、租船合同協議、提單、港口文件、信用證以及與船舶和貨物有關的其他信息。無論在付款還是運輸的各個環節這些文件均需要通過一長串締約方耗時耗力。此外傳統的紙質單證由于處理和審核時間較長,實際交付往往會發生延遲,并且還存在造假的風險。區塊鏈可通過智能合約等對傳統航運物流復雜流程極大地簡化[1]。航運物流中一個主要挑戰是監控產品質量并跟蹤其物理運動直至到達最終用戶。目前,許多裝載射頻識別、溫濕度傳感器、全球定位系統等傳感設備的集裝箱可以在運輸階段提供實時裝運跟蹤。但是傳感器設備存在遭受網絡攻擊的風險,如常見的拒絕服務攻擊等,這為欺詐行為打開了窗口。區塊鏈與物聯網技術在提高安全性和存儲從物聯網使用中收集的數據方面是互補的。物聯網使用傳感器監控、收集數據,區塊鏈可以消除對中心化的需求,在分類賬上存儲不可篡改且可追蹤的記錄的數據來改進當前供應鏈中的跟蹤系統[2],從而解決了圍繞物聯網和數字化使用的一些安全問題,可供所有相關方使用。
智能合約是一種部署在區塊鏈上可自動執行的協議,允許在沒有可信第三方的情況下直接在區塊鏈網絡上進行通信,在區塊鏈不可篡改、安全性基礎上還具有圖靈完備、確定性、可編程等特性,并且一旦滿足了觸發條件后就會自動執行[3]。并且區塊鏈網絡中的節點都會執行,不存在某些節點發生故障影響智能合約的運行。航運中的各種文檔或數據,如產品原產地證書和食品植物檢疫證書等可以通過智能合約上傳到區塊鏈,安全高效地交換信息,從而避免了相關機構跟蹤和認證信息的需要,可以最大限度地簡化并提高航運交易的效率和透明度。
物聯網(IoT, Internet of things)是一個將互聯網與各種信息采集傳感設備連接起來的網絡。通常將物聯網分為感知層、網絡層、應用層。感知層由收集信息的傳感器等設備組成實現跟蹤、監控物體的功能。網絡層主要實現網絡通信的問題。應用層主要對數據信息進行分析和處理。物聯網技術可實時記錄航運物流中貨物信息,可減少航運業務中多種信息不對稱。然而物聯網設備數量多且分散以及數據量大,可能出現信息竊取、篡改等安全問題,并且其中心化的管理方式在數據隱私、安全方面存在著隱患。區塊鏈中其不可篡改、去中心化特性與物聯網相結合可以為航運提供可靠追蹤方案。
星際文件系統(IFPS)是一個點對點、去中心化的文件系統。綜合了分布式哈希表、自認證文件系統、版本控制系統等系統的優點。它將用戶數據以256KB 為大小劃分為多個數據塊,并分散存儲在IPFS 網絡的節點中。每個數據庫都是根據其內容生成唯一的內容標識符(CID)。通過使用路由協議根據其CID 獲取數據。
區塊鏈不是為了存儲大量數據而設計的;然而,跟蹤供應鏈上的貨物可能會產生大量數據,并需要持續地、長期地處理和存儲這些數據。這將需要大量的處理速度和存儲空間。此外,在涉及區塊鏈的所有情況下,數據的隱私都是一個潛在問題[4],因為分類賬記錄是永久性的,所有參與者都可以查看和共享可能被視為私人或專有的數據。以及出于保守商業秘密的需求更加需要保護數據,避免數據過度透明等。而且如果將數據明文直接上傳至IPFS,意味著任何人只要能獲得CID 值后,就可以直接訪問用戶上傳的數據,這樣無法實現數據的受控訪問。
因此提出一種基于區塊鏈的航運數據安全存儲方案,如圖1 所示。本文采用電子提單、數字化文檔、交易數據等數據通過智能合約上傳至區塊鏈中。將跟蹤貨物產生的數據經過加鹽后上傳至IPFS 網絡中,得到與其數據內容一一對應的CID 值,確保數據不可被篡改。IPFS 存儲傳感器收集到的大量實時貨物數據,僅將固定長度、數據量較小的CID 值存儲在區塊鏈中降低區塊鏈節點的存儲壓力。區塊鏈存儲并執行智能合約,將經過共識后的數據寫入區塊鏈賬本中,同時針對身份不同提供不同的訪問權限,以實現信息的安全共享[5]。
航運數據中可分為包含可能暴露相關方商業機密影響企業利益的信息、利益相關用戶在航運過程不愿公開的敏感信息等的隱私數據。以及可在區塊鏈中公開存儲所有人可訪問的非隱私數據。物聯網傳感器采集到的數據限于物聯網終端設備如傳感器等在計算能力、傳輸帶寬等方面資源有限,一些需要一定量數學運算的加密方式可能會降低終端設備采集數據的處理速度。本方案主要包括鹽值生成、隱私數據上傳、隱私數據共享3 個部分。
2.2.1 鹽值生成
參與航運交易的各相關方包括交易的雙方、港口的工作人員、代理人等,每個參與方生成自己的初始值。各相關方共同商討出一個相關方公共初始值,并對其進行sha256 運算。
2.2.2 隱私數據上傳
(1)每個相關方對自己的初始值進行sha256 運算得到鹽值,并將所要上傳的數據與自己的鹽值進行一次異或運算,以加密信息。
(2)各相關方對異或自己鹽值后的數據再與公共鹽值進行一次異或運算,確保除了相關方外的其他人員無法知道數據。
(3)將加密后的數據存入IPFS 中并獲取返回的CID 值。
(4)調用智能合約將CID 值上傳至區塊鏈,待區塊鏈節點達到共識后將其寫入區塊鏈賬本中。
2.2.3 隱私數據共享
(1)用戶A 將自己的初始值通過點對點的方式傳輸給所要共享數據的用戶B。
(2)用戶B 對A 的初始值進行sha256 運算得到A的鹽值。
(3)用戶B 對加密的數據分別用公共鹽值與A 的鹽值進行兩次異或運算即可得到原文數據。實現了數據在A 與B 之間共享。
(4)在上傳數據前更改初始值即可結束數據共享。
本文利用區塊鏈技術與物聯網技術可對航運數據數字化提高航運效率。同時結合IPFS 構建了一個基于區塊鏈的航運數據安全存儲共享模型,可有效降低區塊鏈節點的存儲壓力,同時區塊鏈其不可篡改、去中心化等特點可解決當前航運數據缺乏數據安全存儲以及共享問題,此外還實現了細粒度的訪問控制。