陳 潮
(浙江警察學院計算機與信息安全系,杭州 310053)
隨著信息技術的不斷發展及在各個社會領域的深入應用,人類社會產生的電子數據呈現爆炸式增長,公安機關在辦理各類案件中提取海量的電子數據,部分電子數據成為案件偵查、訴訟和審判等司法活動中必須的電子證據。《中華人民共和國民事訴訟法》和《中華人民共和國刑事訴訟法》中明確規定電子數據可以作為證據,電子證據已被列為八大類證據之一,成為司法活動中的重要證據之一[1]。電子證據具有的易復制、易篡改、易損壞和保管監管難等特點,導致其在安全性和可靠性方面面臨巨大的挑戰。2018 年,最高人民法院發布《關于互聯網法院審理案件若干問題的規定》,人民法院應當對當事人通過電子簽名、區塊鏈等證據收集、固定和防篡改的技術手段或通過電子取證存證平臺認證收集的證據予以認定[2]。
區塊鏈是一種分布式存儲的共享數據庫,采用區塊和哈希鏈的數據結構,具有去中心化、防篡改和可溯源等特點,特別是其中的聯盟區塊鏈,適合公安機關跨部門跨警種使用,可以實現對電子證據的分布式存儲,采用共識算法實現各節點數據的一致性,從而確保上鏈后數據的無法篡改。當前電子證據的種類和形式表現多樣性,存儲容量上既有以字節為單位的電子證據,也有以太字節為單位的電子證據,呈現數量級上的巨大差別,而區塊鏈在存儲大文件時存在冗余大、效力低和處理速度慢等問題,為解決區塊鏈不適合存儲容量較大的電子證據的問題,提出一種基于區塊鏈和星際文件系統的電子證據存儲模型,將電子證據及其哈希值分別存儲在星際文件系統和區塊鏈上,星際文件系統確保電子證據的去中心化和分布性存儲,區塊鏈實現對電子證據的查詢和驗證,從而有力地保障電子證據的司法效力。
區塊鏈是數字加密貨幣比特幣的一種數據結構,區塊鏈技術是比特幣的底層支撐技術,是計算機技術、點對點網絡、分布式存儲技術、共識算法、智能合約、密碼技術和博弈論等眾多理論和技術的集成創新,是近幾年來最新最熱門的信息技術之一。區塊鏈由區塊和哈希鏈兩個部分構成,數據結構是區塊,比特幣區塊結構如圖1所示,區塊由區塊頭和區塊體兩個部分構成,區塊頭包含前一區塊哈希值、區塊版本號、時間戳、目標哈希(難度)、隨機數和默克爾樹根等,區塊體由該區塊所有交易的哈希構成的一個默克爾樹根構成[3]。區塊鏈網絡由眾多節點構成,每個節點存儲全部或部分區塊的信息。區塊鏈分為若干類型,根據節點加入區塊鏈網絡是否需要許可,將區塊鏈分為許可鏈和非許可鏈,非許可鏈即公有鏈,任何節點無需許可即可加入公有鏈,是一種完全去中心化的區塊鏈,典型的公有鏈有比特幣、以太坊等;許可鏈又分為私有鏈和聯盟鏈,私有鏈一般用于一個單位或組織內部,是一種不具有去中心化特點的區塊鏈;而聯盟鏈一般用于跨單位、跨組織和跨部門之間,是一種具有部分去中心化的區塊鏈。公安機關跨部門跨警種電子證據的存證,適合使用許可鏈,因此采用聯盟區塊鏈來搭建電子證據存證模型。
星際文件系統(interplanetary file transfer net?work,IPFS)是一種分布式數據存儲協議,用來替代互聯網中心化的HTTP協議,也是一種點對點的分布式文件存儲系統,可以實現對各種類型文件的永久存儲,星際文件系統具備的重復文件刪除機制,能夠避免文件的重復存儲,從而節約存儲空間資源,同時存儲在星際文件系統中的文件具有唯一的哈希值,通過文件哈希值實現對文件的快速搜索和定位[4]。互聯網采用傳統的基于地址的尋址技術,星際文件系統采用基于內容的尋址技術,當一份文件提交到星際文件系統時,星際文件系統將文件分解為每個大小為256 K字節的數據塊,數據塊互相鏈接,并構成默克爾有向無環圖。文件存儲到星際文件系統時,返回一個內容標識符(content?addressed identifiers for distributed systems,CID),內容標識符是星際文件系統中標準的文件尋址格式,集合內容尋址、加密散列算法和自我描述格式等內容,根據內容標識符可以實現在星際文件系統中的文件搜索[5]。若一個文件重復存儲到星際文件系統時,新產生的文件哈希值與之前存儲的文件哈希值相同,星際文件系統將不再重復存儲相同的文件。若一份文件進行修改后提交到星際文件系統,則會生成新的內容標識符。星際文件系統既有效地彌補區塊鏈存儲空間有限的不足,又利用其自身的分布式存儲技術解決傳統中心化存儲存在的問題,從而確保電子證據的安全存儲。
電子證據存證模型以區塊鏈網絡為基礎網絡架構,以星際文件系統為存儲介質,區塊鏈以公安局各派出所、各警種大隊和各業務科室為節點,證書中心為執法辦案民警頒發公私鑰對,并實現對民警身份的認證,具體架構如圖2所示,各節點之間通過點對點專用網絡互聯,同時每個節點也連接星際文件系統,星際文件系統實現對加密電子證據的分片存儲與合并提取,實現電子證據的安全可靠存儲,區塊節點將電子證據哈希值、關鍵詞和分片位置索引等信息打包成交易存儲在區塊鏈中,區塊鏈實現對電子證據的查詢和防篡改驗證。

圖2 電子證據存證模型架構
電子證據存證系統由民警身份的注冊和認證、電子證據存儲、電子證據查詢、電子證據下載和驗證等部分組成。
3.2.1 電子證據存儲
電子證據存證系統采用加密技術和星際文件系統實現對電子證據的安全可靠存儲,支持日志、文檔、圖片、音視頻和各類取證鏡像文件的加密存儲[6]。電子證據存儲流程如圖3 所示,民警在客戶端提交認證信息進行身份驗證,驗證通過后登入到電子證據存證系統,并接入到所在單位的區塊鏈節點。在客戶端計算電子證據哈希值和實現對電子證據的加密,加密后的電子證據上傳到星際文件系統,星際文件系統對加密電子證據進行分片存儲,同時將電子證據文件分片位置索引等信息返回給客戶端,客戶端將電子證據關鍵詞、在星際文件系統中的分片位置索引等信息打包成一條交易提到所在單位的區塊鏈節點,并通過點對點網絡廣播到區塊鏈所有節點,最終該交易納入到新的區塊中,從而實現對電子證據的加密分布式存儲[2],確保電子證據的機密性和完整性。

圖3 電子證據存儲流程
3.2.2 電子證據查詢
電子證據查詢由區塊鏈各節點對區塊信息進行關鍵詞搜索,依賴于電子證據存儲過程中保存在區塊鏈上的電子證據在星際文件系統中的分片位置索引和電子證據相關關鍵詞。電子證據查詢流程如圖4所示,民警在客戶端經過身份認證后,生成需要查詢的關鍵詞,提交到民警所在單位的區塊節點,節點在區塊鏈上進行關鍵詞搜索,若搜索成功,即可獲取電子證據的哈希值和在星際文件系統的分片位置索引,下一步可以進行電子證據的下載和驗證。

圖4 電子證據查詢流程
3.2.3 電子證據下載和驗證
電子證據存證系統經過電子證據查詢獲得電子證據在星際文件系統的分片位置索引,經過授權后,即可從星際文件系統下載電子證據,哈希校驗來防止電子證據的篡改。電子證據下載與驗證流程如圖5所示,民警獲得下載電子證據的授權后,向其所在單位的區塊節點發送下載電子證據的請求,區塊節點一方面獲得原始電子證據的哈希值,另一方面根據電子證據在星際文件系統中的分片位置索引,從星際文件系統下載電子證據的所有分片,并生成完整的電子證據,對下載的電子證據計算出哈希值,與原始電子證據的哈希值進行比對,若一致,則說明電子證據未被篡改,從區塊節點下載電子證據;若不一致,則說明電子證據已經被修改失效。

圖5 電子證據下載與驗證流程
針對傳統中心化存儲電子證據面臨的易復制、易篡改和易損壞等問題,在研究區塊鏈和星際文件系統工作原理的基礎上,提出一種基于區塊鏈和星際文件系統的電子證據存證模型,采用點對點網絡、哈希計算、加密技術和星際文件系統等技術,實現對電子證據的安全存儲、可靠下載、防篡改和自動驗證功能,對于提高電子證據的公信力有一定的借鑒意義。