陳俊華,張 夏,上官鵬飛
(重慶郵電大學 自動化學院 工業物聯網與網絡化控制教育部重點實驗室,重慶 400065)
近年來,假冒偽劣電子產品、電子產品翻新再銷售、電子產品供應鏈信息封閉等問題,威脅著消費者對電子產品質量的信任,建立可靠有效的電子產品信息追溯體系需求強烈。
隨著區塊鏈全新的分散化架構和分布式賬本技術的快速發展[1,2],基于區塊鏈的可追溯系統由于其分散化和防篡改的特點,為傳統追溯系統的缺點提供了解決方案。馮田基于HACCP[3]、區塊鏈和物聯網技術提出一種食品供應鏈追溯系統[4],又基于區塊鏈和RFID[5]提出了一種農產品供應鏈追溯系統[6]。于合龍等以琿春水稻為研究對象,實現了水稻信息的可追溯[7]。上述方案將區塊鏈應用于供應鏈追溯中,實現了對食品和農產品的有效追溯,但以上方案中的所有供應鏈可追溯數據都被存放于區塊鏈上,隨著時間的推移,不斷增長的可追溯數據會逐漸占據整個區塊鏈中節點的數據庫容量,導致數據爆炸,系統性能下降。徐希偉等[8]提出了一種鏈上與鏈下數據分離方案,成功解決了鏈上數據量劇增問題,但消費者無法對鏈下的產品信息進行可靠追溯。針對上述問題,本文將區塊鏈和ORS相結合對電子產品進行追溯,采用鏈上和鏈下聯合管理模型,緩解了數據量爆炸問題,同時保證了電子產品在供應鏈過程中所有信息防篡改,可追溯。
區塊鏈技術起源于比特幣,2008年由化名為“中本聰”的學者提出。區塊鏈本質為分布式數據庫,具有分散化、防篡改、可追溯的特性。分散化:整個區塊鏈網絡無中心組織,即使一個節點崩潰,整個系統仍然可以正常運行,具有很強的健壯性。防篡改:每個區塊鏈節點包含有所有交易的完整副本,一個節點篡改數據庫不會影響其它節點的數據,除非同時控制整個系統51%以上的節點,在多節點情況下,系統是非常安全的。可追溯:區塊鏈由一串區塊所構成,每一個區塊包含一個時間段中所產生的所有交易以及上一個區塊的哈希值,通過哈希值與上一個區塊進行鏈接,實現對數據的追溯。
電子產品標識在信息追溯中占有至關重要的位置,只有對電子產品進行唯一標識,才能對電子產品信息實現有效的追溯。目前主流的對象標識體系包括國外的EPC、Handle、OID等,以及我國自主制定的Ecode。OID標識體系為分層、樹形的結構,各個國家自主管理自己的根節點,且有良好的擴展性及安全性,實際操作更為靈活。
OID解析系統主要對電子產品標識符提供標識解析并獲取其對應信息的過程。OID解析系統包括通用OID解析過程和特定-應用解析過程兩部分。通用OID解析過程是使用OID檢索存儲其相關聯對象信息的服務器地址的過程,特定-應用解析過程是從所檢索到的服務器獲取存儲該OID相關聯對象的詳細信息的過程。
本文提出基于區塊鏈和ORS的電子產品追溯系統主要由溯源企業、消費者、政府監管機構和區塊管理員組成。溯源企業負責記錄電子產品可追溯信息,政府管理機構負責供應鏈參與者的密鑰分配與身份認證以及產品質量檢測與防偽追蹤,區塊管理員負責智能合約管理、區塊鏈管理和權限管理,消費者可通過該系統查詢所購產品的基本信息。系統總體結構如圖1所示。
溯源企業主要包括溯源信息記錄模塊、企業信息數據庫和區塊鏈模塊。其中溯源信息記錄模塊旨在獲取電子產品生產、流通、銷售過程中產生的所有可追溯信息,同時,通過自動和手動方式,將供應鏈中電子產品的可追溯信息進行處理、傳輸并存儲;企業信息數據庫用于保存和管理來自溯源信息記錄模塊中獲取的所有可追溯信息;區塊鏈模塊主要提供數據交互的功能,包括記錄溯源信息到區塊鏈上以及獲取鏈上的溯源區塊信息。

圖1 系統總體結構
政府監管機構主要包括密鑰與認證模塊和質量檢測與防偽追溯模塊。密鑰與認證模塊用于保證系統安全性、機密性和有效性,其采用了非對稱加密、數字簽名、公鑰基礎設施(public key infrastructure,PKI)等密碼學技術構成密鑰與認證體系,成功認證身份后的供應鏈參與者,可獲得權威部門頒發的密鑰對。質量檢測與防偽追溯模塊有兩個功能:質量檢測,隨機檢查實際產品各項指標是否符合相關標準規定;防偽追溯,檢查溯源區塊信息,是否被篡改,運輸過程是否合規,企業注冊信息是否完善等,并將電子產品監管過程中產生的溯源信息記錄到區塊鏈。
區塊管理員負責節點管理包括智能合約模塊、區塊鏈管理模塊和權限管理模塊。其中智能合約模塊是基于區塊鏈的追溯系統的核心。智能合約是部署在區塊鏈上并自動運行的程序[9],用戶通過調用智能合約完成區塊鏈數據交互。區塊鏈管理模塊主要對用戶發送的區塊信息的有效性進行驗證,防止區塊鏈上記錄非法或無效信息;權限管理模塊對用戶訪問權限進行管理,為隱私數據提供訪問限制,防止隱私信息泄露。
另外,該系統為消費者提供兩個查詢功能模塊:溯源區塊查詢模塊,用于查詢位于鏈上的溯源區塊信息;ORS查詢模塊,可查詢鏈下的電子產品可追溯信息。
本文提出鏈上和鏈下聯合管理模型的主要特點是將電子產品生產、流通、銷售和監管過程中產生的大部分可追溯信息通過防篡改處理后保存在區塊鏈之外,如企業標識管理服務器。對于供應鏈中關鍵可追溯信息需要通過智能合約記錄到區塊鏈上。聯合管理模型解決了鏈上數據爆炸問題,并且保證了鏈下數據的真實性,實現整個系統中數據防篡改。鏈上和鏈下聯合管理模型如圖2所示,該管理模型的具體實現機制如下所述。

圖2 鏈上和鏈下聯合管理模型
2.2.1 鏈下模型
鏈下模型主要包含標識編碼和解析兩個過程。本文引入OID標識體系[10],并采用國家標準GB/T 17969.1和GB/T 26231-2017相關規定[11]對追溯中的每一個電子產品及其相關對象進行唯一標識編碼,將OID對象在供應鏈過程中的信息以及生成的數字摘要[12]存儲于各溯源企業的標識管理服務器,通過ORS獲取OID對象信息,管理鏈下的大容量追溯數據。
(1)標識編碼
鏈下模型涉及的標識編碼可分為兩部分:①電子產品標識編碼,生產企業的標識管理服務器負責對電子產品進行統一標識編碼,并在該服務器中存儲OID對象相關信息,如質量檢測數據、質檢報告、生產操作日志等大容量追溯數據;②電子產品相關對象標識編碼,該環節由溯源企業各自的標識管理服器對企業的生產許可證、營業執照、原產地認證資格證等進行標識編碼,并存儲相關信息。
(2)標識解析
各溯源企業的標識管理服務器中存儲著電子產品生產、流通、監管和銷售過程中的大量可追溯信息,通過標識解析系統可獲取相關信息,標識解析過程如圖3所示。

圖3 標識解析過程
步驟1 消費者向公共標識服務平臺發送產品標識碼,請求對該OID進行標識解析。
步驟2 公共標識服務平臺收到標識解析請求后,將該請求轉發至公共標識管理系統。
步驟3 公共標識管理系統通過標識解析服務器對該OID進行解析,并獲得該OID所關聯產品的溯源企業標識管理服務器地址。
步驟4 標識解析服務器將解析獲取的溯源企業標識管理服務器的IP地址發送給公共標識管理系統。
步驟5 公共標識系統將獲取的IP地址返回給公共服務器。
步驟6 公共服務器通過IP地址訪問溯源企業標識管理服務器。
步驟7 溯源企業標識管理服務器將該產品標識碼所對應產品的可追溯信息返回給公共服務器,完成解析過程。消費者可獲得電子產品追溯過程中詳細的溯源信息,同時可通過鏈上溯源信息中的數字摘要驗證溯源信息是否可信。
此鏈下模型設計,不僅解決了鏈上數據爆炸問題,而且有助于提高產品編碼的標準化程度,擴展了該系統的追溯范圍。
2.2.2 鏈上模型
鏈上模型包括溯源信息表和溯源區塊管理兩部分。溯源信息表由溯源區塊和信息表構成,溯源區塊管理主要通過智能合約對區塊鏈上的電子產品數據進行管理,一方面將關鍵溯源信息記錄到溯源區塊中,另一方面獲取溯源區塊中電子產品的溯源信息。
(1)溯源信息表
溯源區塊與信息表構成如圖4所示,每個溯源區塊由區塊頭和區塊頭以外的內容組成。區塊頭包含父區塊Hash、區塊生成者的公鑰、該區塊中交易的Merkle樹根的哈希值和生成區塊的時間戳。區塊頭以外的內容包括溯源信息個數和溯源信息。溯源信息個數即該區塊中包含的交易數,每次生成的區塊含有多條交易。溯源信息為每條交易內容,如圖4中溯源信息記錄。該溯源信息由產品標識碼(object identifier,OID)、數字摘要、追溯信息、時間戳、公鑰和數字簽名構成。產品標識碼作為產品的唯一識別碼,采用OID標識體系對其進行標識編碼。數字摘要為存儲于鏈下的大容量追溯信息通過哈希運算后生成的哈希值,常見的哈希算法有SHA1[13]、SHA2[13]、MD5[14]等,本文選用SHA-256[13]哈希算法,其可靠性和安全性滿足系統需求。將鏈下追溯信息的數字摘要記錄到區塊鏈上,可驗證鏈下大容量追溯信息是否被篡改。追溯信息為電子產品生產、流通、銷售和監管過程中的關鍵信息。時間戳表示交易單生成的時間,公鑰為交易單生成者的公鑰。數字簽名是交易單生成者對交易信息的簽名,其具有不可抵賴性和防篡改性。一個個溯源區塊組成了一條區塊鏈,供應鏈參與者可調用智能合約根據唯一標識的產品標識碼以及參與者訪問權限,獲取相應電子產品溯源信息表中的可訪問信息。整個溯源信息表中包含了關于該電子產品的所有可追溯信息,即電子產品生產、流通、銷售和監管過程的關鍵可追溯信息以及溯源企業注冊信息。

圖4 溯源信息
(2)溯源區塊管理
在追溯過程中,各溯源企業和監管部門首先需要進行密鑰與認證操作以及權限分配操作,操作完成后通過調用智能合約向區塊鏈中添加追溯信息,鏈上數據流如圖5所示。鏈上數據交互主要分為5個環節,各環節詳細設計如下:

圖5 鏈上數據流
生產環節:主要角色是溯源企業中的生產企業,主要負責:①獲取并處理制造企業生產過程執行系統(manufacturing execution system,MES)[15]中的結構化數據和非結構化數據,②使用OID對每一個電子產品進行唯一標識,并生成產品二維碼方便供應鏈過程中各個供應鏈參與者使用。MES系統中存儲著電子產品生產執行過程中的所有相關記錄,該記錄可以分為兩類,即結構化數據與非結構化數據。結構化數據即一般數值和簡化性文字數據,包括產品標識碼、產品批號、數字摘要、生產日期、生產地址、生產企業等數據。非結構化數據指的是生產過程中產生的圖片、視頻和大容量文本數據,如質檢報告、采購清單、操作日志等。生產企業在該環節將結構化數據作為關鍵溯源信息添加到溯源信息表,存儲于溯源區塊,對于非結構化數據,這些數據本身的數據量較大,不適合在存儲于區塊鏈中,生產企業通過離線方式存儲于企業標識管理數據庫、信息管理數據庫和信息緩存數據庫中。
流通環節:主要角色是物流公司,通過掃描產品二維碼可獲取產品標識碼,并依靠成熟的GPS定位技術獲取精確的位置信息。溯源企業中的物流公司主要負責添加電子產品的物流信息,包括運輸公司信息、產品位置信息、產品運輸方式、產品狀態信息。該追溯系統中電子產品狀態定義為“運輸中、運達、待售、已售、返廠和刪除”6種狀態,物流公司需根據實際運輸情況記錄產品狀態。
銷售環節:主要角色是經銷商和零售商,主要職責為修改并記錄產品狀態,增加產品銷售時間和銷售價格數據,保證信息追溯的完整性。
監管環節:主要角色是政府監管機構,其中質量檢測機構負責產品質量的隨機檢查,質量技術監督局負責檢測電子產品在流通過程中是否出現數據篡改,流通過程是否符合規范。如果出現質量問題,則將當前產品狀態修改并記錄為返廠狀態,對該問題產品進行召回。如果出現數據篡改、流通過程違規等問題,則可將當前產品狀態修改并記錄為刪除狀態,然后進一步對產品進行處理。
追溯環節:主要角色是消費者,掃描二維碼可獲取產品標識碼,通過標識解析系統可獲取電子產品相關的所有溯源信息,通過區塊鏈系統可獲取位于區塊鏈中不可篡改的電子產品生產、物流、銷售和監管信息。同時,通過對比鏈上和鏈下數字摘要異同,根據鏈上數據的不可篡改性,可分析鏈下數據是否發生過篡改行為,獲取可信的鏈下數據。
本節中,通過具體應用場景驗證本追溯系統的有效性。
2019年6月6日,“千元iPhone組裝機”事件被媒體曝出,某社交電商平臺發布的正品蘋果手機被官方鑒定為假貨。這些蘋果手機的原材料收購于深圳的二手市場,通過對一些損壞的二手蘋果手機更換主板、零件,再將外殼加工打磨,表面上就能跟正品手機十分相似。諸如此類的假手機事件還有很多,這種事件不僅損壞了正品品牌的名譽,還給消費者帶來了麻煩。由此,通過基于區塊鏈和ORS的電子產品追溯系統可以為假冒偽劣電子產品提供解決方案。
首先,本系統中溯源企業通過國家物聯網標識管理服務平臺注冊電子產品OID標識碼并存儲電子產品詳盡的可追溯信息以及將詳盡數據通過哈希運算后得到的數字摘要。然后,通過區塊鏈系統添加電子產品簡要可追溯信息以及詳盡數據生成的數字摘要到區塊鏈中。最后,消費者可通過掃描電子產品的二維碼查看電子產品的生產信息、物流信息、銷售信息和監管信息。
若查詢到區塊鏈上存在電子產品已出售信息以及多條生產信息,則可判定所購電子產品為翻新機;若查詢到區塊鏈上的數字摘要和ORS中的獲取數字摘要不同,則可判定所購電子產品中存在信息篡改行為。
目前,區塊鏈分為公有鏈、私有鏈和聯盟鏈。其中,聯盟鏈具有部分去中心化,面向企業開發的特點,本文中的信息追溯系統主要入鏈對象為溯源企業、政府監管機構和消費者,因此選用聯盟鏈方式。對于平臺選擇,當前Bitcoin(比特幣)、Ethereum(以太坊)以及Hyperledger(超級賬本)是三大主流區塊鏈技術平臺。Hyperledger平臺代表最新區塊鏈技術,其具有良好的擴展性,同時允許調用智能合約。本文選用Hyperledger下的Fabric(面向企業管理)區塊鏈平臺,用于構建信息追溯系統。
本追溯系統采用Hyperledger Fabric v1.2平臺來設置區塊鏈,部署5Peer+1Orderer的架構,在Ubuntu 16.04環境下進行部署虛擬機,5Peer節點用于模擬生產企業、物流公司、經銷商/零售商、監管部門和消費者,1Orderer節點為排序節點。使用Golang編寫鏈碼,鏈碼主要實現以下功能:商家注冊、添加產品生產信息、添加產品物流信息、添加產品分銷信息、添加產品零售信息、添加產品監管信息、商家信息查詢和產品信息查詢等。該系統采用C/S架構,使用Qt Creator開發應用程序,提供人機交互功能,同時,使用官方支持語言Node.js編寫程序調用鏈碼,執行相關操作。
本文的區塊鏈網絡由6臺虛擬機構建,服務器IP地址分別為192.168.242.220,192.168.242.221,192.168.242.222,192.168.242.223,192.168.242.224和192.168.242.214。詳細的測試環境見表1和表2。

表1 軟件環境

表2 硬件環境
系統響應時間即系統時延是系統性能的重要指標之一。系統主要功能分為鏈上數據入鏈與鏈下數據管理,鏈下數據由各角色主體分布式自主處理,不對追溯系統響應時間產生影響,追溯信息上鏈速度是影響系統響應時間的關鍵。實驗結果表明,系統響應時間受鏈上數據量的影響,圖6為鏈上數據量與系統響應時間的關系圖,鏈上數據量從1 G增加到8 G時,系統響應時間從250 ms增加到500 ms,由此表明當鏈上數據量暴增時,數據量對系統性能影響較大。

圖6 系統響應時間與鏈上數據量關系
本文通過對某電子產品制造企業調研得知,一條中等規模生產線每分鐘約產生2 MB生產操作日志數據,如果每6 min完成某電子產品的生產,則需要追溯的生產數據為12 MB。普通區塊鏈系統將所有追溯數據都記錄在鏈上,而本系統采用鏈上和鏈下聯合管理模型,鏈上信息只記錄關鍵追溯信息與詳細數據的數字摘要。普通區塊鏈系統和本系統鏈上數據量隨時間變化如圖7所示。

圖7 普通區塊鏈系統和本系統鏈上數據量對比
圖7中,隨著時間增長,普通區塊鏈系統中鏈上記錄的生產信息數據量劇增,同時鏈上需要記錄電子產品流通、銷售和監管過程中的所有追溯數據,導致單個區塊鏈節點數據爆炸。本系統采用鏈上和鏈下聯合管理模型,鏈上記錄的生產信息只占有1 K左右的內存。該數據量主要由區塊頭和溯源信息產生,其中區塊頭包含32字節的父區塊Hash、294字節的區塊生成者的公鑰、32字節的Merkle樹根的哈希值和4字節的生成區塊的時間戳;溯源信息包含4字節的產品標識碼、32字節的數字摘要、200字節左右的生產追溯信息、4字節的交易單生成的時間、294字節的交易單生成者的公鑰和128字節的數字簽名。由于電子產品在流通、銷售和監管過程中區塊頭、產品標識碼、數字摘要、時間戳和數字簽名占用內存相同,由此類推每次在鏈上記錄信息所占用的內存均為1 K左右,有效解決了數據爆炸問題,保證了系統的可靠性和可行性。
將本文設計的電子產品追溯系統與當前主流追溯系統進行定性比較,結果見表3。

表3 本系統與主流追溯系統定性比較
國家食品(產品)安全追溯平臺和國家物聯網標識管理服務平臺具有信息追溯能力,但是防篡改能力弱,數據在傳輸和存儲過程存在被修改的可能性,而本系統具有很強的防篡改能力,保證數據真實可信。普通區塊鏈系統防篡改能力強,但是區塊鏈上數據量大,本系統解決了區塊鏈上的數據爆炸問題,具有更高的可靠性。通過對比可以看出本系統相比國家食品(產品)安全追溯平臺、國家物聯網標識管理服務平臺和普通區塊鏈系統,表現出了更優越的性能。
本文針對電子產品生產和供應鏈過程信息封閉、易篡改和不安全等問題,提出了基于區塊鏈和ORS的電子產品追溯系統。該系統采用了鏈上和鏈下聯合管理模型,將關鍵可追溯簡要信息與詳細數據的數字摘要記錄在區塊鏈上,保證信息真實可信,將大容量追溯信息通過防篡改處理后存儲于區塊鏈下的各企業標識管理服務器中,成功地減少了單個區塊鏈節點的數據量,解決了數據爆炸問題。然后,本文給出了本系統在電子產品供應鏈中的實際應用場景,并通過實際測試驗證了本系統的可行性與有效性。最后,通過與目前主流追溯系統進行定性比較,本文提出的系統不僅可以滿足追溯系統的基本要求,而且在以下方面表現出優越的性能:①防篡改能力;②分散化程度;③鏈上數據量,保證了系統高效可靠,滿足實際需求。