李奕成,項偉
(北京信息科技大學自動化學院,北京 100192)
稀有金屬作為一種不可再生的重要戰略資源,關乎著國家的戰略安全。在巨大經濟利益的驅使下,部分企業和個人不遵守法律規則和相關管控政策,違規超量開采的事件時有發生[1],造成了嚴重的國有資源流失。當前行業內主要存在以下幾個問題:1)數據中心化易篡改,信息安全得不到保證,可信度低。2)缺乏信息交流共享的可信快捷渠道,企業間對產品、原料的來源和合法性缺乏洞察能力。3)缺乏隱私信息保護,對于對企業產生競爭影響的產品信息缺乏保護手段。區塊鏈作為一種融合了多種技術的數據存儲方案,能夠很好地適用于供應鏈信息可追溯領域,解決傳統方案中存在的頑疾[2],能夠為解決上述問題提供良好的解決方案[3]。運用區塊鏈技術進行數據可追溯是當前研究的熱點,在諸多領域已經有了很多應用研究,區塊鏈與物聯網、加密技術相結合能夠有效地解決數據中心化、易篡改、信息共享效率低、缺乏隱私安全等問題,目前已在產品追溯、食品溯源、鋼鐵供應鏈管理、汽車供應鏈可追溯等領域取得成效[4-9]。因此,如何將區塊鏈應用于稀有金屬供應鏈,通過技術手段解決傳統方案中存在的頑疾,將是一個非常有價值的研究。
區塊鏈技術是一種集成了點對點(P2P)網絡、加密技術、智能合約、共識機制、時間戳等多種技術的新型應用模式[10],其本質上是一種去中心化、防篡改、可追溯性的分布式數據庫,采用點對點網絡進行通信,每個節點可以自行發送和接收數據,通過共識算法在不可信的參與節點之間創建交易協議。每個區塊鏈以區塊上保存的前一區塊的哈希值為索引,前后相連形成按照時間順序排列的鏈式數據結構,對數據的修改會引發塊的哈希值發生變化,導致鏈式結構遭到破壞,以此保證數據在分布節點上的完整性和一致性[11]。區塊鏈鏈式結構如圖1 所示。

圖1 區塊鏈鏈式結構
區塊鏈技術的應用領域十分廣泛,當前已被廣泛應用于防偽查詢、電子金融、跨境電商、供應鏈管理等諸多領域。區塊鏈可分為公有鏈、聯盟鏈和私有鏈三種類型[12],特性如表1 所示。公有鏈是一個不需要任何授權就可以進行讀寫并參與共識過程的區塊鏈網絡,常見的應用領域包括知識產權、電子商務、數字經濟、互聯網金融等多個應用場景。私有鏈是在公有鏈的基礎上對加入權限增加限定,按照中心節點設立的準入規則,對查看和寫入權限進行限定。常適用于企業運維,內部的辦公審批、財務審計等場景中,可以在僅內部網絡訪問的情況下,享受區塊鏈帶來的優勢。聯盟鏈介于二者之間,是由聯盟組織成員共同管理區塊鏈事務,生成交易或查看區塊鏈信息,由多個企業或組織共同維護,在各方達成共識的前提下設計規則,為參與者提供認證、授權和管理等功能,常用于商品溯源、供應鏈管理等領域。

表1 私有鏈、聯盟鏈、公有鏈特點
區塊鏈技術的特性可以有效解決行業內的數據安全和信息丟失問題,使區塊鏈技術成為供應鏈信息管理的重要手段。該文結合供應鏈特點,對系統整體模型進行了設計,如圖2 所示。

圖2 供應鏈信息追溯模型
圖2 中列舉了稀有金屬供應鏈中的成員,包括礦石原料供應方、金屬冶煉加工方、運輸方以及銷售方。信息可追溯模型整合了供應鏈上企業的產品關鍵可追溯性數據,當某個節點出現問題時,可沿數據關系網絡向上追溯。鏈中產品均配有RFID 識別標簽,存儲著采用EPC 編碼體系編寫的電子身份碼,具有唯一不可篡改的特點,它是系統中實際產品的虛擬身份,作為媒介實現信息的上鏈和查詢。
系統配置了三個組織,分別對應上述三個參與方,每個組織可以使用有效的身份文件注冊加入區塊鏈系統,按照實際的需求加入通道并根據成員數量增添節點,系統可以為每個用戶隨機生成私鑰和公鑰。其中,公鑰用于身份驗證和相關信息加密,私鑰用于用戶與系統交互時對隱私數據進行解密。在該系統中,用戶可以根據系統賦予的相應的約定權限,對各個產品數據進行添加和更新,系統會將信息傳遞給下游用戶。
數據的上鏈以及交易信息的錄入需要各方的共同參與和配合,根據參與節點的分工和需求的不同,再根據被賦予的不同權限,鏈上成員可以通過安裝的智能合約在鏈上發布、更新產品信息以及更新交易記錄,經過各方共識后將數據在各個節點上備份。鏈上成員和監管機構可以通過Web 頁面登錄區塊鏈可追溯系統,通過產品的數字編碼,依照權限查詢可追溯信息。
稀有金屬供應鏈產品可追溯系統面向監管和供應鏈上企業的信息管理與共享需求,需要一定程度地去中心化和一定的開放性,考慮到聯盟鏈部分授權和運行效率的特點,該文選用對稀有金屬供應鏈管理適配性更好的聯盟鏈Hyperledger Fabric 進行系統搭建。系統整體分為數據層、服務層和應用層,系統架構如圖3 所示。

圖3 系統架構圖
數據層是基于Hyperledger Fabric 開發的底層數據結構的基本框架,主要作用是存儲節點之間的交易信息與產品相關數據,保證產品信息的數據安全。數據層的數據區塊分別是區塊體以及區塊頭兩個部分。區塊體用于數據的存儲,負責保存產品相關信息和交易流通數據,通過Merkle 數據結構進行定義,在經過哈希算法進行封裝后以帶有時間戳的形式不可變地寫入區塊鏈賬本,形成可追溯的信息鏈[13]。
服務層負責對區塊鏈網絡進行管理,例如,對鏈上的節點成員進行授權和身份驗證;管理智能合約運行、安裝和部署;并通過超級賬本官方提供的Fabric-Node-SDK 提供接口調用服務,通過應用接口根據客戶端請求來調用目標通道上的智能合約,當滿足預設條件時,智能合約將自動執行腳本算法處理任務,自動執行相關的事務[14],實現應用層與區塊鏈網絡的交互。
應用層是用戶與系統進行交互的窗口,Web 界面采用html、JavaScript 以及angularjs 進行開發。前端的各種操作也會通過服務層提供的接口服務完成對安裝在鏈上鏈碼的調用,進而實現信息的查詢、更新、發布和交易等。
模型中設計了三條獨立的通道用來存儲不同環節的信息,每個通道都有獨立的賬本。通道架構如圖4 所示。其中,設計多個通道的目的是將賬本和業務環節進行綁定,成員節點可以根據業務需求動態的加入通道,增強系統擴展靈活性的同時,通過多通道設計隔離通道信息,增強通道內信息的私密性,降低無關節點的存儲壓力。其中,原料信息通道對應原料供應環節,負責保存稀有金屬供應鏈中的礦石原料相關信息。產品信息通道對應產品的冶煉加工環節,負責存儲成品金屬產品信息,如加工信息、原料組成等。交易信息通道對應產品的流通環節,負責保存有關礦石的交易記錄、物流信息以及所有權信息。

圖4 區塊鏈通道架構
由于區塊鏈網絡中同一通道上的各節點是完全平等的,未經加密的數據在通道上是完全公開的,相關產品的數據隱私無法得到保護。在保證數據透明的同時,也要兼顧供應鏈成員的信息隱私保護需求,為應對鏈中成員的隱私保護需求,該文設計了對產品信息的隱私加密方案。首先將數據按照隱私程度進行分類,通過對供應鏈流程和關鍵信息隱私程度的分析,將上鏈關鍵信息分為公開數據和隱私數據,公開數據直接存儲在區塊鏈中,隱私數據則通過對稱加密和非對稱加密技術相結合的加密方式進行上傳,隱私信息的加密過程如圖5所示。首先對隱私數據采用AES 算法進行加密,加密過程中使用的密鑰由系統隨機產生。AES 算法的加密、解密過程都需要使用密鑰進行,為保證對稱加密過程中密鑰的安全保存和共享,需要對AES 加密過程中使用的密鑰進行妥善加密。對于對稱加密過程中使用的密鑰,采用了ECC 橢圓曲線算法對進行加密[15],整個加密過程使用授權節點的公鑰作為非對稱加密的密鑰,在加密完成后,授權節點的公鑰和加密過后的加密密鑰信息以鍵值對的形式保存在鏈上。對隱私信息的加密過程通過在鏈上部署的智能合約自動進行。獲得授權的節點,可以使用自己的私鑰解密區塊鏈中保存的由自身公鑰加密的密鑰信息,完成對鏈上隱私數據的查看。

圖5 隱私數據加密過程
該文選用Hyperledger Fabric聯盟鏈,采用Docker等工具,利用Go語言進行系統鏈碼編寫。Hyperledger Fabric 是一個許可型的區塊鏈架構,由IBM 開發、Linux 基金會主辦的一個企業級開源商業區塊鏈平臺[16],在實際應用中已經有了很多成功案例。使用超級賬本官方提供的Fabric-Node-SDK,執行與網頁交互的相關操作。系統搭建軟件環境如表2 所示。該網絡采用couchdb 數據庫實現數據存儲,在Ubuntu16.04 虛擬機環境下運行,在完成系統環境的搭建后,對上述設計的監管模型以及系統架構進行了基本的原型系統實現。

表2 系統搭建軟件環境
系統進行搭建部署后,通過設計的產品電子身份標識碼作為產品在系統中的身份,進行可追溯信息的上傳和查詢。以鏈中不同的成員節點身份,將有關的可追溯性信息進行上鏈,Web 界面上的信息上傳操作如圖6 所示。

圖6 上傳可追溯信息
原料供應商、金屬加工商以及經銷商可以發布產品信息并為生產的產品添加原料來源信息,還可以添加相關交易信息以及物流信息等。當交易發生時,鏈上的成員可以在系統中對產品信息、原料來源等可追溯性信息進行查詢和確認,節點成員可以根據所授予的權限查看產品信息,不同查看權限成員查詢的結果如圖7-8 所示。結果顯示,加密后的隱私信息僅可以被授權的節點查看,當未被授權的節點查看時只能得到密文數據。

圖7 授權節點信息查詢結果

圖8 未授權節點信息查詢結果
該文在完成系統搭建的前提下,使用caliper系統測試工具對系統進行性能測試,共進行了1 000 次接口壓力測試,結果均能成功調用,吞吐量可達224 TPS,能夠滿足日常需求。圖9 展示的是發出查詢命令后系統的響應時間。圖中橫坐標表示實驗次序,縱坐標表示響應時間。其中,對公開數據查詢的平均響應時間為24 ms,對隱私數據查詢的平均響應時間為58 ms。在實際操作過程中沒有出現系統崩潰或明顯卡頓等狀況,能夠較為流暢地完成對產品信息的發布、更新和查詢,滿足系統的設計及使用要求。

圖9 查詢響應時間
該文分析了稀有金屬供應鏈中存在的問題,比較了當前主流的區塊鏈平臺,針對產業鏈中存在的原料來源缺乏信任、監管難度大、信息共享效率、隱私信息缺乏保護等問題,基于聯盟區塊鏈平臺設計實現了產品信息可追溯系統。利用區塊鏈技術的優點,解決了稀有金屬供應鏈中數據中心化、信息易被篡改、信息不透明、存儲安全性低等問題。在此基礎上,在系統的設計方面采用多通道設計將不同業務進行分隔,對需要上鏈的敏感數據進行加密處理,保證了信息共享過程中的隱私安全,最后通過實例對系統進行了展示,驗證了該方案的可行性。當前,系統仍處于試驗階段,很多功能設計仍需細化,未來將對數據的儲存和管理進行優化。如何提高區塊鏈系統的存儲,降低長時間運行中節點上的存儲壓力,將是后續研究中應著重解決的問題。