夏學(xué)亮,劉 超,劉從軍,3
(1 江蘇科技大學(xué)計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江 212100; 2 鎮(zhèn)江市不動(dòng)產(chǎn)登記交易中心,江蘇 鎮(zhèn)江 212003;3 江蘇科大匯峰科技有限公司,江蘇 鎮(zhèn)江 212003)
為推進(jìn)政務(wù)服務(wù)“一網(wǎng)通辦”[1],國(guó)務(wù)院辦公廳印發(fā)了進(jìn)一步推進(jìn)政務(wù)服務(wù)的方案,要求加快不動(dòng)產(chǎn)電子證照應(yīng)用推廣和跨部門(mén)、跨區(qū)域互認(rèn)共享[2]。 一些政務(wù)部門(mén)數(shù)據(jù)共享不及時(shí),部門(mén)協(xié)作困難,監(jiān)管缺失,無(wú)法驗(yàn)證用戶(hù)出示的不動(dòng)產(chǎn)電子證照真實(shí)性,造成為用戶(hù)辦理部分業(yè)務(wù)時(shí)電子證照不可信的問(wèn)題[3]。 傳統(tǒng)的不動(dòng)產(chǎn)電子證照一般采用中心化方式存儲(chǔ)[4],容易被篡改,數(shù)據(jù)存儲(chǔ)量大,如何確保在原始數(shù)據(jù)提交、處理及管理過(guò)程中各階段的數(shù)據(jù)一致性、以及如何確保能快速響應(yīng)電子證照越來(lái)越頻繁的應(yīng)用請(qǐng)求,已然成為需要考慮和解決的重要問(wèn)題[5]。 而且具有中心化結(jié)構(gòu)的服務(wù)器,在數(shù)據(jù)安全性和隱私方面存在諸多問(wèn)題[6]。
區(qū)塊鏈具有去中心化、防篡改的特性[7],不少部門(mén)把業(yè)務(wù)數(shù)據(jù)存放到區(qū)塊鏈上,以備查證,提高辦事效率[8]。 文獻(xiàn)[4,9]提出了不動(dòng)產(chǎn)電子證照的建設(shè)思路和系統(tǒng)框架。 文獻(xiàn)[10]提出了基于區(qū)塊鏈的電子證照庫(kù)共享交易系統(tǒng),但無(wú)法滿(mǎn)足大規(guī)模的證照管理。 文獻(xiàn)[11]提出了一種去中心化的分布式存儲(chǔ)模型,但存在數(shù)據(jù)被篡改的風(fēng)險(xiǎn)。 文獻(xiàn)[12-13]提出了基于聯(lián)盟鏈的電子證照隱私保護(hù)方法和系統(tǒng)的實(shí)現(xiàn),但系統(tǒng)開(kāi)銷(xiāo)大,查詢(xún)效率不高。
針對(duì)上述問(wèn)題,本文設(shè)計(jì)了一種基于區(qū)塊鏈的不動(dòng)產(chǎn)電子證照安全存儲(chǔ)與查詢(xún)模型。 該模型通過(guò)鏈上和鏈下結(jié)合,將不動(dòng)產(chǎn)電子證照數(shù)據(jù)指紋、證照索引等信息上傳區(qū)塊鏈,保證數(shù)據(jù)的安全性;同時(shí)將不動(dòng)產(chǎn)電子證照加密存儲(chǔ)在鏈下的分布式數(shù)據(jù)庫(kù)中。 本方案既能存儲(chǔ)大量的不動(dòng)產(chǎn)電子證照數(shù)據(jù),又能減輕區(qū)塊鏈的存儲(chǔ)壓力;同時(shí),該方案向政務(wù)部門(mén)提供證照密文查詢(xún)接口,驗(yàn)證用戶(hù)出示的不動(dòng)產(chǎn)電子證照是否可信,推進(jìn)可信電子證照辦理政務(wù),減少群眾攜帶紙質(zhì)證照的煩惱。 將不動(dòng)產(chǎn)電子證照編號(hào)作為主要關(guān)鍵詞查詢(xún),能很好地提高查詢(xún)效率。
區(qū)塊鏈由中本聰提出,起源于比特幣,是一種新型的應(yīng)用模式[14],涵蓋了點(diǎn)對(duì)點(diǎn)傳輸、分布式數(shù)據(jù)存儲(chǔ)、密碼學(xué)技術(shù)、共識(shí)機(jī)制等多種計(jì)算機(jī)技術(shù)。 區(qū)塊鏈主要特征有去中心化、開(kāi)放性、以及可追溯性[15]。
區(qū)塊鏈?zhǔn)且粋€(gè)又一個(gè)區(qū)塊組成的鏈條。 區(qū)塊分為區(qū)塊頭和區(qū)塊體。 區(qū)塊頭利用時(shí)間戳把區(qū)塊進(jìn)行有序的排列連接,主要存儲(chǔ)有關(guān)該區(qū)塊的關(guān)鍵信息,區(qū)塊體則存儲(chǔ)交易信息。 區(qū)塊包含版本號(hào)、時(shí)間戳、Merker 根、交易數(shù)據(jù)與上一個(gè)區(qū)塊的鏈接的哈希值。 區(qū)塊結(jié)構(gòu)如圖1 所示。
圖1 區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)Fig. 1 Blockchain data structure
哈希算法能將不同的明文散列為固定二進(jìn)制字符串,計(jì)算的結(jié)果為哈希值,也稱(chēng)數(shù)據(jù)指紋或者數(shù)字摘要[16]。 哈希算法具有單向不可逆,輸入敏感的特性,如果輸入不同,則哈希值不同。 目前,主流的哈希算法有SHA-224、SHA-256 和SHA-512。
共識(shí)機(jī)制是為了保證在分布式系統(tǒng)中維護(hù)數(shù)據(jù)的一致性而設(shè)計(jì)的[17]。 本文構(gòu)建聯(lián)盟鏈存儲(chǔ)和共享不動(dòng)產(chǎn)電子證照數(shù)據(jù)的區(qū)塊鏈系統(tǒng),采用委托權(quán)益證明共識(shí)算法(DPOS)[18]。 該算法通過(guò)股東投票方式選出代表獲得記錄和驗(yàn)證權(quán),大幅縮短了共識(shí)達(dá)成時(shí)間,可達(dá)到秒級(jí)驗(yàn)證[19]。
不動(dòng)產(chǎn)電子證照安全存儲(chǔ)模型如圖2 所示。 由圖2 可知,不動(dòng)產(chǎn)電子證照安全存儲(chǔ)模型主要包括以下實(shí)體:
圖2 不動(dòng)產(chǎn)電子證照安全存儲(chǔ)模型Fig. 2 Secure storage model of real estate electronic license
(1)分布式數(shù)據(jù)庫(kù)系統(tǒng)(Distributed Data-base System,DDBS)。 不動(dòng)產(chǎn)電子證照存儲(chǔ)在DDBS 中,為了保證不動(dòng)產(chǎn)電子證照數(shù)據(jù)的隱私性,通過(guò)加密算法進(jìn)行存儲(chǔ)。
(2)不動(dòng)產(chǎn)登記中心。 負(fù)責(zé)上傳本地不動(dòng)產(chǎn)電子證照文件。
(3)政務(wù)部門(mén)。 該模型對(duì)政務(wù)部門(mén)提供不動(dòng)產(chǎn)電子證照查詢(xún)接口,同時(shí)驗(yàn)證證照數(shù)據(jù)完整性。
(4)數(shù)據(jù)區(qū)塊。 為了防止不動(dòng)產(chǎn)電子證照數(shù)據(jù)被篡改、內(nèi)容不可信,本文模型將在區(qū)塊體交易記錄中存儲(chǔ)不動(dòng)產(chǎn)電子證照數(shù)據(jù)指紋、不動(dòng)產(chǎn)電子證照元數(shù)據(jù),以保證政務(wù)部門(mén)查詢(xún)以及進(jìn)行證照數(shù)據(jù)完整性驗(yàn)證。 在區(qū)塊中,每一條交易記錄有3 個(gè)元組:不動(dòng)產(chǎn)電子證照數(shù)據(jù)指紋、元數(shù)據(jù)和公鑰。
(5)區(qū)塊鏈。 記錄交易。
為了實(shí)現(xiàn)不動(dòng)產(chǎn)電子證照的安全存儲(chǔ)以及密文查詢(xún)和完整性驗(yàn)證,不動(dòng)產(chǎn)登記中心上傳時(shí)應(yīng)對(duì)不動(dòng)產(chǎn)電子證照文件進(jìn)行預(yù)處理。
(1)根據(jù)不動(dòng)產(chǎn)電子證照文件生成不動(dòng)產(chǎn)電子證照元數(shù)據(jù)。 將權(quán)利人、不動(dòng)產(chǎn)電子證照編號(hào)、不動(dòng)產(chǎn)單元號(hào)、時(shí)間戳等信息從不動(dòng)產(chǎn)電子證照文件中提取出來(lái)作為關(guān)鍵詞,得到關(guān)鍵詞集合KW =(KW1,KW2,…,KWn),作為不動(dòng)產(chǎn)電子證照的元數(shù)據(jù)。
(2)創(chuàng)建倒排索引:用由(1)得到的元數(shù)據(jù)來(lái)創(chuàng)建密文關(guān)鍵詞集合EKW =(EKW1,EKW2,…,EKWn)。 提取包含每一個(gè)密文關(guān)鍵詞的不動(dòng)產(chǎn)電子證照文件Fi,將其當(dāng)作一個(gè)元組插入到索引鏈表中。 索引結(jié)構(gòu)如圖3 所示。
圖3 倒排索引結(jié)構(gòu)Fig. 3 Inverted index structure
不動(dòng)產(chǎn)電子證照數(shù)據(jù)在鏈上存儲(chǔ)時(shí),為了保證索引的安全性,區(qū)塊鏈負(fù)責(zé)管理索引。 為了方便證照數(shù)據(jù)查詢(xún),本文擴(kuò)展了區(qū)塊頭字段,來(lái)存儲(chǔ)預(yù)處理后的不動(dòng)產(chǎn)電子證照文件索引,如圖4 所示。
圖4 擴(kuò)展的區(qū)塊鏈結(jié)構(gòu)Fig. 4 Extended blockchain structure
為了實(shí)現(xiàn)不動(dòng)產(chǎn)電子證照數(shù)據(jù)的采集并進(jìn)行安全存儲(chǔ),表1 列出了所用符號(hào)及含義。
表1 符號(hào)和含義Tab. 1 Symbols and meanings
不動(dòng)產(chǎn)電子證照數(shù)據(jù)的采集存儲(chǔ)過(guò)程具體如下:
(1)不動(dòng)產(chǎn)登記中心以自身的公鑰作為標(biāo)識(shí),提交上傳請(qǐng)求至本地?cái)?shù)據(jù)記錄節(jié)點(diǎn),表示如下:
(2)本地?cái)?shù)據(jù)記錄節(jié)點(diǎn)收到請(qǐng)求后,對(duì)不動(dòng)產(chǎn)登記中心的公鑰進(jìn)行驗(yàn)證。
(3)不動(dòng)產(chǎn)登記中心用自己的私鑰對(duì)不動(dòng)產(chǎn)電子證照數(shù)據(jù)指紋進(jìn)行數(shù)字簽名,同時(shí)使用自身的公鑰加密數(shù)據(jù)。 具體描述如下:
(4)上傳的不動(dòng)產(chǎn)電子證照數(shù)據(jù)由本地?cái)?shù)據(jù)記錄節(jié)點(diǎn)收集,在分布式數(shù)據(jù)庫(kù)進(jìn)行加密存儲(chǔ),同時(shí)向數(shù)據(jù)記錄節(jié)點(diǎn)提交元數(shù)據(jù)。
(5)數(shù)據(jù)記錄節(jié)點(diǎn)的工作量證明:每隔10 min收集的數(shù)據(jù)被數(shù)據(jù)記錄節(jié)點(diǎn)Nj合并成數(shù)據(jù)集合,數(shù)據(jù)記錄管理權(quán)限由工作量證明確定,具體描述為式(4):
(6)數(shù)據(jù)記錄節(jié)點(diǎn)間的區(qū)塊共識(shí)過(guò)程:本文區(qū)塊共識(shí)使用DPOS 共識(shí)算法進(jìn)行。
為了保證不動(dòng)產(chǎn)電子證照數(shù)據(jù)的隱私性,不動(dòng)產(chǎn)電子證照數(shù)據(jù)加密存儲(chǔ)在分布式數(shù)據(jù)庫(kù)中。 同時(shí)為了方便快速查詢(xún)不動(dòng)產(chǎn)電子證照信息,本文采用可搜索加密技術(shù)進(jìn)行查詢(xún)。 下面給出了證照密文查詢(xún)以及證照文件完整性驗(yàn)證過(guò)程,如圖5 所示。
圖5 查詢(xún)與驗(yàn)證數(shù)據(jù)完整性過(guò)程Fig. 5 Integrity of querying and verifying data
(1)政務(wù)部門(mén)→私有云:用戶(hù)辦理相關(guān)業(yè)務(wù)時(shí)(公安戶(hù)籍管理、居民子女入學(xué)、工商注冊(cè)登記、繳稅納稅等),向政務(wù)部門(mén)出示不動(dòng)產(chǎn)電子證照,工作人員獲取用戶(hù)提供的不動(dòng)產(chǎn)電子證照原件,調(diào)用查詢(xún)接口,輸入關(guān)鍵詞(證照開(kāi)始時(shí)間+權(quán)利人或不動(dòng)產(chǎn)電子證照電子編號(hào)+不動(dòng)產(chǎn)單元號(hào)等)進(jìn)行查詢(xún)。私有云獲取政務(wù)部門(mén)查詢(xún)請(qǐng)求后,系統(tǒng)先在鏈上查詢(xún)政務(wù)部門(mén)所需時(shí)間段的不動(dòng)產(chǎn)電子證照信息;此后通過(guò)區(qū)塊鏈上面的時(shí)間戳找到不動(dòng)產(chǎn)電子證照目標(biāo)區(qū)塊。
(2)政務(wù)部門(mén)←私有云:根據(jù)區(qū)塊鏈存儲(chǔ)的索引信息得到不動(dòng)產(chǎn)電子證照數(shù)據(jù)密文,返回給政務(wù)部門(mén)。 政務(wù)部門(mén)解密數(shù)據(jù)密文,查看不動(dòng)產(chǎn)電子證照數(shù)據(jù)。
(3)政務(wù)部門(mén)?區(qū)塊鏈:在查詢(xún)到相關(guān)不動(dòng)產(chǎn)電子證照數(shù)據(jù)的同時(shí),根據(jù)區(qū)塊交易記錄政務(wù)部門(mén)獲取相關(guān)不動(dòng)產(chǎn)電子證照數(shù)據(jù)指紋,將該數(shù)據(jù)指紋與用戶(hù)出示的不動(dòng)產(chǎn)電子證照計(jì)算得出的數(shù)據(jù)指紋,進(jìn)行比對(duì),若兩者一致,說(shuō)明用戶(hù)出示的不動(dòng)產(chǎn)電子證照f(shuō)未經(jīng)篡改,證照可信,繼續(xù)辦理相關(guān)業(yè)務(wù)。 若兩者不一致,說(shuō)明用戶(hù)出示的不動(dòng)產(chǎn)電子證照被惡意篡改,電子證照不可信,終止辦理相關(guān)業(yè)務(wù)。
(1)數(shù)據(jù)隱私性問(wèn)題。 不動(dòng)產(chǎn)登記中心利用加密算法將電子證照密文上傳至分布式數(shù)據(jù)庫(kù)中,同時(shí)使用系統(tǒng)預(yù)設(shè)的哈希算法(SHA-256)計(jì)算出每個(gè)不動(dòng)產(chǎn)電子證照文件的哈希值,鏈上只保存了哈希值以及加密的證照元數(shù)據(jù),有效保護(hù)了用戶(hù)的證照隱私,節(jié)約了鏈上寶貴的存儲(chǔ)空間。
(2)數(shù)據(jù)完整性問(wèn)題。 鏈下使用分布式數(shù)據(jù)庫(kù)存儲(chǔ)加密數(shù)據(jù),鏈上保存原始數(shù)據(jù)哈希值,如果數(shù)據(jù)被篡改,則哈希值改變。 而且每一個(gè)節(jié)點(diǎn)數(shù)據(jù)都有備份,可有效防止數(shù)據(jù)丟失,以保證其完整性。
(3)數(shù)據(jù)可追溯性問(wèn)題。 節(jié)點(diǎn)采集到的不動(dòng)產(chǎn)電子證照數(shù)據(jù)都需附上數(shù)字簽名等信息,可以據(jù)此保證節(jié)點(diǎn)的合法性和數(shù)據(jù)來(lái)源的真實(shí)性。
本文將基于區(qū)塊鏈的不動(dòng)產(chǎn)電子證照安全存儲(chǔ)方案與一些電子證照存儲(chǔ)方法進(jìn)行方案對(duì)比,結(jié)果見(jiàn)表2。
表2 存儲(chǔ)方案對(duì)比Tab. 2 Comparison of storage schemes
不動(dòng)產(chǎn)電子證照的聯(lián)盟鏈?zhǔn)褂肑ava 語(yǔ)言進(jìn)行開(kāi)發(fā),jdk 版本為1.8。 該鏈部署在3 臺(tái)物理機(jī)和4臺(tái)VM(ubuntu16.04)虛擬機(jī)中,即該鏈有7 個(gè)節(jié)點(diǎn);Hadoop 文件存儲(chǔ)系統(tǒng)作為鏈下的分布式數(shù)據(jù)庫(kù),同時(shí)偽分布式集群環(huán)境在1 臺(tái)物理機(jī)上進(jìn)行搭建,版本為Hadoop3.2.2。
為了驗(yàn)證在確保安全性的前提下本文所提方案的查詢(xún)效率,本文將使用倒排索引的證照查詢(xún)方法與傳統(tǒng)的區(qū)塊鏈上查詢(xún)證照的方法進(jìn)行查詢(xún)時(shí)間對(duì)比,不動(dòng)產(chǎn)電子證照元數(shù)據(jù)保持相同數(shù)量存儲(chǔ)在數(shù)據(jù)區(qū)塊中,隨著不動(dòng)產(chǎn)電子證照的一直增加,記錄2種方案的證照查詢(xún)時(shí)間。 本文以某市不動(dòng)產(chǎn)登記中心2020~2021年的辦理的不動(dòng)產(chǎn)電子證照為測(cè)試數(shù)據(jù)集進(jìn)行查詢(xún),不動(dòng)產(chǎn)電子證照數(shù)量從10 000增加到300 000,隨著證照數(shù)量的不斷增加,記錄查詢(xún)方案耗費(fèi)的時(shí)間。 實(shí)驗(yàn)過(guò)程中,每個(gè)測(cè)試數(shù)據(jù)均為實(shí)驗(yàn)運(yùn)行20 次所取的平均值,2 種查詢(xún)方案查詢(xún)耗時(shí)對(duì)比如圖6 所示。
圖6 不動(dòng)產(chǎn)電子證照查詢(xún)時(shí)間Fig. 6 Query time of real estate electronic licenses
從圖6 中可以看出,由于不動(dòng)產(chǎn)電子證照存儲(chǔ)規(guī)模的不斷擴(kuò)大,2 種方案的查詢(xún)時(shí)間也慢慢變長(zhǎng),本文所提出的鏈上查詢(xún)方案在提高安全性的基礎(chǔ)上,查詢(xún)耗時(shí)以較慢的趨勢(shì)增加,傳統(tǒng)區(qū)塊鏈查詢(xún)的方法耗時(shí)的增長(zhǎng)趨勢(shì)較快,本文方案在增長(zhǎng)速度上明顯較好。 本文鏈上查詢(xún)使用倒排索引,查詢(xún)效率和區(qū)塊數(shù)量有關(guān),時(shí)間復(fù)雜度為O(|KW|?|N|),其中|N |為區(qū)塊數(shù)量,|KW |是關(guān)鍵詞數(shù)量。 由于不動(dòng)產(chǎn)電子證照的獨(dú)特性,將不動(dòng)產(chǎn)電子證照編號(hào)作為主要關(guān)鍵詞,能夠提高查詢(xún)效率。 傳統(tǒng)的區(qū)塊鏈查詢(xún)證照根據(jù)區(qū)塊順序進(jìn)行查找,區(qū)塊數(shù)量越多,查詢(xún)時(shí)間越長(zhǎng),隨著證照數(shù)量的增多,耗時(shí)也快速增加。 本文方案查詢(xún)耗時(shí)的增加并不快速,總體來(lái)說(shuō),本文中查詢(xún)方案的效率性能較好。
本文設(shè)計(jì)了一種基于區(qū)塊鏈的不動(dòng)產(chǎn)電子證照安全存儲(chǔ)與查詢(xún)方案。 該方案通過(guò)使用鏈上鏈下結(jié)合的方法,既能實(shí)現(xiàn)不動(dòng)產(chǎn)電子證照的大量存儲(chǔ),也能防止不動(dòng)產(chǎn)電子證照信息被惡意篡改,保證了電子證照的安全可信。 同時(shí),在不占用計(jì)算資源的情況下采用DPOS 共識(shí)算法,確保了不動(dòng)產(chǎn)電子證照數(shù)據(jù)的一致性;此外,本方案對(duì)政務(wù)部門(mén)提供了不動(dòng)產(chǎn)電子證照密文查詢(xún)接口,政務(wù)部門(mén)可以通過(guò)查詢(xún)關(guān)鍵詞獲取相關(guān)的不動(dòng)產(chǎn)電子證照信息,驗(yàn)證不動(dòng)產(chǎn)電子證照文件完整性。 該方案保證了不動(dòng)產(chǎn)電子證照數(shù)據(jù)的完整性、安全性、隱私性以及可信,同時(shí)為推進(jìn)可信不動(dòng)產(chǎn)電子證照辦理政務(wù)提供了一條新的思路。