程昊天 李曉風 趙 赫 余 斌 周 桐 盛念祖 孫 亮
(1.安徽大學物質科學與信息技術研究院 合肥 230601)(2.中國科學院合肥物質科學研究院信息中心 合肥 230031)(3.中國科學技術大學研究生院科學島分院 合肥 230026)(4.中國科學院合肥技術創(chuàng)新工程院區(qū)塊鏈與感知計算工程技術研發(fā)中心 合肥 230088)
隨著國內城鎮(zhèn)化的發(fā)展和信息技術的進步,日益增長的不動產登記和制證數(shù)據(jù)亟需提升其信息質量和利用效率[1]。不動產登記、制證數(shù)據(jù)作為電子數(shù)據(jù),在集中式存儲和共享時,存在以下問題:1)數(shù)據(jù)在流通過程中易被篡改;2)數(shù)據(jù)來源的真實性難以核實;3)錯誤數(shù)據(jù)的追責困難。以上的問題導致了不動產存證數(shù)據(jù)的完整性、真實性、關聯(lián)性難以保障和認定困難。
區(qū)塊鏈技術因具有去中心化、集體維護、歷史數(shù)據(jù)可追溯、不可篡改等特點[2],應用于不動產存證場景后,可更好地保障不動產存證數(shù)據(jù)的完整性、真實性、關聯(lián)性。國內關于區(qū)塊鏈在不動產存證領域的研究和應用目前處于起步階段,張耕瑞[3]提出了一種名為Dynasty 的共識協(xié)議,以此開發(fā)了許可鏈D-Chain,并展示了其在不動產登記服務中的應用。張飛[4]根據(jù)區(qū)塊鏈和電子認證技術,設計并實現(xiàn)了一套不動產登記電子證照系統(tǒng),在保存不動產電子證照的基礎上增加了電子印章管理、目錄管理等功能。肖華[5]等從技術和機制上探索了區(qū)塊鏈技術在不動產電子存證領域的應用,并提出不動產登記環(huán)節(jié)中除電子證照之外的文書與文件也可用區(qū)塊鏈存證。
上述文獻通過將數(shù)據(jù)指紋或內容錨定到區(qū)塊鏈,有效地降低了不動產數(shù)據(jù)在流通過程中被篡改的風險,但針對數(shù)據(jù)上鏈前可能存在的失真問題并未提出有效的追責途徑。若數(shù)據(jù)在上鏈前發(fā)生了失真,區(qū)塊鏈載體的真實性則可能失去價值[6]。
本團隊自2015 年起針對區(qū)塊鏈技術展開了多項研究,將區(qū)塊鏈應用于數(shù)據(jù)的確權及保護[7~11]。本文在此研究基礎之上,設計并實現(xiàn)了一種基于區(qū)塊鏈的不動產存證系統(tǒng),通過將登記信息與制證信息寫入智能合約,實現(xiàn)了數(shù)據(jù)在各機構各部門的高效流通與核驗,并通過智能合約提供了由不動產權利人針對數(shù)據(jù)上鏈前的失真問題的主動申訴機制,完善了不動產存證環(huán)節(jié)的數(shù)據(jù)監(jiān)管。
區(qū)塊鏈(blockchain)是由密碼學技術保護其內容的分布式記賬機制[7]。每一個區(qū)塊通過主要包含交易歷史散列值、上一個區(qū)塊的散列值、交易內容、時間戳等信息。攻擊者若想篡改某個區(qū)塊中的交易數(shù)據(jù),則需花費極高的代價篡改該區(qū)塊之前的所有交易歷史,區(qū)塊內容因此具有難以篡改的特性。
在區(qū)塊鏈技術的應用過程中,按照應用場景、去中心化程度、區(qū)塊鏈參與方等維度的劃分,可分為公有鏈,聯(lián)盟鏈和私有鏈[2]。公有鏈又被稱為公共區(qū)塊鏈,所有人可自由訪問,發(fā)送、接收、認證交易,其代表性的應用例如比特幣[12]、以太坊公鏈[13]等。聯(lián)盟鏈主要指若干組織或企業(yè)組成的聯(lián)盟區(qū)塊鏈,其中節(jié)點或用戶的加入需要經過許可,記賬者的確定亦是由聯(lián)盟成員協(xié)商決定,例如聯(lián)盟鏈中常用的PoA(Proof of Authority)共識算法采用節(jié)點投票提案決定記賬者集合,并采用輪流打包區(qū)塊的策略[14]。私有鏈則是由中心化組織控制的分布式賬本系統(tǒng),其不再具有區(qū)塊鏈去中心化的屬性,系統(tǒng)內的各項操作均有嚴格的權限控制。
智能合約是一種可自我驗證的去中心化協(xié)議[15],使去中心化計算與驗證在理論上成為可能。在支持智能合約的眾多區(qū)塊鏈平臺中,活躍度較高的是以太坊。以太坊智能合約的運行依托于特定的虛擬機環(huán)境[16],虛擬機可以在多種類型的平臺和設備上部署,因此智能合約的執(zhí)行對于不同底層架構的硬件是透明的,使得節(jié)點加入區(qū)塊鏈并參與其生態(tài)的門檻進一步降低。
星際文件系統(tǒng)(Inter Planetary File System,IPFS)是一個通過分布式技術和去中心化網絡創(chuàng)建持久化文件存儲與共享的網絡傳輸協(xié)議。所有的IPFS 節(jié)點組成一個分布式網絡,當文件上傳到IPFS 節(jié)點時,文件經過分塊后存儲在不同的節(jié)點中,用戶可通過特定格式的內容標識(IPFS 文件地址)訪問其中的文件[17]。
數(shù)字簽名是一種基于公鑰密碼體系,以用于鑒別數(shù)字信息來源的方法[18]。簽名者可將簽名消息用私鑰加密,隨后公布公鑰,驗證者若能利用簽名者公鑰解密該該簽名內容,獲取原始簽名消息,則可證明消息的來源確實來自簽名者[19]。
迪菲-赫爾曼密鑰交換(Diffie-Hellman key exchange,D-H)是一種安全協(xié)議,通信雙方可在不與對方事先溝通的情況下,在不安全的信道中協(xié)商建立一個密鑰,該密鑰能夠在后續(xù)的通訊中作為對稱密鑰來加密通訊內容[20]。
本文設計的不動產存證系統(tǒng)架構如圖1所示。

圖1 不動產存證系統(tǒng)總體架構圖
如圖1 所示,外部系統(tǒng)是不動產登記機構、制證機構自身的業(yè)務系統(tǒng),通過服務層的數(shù)據(jù)接口服務和本系統(tǒng)進行交互。應用層主要提供不動產權利人(用戶)的數(shù)據(jù)入口和展示平臺,查詢與申訴系統(tǒng)是用戶查詢存證信息并提出申訴的入口,也是不動產登記或制證機構回應申訴的信息入口。
服務層主要提供對區(qū)塊鏈的交互對數(shù)據(jù)存儲層的存取。其中,數(shù)據(jù)接口服務對接應用層發(fā)送的登記或存證請求,對傳輸?shù)臄?shù)據(jù)進行核驗與封裝,并通過接口與區(qū)塊鏈交互;身份驗證服務作用于用戶查詢不動產信息和提出申訴之前的身份核驗,規(guī)范系統(tǒng)數(shù)據(jù)的披露;申訴服務為用戶發(fā)現(xiàn)已上鏈信息在上鏈前失真提供申訴渠道;統(tǒng)計服務針對于各服務運行產生的過程數(shù)據(jù)及校驗結果進行分析統(tǒng)計。
核心鏈層作為區(qū)塊鏈的基礎,其本質是運行于各機構的對等(Peer-to-Peer,P2P)網絡。網絡中的節(jié)點通過共識算法得出鏈上交易的打包者,節(jié)點開啟遠程過程調用后,服務層可查詢區(qū)塊數(shù)據(jù)、部署和調用智能合約。
數(shù)據(jù)存儲層主要提供文件的分布式存儲以及服務數(shù)據(jù)的緩存。其中,IPFS為不動產登記和制證初始數(shù)據(jù)提供分布式存儲,MongoDB作為非關系型數(shù)據(jù)庫,Redis作為緩存數(shù)據(jù)庫,支撐服務層與核心鏈層交互過程中關鍵數(shù)據(jù)的臨時存儲,提升數(shù)據(jù)查詢效率。
系統(tǒng)的核心流程以智能合約的形式在聯(lián)盟鏈各節(jié)點上部署與執(zhí)行,具體包括不動產登記合約、不動產制證合約以及用戶申訴合約。合約架構如圖2所示。

圖2 不動產存證合約架構
其中,不動產登記合約作為系統(tǒng)初始的數(shù)據(jù)源,保存有不動產權利人相關原始信息和關鍵信息的IPFS地址。
不動產制證合約作為制證機構上鏈的依據(jù),保存有OFD 格式證照文件的IPFS 地址以及制證所需的元數(shù)據(jù)。
用戶申訴合約作為權利人,是發(fā)現(xiàn)信息上鏈前失真并提出質疑的重要渠道,主要包含了申訴的不動產登記合約地址、不動產制證合約地址、登記與制證機構的審議簽名等。
為解決不動產信息登記時缺乏來源可信度的問題,本系統(tǒng)將不動產登記重要內容形成文件存入IPFS,并將登記時產生的關鍵信息與IPFS 文件地址寫入不動產登記合約中,通過部署合約,實現(xiàn)登記信息的可追溯與不可篡改。該流程的示意圖如圖3。

圖3 不動產登記簿信息上鏈示意圖
如圖3 所示,不動產登記系統(tǒng)產生的原始登記數(shù)據(jù)與登記機構的數(shù)字簽名一同傳輸至數(shù)據(jù)接口服務,服務首先對機構簽名進行驗證,驗證通過后將登記數(shù)據(jù)寫入文件并存儲至IPFS 集群,IPFS 返回文件地址后,數(shù)據(jù)接口服務摘取原始登記數(shù)據(jù)中的關鍵信息與IPFS 文件地址、登記機構公鑰一同作為不動產登記智能合約的實體內容,并在核心鏈層部署該合約,不動產登記合約部署成功后,數(shù)據(jù)接口服務將合約地址與關鍵信息存入數(shù)據(jù)庫。
為了解決不動產信息傳遞過程中數(shù)據(jù)易篡改和數(shù)據(jù)失真難以追責的問題,本系統(tǒng)利用數(shù)字簽名與合約查詢,實現(xiàn)了不動產登記與制證信息的真實性核驗、制證信息上鏈以及失真證據(jù)留存。該流程的描述如圖4。

圖4 不動產制證信息上鏈與核驗示意圖
如圖4 所示,不動產制證的信息源自不動產登記系統(tǒng),在制證信息上鏈之前,數(shù)據(jù)接口服務首先將制證系統(tǒng)接收到的制證信息與鏈上的不動產登記信息匹配,若匹配不通過,則會在數(shù)據(jù)庫中記錄不匹配的條目作為證據(jù)留存。若匹配通過,則采用與登記信息上鏈類似的方法,將制證數(shù)據(jù)寫入文件并存儲于IPFS 集群,將返回的IPFS 地址連同制證關鍵數(shù)據(jù)作為合約的實體內容,并在核心鏈層部署制證合約,將返回的合約地址與合約內容實體存入數(shù)據(jù)庫。
當個人用戶在應用層向系統(tǒng)發(fā)起查詢或提起申訴時,該請求會被身份驗證服務攔截,并通過調用第三方生物特征識別服務核驗用戶身份,驗證通過后用戶即可將查詢或申訴請求發(fā)至數(shù)據(jù)接口服務或申訴服務。該流程的時序圖如圖5。

圖5 用戶身份驗證時序圖
如圖5 所示,個人用戶在查詢與申訴系統(tǒng)中發(fā)起查詢或申訴時,首先會向身份驗證服務提交身份驗證申請requestauth,以觸發(fā)第三方生物特征識別服務(以下稱第三方服務)的初始化。身份驗證服務收到requestauth后向第三方服務發(fā)送開放網關的請求,第三方服務在收到后生成公私鑰對(PK,SK)并將其中的公鑰PK 返回給身份驗證服務,身份驗證服務收到PK 后將其傳遞給查詢與申訴系統(tǒng),并告知第三方服務的初始化已完成。
此時,用戶在查詢與申訴系統(tǒng)中構造自己的身份信息userIdentity,包括輸入自己的身份證號并啟用攝像頭采集到的人臉數(shù)據(jù)等生物特征,并利用第三方服務的公鑰PK 加密userIdentity,經身份驗證服務傳遞至第三方服務,第三方服務收到后利用對應的私鑰SK 解密得到userIdentity 并進行特征匹配,隨后將匹配結果返回至身份驗證服務。
若匹配成功,則身份驗證服務生成質數(shù)p 以及元根g,并異步傳輸給用戶和數(shù)據(jù)接口服務或申訴服務,用以進行D-H 密鑰交換。查詢或申訴系統(tǒng)生成一個隨機整數(shù)a并計算密鑰協(xié)商因子:
隨后將密鑰協(xié)商因子A 傳遞至用戶側的查詢和申訴系統(tǒng)。
查詢與申訴系統(tǒng)生成一個隨機整數(shù)b,并計算得到密鑰協(xié)商因子B和對稱加密密鑰K。
查詢與申訴系統(tǒng)隨即將B 和用K 加密的查詢或申訴請求發(fā)送至查詢或申訴服務。查詢服務或申訴服務收到后,計算:
得到與用戶一致的對稱加密密鑰K,完成D-H密鑰協(xié)商的過程,并用K 解密查詢或申訴請求,執(zhí)行請求內容并將查詢或申訴的結果用K 加密,最終返回至用戶側查詢與申訴系統(tǒng)。此過程的安全性基于離散對數(shù)困難性問題,即通過a,b易得A,B,但逆向求解困難。
在此過程中,用戶的具體身份信息對于身份驗證服務始終保持加密狀態(tài)。查詢或申訴服務向用戶返回的結果僅為用戶本人相關的內容。
由于制證信息來源于登記機構,當?shù)怯洐C構的原始登記信息在上鏈前因人工錄入失誤出現(xiàn)失真問題,制證機構的校驗無法檢測此問題。為此,本系統(tǒng)設計了登記人申訴的環(huán)節(jié),以不動產權利人(用戶)的視角發(fā)現(xiàn)已上鏈的登記與制證信息失真問題,并通過部署申訴合約的方式觸發(fā)登記機構與制證機構的審議,若針對該申訴的審議通過,則合約將申訴對象登記信息和制證信息置為過期。該流程的示意圖如圖6。

圖6 用戶申訴示意圖
當用戶通過身份驗證服務后,向申訴服務發(fā)起申訴請求Requestpetition,其中包括了本人的身份證號identityNum、存在問題的不動產登記合約地址RegAddr、制證合約地址CertAddr。申訴服務收到請求后將identityNum、RegAddr、CertAddr 共同作為申訴合約Contractpetition的內容,并合約部署在區(qū)塊鏈節(jié)點上,返回申訴合約地址ContractAddrpetition,等待申訴受理機構即不動產登記和制證機構調查并認定。
登記機構或制證機構調查完畢后,對申訴進行審議的過程如算法1。

如算法1 所示,登記或制證機構首先產生審議意見decision,并用其私鑰SKdept對decision 進行簽名得到Sigdept,申訴服務將Sigdept作為申訴合約的輸入參數(shù),調用申訴合約,申訴合約在執(zhí)行時調用不動產登記合約與不動產制證合約中的setRegExpired()與setCertExpired()方法,由于登記合約與制證合約在部署時記錄了登記機構與制證機構的公鑰,因此在觸發(fā)設置過期方法前能夠先行核驗簽名Sigdept的正確性,經過解密得到審議意見decision。當decision 為true 時,申訴人提出質疑的不動產登記合約及制證合約被視為過期(expired),否則申訴無效。
基于本文第3節(jié)的整體架構與第4節(jié)的詳細流程設計,研發(fā)了基于區(qū)塊鏈的不動產存證系統(tǒng)。
其中,數(shù)據(jù)存儲層采用MongoDB 和Redis 作為非關系型數(shù)據(jù)庫和緩存數(shù)據(jù)庫,IPFS私有集群作為文件存儲系統(tǒng),核心鏈層采用以太坊搭建聯(lián)盟鏈,指定聯(lián)盟節(jié)點共識為PoA,出塊時間間隔為3s,并采用Solidity 語言編寫智能合約。服務層采用Node.js 通過Web3.js 和區(qū)塊鏈節(jié)點交互,使用ipfs-api 調用IPFS 私有集群,并向應用層提供restful風格的接口。
用戶在查詢與申訴系統(tǒng)中可查看其自身的證照信息,其中包含了已上鏈的登記簿關鍵信息和制證關鍵信息,其效果圖如圖7所示。

圖7 不動產存證信息鏈上查看效果圖
用戶通過身份驗證后,在查詢頁面發(fā)起申訴的效果圖如圖8 所示,可輸入申訴合約地址、申訴內容字段,以及申訴問題描述等信息,注入申訴合約。

圖8 不動產存證申訴效果圖
通過實現(xiàn)基于區(qū)塊鏈的不動產存證系統(tǒng),進一步落實了對不動產存證數(shù)據(jù)完整性、真實性、關聯(lián)性的保護。
相比于中心化系統(tǒng)的不動產存證應用,本系統(tǒng)的優(yōu)勢體現(xiàn)在如下場景:
1)不動產登記制證各環(huán)節(jié)中數(shù)據(jù)流通的數(shù)據(jù)真實性與完整性保障。在中心化系統(tǒng)中實現(xiàn)數(shù)據(jù)流通可能需要經歷復雜的部門流轉,由于中間過程較為繁瑣,對數(shù)據(jù)來源的真實性校驗存在困難,數(shù)據(jù)被篡改或丟失的風險增加。本系統(tǒng)將區(qū)塊鏈作為數(shù)據(jù)流通的平臺,降低數(shù)據(jù)被篡改的風險,通過結合數(shù)字簽名技術可驗證數(shù)據(jù)來源真實性,通過合約查找與匹配,可驗證數(shù)據(jù)的完整性,通過區(qū)塊鏈節(jié)點參與共識和數(shù)據(jù)同步,維護節(jié)點間數(shù)據(jù)的一致性。
2)不動產登記制證錯誤信息的反饋與追責。在中心化存證系統(tǒng)中,需要由相關機構發(fā)起自上而下的檢查,才能發(fā)現(xiàn)其中存在的數(shù)據(jù)錯誤,存在嚴重的滯后性,并且對于該錯誤的追責較為繁瑣。本文通過設計申訴合約,使得不動產權利人在發(fā)現(xiàn)數(shù)據(jù)錯誤后,能夠在通過身份驗證后的第一時間觸發(fā)申訴流程,部署申訴合約,實現(xiàn)自下而上的反饋,登記與制證機構通過調用申訴合約,可實現(xiàn)高效的審議,完善了不動產存證數(shù)據(jù)的關聯(lián)性。
本文基于以太坊、智能合約、數(shù)字簽名等技術,設計并實現(xiàn)了一套基于區(qū)塊鏈的不動產存證系統(tǒng)。通過將登記簿信息與制證信息錨定在區(qū)塊鏈中,降低了機構間數(shù)據(jù)流通時被篡改的風險,通過設計申訴與審議機制,進一步完善了數(shù)據(jù)來源真實性的追責與審查,推動監(jiān)管行為向透明高效發(fā)展。
本系統(tǒng)在未來將會對數(shù)據(jù)在各節(jié)點或角色間的有限性披露展開進一步的研究,做到不同部門或機構可見程度差異化。未來還將研究使用自有區(qū)塊鏈、超級賬本結合以太坊,共同作為區(qū)塊鏈存證載體的系統(tǒng)。
總體上,本系統(tǒng)實現(xiàn)了對不動產存證數(shù)據(jù)完整性、真實性、關聯(lián)性的保護,進一步完善了區(qū)塊鏈在不動產存證領域的應用。