趙利霞, 葉春明
(上海理工大學 管理學院, 上海 200093)
在具有傳染性的突發公共衛生事件中,行程追蹤在防控中發揮著至關重要的作用。為保障公民人身安全與社會穩定,政府會下達系列指令,嚴格要求各種場所加強人員進出檢測與記錄,記錄的人員活動軌跡為之后可能的病源追溯提供事實依據。以新型冠狀肺炎為例,其具有強傳染性,尤其在室內環境、空氣流通狀況不佳情況下,傳染速度和強度提高。疫情初期,大部分場所,包括人員密集的超市、居民區、商場等,檢測與記錄都是采取線下手動記錄,沒有備份處理與線上共享,使得信息流轉緩慢與信息缺失;而后在政府的倡導下,各地迅速推廣健康碼、行程碼并逐漸引入智能測溫裝置,提高檢測效率與準確度。但人員流動的軌跡仍未全面記錄,僅在部分重要流轉場合或人流量較大場所進行體溫檢測和行程查看與記錄。
疫情中人員信息和軌跡信息的不完善導致對疫情來源、密切接觸人員、次密切接觸人員的追蹤時間增加,增大了病毒傳播和人員感染的風險,使得疫情影響逐漸擴大。目前,我國新型冠狀肺炎衛生事件已經得到有力控制,但疫情仍處于復發反彈階段,不可掉以輕心。如果建立一個利于快速對人員軌跡進行追蹤的信息系統,在發現確診或疑似病例后,加快病源溯源,盡快開展對相關接觸人員、地點的排查,將對控制疫情有重要的意義。
要準確且全面地采集記錄人員軌跡及信息,需要對人員行蹤進行實時追蹤。人員軌跡追蹤需要可靠而穩定的數據來源,數據來源于各種渠道或技術,包括手機、電腦等電子終端發送的位置信息,身份證或銀行卡等電子IC芯片留下的地點信息,車載導航、高速公路收費站等記錄的路徑信息,監控攝像等捕捉的行蹤信息等。由于全球定位系統在室內環境中的局限性,周寶定等[1]提出了一種依賴智能手機室內定位人員的方法,通過手機內置的傳感器獲取行人連續多個位置相關的行為狀態,結合室內已有的網絡拓撲,將行人位置匹配到相應的特殊位置從而消除PDR的累計誤差并實現自主定位。唐小勇[2]以Android移動智能終端無線Wi-Fi和Bluetooth信號采集為基礎,提出基于指紋比對的多模式匹配定位算法,實現基于Android終端的移動軌跡智能化追溯。張青[3]設計了一種可以按時自動從多路攝像頭通道中提取視頻,并形成一個完整的執法軌跡,克服了民警手工查找視頻勞動強大、效率低下的問題,提高了民警辦案的效率。李撈扒等[4]從追溯客戶的繳費行為軌跡出發,提出了一個針對繳費渠道的風險監控模型。尹輝斌等[5]提出了一種基于IWR1443毫米波傳感器構建的FMCW雷達系統,從而采集運動目標的位置信息,實現了精度為0.2 m的人體運動軌跡檢測方法。
目前人們研究了大量方法實現人員定位與位置預測,尤其是對于小范圍內的人員位置記錄應用較多,但大多未將小范圍內檢測到的點位置連接成完整的線軌跡,對于大范圍內的人員軌跡合法記錄與監測的應用較少,而疾控需要連續的人員軌跡變化數據從而進行病原追溯。區塊鏈技術具有可溯源、防篡改、無條件信任、去中心化、防偽性等特征[6],是一個分布式賬本或者說信息共享平臺。本文提出將區塊鏈技術應用于人員軌跡追蹤研究,在突發公共衛生事件中,將監測到的人員軌跡與疾控信息實時整合到共享平臺,設計并實現基于區塊鏈的人員軌跡溯源系統。
在國家未授權的情況下任何機構或個人不可非法獲取和利用個人位置行蹤等隱私信息。在某些緊急情況下的人員排查需要經過層層批準,才可以查詢相關信息,延長了排查時間甚至錯過了最佳排查時機;當然,人員軌跡信息也無法直接共享用于商業分析。
目前采用的人員位置采集技術無法自動生成連續完整的行動軌跡,也無法快速準確地追查到某時間段內某一位置所出現的準確人員信息,因此,大多時候人員的追蹤還要輔以大量人工排查,存在重復信息干擾并欠缺時效性。
大數據時代,大量的位置數據存在著互相關聯進而可能形成連續位置軌跡,如果這類信息處理不當,可能使得相關人員的私密信息遭到泄露[7],這導致部分人員不愿意主動參與到軌跡信息收集中,同時側面反映出人員軌跡溯源中存在的信任問題。
2.1.1 技術特征
區塊鏈是一個去信任化、去中心化的分布式共享數據庫。區塊鏈把數據打包成區塊,按照時間順序將區塊以鏈條的形式組合起來,形成特定的鏈數據結構[8],并結合點對點傳輸、共識機制、非對稱加密算法和智能合約等技術,以保證其不可篡改性、可追溯性、防偽性以及高效性。區塊鏈的防偽性強化了其在隱私保護方面的應用;可溯源性提高了信息追溯的效率;去中心化將“信息孤島”串聯形成數據共享平臺;除此之外,防竄改、無條件信任等特征,加持了其在公開信息的同時保障信息安全的應用實踐。
2.1.2 可行性分析
區塊鏈技術在消息透露與隱私保護兩方面的平衡為交易數據提供了良好的保障。一方面,區塊鏈網絡中披露必要的交易內容以促進節點達成共識,另一方面,為了保護用戶隱私,區塊鏈對敏感數據進行處理加密。許多共享信息運用區塊鏈隱蔽用戶身份、適當加密交易信息,保證信息安全,避免敏感數據泄露[9]。區塊鏈在物聯網中的應用是近幾年的研究熱點,物聯網與區塊鏈的聯合產生了“物鏈網”。區塊鏈中修改區塊計算力太大,其區塊的不可篡改性保證了物聯網的共識,且每一個區塊都包含了上一個區塊的信息,使得物聯網應用可追本溯源[10]。同樣,區塊鏈也較好地被應用到了供應鏈中。在供應鏈體系中,商品從原材料采購到消費者手中,要經過大量環節,利用區塊鏈將供應商、分銷商、零售商、用戶串聯,形成公開可查的可追溯系統[11]。
區塊鏈在追溯溯源方面的應用目前集中于供應鏈和物聯網兩個領域[12-13],在人員軌跡追溯的應用較少,但三者之間有相似之處。因此,以區塊鏈在供應鏈和物聯網中的應用為例,將區塊鏈的特性運用到突發公共事件中的人員軌跡及信息數據的收集中,在充分保護人員隱私的同時,不斷記錄、更新人員的軌跡,并在網絡中進行實時共享,形成一個信息追溯系統。
針對突發公共衛生事件中人員軌跡追蹤所面臨的各種問題,可借助區塊鏈技術提供解決方案,將人員基本信息、軌跡變更等數據記錄到區塊鏈上,提高權限獲取效率,增強各方的信任度,提升信息的安全性和使用率,增強人員軌跡的可溯性[14]。突發公共衛生事件影響廣泛,涉及到的主體眾多,將其簡化為三大主體:政府機構、企業組織、公眾人員。本文基于區塊鏈技術所建立的人員軌跡信息庫架構如圖1所示,其中,環境層利用各類技術進行數據監測與收集,大數據融合平臺與區塊鏈層中的智能合約交互,將人員軌跡信息上傳至區塊;區塊鏈層結合密碼學、智能合約、分布式賬本等技術,進行數據轉換、存儲、廣播;應用層向區塊鏈層讀取信息,向系統用戶輸出處理后的數據。

圖1 基于區塊鏈的人員軌跡信息庫架構Fig.1 Blockchain-based personnel track information aatabase architecture
由上述信息庫構架可知,環境層中各企業借助各種技術、設備收集人員軌跡信息后向區塊鏈層發送數據,應用層給各方用戶提供了一個便于向區塊鏈層進行信息查詢的端口。人員軌跡溯源方案結構圖如圖2所示。
2.3.1 人員軌跡信息收集
基于區塊鏈的人員軌跡溯源系統參與節點眾多,產生大量數據,尤其是人員流動性強,人員軌跡信息采集量大且更新速度快,若直接將所有數據信息上傳到區塊鏈網絡中,區塊鏈目前自身存在的拓展性問題會導致數據上傳慢、系統運行成本高。因此,采用雙存儲機制,將基礎數據同時存儲到區塊鏈和數據庫中。數據庫中記錄的是人員軌跡的完整信息,區塊鏈中則存儲的是數據信息摘要[15]。為了防止人員敏感信息泄露,企業收集記錄的為系統指定的非敏感數據。

圖2 溯源方案結構圖Fig.2 Structure diagram of traceability plan
2.3.2 人員軌跡信息記錄
假設人員1從企業A(出發地)流轉到企業B(目的地),則區塊鏈對人員軌跡信息的記錄與更新流程如下:
a.人員1從企業A轉移前的位置軌跡信息已由A打包記錄在某區塊中;
b.人員1轉移位置到企業B,軌跡發生改變,企業B檢測并收集到人員1的信息,企業B發出軌跡變更請求;
c.P2P網絡全網廣播人員軌跡變更請求;
d.區塊鏈上接收信息的全節點驗證人員軌跡信息正確性;
e.信息合法,A轉交人員1的軌跡記錄權限給企業B,由企業B將當前通過驗證的人員1的新增軌跡信息納入新的區塊中;
f.區塊鏈上接收信息的全節點對新區塊執行規定的共識算法;
g.新區塊通過共識算法后鏈接到最長鏈,人員1軌跡信息更新成功。2.3.3人員軌跡信息查詢
人員軌跡信息查詢在客戶端進行操作,即輕節點通過客戶端,連接到網絡中全節點,進行相應訪問,觀察存儲鏈的全狀態。信息查詢根據不同需求進行,若是對具體某人員進行排查,則輸入被查詢的人員對應的溯源碼與姓名,便可通過調用區塊鏈上的智能合約讀取到所需軌跡數據或其他并行數據(某時、某地、溫度等);若是需要對某具體地點進行排查,則輸入該地點企業的節點ID、名稱、時間,同樣通過合約自動讀取到某時某地人員集合。另外,根據權限不同,所得到的信息詳情略有不同。企業和普通用戶只可獲取非敏感數據,監管機構在進行追蹤時根據需求可獲取所需敏感數據,如身份證號碼。
溯源系統的設計主要是為了實現人員軌跡變更的追溯功能和某地某時的人員排查功能。將人員軌跡溯源與區塊鏈技術相結合,開發去中心化的分布式應用(DAPP)。溯源系統按照客戶端三方的需求設計業務功能,分為具有不同業務功能的3大模塊[16],包括:監管部門模塊、普通用戶模塊、企業組織模塊,如圖3所示。

圖3 基于區塊鏈的信息溯源系統Fig.3 Information traceability system based on blockchain
3.1.1 監管部門模塊
監管部門模塊由政府機構授權的監管部門節點組成,該部門擁有系統的最高權限,系統中人員的追溯碼均由監管部門統一生成與注銷,保證人員上鏈的全面性、廣泛性,使人員軌跡信息更加完整;監管部門可對網絡中其他節點進行對應的業務授權,其他節點經授權后要相應地履行職責、享受義務;監管部門可獲取人員的身份信息和軌跡信息;若上鏈的節點出現違規或未達到額定標準,將會受到監管機構的懲處。
3.1.2 普通用戶模塊
普通用戶在客戶端進行身份認證,獲得監管部門授權后可通過人員的溯源碼和姓名在數據庫中查詢軌跡信息;如果對查詢信息有疑問,則可獲取區塊鏈中的信息摘要與所查詢信息通過相同加密算法后的摘要比對[17],若發現摘要不一致,可進行信息檢舉。
3.1.3 企業組織模塊
企業組織上鏈后,獲得監管部門授權,可以進行人員軌跡信息查詢和驗證,同樣能對不實信息進行檢舉;若檢測到人員的軌跡流轉,則需要發送軌跡變更申請,將相應信息錄入數據庫。理想情況下,企業引入可自動識別身份并同時測量體溫的人工智能設備,記錄人員的地理位置、時間節點、體溫等;若檢測到異常數據,人工智能設備將會立即發出警報,所在企業根據實際情況采取相應措施。
目前可以開發DAPP的平臺較多,本文選擇以太坊平臺。實現DAPP,首先要進行智能合約的開發,完整的智能合約可以實現與外界的交互、流程的自動執行等?;谝蕴坏陌菪裕谠撈脚_上可以用不同編程語言創建智能合約,本文選擇以定位以太坊虛擬機為目標的solidity語言進行合約編寫,該語言目前由以太坊核心開發團隊維護。智能合約開發流程包括合約編寫、編譯、部署及調用,合約內容通常涵括所需參數、自定義結構體(struct)、接口事件(event)、功能函數(function)。
溯源系統的智能合約通過設置一系列參數、函數等完成數據記錄、信息校驗、交易查詢。本文的合約函數包括的參數與功能如表1所示。
以太坊推出開源的Solidity智能合約在線開發環境Remix,其提供基本的合約編譯、部署至本地測試網絡、執行合約等功能。Remix無需環境配置,使用方便簡單,故本文首先在Remix上進行合約測試。由于為合約基礎測試,信息采用手動輸入的形式。
將合約內容放置到Remix-Ethereum IDE在線編譯器右上側的工作區中,通過左側功能區的編譯后再部署到JavaScript虛擬機,如圖4所示。部署成功后,即可點擊左側相應函數框進行合約函數測試,依次測試函數CreatePerson,setPermission,
recordTrace,getTracesOf,getTracesOftheCertain,具體測試信息會出現在右下側日志區,如圖5和圖6所示。
為了測試智能合約的主要功能,代入實際疫情案例數據。案例選擇易獲取的四川省某案例:2021年12月29日四川樂山市五通橋區疾控中心上報喬某等4人為新冠肺炎確診病例的密切接觸者的行程軌跡。目前由于設備采集不完善和保障公眾隱私安全,信息收集及公布并不完整,如實時體溫等,故本文將需要的信息進行了適當補充,如表2所示。
將以上疫情密接人員相關信息錄入,得到的測試結果與表2內容進行對比,可知智能合約內容可以實現所期望的功能。測試結果如圖7和圖8所示。

表1 智能合約函數表Tab.1 Function table of smart contract

圖4 合約在線編譯與部署Fig.4 Contract online compilation and deployment

圖5 合約在線測試Fig.5 Contract onlinetest

圖6 合約在線測試日志區Fig.6 Log area of contract online test

表2 密接者行程軌跡表Tab.2 Contact person's itinerary table

圖7 具體地點、時間人員集合Fig.7 Personnel collection of the specific location and time

圖8 指定人員軌跡集合Fig.8 Track collection of specified personnel
在以太坊平臺上開發項目,若在主網公有鏈上測試或部署智能合約等需要消耗以太幣且搭建復雜,故本文選擇在本地搭建私有鏈以節約成本、簡化過程。在本地進行合約發開,先要搭建運行系統的環境,安裝Truffle、Ganache、VS code以及Web3.js。Truffle是針對基于以太坊的Solidity語言的一套開發框架,可簡化DAPP的構建和管理流程;Ganache通過模擬真實以太坊網絡,實現本地內存區塊鏈的開發和測試,將私有鏈可視化;VS code配置solidity環境后便于編寫、調試合約,并且與truffle交互后編譯、部署合約;Web3.js是以太坊官方的Javascript API,有助于開發者使用HTTP或IPC與節點進行交互。
環境搭建完成后,在命令行依次輸入truffle init,truffle compile,truffle migrate,完成項 目啟動、合約編譯、合約部署,如圖9和圖10所示,成功后即可在Ganache中查看到私鏈上的4個新生區塊,如圖11所示。
將智能合約成功部署到區塊鏈上,系統程序基于JavaScript與Node.js具有良好的擴展性,可實現合約與外界交互。本文將合約與Web頁面交互,實現客戶端各模塊的操作。
5.2.1 監管方授權與創建溯源碼
監管方(政府)是合約的創建者,即系統的超級管理員。監管方將所有人員基本信息、企業信息錄入到系統中,生成溯源碼,即使某人員未主動注冊,其軌跡仍可被記錄、查詢。當人員或企業自主上鏈,需要通過監管方授權。超級管理員通過調用智能合約中的函數對區塊鏈系統中的其他節點設置不同的狀態碼以進行授權,如圖12所示。其中,監管方狀態碼為3,溯源合約創建即通過合約中構造函數自動授權;普通用戶狀態碼為1,有查詢和驗證人員軌跡的權利;企業組織狀態為2,有轉移、查詢人員軌跡的權利。在監管方授權的同時將地址和狀態碼、溯源碼綁定,之后該地址可通過溯源頁面進行操作。
5.2.2 企業方軌跡變更申請及錄入

圖9 項目啟動與合約編譯Fig.9 Project startup and contract compilation

圖10 合約部署Fig.10 Contract deployment

圖11 合約成功部署后鏈上新生區塊Fig. 11 New blocks on the chain after the successful deployment of the contract
人員軌跡變更和軌跡信息錄入是被授權企業可進行操作的模塊。在錄入軌跡信息時,輸入相應人員的溯源碼和姓名,以及檢測到人員溫度、測量時間等,如圖13所示,通過人員身份的一致性驗證后,點擊軌跡記錄,系統將自動發送某人員的軌跡記錄權限申請,將某人員軌跡記錄權轉移到目前企業地址,并去除前一個企業對該人員的軌跡記錄權,以成功添加該人員的新軌跡,增加該企業所管理的人員軌跡。
5.2.3 人員軌跡查詢或某時某地人員排查

圖12 監管方授權與創建溯源碼Fig.12 Supervisor authorization and creation of traceable source code

圖13 企業進行人員軌跡變更記錄Fig.13 Recordsof personnel track changes by enterprise
在經過監管方授權后,用戶可登錄溯源網頁詢人員軌跡,軌跡查詢有兩種方式,如圖14所示。第一種為查詢特定人員的軌跡,輸入某人的姓名與溯源碼、查詢年份,即可得到指定年份中該人員的全部軌跡信息;第二種為輸入某地的名稱與溯源碼、查詢時間,即可得到某地某時間范圍內全部人員的名單。在實際應用中,可以通過智能合約的編寫,調整人員軌跡的查詢時間范圍、返回的人員信息內容等。

圖14 人員軌跡查詢Fig.14 Personnel track query
區塊鏈以其鮮明特性:去中心化、分布式網絡、防竄改性、可追溯性、自信任性等,在某些行業中展現出了巨大的發展潛能,相關應用不斷增加。其中,區塊鏈的追溯性能、對信息的加密性能以及其分布式賬本的性能,使得其信息共享、信息追溯中的應用逐漸增多。本文從突發公共衛生事件角度出發,借鑒區塊鏈在供應鏈與物聯網中的溯源應用,研究了基于區塊鏈的人員軌跡溯源系統,將社會各方納入到溯源系統的建設維護中,對人員軌跡信息加強保護并采取分布式存儲,采用智能合約滿足期望需求,并自動執行程序,實現疾控中人員軌跡及信息數據的快速收集與讀取,構建了可信高效的人員追蹤系統。將區塊鏈視為溯源系統的底層技術,有助于重塑信任體系[18]、提高追蹤效率、擴大信息共享。但在實際的應用以及進一步的研究中,不僅要結合系統的具體使用環境,還需要考慮區塊鏈目前存在的一些挑戰,例如,拓展性(以太坊目前的吞吐量可能無法支持大量的人員軌跡更新)、設備成本(需要統一的自動檢測與錄入人員信息的人工智能設備)、存儲量(海量的人員信息數據需要大存儲空間)等。