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