基于区块链的不动产存证系统∗
2024-04-17程昊天李晓风盛念祖
程昊天 李晓风 赵 赫 余 斌 周 桐 盛念祖 孙 亮
(1.安徽大学物质科学与信息技术研究院 合肥 230601)(2.中国科学院合肥物质科学研究院信息中心 合肥 230031)(3.中国科学技术大学研究生院科学岛分院 合肥 230026)(4.中国科学院合肥技术创新工程院区块链与感知计算工程技术研发中心 合肥 230088)
1 引言
随着国内城镇化的发展和信息技术的进步,日益增长的不动产登记和制证数据亟需提升其信息质量和利用效率[1]。不动产登记、制证数据作为电子数据,在集中式存储和共享时,存在以下问题:1)数据在流通过程中易被篡改;2)数据来源的真实性难以核实;3)错误数据的追责困难。以上的问题导致了不动产存证数据的完整性、真实性、关联性难以保障和认定困难。
区块链技术因具有去中心化、集体维护、历史数据可追溯、不可篡改等特点[2],应用于不动产存证场景后,可更好地保障不动产存证数据的完整性、真实性、关联性。国内关于区块链在不动产存证领域的研究和应用目前处于起步阶段,张耕瑞[3]提出了一种名为Dynasty 的共识协议,以此开发了许可链D-Chain,并展示了其在不动产登记服务中的应用。张飞[4]根据区块链和电子认证技术,设计并实现了一套不动产登记电子证照系统,在保存不动产电子证照的基础上增加了电子印章管理、目录管理等功能。肖华[5]等从技术和机制上探索了区块链技术在不动产电子存证领域的应用,并提出不动产登记环节中除电子证照之外的文书与文件也可用区块链存证。
上述文献通过将数据指纹或内容锚定到区块链,有效地降低了不动产数据在流通过程中被篡改的风险,但针对数据上链前可能存在的失真问题并未提出有效的追责途径。若数据在上链前发生了失真,区块链载体的真实性则可能失去价值[6]。
本团队自2015 年起针对区块链技术展开了多项研究,将区块链应用于数据的确权及保护[7~11]。本文在此研究基础之上,设计并实现了一种基于区块链的不动产存证系统,通过将登记信息与制证信息写入智能合约,实现了数据在各机构各部门的高效流通与核验,并通过智能合约提供了由不动产权利人针对数据上链前的失真问题的主动申诉机制,完善了不动产存证环节的数据监管。
2 相关技术
2.1 区块链技术
区块链(blockchain)是由密码学技术保护其内容的分布式记账机制[7]。每一个区块通过主要包含交易历史散列值、上一个区块的散列值、交易内容、时间戳等信息。攻击者若想篡改某个区块中的交易数据,则需花费极高的代价篡改该区块之前的所有交易历史,区块内容因此具有难以篡改的特性。
在区块链技术的应用过程中,按照应用场景、去中心化程度、区块链参与方等维度的划分,可分为公有链,联盟链和私有链[2]。公有链又被称为公共区块链,所有人可自由访问,发送、接收、认证交易,其代表性的应用例如比特币[12]、以太坊公链[13]等。联盟链主要指若干组织或企业组成的联盟区块链,其中节点或用户的加入需要经过许可,记账者的确定亦是由联盟成员协商决定,例如联盟链中常用的PoA(Proof of Authority)共识算法采用节点投票提案决定记账者集合,并采用轮流打包区块的策略[14]。私有链则是由中心化组织控制的分布式账本系统,其不再具有区块链去中心化的属性,系统内的各项操作均有严格的权限控制。
2.2 智能合约
智能合约是一种可自我验证的去中心化协议[15],使去中心化计算与验证在理论上成为可能。在支持智能合约的众多区块链平台中,活跃度较高的是以太坊。以太坊智能合约的运行依托于特定的虚拟机环境[16],虚拟机可以在多种类型的平台和设备上部署,因此智能合约的执行对于不同底层架构的硬件是透明的,使得节点加入区块链并参与其生态的门槛进一步降低。
2.3 IPFS
星际文件系统(Inter Planetary File System,IPFS)是一个通过分布式技术和去中心化网络创建持久化文件存储与共享的网络传输协议。所有的IPFS 节点组成一个分布式网络,当文件上传到IPFS 节点时,文件经过分块后存储在不同的节点中,用户可通过特定格式的内容标识(IPFS 文件地址)访问其中的文件[17]。
2.4 数字签名技术
数字签名是一种基于公钥密码体系,以用于鉴别数字信息来源的方法[18]。签名者可将签名消息用私钥加密,随后公布公钥,验证者若能利用签名者公钥解密该该签名内容,获取原始签名消息,则可证明消息的来源确实来自签名者[19]。
2.5 Diffie-Hellman密钥交换协议
迪菲-赫尔曼密钥交换(Diffie-Hellman key exchange,D-H)是一种安全协议,通信双方可在不与对方事先沟通的情况下,在不安全的信道中协商建立一个密钥,该密钥能够在后续的通讯中作为对称密钥来加密通讯内容[20]。
3 整体架构
3.1 系统架构
本文设计的不动产存证系统架构如图1所示。
图1 不动产存证系统总体架构图
如图1 所示,外部系统是不动产登记机构、制证机构自身的业务系统,通过服务层的数据接口服务和本系统进行交互。应用层主要提供不动产权利人(用户)的数据入口和展示平台,查询与申诉系统是用户查询存证信息并提出申诉的入口,也是不动产登记或制证机构回应申诉的信息入口。
服务层主要提供对区块链的交互对数据存储层的存取。其中,数据接口服务对接应用层发送的登记或存证请求,对传输的数据进行核验与封装,并通过接口与区块链交互;身份验证服务作用于用户查询不动产信息和提出申诉之前的身份核验,规范系统数据的披露;申诉服务为用户发现已上链信息在上链前失真提供申诉渠道;统计服务针对于各服务运行产生的过程数据及校验结果进行分析统计。
核心链层作为区块链的基础,其本质是运行于各机构的对等(Peer-to-Peer,P2P)网络。网络中的节点通过共识算法得出链上交易的打包者,节点开启远程过程调用后,服务层可查询区块数据、部署和调用智能合约。
数据存储层主要提供文件的分布式存储以及服务数据的缓存。其中,IPFS为不动产登记和制证初始数据提供分布式存储,MongoDB作为非关系型数据库,Redis作为缓存数据库,支撑服务层与核心链层交互过程中关键数据的临时存储,提升数据查询效率。
3.2 合约架构
系统的核心流程以智能合约的形式在联盟链各节点上部署与执行,具体包括不动产登记合约、不动产制证合约以及用户申诉合约。合约架构如图2所示。
图2 不动产存证合约架构
其中,不动产登记合约作为系统初始的数据源,保存有不动产权利人相关原始信息和关键信息的IPFS地址。
不动产制证合约作为制证机构上链的依据,保存有OFD 格式证照文件的IPFS 地址以及制证所需的元数据。
用户申诉合约作为权利人,是发现信息上链前失真并提出质疑的重要渠道,主要包含了申诉的不动产登记合约地址、不动产制证合约地址、登记与制证机构的审议签名等。
4 详细流程设计
4.1 不动产登记簿信息上链
为解决不动产信息登记时缺乏来源可信度的问题,本系统将不动产登记重要内容形成文件存入IPFS,并将登记时产生的关键信息与IPFS 文件地址写入不动产登记合约中,通过部署合约,实现登记信息的可追溯与不可篡改。该流程的示意图如图3。
图3 不动产登记簿信息上链示意图
如图3 所示,不动产登记系统产生的原始登记数据与登记机构的数字签名一同传输至数据接口服务,服务首先对机构签名进行验证,验证通过后将登记数据写入文件并存储至IPFS 集群,IPFS 返回文件地址后,数据接口服务摘取原始登记数据中的关键信息与IPFS 文件地址、登记机构公钥一同作为不动产登记智能合约的实体内容,并在核心链层部署该合约,不动产登记合约部署成功后,数据接口服务将合约地址与关键信息存入数据库。
4.2 不动产制证信息上链及验证
为了解决不动产信息传递过程中数据易篡改和数据失真难以追责的问题,本系统利用数字签名与合约查询,实现了不动产登记与制证信息的真实性核验、制证信息上链以及失真证据留存。该流程的描述如图4。
图4 不动产制证信息上链与核验示意图
如图4 所示,不动产制证的信息源自不动产登记系统,在制证信息上链之前,数据接口服务首先将制证系统接收到的制证信息与链上的不动产登记信息匹配,若匹配不通过,则会在数据库中记录不匹配的条目作为证据留存。若匹配通过,则采用与登记信息上链类似的方法,将制证数据写入文件并存储于IPFS 集群,将返回的IPFS 地址连同制证关键数据作为合约的实体内容,并在核心链层部署制证合约,将返回的合约地址与合约内容实体存入数据库。
4.3 用户身份验证
当个人用户在应用层向系统发起查询或提起申诉时,该请求会被身份验证服务拦截,并通过调用第三方生物特征识别服务核验用户身份,验证通过后用户即可将查询或申诉请求发至数据接口服务或申诉服务。该流程的时序图如图5。
图5 用户身份验证时序图
如图5 所示,个人用户在查询与申诉系统中发起查询或申诉时,首先会向身份验证服务提交身份验证申请requestauth,以触发第三方生物特征识别服务(以下称第三方服务)的初始化。身份验证服务收到requestauth后向第三方服务发送开放网关的请求,第三方服务在收到后生成公私钥对(PK,SK)并将其中的公钥PK 返回给身份验证服务,身份验证服务收到PK 后将其传递给查询与申诉系统,并告知第三方服务的初始化已完成。
此时,用户在查询与申诉系统中构造自己的身份信息userIdentity,包括输入自己的身份证号并启用摄像头采集到的人脸数据等生物特征,并利用第三方服务的公钥PK 加密userIdentity,经身份验证服务传递至第三方服务,第三方服务收到后利用对应的私钥SK 解密得到userIdentity 并进行特征匹配,随后将匹配结果返回至身份验证服务。
若匹配成功,则身份验证服务生成质数p 以及元根g,并异步传输给用户和数据接口服务或申诉服务,用以进行D-H 密钥交换。查询或申诉系统生成一个随机整数a并计算密钥协商因子:
随后将密钥协商因子A 传递至用户侧的查询和申诉系统。
查询与申诉系统生成一个随机整数b,并计算得到密钥协商因子B和对称加密密钥K。
查询与申诉系统随即将B 和用K 加密的查询或申诉请求发送至查询或申诉服务。查询服务或申诉服务收到后,计算:
得到与用户一致的对称加密密钥K,完成D-H密钥协商的过程,并用K 解密查询或申诉请求,执行请求内容并将查询或申诉的结果用K 加密,最终返回至用户侧查询与申诉系统。此过程的安全性基于离散对数困难性问题,即通过a,b易得A,B,但逆向求解困难。
在此过程中,用户的具体身份信息对于身份验证服务始终保持加密状态。查询或申诉服务向用户返回的结果仅为用户本人相关的内容。
4.4 申诉与审议
由于制证信息来源于登记机构,当登记机构的原始登记信息在上链前因人工录入失误出现失真问题,制证机构的校验无法检测此问题。为此,本系统设计了登记人申诉的环节,以不动产权利人(用户)的视角发现已上链的登记与制证信息失真问题,并通过部署申诉合约的方式触发登记机构与制证机构的审议,若针对该申诉的审议通过,则合约将申诉对象登记信息和制证信息置为过期。该流程的示意图如图6。
图6 用户申诉示意图
当用户通过身份验证服务后,向申诉服务发起申诉请求Requestpetition,其中包括了本人的身份证号identityNum、存在问题的不动产登记合约地址RegAddr、制证合约地址CertAddr。申诉服务收到请求后将identityNum、RegAddr、CertAddr 共同作为申诉合约Contractpetition的内容,并合约部署在区块链节点上,返回申诉合约地址ContractAddrpetition,等待申诉受理机构即不动产登记和制证机构调查并认定。
登记机构或制证机构调查完毕后,对申诉进行审议的过程如算法1。
如算法1 所示,登记或制证机构首先产生审议意见decision,并用其私钥SKdept对decision 进行签名得到Sigdept,申诉服务将Sigdept作为申诉合约的输入参数,调用申诉合约,申诉合约在执行时调用不动产登记合约与不动产制证合约中的setRegExpired()与setCertExpired()方法,由于登记合约与制证合约在部署时记录了登记机构与制证机构的公钥,因此在触发设置过期方法前能够先行核验签名Sigdept的正确性,经过解密得到审议意见decision。当decision 为true 时,申诉人提出质疑的不动产登记合约及制证合约被视为过期(expired),否则申诉无效。
5 系统实现
基于本文第3节的整体架构与第4节的详细流程设计,研发了基于区块链的不动产存证系统。
其中,数据存储层采用MongoDB 和Redis 作为非关系型数据库和缓存数据库,IPFS私有集群作为文件存储系统,核心链层采用以太坊搭建联盟链,指定联盟节点共识为PoA,出块时间间隔为3s,并采用Solidity 语言编写智能合约。服务层采用Node.js 通过Web3.js 和区块链节点交互,使用ipfs-api 调用IPFS 私有集群,并向应用层提供restful风格的接口。
用户在查询与申诉系统中可查看其自身的证照信息,其中包含了已上链的登记簿关键信息和制证关键信息,其效果图如图7所示。
图7 不动产存证信息链上查看效果图
用户通过身份验证后,在查询页面发起申诉的效果图如图8 所示,可输入申诉合约地址、申诉内容字段,以及申诉问题描述等信息,注入申诉合约。
图8 不动产存证申诉效果图
通过实现基于区块链的不动产存证系统,进一步落实了对不动产存证数据完整性、真实性、关联性的保护。
6 系统分析
相比于中心化系统的不动产存证应用,本系统的优势体现在如下场景:
1)不动产登记制证各环节中数据流通的数据真实性与完整性保障。在中心化系统中实现数据流通可能需要经历复杂的部门流转,由于中间过程较为繁琐,对数据来源的真实性校验存在困难,数据被篡改或丢失的风险增加。本系统将区块链作为数据流通的平台,降低数据被篡改的风险,通过结合数字签名技术可验证数据来源真实性,通过合约查找与匹配,可验证数据的完整性,通过区块链节点参与共识和数据同步,维护节点间数据的一致性。
2)不动产登记制证错误信息的反馈与追责。在中心化存证系统中,需要由相关机构发起自上而下的检查,才能发现其中存在的数据错误,存在严重的滞后性,并且对于该错误的追责较为繁琐。本文通过设计申诉合约,使得不动产权利人在发现数据错误后,能够在通过身份验证后的第一时间触发申诉流程,部署申诉合约,实现自下而上的反馈,登记与制证机构通过调用申诉合约,可实现高效的审议,完善了不动产存证数据的关联性。
7 结语
本文基于以太坊、智能合约、数字签名等技术,设计并实现了一套基于区块链的不动产存证系统。通过将登记簿信息与制证信息锚定在区块链中,降低了机构间数据流通时被篡改的风险,通过设计申诉与审议机制,进一步完善了数据来源真实性的追责与审查,推动监管行为向透明高效发展。
本系统在未来将会对数据在各节点或角色间的有限性披露展开进一步的研究,做到不同部门或机构可见程度差异化。未来还将研究使用自有区块链、超级账本结合以太坊,共同作为区块链存证载体的系统。
总体上,本系统实现了对不动产存证数据完整性、真实性、关联性的保护,进一步完善了区块链在不动产存证领域的应用。