空间区块链技术与应用研究 | ![]() |
2. 自然资源部地理信息系统技术创新中心,北京,100015;
3. 中国科学院地理科学与资源研究所,北京,100101
2. GIS Technology Innovation Center of Ministry of Natural Resources, Beijing 100015, China;
3. Institute of Geographic Sciences and Natural Resources Research, Chinese Academy of Sciences, Beijing 100101, China
涉及空间坐标位置的敏感业务信息与民生息息相关,甚至事关国家安全与机密。当前,通常将空间数据以中心化的方式存储在空间数据库中,由相关业务部门进行集中管理,防篡改能力不足且难以通过技术手段对数据进行核验和历史追溯。因此,空间数据存储与管理的防篡改和可追溯的重要性日益凸显。区块链本质上是采用技术手段解决社会或组织之间的信任问题,是一种去中心化的分布式数据库技术方案。该数据库由参与系统的所有节点集体维护[1],具有高安全、可追溯、防篡改的特性。
目前,按照与空间数据的关联程度,空间信息领域的区块链研究可以分为以下两类:
1)空间数据仅作为应用的背景数据或者以元数据的方式挂接。例如,有学者基于以太坊,采用智能合约管理物联网(internet of things,IoT)中的服务节点[2],根据节点的算力和前端查询需求选择合适的空间分析服务提供节点,保证IoT应用平台的高安全和高可用;也有学者对区块链在公共医疗健康领域的应用进行了描述[3];还有学者针对空间数据的版权问题提出了一种分散的空间数据数字版权管理模型,在以太坊平台中实现,将空间数据存储在外挂独立的IPFS数据库中[4]。
2)少量或简单的空间点数据上链。基于共识的位置证明(proof-of–location,PoL)是区块链与空间数据结合的热点研究方向,如FOAM、XYO等平台构建了不依赖GPS等卫星导航定位系统的、基于共识的大众可信PoL,采用区块链技术管理具有强时间属性的空间点位数据,可以实现物流追踪、导航等应用[5];Nurgaliev等[6]基于以太坊区块存储中的Merkle-Patricia树结构,对带有时间信息的点数据的空间索引进行了优化。
空间区块链将区块链技术引入空间数据管理领域,支持点线面矢量、模型空间数据在区块链上的存储和管理,通过技术手段保证空间数据的高安全、防篡改和可追溯,也为数字资产登记、交易、共享等多种场景提供时空上的智能管理[7]。
1 空间区块链技术GIS所服务的行业,其网络中的节点通常是被选定的,具有一定的准入机制,且各节点间是互通与合作的关系,因此空间区块链采用的是联盟链的结构。联盟链具有多中心化和效率成本优化的特点,且具备授权管理机制,既利用了区块链的可信、防篡改和可追溯特点,又保证了较高的效率和性能[8]。
本文基于联盟链Hyperledger Fabric框架(简称Fabric)[9, 10]设计开发了一种空间区块链技术,主要包括3个模块:空间区块链网络、空间数据链外存储系统和空间区块链引擎。
1.1 空间区块链网络空间区块链网络通过Fabric提供的交易发起、交易验证、账本更新和账本一致性等功能将空间数据存储上链。
Fabric网络中的节点包括CA、Peer和Orderer。CA颁发签名证书给请求方和各节点,用于身份认证;Peer用于存储数据,部分Peer可同时作为背书节点,负责对请求进行背书;Orderer负责对请求排序生成区块,并投递给所有Peer进行数据存储。Fabric网络更新链上数据的主要过程如下:①按照背书策略将请求发送到相应的背书节点,Fabric网络的背书策略定义了哪些节点对请求背书,请求才有效;②背书节点接到请求后,将会调用链码模拟执行操作请求,并将执行的背书结果返回;③验证所有背书结果,并将背书过的请求发送给Orderer;④Orderer对请求排序,并打包成数据块,发送给所有Peer,由Peer封装成区块写入链上。
1.1.1 链上存储Fabric的每个Peer上需要维护4套数据库,其描述如表 1所示。
表 1 Peer上的数据库 Tab.1 Databases Installed on Peer |
![]() |
本文在StateDB的选择上,采用LevelDB。LevelDB以key_value的形式存储数据,key为随机生成的唯一标识码,value包含空间数据的属性和几何信息,采用JSON字符串的格式存储。
1.1.2 空间智能合约(链码)上述链码即为智能合约,是Fabric区块链中一段拥有执行逻辑的程序。
基于Go语言编写空间智能合约,在Fabric链码基础上增加对空间数据的处理能力。本文中的空间数据以“数据集-数据项”的层次结构进行组织。数据集管理同类型的空间数据,主要记录数据类型、空间范围、字段信息等;数据项是一个空间对象记录,包括空间信息和属性信息。空间智能合约扩展了相关的空间字段,增加空间数据类型,将空间数据存储到链上,图 1展示了一条完整的空间数据在区块链上的存储形式。
![]() |
图 1 空间数据在空间区块链上的存储形式 Fig.1 Storage Form of Spatial Data in Geo-blockchain |
空间智能合约提供链上空间数据读写和历史追溯接口,主要方法被封装在ChaincodeStubInterface类中,见表 2,可在Java等编程语言中通过指定接口进行调用。
表 2 ChaincodeStubInterface类主要方法 Tab.2 Main Methods of ChaincodeStubInterface Class |
![]() |
1.2 空间数据链外存储系统
空间数据链外存储系统用于存储大体量的空间数据或文件。由于空间数据量常达到GB甚至TB级,为了保证空间区块链稳定且可持续运行,采用哈希上链方式存储数据。哈希上链将数据量较大的空间数据存储到链外存储系统,区块链上仅保存几何信息的哈希值。由于哈希算法具有碰撞约束,因此链上的哈希值和链外的数据文件一一对应。
在一个Peer、一个Orderer和一个IPFS节点的环境下,基于不同大小的空间数据,对比直接上链和哈希上链的性能,如图 2所示。可以看出,随着数据量的增大,哈希上链的性能明显优于直接上链。
![]() |
图 2 直接上链与哈希上链的性能对比 Fig.2 Performance Comparison Between Data Stored on Blockchain and Data Stored on Hash Blockchain |
本文的链外存储系统为IPFS。IPFS是一个去中心化的分布式文件系统,多个IPFS节点组成IPFS集群,各节点可以互相通信,但不会主动同步数据。为了提高链外数据的安全性,本文设置IPFS-Complete节点,即在某些IPFS节点上增加同步数据的能力,用于备份所有IPFS节点上的数据。
1.3 空间区块链引擎空间区块链引擎部署在客户端,封装了Fabric区块链网络与链外存储系统的访问逻辑,提供链上空间数据增删改查和历史追溯的功能接口。
区块链上的数据只允许新增,不允许修改和删除,因此,空间区块链引擎对传统空间数据管理中的更新和删除进行了特殊处理。提供的更新接口modifyFeature()并不会修改原始数据,而是新增一条修改后的新记录,新记录ID与原始记录ID相同,通过字段SmModify=1表示此条记录被更新过。删除接口deleteFeatureByKey()同样是新增一条记录,字段SmDelete=1表示记录已被删除。
图 3展示了空间区块链新增一条数据的流程,通过调用引擎新增接口addFeature()实现。
![]() |
图 3 空间区块链新增数据流程 Fig.3 Flow Chart of Adding Data to Geo-blockchain |
此外,空间区块链引擎提供历史追溯接口getHistory()对链上数据进行历史追溯。通过目标key在链上检索,将查出的所有历史记录按时间先后顺序输出。
2 空间区块链应用空间区块链的应用包括两个方面:①基于区块链本身特性,在空间数据资产保护中,保证链上数据高安全、防篡改、可追溯;②空间数据上链为区块链应用增加时空特性,为测绘、土地、物流等一些关注位置信息的应用提供空间上的可追溯能力。
本文以宗地管理为演示案例,基于空间区块链技术将宗地权利人、界址等关键信息上链管理。
如图 4所示,模拟宗地管理场景搭建“1+N”个网络节点。1是部署在某部委的节点,包含一个CA和奇数个Orderer,用于授权、认证、管理;N是部署在多个省份的Peer,负责数据管理、登记等,所有Peer的数据同步;同时,在每个省份部署一个IPFS节点,仅存储本省数据,所有IPFS节点组成IPFS集群,可互相访问。
![]() |
图 4 基于空间区块链的宗地管理演示系统 Fig.4 Parcel Management Demo System Based on Geo-blockchain |
图 5展示了一条宗地数据的最新信息及其历史信息,通过可视化展示了这条宗地数据在界址范围内进行过的一次更新。
![]() |
图 5 链上数据的地图可视化 Fig.5 Map Visualization of Data on the Blockchain |
基于空间区块链的宗地管理系统(简称空间区块链宗地系统),采用区块链的链式存储结构,具有防篡改和可追溯的特性,基于传统数据库的宗地管理系统(简称传统宗地系统)在存储结构上不具备防篡改约束。且传统宗地系统的存储和管理相对集中,空间区块链宗地系统通过“去中心化”的共识机制达到全网的一致共识,保障数据的安全。然而,空间区块链宗地系统仍存在一些局限,在处理性能上,由于区块链本身的性能限制,采用哈希上链后的空间区块链宗地系统在性能上仍不及传统宗地系统,且空间区块链宗地系统包含了多中心网络节点,在部署成本上更高[11]。
3 结束语本文在技术上对多种空间数据在区块链网络中的存储和管理等相关技术进行了初步探讨,实现了空间数据存储上链,并提供了大体量空间数据的存储策略。但是区块链全量副本式的分布式存储以及网络节点的共识、数据同步等机制,在实际应用过程中仍具有局限性。在交易处理的性能上,有很多研究通过侧链或分区分片等技术对其进行了优化,但依然不可能达到或接近常规数据库的性能,在空间区块链长期运转后,链上数据的迁移维护也是空间区块链投入实际应用必须要面临的技术问题。
在应用上,本文中宗地管理仅作为空间区块链技术应用的演示案例,重点说明了宗地数据存储和链上数据历史追溯在空间上的展示情况,但未对宗地数据的变化情况进行详细业务分析。因此,要继续探索空间区块链在应用中的业务模式,让其在国土空间规划与用途管制、不动产登记与交易、自然资源与权益管理等多领域发挥应有的作用。
[1] |
何蒲, 于戈, 张岩峰, 等. 区块链技术与应用前瞻综述[J]. 计算机科学, 2017, 44(4): 1-7. |
[2] |
Kim B Y, Choi S S, Jang J W. Data Managing and Service Exchanging on IoT Service Platform Based on Blockchain with Smart Contract and Spatial Data Processing[C]. Proceedings of the 2018 International Conference on Information Science and System, Jeju, Korea, 2018
|
[3] |
Kamel Boulos M N, Wilson J T, Clauson K A. Geospatial Blockchain: Promises, Challenges, and Scenarios in Health and Healthcare[J]. International Journal of Health Geographics, 2018, 17(1): 25. DOI:10.1186/s12942-018-0144-x |
[4] |
Zhang Y, Tang Z, Huang J, et al. A Decentralized Model for Spatial Data Digital Rights Management[J]. ISPRS International Journal of Geo-Information, 2020, 9(2): 84. DOI:10.3390/ijgi9020084 |
[5] |
Fu Y, Chen H H, Qian J B, et al. A PoL Protocol for Spatiotemporal Blockchain[C]. Security and Privacy in Digital Economy, Quzhou, China, 2020
|
[6] |
Nurgaliev I, Muzammal M, Qu Q. Enabling Blockchain for Efficient Spatio-Temporal Query Processing [C]. Web Information Systems Engineering, Dubai, United Arab Emirates, 2018
|
[7] |
宋关福, 陈勇, 罗强, 等. GIS基础软件技术体系发展及展望[J]. 地球信息科学学报, 2021, 23(1): 2-15. |
[8] |
贾文珏, 李泽慧. 区块链技术在自然资源管理中的应用初探[J]. 国土资源信息化, 2020(4): 3-8. |
[9] |
Nasir Q, Qasse I A, Abu Talib M, et al. Performance Analysis of Hyperledger Fabric Platforms[J]. Security and Communication Networks, 2018, 2018: 3976093. |
[10] |
Androulaki E, Barger A, Bortnikov V, et al. Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains[C]. Proceedings of the Thirteenth EuroSys Conference, Porto, Portugal, 2018
|
[11] |
左春, 梁赓, 徐昊, 等. 区块链技术与传统软件技术对比分析[J]. 信息技术与标准化, 2017(5): 23-27. |