王琪,張嘉政,劉文奇
(1.昆明理工大學(xué) 數(shù)據(jù)科學(xué)研究中心,云南 昆明 650500;2.昆明理工大學(xué) 云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650504)
電子證據(jù)是隨著電子科技不斷發(fā)展出現(xiàn)的 一種全新的證據(jù)形式,它屬于傳統(tǒng)證據(jù)的范疇[1]。電子證據(jù)解決了紙質(zhì)證據(jù)中可能會(huì)出現(xiàn)的信息丟失、難獲取等問題,但也更容易被刪除、篡改和轉(zhuǎn)移。因此,傳統(tǒng)電子證據(jù)的完整性、客觀性及認(rèn)定標(biāo)準(zhǔn)還不足,降低了傳統(tǒng)電子證據(jù)的可信性,電子證據(jù)舉證效力低已成為當(dāng)前電子證據(jù)系統(tǒng)的痛點(diǎn)[2-3]。公安執(zhí)法業(yè)務(wù)中電子證據(jù)的獲取和固定是司法過程中案件調(diào)查取證的重要環(huán)節(jié),其技術(shù)措施是電子證據(jù)舉證效力的重要保證。長(zhǎng)期以來,由于公安執(zhí)法過程復(fù)雜,執(zhí)法環(huán)境多變,帶來電子證據(jù)的取證和證據(jù)固定等諸多困難。在多變的公安執(zhí)法環(huán)境中,通信和取證設(shè)備性能不穩(wěn)定,容易導(dǎo)致在取證系統(tǒng)中某些節(jié)點(diǎn)出現(xiàn)宕機(jī)現(xiàn)象,從而影響取證和證據(jù)固定。
區(qū)塊鏈由是分布式存儲(chǔ)、點(diǎn)對(duì)點(diǎn)交易、采用密碼學(xué)和共識(shí)算法等技術(shù)的一種新型分布式數(shù)字賬本。其特點(diǎn)是去中心化、極難篡改、安全可靠、可追溯性、公開透明等,這些特點(diǎn)可用于解決網(wǎng)絡(luò)上節(jié)點(diǎn)間信息不對(duì)稱問題,從而實(shí)現(xiàn)多個(gè)主體間的協(xié)作與彼此信任。例如,在金融領(lǐng)域,自從比特幣開啟了去中心化的P2P 時(shí)代[4],區(qū)塊鏈成為了數(shù)字加密貨幣體系的核心支撐技術(shù)。就計(jì)算機(jī)技術(shù)而言,區(qū)塊鏈技術(shù)包含分布式存儲(chǔ)[5]、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)[6]、密碼學(xué)[7]、智能合約[8]、拜占庭容錯(cuò)[9]等一系列復(fù)雜技術(shù)。2013 年末,以太坊[10]作為區(qū)塊鏈2.0 時(shí)代,將每次與區(qū)塊鏈的交互作為交易信息寫入?yún)^(qū)塊鏈中,為比特幣腳本語言中擴(kuò)展性不足等問題提供了較好的解決方法。如今,隨著區(qū)塊鏈3.0 時(shí)代的到來,將區(qū)塊鏈技術(shù)擴(kuò)展到了社會(huì)各領(lǐng)域的應(yīng)用中,推動(dòng)了產(chǎn)業(yè)變革。中央政治局第十八次集體學(xué)習(xí)時(shí)提出要將區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新的重要突破口,加快推動(dòng)區(qū)塊鏈技術(shù)和產(chǎn)業(yè)的創(chuàng)新發(fā)展,由此可見,中國(guó)政府也將從國(guó)家戰(zhàn)略層面全面推動(dòng)區(qū)塊鏈技術(shù)的發(fā)展和應(yīng)用。
本文主要致力于將區(qū)塊鏈技術(shù)與電子證據(jù)結(jié)合應(yīng)用于公安執(zhí)法。針對(duì)現(xiàn)有執(zhí)法取證技術(shù)的不足,結(jié)合區(qū)塊鏈分布式存儲(chǔ)結(jié)構(gòu)的特點(diǎn),設(shè)計(jì)基于區(qū)塊鏈的公安執(zhí)法電子證據(jù)的數(shù)據(jù)模型,通過改進(jìn)的PBFT 共識(shí)算法,解決復(fù)雜執(zhí)法環(huán)境下宕機(jī)問題和大規(guī)模文件傳輸困難,并對(duì)真實(shí)的執(zhí)法記錄進(jìn)行實(shí)證檢測(cè),驗(yàn)證了電子證據(jù)取證的可靠性。通過區(qū)塊鏈技術(shù)的不可篡改特性能夠避免在公安執(zhí)法過程中可能出現(xiàn)的警務(wù)人員濫用職權(quán)等問題,去中心化特性又可消除現(xiàn)有公安數(shù)據(jù)庫(kù)的中心化存儲(chǔ)方式和加密方式的各種弊端,從而降低電子證據(jù)采信帶來的司法風(fēng)險(xiǎn)[11]。在數(shù)字化的時(shí)代,通過公安執(zhí)法電子證據(jù)區(qū)塊鏈系統(tǒng)的使用,使公安執(zhí)法過程更加透明,電子證據(jù)的可信度和辦案效率得到提高,有利于提升公安執(zhí)法的公信力,為公安行業(yè)反腐倡廉提供新的技術(shù)措施,從而推動(dòng)我國(guó)公安事業(yè)的技術(shù)進(jìn)步。
區(qū)塊鏈?zhǔn)怯纱娣艛?shù)據(jù)的區(qū)塊根據(jù)時(shí)間先后順序以及密碼學(xué)方法串聯(lián)起來的分布式結(jié)構(gòu)列表,它以對(duì)等網(wǎng)絡(luò)(peer-to-peer network,P2P)作為其通信載體,以時(shí)間戳、共識(shí)算法、哈希值、智能合約等來保證數(shù)據(jù)的安全與一致性。區(qū)塊鏈作為一種典型的去中心化分布式數(shù)據(jù)庫(kù)賬本,解決了在不可信環(huán)境中數(shù)據(jù)管理的可信問題[12]。其采用去中心化的數(shù)據(jù)管理模式,讓數(shù)據(jù)安全更有保障,讓各節(jié)點(diǎn)在互不了解、互不信任的情況下實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)交易,從而為中心化機(jī)構(gòu)數(shù)據(jù)存儲(chǔ)普遍存在的高內(nèi)存、高風(fēng)險(xiǎn)等問題提供了新的解決方案[13-15]。
區(qū)塊鏈的共享性使得每一個(gè)參與方都可以下載完整的賬本,相比較傳統(tǒng)的記賬方式而言,降低了多副本維護(hù)數(shù)據(jù)的成本,同時(shí)提高了訪問效率,這樣可以更好地規(guī)避公安執(zhí)法中存在的不合理現(xiàn)狀,如公安人員的執(zhí)法不嚴(yán)、濫用職權(quán)、偽造證據(jù)等問題。一個(gè)完整的區(qū)塊鏈包括區(qū)塊頭和區(qū)塊體兩部分,如圖1 所示。它以區(qū)塊為單位,通過時(shí)間戳技術(shù)明確執(zhí)法數(shù)據(jù)生成的先后順序,并證實(shí)存放進(jìn)區(qū)塊中的數(shù)據(jù)在某一個(gè)特定時(shí)間點(diǎn)上是真實(shí)存在的;采用鏈?zhǔn)浇Y(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和校驗(yàn),讓每個(gè)區(qū)塊上的信息依順序相連接,采用Merkle 樹保證數(shù)據(jù)的不可篡改,后一區(qū)塊總是通過pre-Hash 來保存前一個(gè)區(qū)塊的Hash 值,所以任何一方想篡改執(zhí)法案例或數(shù)據(jù)幾乎是不可能的,同時(shí)大大減少了信息在區(qū)塊上的存儲(chǔ)量。由此,區(qū)塊鏈技術(shù)在數(shù)據(jù)的安全性、可用性和真實(shí)性方面都能得到極大的保證[16]。
圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain structure
數(shù)據(jù)的安全性是以密碼學(xué)算法給予保障的一種分布式數(shù)據(jù)庫(kù)賬本,該賬本具有非篡改、防偽造等特性,通過把區(qū)塊鏈特性運(yùn)用到公安事業(yè)中,對(duì)警察角色明晰化、公安機(jī)關(guān)職能轉(zhuǎn)變和執(zhí)法規(guī)范化建設(shè)等都提出了新的要求[17],更好地完善公安執(zhí)法體系的同時(shí)還會(huì)使之更加安全、方便、有效、快捷。
把區(qū)塊鏈技術(shù)和電子證據(jù)相結(jié)合,將互聯(lián)網(wǎng)中收集到的電子證據(jù)以及所產(chǎn)生的日志記錄等通過哈希算法得出唯一的哈希值后傳至鏈中,進(jìn)行數(shù)據(jù)的封裝固定及保存。通過比較區(qū)塊中唯一的哈希值,便可知道證據(jù)是否經(jīng)過篡改,在審查時(shí)確保了證據(jù)的可靠性、完整性和真實(shí)性,不再只以公證機(jī)構(gòu)的紙質(zhì)證明作為背書[18-20],把有效信息全部寫進(jìn)區(qū)塊鏈里進(jìn)行公證,做到信息的全透明化。這樣一來,當(dāng)事人對(duì)案件的真實(shí)性認(rèn)可提高,找公證處再次認(rèn)證的概率降低,大幅度縮短了證據(jù)驗(yàn)證的時(shí)間,合法和關(guān)聯(lián)性也更強(qiáng),提高了司法效率,所以說,區(qū)塊鏈技術(shù)與電子證據(jù)相結(jié)合是當(dāng)前階段電子證據(jù)變革的重要趨勢(shì)之一。
從未來發(fā)展的情況來看,公安在執(zhí)法活動(dòng)中可以將電子證據(jù)轉(zhuǎn)化為判案依據(jù)的標(biāo)準(zhǔn),但就目前來說,尚缺乏科學(xué)的保管,導(dǎo)致有些電子證據(jù)被損壞且無法進(jìn)行倒查。兩種技術(shù)的結(jié)合正好可以彌補(bǔ)當(dāng)前電子證據(jù)在真實(shí)性和安全性方面上的缺陷。此外,利用區(qū)塊鏈中的智能合約還能夠?qū)﹄娮幼C據(jù)進(jìn)行法律的監(jiān)管,降低公證處人員存在非法操作的風(fēng)險(xiǎn)。
綜合來看,加入?yún)^(qū)塊鏈技術(shù),會(huì)從不同層面上展現(xiàn)出二者結(jié)合后的優(yōu)勢(shì)及影響力。雖然目前我國(guó)對(duì)區(qū)塊鏈技術(shù)的發(fā)展還處于逐步探索階段,但是“區(qū)塊鏈+電子證據(jù)”技術(shù)的應(yīng)用對(duì)整個(gè)司法體系帶來的影響是可觀的。
公安執(zhí)法電子證據(jù)不僅包括在處警過程中的數(shù)據(jù)采集系統(tǒng)獲得的警用執(zhí)法記錄儀、相關(guān)執(zhí)法系統(tǒng)中獲取的電子數(shù)據(jù)等,還包括警員在執(zhí)法過程中取得的人證、物證等相關(guān)執(zhí)法數(shù)據(jù)[21]。公安執(zhí)法電子證據(jù)區(qū)塊鏈采用P2P 網(wǎng)絡(luò)來組織和散布系統(tǒng)中所有要參與驗(yàn)證的數(shù)據(jù)節(jié)點(diǎn)[22],從而實(shí)現(xiàn)系統(tǒng)的去中心化。
為了保證系統(tǒng)內(nèi)數(shù)據(jù)的法律效力,上鏈的代碼必須要在法律上進(jìn)行有效驗(yàn)證,同時(shí)系統(tǒng)內(nèi)區(qū)塊鏈上的每個(gè)節(jié)點(diǎn)都保存著自己的本地?cái)?shù)據(jù)?;诖?,本文構(gòu)建了基于公安執(zhí)法電子證據(jù)區(qū)塊鏈系統(tǒng)的服務(wù)子系統(tǒng),其結(jié)構(gòu)如圖2 所示。
圖2 公安執(zhí)法電子證據(jù)區(qū)塊鏈系統(tǒng)的服務(wù)子系統(tǒng)結(jié)構(gòu)Fig.2 Service subsystem structure of the electronic evidence blockchain system for public security law enforcement
在公安執(zhí)法電子證據(jù)區(qū)塊鏈系統(tǒng)的服務(wù)子系統(tǒng)中,由市公安局作為服務(wù)中心進(jìn)行統(tǒng)一部署,區(qū)縣局及所屬各派出所機(jī)構(gòu)的數(shù)據(jù)業(yè)務(wù)部門應(yīng)以統(tǒng)一的方式服務(wù)于各級(jí)領(lǐng)導(dǎo)、警務(wù)人員、公安執(zhí)法辦案人員、場(chǎng)所管理員等,并將各級(jí)公安局內(nèi)的執(zhí)法數(shù)據(jù)進(jìn)行統(tǒng)一的管理,從而實(shí)現(xiàn)市、區(qū)/縣、派出所三級(jí)監(jiān)管和應(yīng)用,為執(zhí)法辦案中心提供系統(tǒng)總體呈現(xiàn),具體如圖3 所示。
圖3 公安執(zhí)法電子證據(jù)區(qū)塊鏈服務(wù)子系統(tǒng)總體部署Fig.3 Overall deployment of the electronic evidence blockchain service subsystem for public security law enforcement
本小節(jié)主要對(duì)PBFT 共識(shí)算法做了改進(jìn),為了使共識(shí)的量化指標(biāo)能夠更清晰地展示,在這里還與RAFT 算法進(jìn)行了對(duì)比,從而找到了一個(gè)更適合該場(chǎng)景應(yīng)用的算法。
在PBFT 算法中,共識(shí)節(jié)點(diǎn)不僅需要與主節(jié)點(diǎn)通信,還需要與其他共識(shí)節(jié)點(diǎn)進(jìn)行通信,共識(shí)協(xié)議流程圖如圖4 所示。
圖4 PBFT 共識(shí)協(xié)議流程圖Fig.4 PBFT consensus protocol flow chart
在該過程中,需要經(jīng)歷預(yù)準(zhǔn)備-準(zhǔn)備-提交3 個(gè)階段。成功完成一輪共識(shí)之后,接著開始進(jìn)行下一輪的共識(shí)過程。
而RAFT 算法,共識(shí)協(xié)議只需要領(lǐng)導(dǎo)者選舉、日志復(fù)制兩階段即可,共識(shí)協(xié)議流程圖如圖5所示。
圖5 RAFT 共識(shí)協(xié)議流程圖Fig.5 RAFT consensus protocol flow chart
在領(lǐng)導(dǎo)者選舉過程中,通過強(qiáng)調(diào)領(lǐng)導(dǎo)者來簡(jiǎn)化整個(gè)共識(shí)過程;在日志復(fù)制過程中,如果追隨者收到了由客戶端發(fā)出的集群,會(huì)直接轉(zhuǎn)發(fā)給領(lǐng)導(dǎo)者,從而確保所有節(jié)點(diǎn)狀態(tài)的一致性。
在公安執(zhí)法電子證據(jù)區(qū)塊鏈系統(tǒng)中,因?yàn)槌鼍膱?zhí)法記錄數(shù)據(jù)是需要到達(dá)業(yè)務(wù)層的,所以在準(zhǔn)備階段不需要其他節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送數(shù)據(jù),同時(shí)在主節(jié)點(diǎn)投票階段,向n個(gè)本級(jí)節(jié)點(diǎn)和n-1個(gè)上級(jí)節(jié)點(diǎn)發(fā)送共識(shí)請(qǐng)求,若出現(xiàn)故障或超時(shí)未響應(yīng),則上級(jí)的兩個(gè)節(jié)點(diǎn)可以取代本級(jí)節(jié)點(diǎn)投票,這樣既可以保證安全性,又避免了節(jié)點(diǎn)因出現(xiàn)故障時(shí)導(dǎo)致無響應(yīng)共識(shí)減緩辦事效率的問題。對(duì)改進(jìn)算法的共識(shí)過程如圖6 所示。
圖6 改進(jìn)后算法的共識(shí)過程Fig.6 Consensus process of the improved algorithm
具體流程(以派出所和分縣級(jí)為例):
預(yù)準(zhǔn)備:pri_node 向派出所_node 及上級(jí)分縣級(jí)_node 廣播預(yù)準(zhǔn)備消息。通過后主節(jié)點(diǎn)pri_node進(jìn)入準(zhǔn)備狀態(tài)。
準(zhǔn)備:pri_node 接收來自所有發(fā)送廣播的節(jié)點(diǎn)反饋,若是本級(jí)節(jié)點(diǎn)出現(xiàn)故障則直接考慮上級(jí)節(jié)點(diǎn)(圖6 中虛線部分),若本級(jí)節(jié)點(diǎn)全反饋則不接收其他節(jié)點(diǎn)反饋。
確認(rèn):pri_node 選擇性地給確認(rèn)階段發(fā)送接收的反饋的節(jié)點(diǎn),并非提交全部節(jié)點(diǎn)。
恢復(fù):(此項(xiàng)為可選,當(dāng)且僅當(dāng)上述步驟中本級(jí)節(jié)點(diǎn)宕機(jī)、由上級(jí)節(jié)點(diǎn)代理參與共識(shí)時(shí))pri_node提交給上級(jí)節(jié)點(diǎn)后,由上級(jí)節(jié)點(diǎn)給原本需要參與共識(shí)的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)恢復(fù)并保持一致性。
現(xiàn)對(duì)當(dāng)前適用于本場(chǎng)景應(yīng)用的算法就吞吐量和時(shí)延做了如下實(shí)驗(yàn)。
將共識(shí)節(jié)點(diǎn)數(shù)量固定為7 個(gè),系統(tǒng)從0~500 s不斷發(fā)出請(qǐng)求下的吞吐量,重復(fù)進(jìn)行了5 000 次測(cè)試,取平均值,實(shí)驗(yàn)結(jié)果如圖7 所示。
圖7 吞吐量實(shí)驗(yàn)Fig.7 Throughput experiment
可以看到,隨著訪問請(qǐng)求時(shí)間的加快,每秒交易次數(shù)也隨之增加。當(dāng)請(qǐng)求時(shí)間約超過260 s 后吞吐量呈下降趨勢(shì)。
同樣保證7 個(gè)共識(shí)節(jié)點(diǎn),在相同的出塊間隔內(nèi)進(jìn)行了5 000 次測(cè)試,實(shí)驗(yàn)結(jié)果如圖8 所示。
圖8 共識(shí)時(shí)延實(shí)驗(yàn)Fig.8 Consensus delay experiment
可以看到,在應(yīng)用到公安執(zhí)法系統(tǒng)網(wǎng)絡(luò)環(huán)境中,隨著每秒訪問請(qǐng)求的增加,單次共識(shí)所需的時(shí)延不會(huì)大幅度增加。這說明在實(shí)際的應(yīng)用過程中,就算在短時(shí)間內(nèi)需要對(duì)大量信息進(jìn)行處理,系統(tǒng)內(nèi)的時(shí)延也能有較好的表現(xiàn)。
此外,利用層級(jí)監(jiān)管特性進(jìn)行“備用”共識(shí)節(jié)點(diǎn)設(shè)置,以提高整體效率。當(dāng)有故障節(jié)點(diǎn)存在時(shí),系統(tǒng)內(nèi)會(huì)自動(dòng)出現(xiàn)候補(bǔ)節(jié)點(diǎn)進(jìn)行補(bǔ)充,為了更清晰直觀地展示,用改進(jìn)后的算法與PBFT、RAFT算法做了對(duì)比,進(jìn)行了10 輪共識(shí)測(cè)試,實(shí)驗(yàn)結(jié)果如圖9 所示。
圖9 故障節(jié)點(diǎn)數(shù)對(duì)比Fig.9 Comparison of the number of failed nodes
為了保證活性,PBFT 算法中需要有 2f+1個(gè)正常節(jié)點(diǎn)(其中f為故障節(jié)點(diǎn)),即能夠容忍故障節(jié)點(diǎn)的數(shù)量不超過 1/3,并且延遲不會(huì)無限增長(zhǎng)。RAFT 算法能夠容忍故障節(jié)點(diǎn)的最大數(shù)量為(N-1)/2 (其中N為節(jié)點(diǎn)總數(shù)量)??梢钥吹剑?dāng)出現(xiàn)1 個(gè)故障節(jié)點(diǎn)時(shí),PBFT 算法在共識(shí)測(cè)試中耗時(shí)為0 ms,即系統(tǒng)不工作;當(dāng)故障節(jié)點(diǎn)大于2 開始,PBFT 和RAFT 算法因故障節(jié)點(diǎn)數(shù)超過了最低限度,所以不再進(jìn)行工作。而改進(jìn)后的算法因?yàn)槌霈F(xiàn)候補(bǔ)節(jié)點(diǎn),在系統(tǒng)內(nèi)依然可以正常運(yùn)作。
通過上述實(shí)驗(yàn),將基于PBFT 改進(jìn)后的算法應(yīng)用到公安執(zhí)法系統(tǒng)中驗(yàn)證了改進(jìn)算法的可行性。
本節(jié)主要結(jié)合區(qū)塊鏈PBFT 共識(shí)算法對(duì)公安執(zhí)法做相關(guān)應(yīng)用,防止有警員增刪執(zhí)法記錄儀內(nèi)容的風(fēng)險(xiǎn),實(shí)現(xiàn)對(duì)執(zhí)法記錄儀的進(jìn)一步追溯與高效管控。警員出警回辦案大廳后,將涉案警員與相應(yīng)人證同時(shí)分隔在不同的房間內(nèi)(為了遵循案件排他原則,回避與該警員有關(guān)人證),利用共識(shí)算法,對(duì)該警員的出警內(nèi)容進(jìn)行校驗(yàn),若大于2/3 的人證贊同此警員的出警記錄,系統(tǒng)將自動(dòng)對(duì)其進(jìn)行容錯(cuò),說明該記錄無問題,提交該內(nèi)容;若低于2/3 的人證對(duì)此記錄進(jìn)行否認(rèn),根據(jù)共識(shí)算法,系統(tǒng)將不再運(yùn)行,該記錄不被通過,投入新一輪的驗(yàn)證,有效保證了執(zhí)法信息在上傳數(shù)據(jù)過程中的透明性與完整性,使可篡改幾乎成為不可能。
本節(jié)基于改進(jìn)的PBFT 算法,在單機(jī)環(huán)境下模擬了1 個(gè)主節(jié)點(diǎn)和3 個(gè)從節(jié)點(diǎn)進(jìn)行加入和離開。分別進(jìn)行了存在一個(gè)故障節(jié)點(diǎn)和兩個(gè)故障節(jié)點(diǎn)這兩組實(shí)驗(yàn)。
1)當(dāng)存在一個(gè)故障節(jié)點(diǎn)(N1)時(shí)??蛻舳税l(fā)送警員趙一清的執(zhí)法數(shù)據(jù)信息,這時(shí)若有一個(gè)人證對(duì)趙一清的執(zhí)法信息給出了否認(rèn)意見,根據(jù)客戶端的運(yùn)行結(jié)果,且由公式n≥3f+1和PBFT 算法的容錯(cuò)性,雖然顯示故障節(jié)點(diǎn)N1連接失敗,但系統(tǒng)仍然會(huì)保持順利運(yùn)行。具體如圖10、11 所示。
圖10 主節(jié)點(diǎn)運(yùn)行效果且故障節(jié)點(diǎn)連接失敗Fig.10 Running effect of the master nodes showing connection failure to the faulty node
圖11 故障節(jié)點(diǎn)存在下從節(jié)點(diǎn)效果Fig.11 Running effect of the slave node with faulty nodes
2)當(dāng)存在兩個(gè)故障節(jié)點(diǎn)(N2、N3)時(shí)。即客戶端發(fā)送警員趙一清的執(zhí)法信息記錄,有兩個(gè)人證對(duì)趙一清的執(zhí)法信息數(shù)據(jù)持有否定意見,根據(jù)共識(shí)算法,這時(shí)客戶端會(huì)直接顯示未接收到相應(yīng)的返回?cái)?shù)據(jù),主節(jié)點(diǎn)也會(huì)顯示連接失敗的兩個(gè)故障節(jié)點(diǎn)。不難看出,如果有大于2/3 的人對(duì)其信息內(nèi)容持有懷疑態(tài)度時(shí),由于超出節(jié)點(diǎn)數(shù)量,消息進(jìn)行到準(zhǔn)備階段后,不會(huì)再接收到滿足數(shù)量的節(jié)點(diǎn)信息,系統(tǒng)內(nèi)不會(huì)對(duì)此信息進(jìn)行確認(rèn),客戶端接收不到回復(fù),故達(dá)不成一致,說明趙一清警員的執(zhí)法記錄信息是有問題的。具體如圖12、13所示。
圖12 主節(jié)點(diǎn)效果且顯示連接失敗的兩個(gè)故障節(jié)點(diǎn)Fig.12 Running effect of the master node showing connection failure with two faulty nodes
圖13 其中一個(gè)從節(jié)點(diǎn)運(yùn)行效果Fig.13 Running effect of a slave node
本節(jié)主要基于星際文件系統(tǒng)(interplanetary file system,IPFS)來測(cè)試在面對(duì)較大數(shù)據(jù)量時(shí)數(shù)據(jù)上鏈的實(shí)驗(yàn)。在本次實(shí)驗(yàn)中本文構(gòu)建了一個(gè)私有的IPFS 網(wǎng)絡(luò),僅針對(duì)授權(quán)的各級(jí)別警務(wù)人員使用。
本次實(shí)驗(yàn)涉及到相對(duì)規(guī)模從小、中、大3 種數(shù)據(jù)記錄文件作為實(shí)驗(yàn)集,分別將大小為275 MB的派出所端電子存證信息、844 MB 的分縣局級(jí)電子存證信息以及1.2 GB 的市局電子存證信息上傳至IPFS 端。
派出所端電子存證信息的唯一標(biāo)識(shí)符為QmUg…e3j6 (46 位),如圖14 所示,在IPFS 系統(tǒng)中檢查可以看到links 等更多信息;分縣局級(jí)電子存證信息的唯一標(biāo)識(shí)符QmU2…87j9 (46 位),如圖15 所示,在IPFS 系統(tǒng)中檢查可以看到links 等更多信息;市級(jí)電子存證信息的唯一標(biāo)識(shí)符為Qmdz…9sCd (46 位),如圖16 所示。
圖14 派出所端電子存證信息獲取唯一標(biāo)識(shí)Fig.14 Unique identification for polices station electronic information access
圖15 分縣局級(jí)電子存證信息獲取唯一標(biāo)識(shí)Fig.15 Unique identification for sub-county bureau level electronic storage information access
圖16 市級(jí)電子存證信息獲取唯一標(biāo)識(shí)Fig.16 Unique identification for municipal electronic storage information access
各級(jí)別警務(wù)人員在IPFS 系統(tǒng)中上傳執(zhí)法信息后,得到對(duì)應(yīng)數(shù)據(jù)的唯一CID,對(duì)其進(jìn)行校驗(yàn)檢查可以發(fā)現(xiàn)大型數(shù)據(jù)文件上傳到IPFS 后會(huì)被分成多個(gè)links,links 下還會(huì)有更多子集,直到數(shù)據(jù)被分為250 kb 的小塊進(jìn)行分布式存儲(chǔ)。數(shù)據(jù)存證的安全性是通過聚合哈希來加以保障,各級(jí)部門對(duì)某一數(shù)據(jù)進(jìn)行取證時(shí)僅需通過對(duì)應(yīng)的CID 即可進(jìn)行下載查詢,并且分布式存儲(chǔ)的天然優(yōu)勢(shì)可以抵御單點(diǎn)攻擊帶來的破壞。
此實(shí)驗(yàn)結(jié)合了IPFS 和區(qū)塊鏈,用戶通過IPFS處理大量警務(wù)數(shù)據(jù)信息,將其對(duì)應(yīng)的加密哈希存儲(chǔ)進(jìn)區(qū)塊鏈內(nèi),無需再將數(shù)據(jù)放在鏈上,節(jié)省網(wǎng)絡(luò)帶寬的同時(shí)還能夠?qū)?shù)據(jù)加以保護(hù),也證明了IPFS 可填補(bǔ)區(qū)塊鏈系統(tǒng)在文件存儲(chǔ)方面的短板。
公安執(zhí)法電子證據(jù)區(qū)塊鏈(blockchain of electronic evidences of law enforcement police,BELEP)模型設(shè)計(jì)的目標(biāo)是:1) 防范在執(zhí)法辦案中可能出現(xiàn)的刑訊逼供、偽造和篡改電子證據(jù)等行為;2)保證辦案過程的電子記錄得以真實(shí)、完整地保留;3) 保證數(shù)據(jù)備份和證據(jù)鏈的完整性、電子證據(jù)記錄發(fā)生改變的可溯源性。
在此模型下,每個(gè)節(jié)點(diǎn)都是整個(gè)系統(tǒng)的一部分,通過P2P 網(wǎng)絡(luò)對(duì)區(qū)塊中各節(jié)點(diǎn)完成數(shù)據(jù)的傳輸,使新區(qū)塊追加到原有區(qū)塊中,完成區(qū)塊的確認(rèn)工作。
在數(shù)據(jù)模型中,存證人員需向中央數(shù)據(jù)庫(kù)上傳數(shù)據(jù),輸入ID 號(hào)、執(zhí)法的案件名稱和電子證據(jù)進(jìn)行權(quán)限驗(yàn)證,一旦通過系統(tǒng)中的校驗(yàn),就可以直接與公安執(zhí)法電子證據(jù)系統(tǒng)服務(wù)平臺(tái)進(jìn)行交互,系統(tǒng)服務(wù)平臺(tái)向各節(jié)點(diǎn)提供由存證人員上傳的出警任務(wù)序號(hào)、警用車牌號(hào)、執(zhí)法記錄儀編號(hào)和執(zhí)法人員姓名這四類信息。一方面,存證人員和中央數(shù)據(jù)庫(kù)之間的操作須有系統(tǒng)服務(wù)平臺(tái)提供的權(quán)限認(rèn)證;另一方面,公安人員向系統(tǒng)平臺(tái)提供執(zhí)法信息的ID 號(hào)、執(zhí)法的案件名稱和現(xiàn)實(shí)證據(jù),經(jīng)權(quán)限驗(yàn)證,通過后即可上傳至系統(tǒng)服務(wù)平臺(tái),同時(shí)管理員也可以進(jìn)行相應(yīng)的取證,存儲(chǔ)到中央數(shù)據(jù)庫(kù)中。具體模型如圖17 所示。
圖17 BELEP 模型Fig.17 Model of BELEP
進(jìn)入系統(tǒng)中,首先確定需要讀取哪一級(jí)的公安數(shù)據(jù)庫(kù),把全部信息都加載進(jìn)區(qū)塊鏈內(nèi),通過Hash 函數(shù)來驗(yàn)證是否上鏈成功。接著在系統(tǒng)中輸入相應(yīng)的出警任務(wù)號(hào)、警用車牌號(hào)和其他執(zhí)法信息,系統(tǒng)會(huì)自動(dòng)進(jìn)行逐塊檢驗(yàn),如驗(yàn)證成功,則直接將數(shù)據(jù)信息傳至鏈上,載入進(jìn)區(qū)塊中,最終寫入服務(wù)器,完成對(duì)此執(zhí)法信息的加載。具體流程如圖18 所示。
圖18 系統(tǒng)對(duì)數(shù)據(jù)信息的檢驗(yàn)與存儲(chǔ)Fig.18 Data verification and storage of the system
為了驗(yàn)證基于區(qū)塊鏈電子證據(jù)公安執(zhí)法模型設(shè)計(jì)的可行性,整個(gè)系統(tǒng)體系將依賴于公安數(shù)據(jù)庫(kù)和現(xiàn)有的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)[23-24],且遵從電子證據(jù)在法律上的要求和規(guī)定,再利用區(qū)塊鏈技術(shù)對(duì)數(shù)據(jù)進(jìn)行分布式存儲(chǔ)。
現(xiàn)以數(shù)據(jù)庫(kù)中截取五位公安執(zhí)法人員的信息為例,來進(jìn)行模擬實(shí)驗(yàn)的驗(yàn)證及展示系統(tǒng)的運(yùn)行效果。截取人員的信息整理如表1 所示。
表1 數(shù)據(jù)庫(kù)信息表Table 1 Database information table
以系統(tǒng)中對(duì)市、縣、派出所這三級(jí)公安數(shù)據(jù)庫(kù)端來說,在出警前,執(zhí)法人員把各自對(duì)應(yīng)的出警任務(wù)編號(hào)輸入到系統(tǒng)中,系統(tǒng)會(huì)自動(dòng)對(duì)出警人員的執(zhí)法記錄號(hào)進(jìn)行取模運(yùn)算,由此來判斷調(diào)用的是哪一級(jí)的數(shù)據(jù)庫(kù)。警員輸入各自的姓名與密碼,待驗(yàn)證通過后,進(jìn)入系統(tǒng)的登錄界面,進(jìn)行身份的驗(yàn)證。首先,將截取的五位公安執(zhí)法人員的每條信息分別形成一個(gè)節(jié)點(diǎn)區(qū)塊,數(shù)據(jù)庫(kù)中的其他人員信息(節(jié)點(diǎn)區(qū)塊)會(huì)對(duì)其進(jìn)行共識(shí)認(rèn)證及校驗(yàn),通過驗(yàn)證后會(huì)自動(dòng)將此節(jié)點(diǎn)添加至鏈的尾端,形成新的最長(zhǎng)鏈。按照系統(tǒng)的總體部署,從公安各級(jí)派出所端、分縣局端和市局端,將數(shù)據(jù)庫(kù)中現(xiàn)有的數(shù)據(jù)上鏈,加載進(jìn)區(qū)塊鏈中。加入過程分別如圖19~21 所示。
圖19 派出所端證據(jù)區(qū)塊鏈Fig.19 Police station evidence blockchain
根據(jù)區(qū)塊鏈的不可篡改性,無論是哪一級(jí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息,管理員都無權(quán)進(jìn)行增刪[25],若想試圖嘗試對(duì)鏈上的數(shù)據(jù)進(jìn)行修改,則Hash函數(shù)會(huì)立馬發(fā)生變化,校驗(yàn)不通過,修改信息失敗。此外,BELEP 模型還支持自定義存儲(chǔ)數(shù)據(jù)庫(kù),即可以在鏈上添加新數(shù)據(jù),數(shù)據(jù)庫(kù)會(huì)進(jìn)行同步跟進(jìn)。
圖20 分縣局端證據(jù)區(qū)塊鏈Fig.20 County bureau evidence blockchain
圖21 市局端證據(jù)區(qū)塊鏈Fig.21 City bureau evidence blockchain
本文的主要研究與貢獻(xiàn)如以下:1)將區(qū)塊鏈技術(shù)與電子證據(jù)結(jié)合并應(yīng)用到公安執(zhí)法辦案中。區(qū)塊鏈技術(shù)彌補(bǔ)了電子證據(jù)的不足,同時(shí)其不可篡改性在公安執(zhí)法過程中避免會(huì)出現(xiàn)的非法操作問題,在公安執(zhí)法的透明化、規(guī)范化方面具有巨大的應(yīng)用價(jià)值;2)就警務(wù)系統(tǒng)中容易出現(xiàn)未及時(shí)響應(yīng)狀況的特點(diǎn)做出基于PBFT 共識(shí)的改進(jìn)方法,利用層級(jí)監(jiān)管特性設(shè)置備用共識(shí)節(jié)點(diǎn)以提高整體效率,表征為系統(tǒng)中出現(xiàn)故障或超時(shí)未響應(yīng)節(jié)點(diǎn),則上級(jí)節(jié)點(diǎn)可以取代本級(jí)節(jié)點(diǎn)投票,既可保證系統(tǒng)的安全性,又可避免因出現(xiàn)故障節(jié)點(diǎn)導(dǎo)致系統(tǒng)無響應(yīng)的問題;3)基于IPFS 分布式存儲(chǔ)技術(shù)對(duì)超大文件實(shí)現(xiàn)上鏈技術(shù)并存儲(chǔ),提高數(shù)據(jù)安全性與可靠性,有利于公安系統(tǒng)在處理大型數(shù)據(jù)信息時(shí)做到及時(shí)、安全與高效;4)根據(jù)公安執(zhí)法的環(huán)境和業(yè)務(wù)流程,提出了BELEP 模型,并設(shè)計(jì)了公安執(zhí)法電子證據(jù)區(qū)塊鏈應(yīng)用系統(tǒng)原型,且支持自定義存儲(chǔ)數(shù)據(jù)庫(kù),只需將證據(jù)信息、相應(yīng)的哈希摘要和密鑰傳至鏈上,即可完成相應(yīng)的數(shù)據(jù)存儲(chǔ)及后期驗(yàn)證。實(shí)驗(yàn)以模擬截取數(shù)據(jù)庫(kù)中部分?jǐn)?shù)據(jù)信息為例,結(jié)果與預(yù)期一致,并通過模擬惡意行為對(duì)系統(tǒng)進(jìn)行安全性檢測(cè)。
通過上述技術(shù)創(chuàng)新,在公安執(zhí)法場(chǎng)景中充分發(fā)揮了區(qū)塊鏈技術(shù)的優(yōu)勢(shì)。一方面,通過區(qū)塊鏈技術(shù)的應(yīng)用,提高了公安執(zhí)法電子證據(jù)的法律效力,提供了大數(shù)據(jù)時(shí)代公安執(zhí)法體系反腐倡廉技術(shù)措施。另一方面,通過區(qū)塊鏈共識(shí)算法對(duì)執(zhí)法記錄信息進(jìn)行復(fù)認(rèn)和關(guān)聯(lián),保障數(shù)據(jù)的真實(shí)和完整性,并為公安案件偵破的串并案智能化奠定堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ),從而實(shí)現(xiàn)更高效的執(zhí)法辦案。