孫遠運
(中國國家鐵路集團有限公司 科技和信息化部,北京 100844)
中歐班列是落實“一帶一路”倡議的旗艦項目和標志性品牌,自2011年開行以來,線路逐步擴展,班次不斷增加,截至2021年2月12日,國內中歐班列累計開行超過百列的城市增加到30個,通達歐洲21個國家106個城市,覆蓋大部分中東歐國家,成為拉動經(jīng)濟發(fā)展的新引擎?!笆奈濉逼陂g中歐班列面臨高質量發(fā)展的新要求,為打造數(shù)字中歐班列,推動中歐班列高質量發(fā)展,中歐班列沿線7國鐵路在實現(xiàn)雙邊國際聯(lián)運電子數(shù)據(jù)交換基礎上,共同致力于利用區(qū)塊鏈技術拓展數(shù)據(jù)共享范圍,發(fā)揮數(shù)據(jù)匯聚優(yōu)勢,進一步提升中歐班列服務水平,提高中歐班列運輸組織效率。
區(qū)塊鏈是分布式、網(wǎng)絡化的數(shù)據(jù)管理技術,利用密碼技術和分布式共識協(xié)議保證數(shù)據(jù)傳輸和訪問安全,實現(xiàn)數(shù)據(jù)的多方維護、交叉驗證、全網(wǎng)一致和不易篡改,為解決中歐班列跨境運輸數(shù)據(jù)共享的去中心化、參與國身份認證、數(shù)據(jù)共享安全等問題提供了新思路和新解決方案[1-2]。
去中心化是區(qū)塊鏈最基本的特征。區(qū)塊鏈本質上是一個去中心化的分布式賬本數(shù)據(jù)庫,其數(shù)據(jù)分散存儲在網(wǎng)絡中多個節(jié)點上,使用分布式存儲及算力使得所有節(jié)點具有相同的權利和義務,數(shù)據(jù)由鏈上所有節(jié)點共同維護,而不再依靠中央處理節(jié)點提高數(shù)據(jù)的容錯力、抗攻擊力及防篡改力。
區(qū)塊鏈利用分布式存儲及哈希算法的單向性保證其數(shù)據(jù)的不可篡改性。區(qū)塊鏈數(shù)據(jù)存儲在區(qū)塊中,每個區(qū)塊都有1個區(qū)塊頭,用于存儲本區(qū)塊中數(shù)據(jù)的哈希值以及前一個區(qū)塊數(shù)據(jù)的哈希值,每個區(qū)塊通過所存儲的前一個區(qū)塊的哈希值串聯(lián)起來,形成了區(qū)塊鏈。一旦某個區(qū)塊數(shù)據(jù)產(chǎn)生變動,后續(xù)所有區(qū)塊的哈希值都會產(chǎn)生變動,所有節(jié)點都能發(fā)現(xiàn)數(shù)據(jù)被篡改,不認可且丟棄這種無效數(shù)據(jù),保證了區(qū)塊鏈數(shù)據(jù)的不可篡改性。
區(qū)塊鏈通過區(qū)塊數(shù)據(jù)結構,存儲了創(chuàng)世區(qū)塊后的所有歷史數(shù)據(jù),區(qū)塊鏈上的任意1條數(shù)據(jù)均綁定了交易者信息,皆可通過鏈式結構追溯其本源。
中歐班列沿線各國鐵路為提前進行運輸組織,除了需要預先掌握班列的運單、編組信息以外,還需要及時掌握貨物的全程位置追蹤信息,這就對多國之間的信息共享機制提出了新的要求。
各國鐵路組織的始發(fā)班列,按照運輸徑路,由班列始發(fā)國、途經(jīng)國、終到國等運輸承運人,將貨物位置信息通過區(qū)塊鏈共享給相關國家鐵路。
中歐班列貨物全程位置追蹤數(shù)據(jù)共享內容包括:集裝箱箱號、班列車次、車號、始發(fā)國代碼、所在國代碼、當前車站代碼、當前車站性質(始發(fā)站、途中停靠站、途中通過站、終到站)、當前時間、當前位置時區(qū)、報告時間、距離目的地距離等。
在中歐班列數(shù)據(jù)共享過程中,既要保證數(shù)據(jù)充分共享,又要保證數(shù)據(jù)隱私安全。通過對中歐班列數(shù)據(jù)共享流程分析,數(shù)據(jù)共享授權邏輯存在2種模式,見圖1、圖2。
圖1 始發(fā)國向運輸徑路上的各國鐵路發(fā)送信息示意
圖2 途經(jīng)國向運輸徑路上的相關國家鐵路發(fā)送信息示意
(1)始發(fā)國向運輸徑路上的各國鐵路發(fā)送信息。始發(fā)國需將貨物追蹤信息共享給預先定義好的班列運輸徑路上的各個國家鐵路。非運輸徑路上的國家鐵路無權共享該班列的貨物追蹤信息。
(2)途經(jīng)國向運輸徑路上的相關國家鐵路發(fā)送信息。班列途經(jīng)國需將貨物追蹤信息共享給始發(fā)國和后續(xù)運輸徑路上的各個國家鐵路。已經(jīng)通過的非貨物始發(fā)國家鐵路無權共享后續(xù)的貨物追蹤信息。
為滿足中歐班列全程數(shù)據(jù)共享需求,中歐班列沿線國家鐵路共同組建跨國區(qū)塊鏈網(wǎng)絡,建立中歐班列貨物追蹤信息共享平臺,實現(xiàn)貨物追蹤信息的接入和實時可信共享[3-4]。中歐班列貨物追蹤信息共享平臺分為區(qū)塊鏈服務層和應用服務層2個部分。中歐班列貨物追蹤信息共享平臺系統(tǒng)架構見圖3。
圖3 中歐班列貨物追蹤信息共享平臺系統(tǒng)架構
區(qū)塊鏈服務層基于聯(lián)盟鏈的Hyperledger Fabric 2.2技術框架,依托權限控制、分布式共識、通道隔離、私有數(shù)據(jù)等機制,為中歐班列沿線各國貨物追蹤信息共享提供安全、可靠的區(qū)塊鏈服務,包括身份驗證服務、智能合約服務、背書服務、排序服務和記賬服務等。
應用服務層主要實現(xiàn)中歐班列貨物追蹤信息共享平臺上層應用服務的建設,包括區(qū)塊鏈網(wǎng)絡管理服務、追蹤信息交換服務、追蹤信息應用服務和平臺管理服務等,同時通過鐵路數(shù)據(jù)服務平臺與鐵路既有相關信息系統(tǒng)實現(xiàn)數(shù)據(jù)的共享與應用。
為保障系統(tǒng)及數(shù)據(jù)安全,中方鐵路區(qū)塊鏈節(jié)點及相關應用系統(tǒng)的應用服務器、數(shù)據(jù)庫服務器等部署在中國國家鐵路集團有限公司(簡稱國鐵集團)安全生產(chǎn)網(wǎng)。中歐班列貨物追蹤信息共享平臺網(wǎng)絡架構見圖4。
圖4 中歐班列貨物追蹤信息共享平臺網(wǎng)絡架構
在國鐵集團安全生產(chǎn)網(wǎng)和外部服務網(wǎng)中分別部署代理服務,實現(xiàn)中方鐵路節(jié)點與其他國家鐵路區(qū)塊鏈節(jié)點之間的通信轉發(fā)。其他國家鐵路的區(qū)塊鏈節(jié)點通過互聯(lián)網(wǎng)訪問外部代理服務;外部代理服務對訪問請求內容進行協(xié)議轉換;外部代理服務與內部代理服務通過國鐵集團網(wǎng)絡安全平臺進行信息交換;內部代理服務將接收到的信息轉換為區(qū)塊鏈通信協(xié)議,并提交給區(qū)塊鏈服務節(jié)點;區(qū)塊鏈服務節(jié)點對接收到的請求信息進行響應處理;響應信息提交到內部代理服務,再次通過內外部代理服務的轉換與傳遞,實現(xiàn)對外部訪問請求的響應。同樣由中方發(fā)起的服務請求,也需要經(jīng)過內外部代理服務,提交給各個國家的對等節(jié)點進行處理。
Fabric作為一種基于許可機制的區(qū)塊鏈技術框架,具有完整的身份管理與認證體系,提供專門的成員管理服務,并基于CA中心分別提供ECert(Enrollment Cert)、TCert(Transaction Cert)和TLSCert(Transport Layer Security Cert)3種類型的數(shù)字證書,以滿足審計和隱私保護的需求。為保障參與國家鐵路身份信息的平等性與合法性,各個國家的鐵路部門采用經(jīng)本國認證的證書機構簽發(fā)的根證書,由根證書為組織下的節(jié)點與服務簽發(fā)對應的ECert、TCert和TLSCert證書。
ECert證書用于身份認證,即在登錄中歐班列貨物追蹤信息共享平臺時確認節(jié)點和用戶的身份。
TCert證書用于交易的簽名與驗證。中歐班列貨物追蹤信息的新增與更新構成了中歐班列區(qū)塊鏈的一筆交易,每筆交易都包含了發(fā)送者的簽名和交易證書。同時為保證第三方無法由交易證書追溯出具體的發(fā)送者,每次交易可使用不同的TCert證書。
TLSCert證書用于中歐班列區(qū)塊鏈系統(tǒng)組件間的安全通信(SSL/TLS)。
為保證參與國家鐵路之間身份能夠互認互驗,中歐班列區(qū)塊鏈證書統(tǒng)一采用X.509國際標準,并將各自根證書信息寫入到創(chuàng)世區(qū)塊中,各參與方從創(chuàng)世區(qū)塊中獲取證書進行身份與交易信息的驗證。區(qū)塊鏈節(jié)點間的交互形式見圖5。
圖5 區(qū)塊鏈節(jié)點間的交互形式
基于區(qū)塊鏈的中歐班列數(shù)據(jù)共享網(wǎng)絡主要包括3類數(shù)據(jù)對象:核心數(shù)據(jù)對象、配置數(shù)據(jù)對象和賬戶數(shù)據(jù)對象[5-8]。
核心數(shù)據(jù)對象包括中歐班列區(qū)塊鏈中的區(qū)塊、事務、實體和合約。每個區(qū)塊數(shù)據(jù)對象中包含1個或多個事務數(shù)據(jù)對象,每個事務對象包括實體數(shù)據(jù)對象(班列追蹤數(shù)據(jù)共享的發(fā)起方、接收方,班列追蹤數(shù)據(jù)、備注等),以及合約數(shù)據(jù)對象(合約的標識、版本號、代碼等)。
配置數(shù)據(jù)對象包括共識協(xié)議版本號、軟件版本號和網(wǎng)絡通信底層對等節(jié)點配置信息等中歐班列區(qū)塊鏈系統(tǒng)正常運行所需的配置信息。配置數(shù)據(jù)對象和核心數(shù)據(jù)對象共同構建了中歐班列區(qū)塊鏈數(shù)據(jù)共享所需的基礎數(shù)據(jù)基礎。
賬戶數(shù)據(jù)對象為中歐班列區(qū)塊鏈中業(yè)務的實際發(fā)起者和相關方對應的數(shù)據(jù)結構,包括賬戶公鑰、私鑰、所屬機構等。
區(qū)塊鏈的用戶角色一般包括鏈管理員、系統(tǒng)管理員、內容審核員、交易用戶、監(jiān)管機構、應用開發(fā)者等。中歐班列區(qū)塊鏈為滿足數(shù)據(jù)共享需求,保證數(shù)據(jù)的安全性,額外設計了3種數(shù)據(jù)用戶角色,即數(shù)據(jù)提供或編輯者(M)、數(shù)據(jù)訪問者(S)、數(shù)據(jù)無關者(N)。針對某一筆貨物追蹤數(shù)據(jù)而言,數(shù)據(jù)提供或編輯者(M)即在鏈上提交或更新數(shù)據(jù)的用戶;數(shù)據(jù)訪問者(S)即有權檢索滿足預配權限的數(shù)據(jù)記錄用戶,如果沒有符合條件的數(shù)據(jù)則返回空;數(shù)據(jù)無關者(N)即無權訪問該筆追蹤數(shù)據(jù)的用戶。數(shù)據(jù)用戶角色的權限分配見圖6。
圖6 數(shù)據(jù)用戶角色權限分配示意圖
中歐班列區(qū)塊鏈系統(tǒng)使用Fabric的私有數(shù)據(jù)(Private Data)機制,實現(xiàn)中歐班列追蹤數(shù)據(jù)的權限控制。
智能合約是一種運行在區(qū)塊鏈上,由事件觸發(fā)的、具有狀態(tài)的、自行驗證和自動執(zhí)行的計算機程序[9-10]。智能合約的工作原理類似于計算機程序的if-then語句,即當一個預置條件被觸發(fā)時,相應的合約條款將會被自動執(zhí)行[11]。與傳統(tǒng)合約相比,智能合約具有去信任、安全、高效、無須第三方仲裁等特點,其運行原理見圖7。
圖7 智能合約原理
根據(jù)中歐班列貨物追蹤信息共享業(yè)務規(guī)則,設計開發(fā)區(qū)塊鏈智能合約,實現(xiàn)追蹤信息共享業(yè)務邏輯,包括身份管理、身份驗證、追蹤信息共享、追蹤信息授權、追蹤信息校驗、追蹤信息查詢等功能,編譯后部署到區(qū)塊鏈網(wǎng)絡中。
基于中歐班列全程運輸多國之間數(shù)據(jù)共享需求,以區(qū)塊鏈去中心化、不可篡改、可追溯等特點為基礎,研究了基于區(qū)塊鏈技術的中歐班列數(shù)據(jù)共享機制,設計了中歐班列區(qū)塊鏈的系統(tǒng)架構、網(wǎng)絡結構、身份認證體系、數(shù)據(jù)結構等,為中歐班列數(shù)據(jù)共享中數(shù)據(jù)所屬權、數(shù)據(jù)訪問控制及構建數(shù)據(jù)共享生態(tài)圈等方案提供了一種新的解決思路。