王琪,張嘉政,劉文奇
(1.昆明理工大學 數據科學研究中心,云南 昆明 650500;2.昆明理工大學 云南省計算機技術應用重點實驗室,云南 昆明 650504)
電子證據是隨著電子科技不斷發展出現的 一種全新的證據形式,它屬于傳統證據的范疇[1]。電子證據解決了紙質證據中可能會出現的信息丟失、難獲取等問題,但也更容易被刪除、篡改和轉移。因此,傳統電子證據的完整性、客觀性及認定標準還不足,降低了傳統電子證據的可信性,電子證據舉證效力低已成為當前電子證據系統的痛點[2-3]。公安執法業務中電子證據的獲取和固定是司法過程中案件調查取證的重要環節,其技術措施是電子證據舉證效力的重要保證。長期以來,由于公安執法過程復雜,執法環境多變,帶來電子證據的取證和證據固定等諸多困難。在多變的公安執法環境中,通信和取證設備性能不穩定,容易導致在取證系統中某些節點出現宕機現象,從而影響取證和證據固定。
區塊鏈由是分布式存儲、點對點交易、采用密碼學和共識算法等技術的一種新型分布式數字賬本。其特點是去中心化、極難篡改、安全可靠、可追溯性、公開透明等,這些特點可用于解決網絡上節點間信息不對稱問題,從而實現多個主體間的協作與彼此信任。例如,在金融領域,自從比特幣開啟了去中心化的P2P 時代[4],區塊鏈成為了數字加密貨幣體系的核心支撐技術。就計算機技術而言,區塊鏈技術包含分布式存儲[5]、點對點網絡[6]、密碼學[7]、智能合約[8]、拜占庭容錯[9]等一系列復雜技術。2013 年末,以太坊[10]作為區塊鏈2.0 時代,將每次與區塊鏈的交互作為交易信息寫入區塊鏈中,為比特幣腳本語言中擴展性不足等問題提供了較好的解決方法。如今,隨著區塊鏈3.0 時代的到來,將區塊鏈技術擴展到了社會各領域的應用中,推動了產業變革。中央政治局第十八次集體學習時提出要將區塊鏈作為核心技術自主創新的重要突破口,加快推動區塊鏈技術和產業的創新發展,由此可見,中國政府也將從國家戰略層面全面推動區塊鏈技術的發展和應用。
本文主要致力于將區塊鏈技術與電子證據結合應用于公安執法。針對現有執法取證技術的不足,結合區塊鏈分布式存儲結構的特點,設計基于區塊鏈的公安執法電子證據的數據模型,通過改進的PBFT 共識算法,解決復雜執法環境下宕機問題和大規模文件傳輸困難,并對真實的執法記錄進行實證檢測,驗證了電子證據取證的可靠性。通過區塊鏈技術的不可篡改特性能夠避免在公安執法過程中可能出現的警務人員濫用職權等問題,去中心化特性又可消除現有公安數據庫的中心化存儲方式和加密方式的各種弊端,從而降低電子證據采信帶來的司法風險[11]。在數字化的時代,通過公安執法電子證據區塊鏈系統的使用,使公安執法過程更加透明,電子證據的可信度和辦案效率得到提高,有利于提升公安執法的公信力,為公安行業反腐倡廉提供新的技術措施,從而推動我國公安事業的技術進步。
區塊鏈是由存放數據的區塊根據時間先后順序以及密碼學方法串聯起來的分布式結構列表,它以對等網絡(peer-to-peer network,P2P)作為其通信載體,以時間戳、共識算法、哈希值、智能合約等來保證數據的安全與一致性。區塊鏈作為一種典型的去中心化分布式數據庫賬本,解決了在不可信環境中數據管理的可信問題[12]。其采用去中心化的數據管理模式,讓數據安全更有保障,讓各節點在互不了解、互不信任的情況下實現點對點交易,從而為中心化機構數據存儲普遍存在的高內存、高風險等問題提供了新的解決方案[13-15]。
區塊鏈的共享性使得每一個參與方都可以下載完整的賬本,相比較傳統的記賬方式而言,降低了多副本維護數據的成本,同時提高了訪問效率,這樣可以更好地規避公安執法中存在的不合理現狀,如公安人員的執法不嚴、濫用職權、偽造證據等問題。一個完整的區塊鏈包括區塊頭和區塊體兩部分,如圖1 所示。它以區塊為單位,通過時間戳技術明確執法數據生成的先后順序,并證實存放進區塊中的數據在某一個特定時間點上是真實存在的;采用鏈式結構對數據進行存儲和校驗,讓每個區塊上的信息依順序相連接,采用Merkle 樹保證數據的不可篡改,后一區塊總是通過pre-Hash 來保存前一個區塊的Hash 值,所以任何一方想篡改執法案例或數據幾乎是不可能的,同時大大減少了信息在區塊上的存儲量。由此,區塊鏈技術在數據的安全性、可用性和真實性方面都能得到極大的保證[16]。

圖1 區塊鏈結構Fig.1 Blockchain structure
數據的安全性是以密碼學算法給予保障的一種分布式數據庫賬本,該賬本具有非篡改、防偽造等特性,通過把區塊鏈特性運用到公安事業中,對警察角色明晰化、公安機關職能轉變和執法規范化建設等都提出了新的要求[17],更好地完善公安執法體系的同時還會使之更加安全、方便、有效、快捷。
把區塊鏈技術和電子證據相結合,將互聯網中收集到的電子證據以及所產生的日志記錄等通過哈希算法得出唯一的哈希值后傳至鏈中,進行數據的封裝固定及保存。通過比較區塊中唯一的哈希值,便可知道證據是否經過篡改,在審查時確保了證據的可靠性、完整性和真實性,不再只以公證機構的紙質證明作為背書[18-20],把有效信息全部寫進區塊鏈里進行公證,做到信息的全透明化。這樣一來,當事人對案件的真實性認可提高,找公證處再次認證的概率降低,大幅度縮短了證據驗證的時間,合法和關聯性也更強,提高了司法效率,所以說,區塊鏈技術與電子證據相結合是當前階段電子證據變革的重要趨勢之一。
從未來發展的情況來看,公安在執法活動中可以將電子證據轉化為判案依據的標準,但就目前來說,尚缺乏科學的保管,導致有些電子證據被損壞且無法進行倒查。兩種技術的結合正好可以彌補當前電子證據在真實性和安全性方面上的缺陷。此外,利用區塊鏈中的智能合約還能夠對電子證據進行法律的監管,降低公證處人員存在非法操作的風險。
綜合來看,加入區塊鏈技術,會從不同層面上展現出二者結合后的優勢及影響力。雖然目前我國對區塊鏈技術的發展還處于逐步探索階段,但是“區塊鏈+電子證據”技術的應用對整個司法體系帶來的影響是可觀的。
公安執法電子證據不僅包括在處警過程中的數據采集系統獲得的警用執法記錄儀、相關執法系統中獲取的電子數據等,還包括警員在執法過程中取得的人證、物證等相關執法數據[21]。公安執法電子證據區塊鏈采用P2P 網絡來組織和散布系統中所有要參與驗證的數據節點[22],從而實現系統的去中心化。
為了保證系統內數據的法律效力,上鏈的代碼必須要在法律上進行有效驗證,同時系統內區塊鏈上的每個節點都保存著自己的本地數據?;诖?,本文構建了基于公安執法電子證據區塊鏈系統的服務子系統,其結構如圖2 所示。

圖2 公安執法電子證據區塊鏈系統的服務子系統結構Fig.2 Service subsystem structure of the electronic evidence blockchain system for public security law enforcement
在公安執法電子證據區塊鏈系統的服務子系統中,由市公安局作為服務中心進行統一部署,區縣局及所屬各派出所機構的數據業務部門應以統一的方式服務于各級領導、警務人員、公安執法辦案人員、場所管理員等,并將各級公安局內的執法數據進行統一的管理,從而實現市、區/縣、派出所三級監管和應用,為執法辦案中心提供系統總體呈現,具體如圖3 所示。

圖3 公安執法電子證據區塊鏈服務子系統總體部署Fig.3 Overall deployment of the electronic evidence blockchain service subsystem for public security law enforcement
本小節主要對PBFT 共識算法做了改進,為了使共識的量化指標能夠更清晰地展示,在這里還與RAFT 算法進行了對比,從而找到了一個更適合該場景應用的算法。
在PBFT 算法中,共識節點不僅需要與主節點通信,還需要與其他共識節點進行通信,共識協議流程圖如圖4 所示。

圖4 PBFT 共識協議流程圖Fig.4 PBFT consensus protocol flow chart
在該過程中,需要經歷預準備-準備-提交3 個階段。成功完成一輪共識之后,接著開始進行下一輪的共識過程。
而RAFT 算法,共識協議只需要領導者選舉、日志復制兩階段即可,共識協議流程圖如圖5所示。

圖5 RAFT 共識協議流程圖Fig.5 RAFT consensus protocol flow chart
在領導者選舉過程中,通過強調領導者來簡化整個共識過程;在日志復制過程中,如果追隨者收到了由客戶端發出的集群,會直接轉發給領導者,從而確保所有節點狀態的一致性。
在公安執法電子證據區塊鏈系統中,因為出警的執法記錄數據是需要到達業務層的,所以在準備階段不需要其他節點向主節點發送數據,同時在主節點投票階段,向n個本級節點和n-1個上級節點發送共識請求,若出現故障或超時未響應,則上級的兩個節點可以取代本級節點投票,這樣既可以保證安全性,又避免了節點因出現故障時導致無響應共識減緩辦事效率的問題。對改進算法的共識過程如圖6 所示。

圖6 改進后算法的共識過程Fig.6 Consensus process of the improved algorithm
具體流程(以派出所和分縣級為例):
預準備:pri_node 向派出所_node 及上級分縣級_node 廣播預準備消息。通過后主節點pri_node進入準備狀態。
準備:pri_node 接收來自所有發送廣播的節點反饋,若是本級節點出現故障則直接考慮上級節點(圖6 中虛線部分),若本級節點全反饋則不接收其他節點反饋。
確認:pri_node 選擇性地給確認階段發送接收的反饋的節點,并非提交全部節點。
恢復:(此項為可選,當且僅當上述步驟中本級節點宕機、由上級節點代理參與共識時)pri_node提交給上級節點后,由上級節點給原本需要參與共識的節點進行數據恢復并保持一致性。
現對當前適用于本場景應用的算法就吞吐量和時延做了如下實驗。
將共識節點數量固定為7 個,系統從0~500 s不斷發出請求下的吞吐量,重復進行了5 000 次測試,取平均值,實驗結果如圖7 所示。

圖7 吞吐量實驗Fig.7 Throughput experiment
可以看到,隨著訪問請求時間的加快,每秒交易次數也隨之增加。當請求時間約超過260 s 后吞吐量呈下降趨勢。
同樣保證7 個共識節點,在相同的出塊間隔內進行了5 000 次測試,實驗結果如圖8 所示。

圖8 共識時延實驗Fig.8 Consensus delay experiment
可以看到,在應用到公安執法系統網絡環境中,隨著每秒訪問請求的增加,單次共識所需的時延不會大幅度增加。這說明在實際的應用過程中,就算在短時間內需要對大量信息進行處理,系統內的時延也能有較好的表現。
此外,利用層級監管特性進行“備用”共識節點設置,以提高整體效率。當有故障節點存在時,系統內會自動出現候補節點進行補充,為了更清晰直觀地展示,用改進后的算法與PBFT、RAFT算法做了對比,進行了10 輪共識測試,實驗結果如圖9 所示。

圖9 故障節點數對比Fig.9 Comparison of the number of failed nodes
為了保證活性,PBFT 算法中需要有 2f+1個正常節點(其中f為故障節點),即能夠容忍故障節點的數量不超過 1/3,并且延遲不會無限增長。RAFT 算法能夠容忍故障節點的最大數量為(N-1)/2 (其中N為節點總數量)??梢钥吹?,當出現1 個故障節點時,PBFT 算法在共識測試中耗時為0 ms,即系統不工作;當故障節點大于2 開始,PBFT 和RAFT 算法因故障節點數超過了最低限度,所以不再進行工作。而改進后的算法因為出現候補節點,在系統內依然可以正常運作。
通過上述實驗,將基于PBFT 改進后的算法應用到公安執法系統中驗證了改進算法的可行性。
本節主要結合區塊鏈PBFT 共識算法對公安執法做相關應用,防止有警員增刪執法記錄儀內容的風險,實現對執法記錄儀的進一步追溯與高效管控。警員出警回辦案大廳后,將涉案警員與相應人證同時分隔在不同的房間內(為了遵循案件排他原則,回避與該警員有關人證),利用共識算法,對該警員的出警內容進行校驗,若大于2/3 的人證贊同此警員的出警記錄,系統將自動對其進行容錯,說明該記錄無問題,提交該內容;若低于2/3 的人證對此記錄進行否認,根據共識算法,系統將不再運行,該記錄不被通過,投入新一輪的驗證,有效保證了執法信息在上傳數據過程中的透明性與完整性,使可篡改幾乎成為不可能。
本節基于改進的PBFT 算法,在單機環境下模擬了1 個主節點和3 個從節點進行加入和離開。分別進行了存在一個故障節點和兩個故障節點這兩組實驗。
1)當存在一個故障節點(N1)時??蛻舳税l送警員趙一清的執法數據信息,這時若有一個人證對趙一清的執法信息給出了否認意見,根據客戶端的運行結果,且由公式n≥3f+1和PBFT 算法的容錯性,雖然顯示故障節點N1連接失敗,但系統仍然會保持順利運行。具體如圖10、11 所示。

圖10 主節點運行效果且故障節點連接失敗Fig.10 Running effect of the master nodes showing connection failure to the faulty node

圖11 故障節點存在下從節點效果Fig.11 Running effect of the slave node with faulty nodes
2)當存在兩個故障節點(N2、N3)時。即客戶端發送警員趙一清的執法信息記錄,有兩個人證對趙一清的執法信息數據持有否定意見,根據共識算法,這時客戶端會直接顯示未接收到相應的返回數據,主節點也會顯示連接失敗的兩個故障節點。不難看出,如果有大于2/3 的人對其信息內容持有懷疑態度時,由于超出節點數量,消息進行到準備階段后,不會再接收到滿足數量的節點信息,系統內不會對此信息進行確認,客戶端接收不到回復,故達不成一致,說明趙一清警員的執法記錄信息是有問題的。具體如圖12、13所示。

圖12 主節點效果且顯示連接失敗的兩個故障節點Fig.12 Running effect of the master node showing connection failure with two faulty nodes

圖13 其中一個從節點運行效果Fig.13 Running effect of a slave node
本節主要基于星際文件系統(interplanetary file system,IPFS)來測試在面對較大數據量時數據上鏈的實驗。在本次實驗中本文構建了一個私有的IPFS 網絡,僅針對授權的各級別警務人員使用。
本次實驗涉及到相對規模從小、中、大3 種數據記錄文件作為實驗集,分別將大小為275 MB的派出所端電子存證信息、844 MB 的分縣局級電子存證信息以及1.2 GB 的市局電子存證信息上傳至IPFS 端。
派出所端電子存證信息的唯一標識符為QmUg…e3j6 (46 位),如圖14 所示,在IPFS 系統中檢查可以看到links 等更多信息;分縣局級電子存證信息的唯一標識符QmU2…87j9 (46 位),如圖15 所示,在IPFS 系統中檢查可以看到links 等更多信息;市級電子存證信息的唯一標識符為Qmdz…9sCd (46 位),如圖16 所示。

圖14 派出所端電子存證信息獲取唯一標識Fig.14 Unique identification for polices station electronic information access

圖15 分縣局級電子存證信息獲取唯一標識Fig.15 Unique identification for sub-county bureau level electronic storage information access

圖16 市級電子存證信息獲取唯一標識Fig.16 Unique identification for municipal electronic storage information access
各級別警務人員在IPFS 系統中上傳執法信息后,得到對應數據的唯一CID,對其進行校驗檢查可以發現大型數據文件上傳到IPFS 后會被分成多個links,links 下還會有更多子集,直到數據被分為250 kb 的小塊進行分布式存儲。數據存證的安全性是通過聚合哈希來加以保障,各級部門對某一數據進行取證時僅需通過對應的CID 即可進行下載查詢,并且分布式存儲的天然優勢可以抵御單點攻擊帶來的破壞。
此實驗結合了IPFS 和區塊鏈,用戶通過IPFS處理大量警務數據信息,將其對應的加密哈希存儲進區塊鏈內,無需再將數據放在鏈上,節省網絡帶寬的同時還能夠對數據加以保護,也證明了IPFS 可填補區塊鏈系統在文件存儲方面的短板。
公安執法電子證據區塊鏈(blockchain of electronic evidences of law enforcement police,BELEP)模型設計的目標是:1) 防范在執法辦案中可能出現的刑訊逼供、偽造和篡改電子證據等行為;2)保證辦案過程的電子記錄得以真實、完整地保留;3) 保證數據備份和證據鏈的完整性、電子證據記錄發生改變的可溯源性。
在此模型下,每個節點都是整個系統的一部分,通過P2P 網絡對區塊中各節點完成數據的傳輸,使新區塊追加到原有區塊中,完成區塊的確認工作。
在數據模型中,存證人員需向中央數據庫上傳數據,輸入ID 號、執法的案件名稱和電子證據進行權限驗證,一旦通過系統中的校驗,就可以直接與公安執法電子證據系統服務平臺進行交互,系統服務平臺向各節點提供由存證人員上傳的出警任務序號、警用車牌號、執法記錄儀編號和執法人員姓名這四類信息。一方面,存證人員和中央數據庫之間的操作須有系統服務平臺提供的權限認證;另一方面,公安人員向系統平臺提供執法信息的ID 號、執法的案件名稱和現實證據,經權限驗證,通過后即可上傳至系統服務平臺,同時管理員也可以進行相應的取證,存儲到中央數據庫中。具體模型如圖17 所示。

圖17 BELEP 模型Fig.17 Model of BELEP
進入系統中,首先確定需要讀取哪一級的公安數據庫,把全部信息都加載進區塊鏈內,通過Hash 函數來驗證是否上鏈成功。接著在系統中輸入相應的出警任務號、警用車牌號和其他執法信息,系統會自動進行逐塊檢驗,如驗證成功,則直接將數據信息傳至鏈上,載入進區塊中,最終寫入服務器,完成對此執法信息的加載。具體流程如圖18 所示。

圖18 系統對數據信息的檢驗與存儲Fig.18 Data verification and storage of the system
為了驗證基于區塊鏈電子證據公安執法模型設計的可行性,整個系統體系將依賴于公安數據庫和現有的數據倉庫架構[23-24],且遵從電子證據在法律上的要求和規定,再利用區塊鏈技術對數據進行分布式存儲。
現以數據庫中截取五位公安執法人員的信息為例,來進行模擬實驗的驗證及展示系統的運行效果。截取人員的信息整理如表1 所示。

表1 數據庫信息表Table 1 Database information table
以系統中對市、縣、派出所這三級公安數據庫端來說,在出警前,執法人員把各自對應的出警任務編號輸入到系統中,系統會自動對出警人員的執法記錄號進行取模運算,由此來判斷調用的是哪一級的數據庫。警員輸入各自的姓名與密碼,待驗證通過后,進入系統的登錄界面,進行身份的驗證。首先,將截取的五位公安執法人員的每條信息分別形成一個節點區塊,數據庫中的其他人員信息(節點區塊)會對其進行共識認證及校驗,通過驗證后會自動將此節點添加至鏈的尾端,形成新的最長鏈。按照系統的總體部署,從公安各級派出所端、分縣局端和市局端,將數據庫中現有的數據上鏈,加載進區塊鏈中。加入過程分別如圖19~21 所示。

圖19 派出所端證據區塊鏈Fig.19 Police station evidence blockchain
根據區塊鏈的不可篡改性,無論是哪一級數據庫中的數據信息,管理員都無權進行增刪[25],若想試圖嘗試對鏈上的數據進行修改,則Hash函數會立馬發生變化,校驗不通過,修改信息失敗。此外,BELEP 模型還支持自定義存儲數據庫,即可以在鏈上添加新數據,數據庫會進行同步跟進。

圖20 分縣局端證據區塊鏈Fig.20 County bureau evidence blockchain

圖21 市局端證據區塊鏈Fig.21 City bureau evidence blockchain
本文的主要研究與貢獻如以下:1)將區塊鏈技術與電子證據結合并應用到公安執法辦案中。區塊鏈技術彌補了電子證據的不足,同時其不可篡改性在公安執法過程中避免會出現的非法操作問題,在公安執法的透明化、規范化方面具有巨大的應用價值;2)就警務系統中容易出現未及時響應狀況的特點做出基于PBFT 共識的改進方法,利用層級監管特性設置備用共識節點以提高整體效率,表征為系統中出現故障或超時未響應節點,則上級節點可以取代本級節點投票,既可保證系統的安全性,又可避免因出現故障節點導致系統無響應的問題;3)基于IPFS 分布式存儲技術對超大文件實現上鏈技術并存儲,提高數據安全性與可靠性,有利于公安系統在處理大型數據信息時做到及時、安全與高效;4)根據公安執法的環境和業務流程,提出了BELEP 模型,并設計了公安執法電子證據區塊鏈應用系統原型,且支持自定義存儲數據庫,只需將證據信息、相應的哈希摘要和密鑰傳至鏈上,即可完成相應的數據存儲及后期驗證。實驗以模擬截取數據庫中部分數據信息為例,結果與預期一致,并通過模擬惡意行為對系統進行安全性檢測。
通過上述技術創新,在公安執法場景中充分發揮了區塊鏈技術的優勢。一方面,通過區塊鏈技術的應用,提高了公安執法電子證據的法律效力,提供了大數據時代公安執法體系反腐倡廉技術措施。另一方面,通過區塊鏈共識算法對執法記錄信息進行復認和關聯,保障數據的真實和完整性,并為公安案件偵破的串并案智能化奠定堅實的數據基礎,從而實現更高效的執法辦案。