基于区块链的灾害应急遥感用户信息共享
2022-02-25曾庆双张连翀李国庆郭志斌
曾庆双 张连翀 李国庆 郭志斌
(1.中国科学院空天信息创新研究院,北京 100094;2.中国科学院大学电子电气与通信工程学院,北京 100049;3.中国科学院计算机网络信息中心,北京 100190)
0 引言
我国是世界上受自然灾害影响最为突出的国家之一,自然灾害具有典型的突发性、复杂性、不确定性以及跨域性特征[1]。灾害的发生直接对当地居民的人身安全、社会的经济效益等产生巨大威胁。而灾害应急响应是防灾减灾的关键内容,开展快速有效的应急响应是科学救灾、快速救援的基本要求。随着我国对地观测卫星领域投入不断增加,对地观测科技创新能力和水平不断提升[2],遥感卫星发射数量迅速增加,海量的遥感卫星数据以每日TB级的速度增长,遥感数据进入了大数据时代[3-5]。遥感数据具有多传感器、多时相、多分辨率、多要素等“四多”特性[6],为灾害应急响应监测提供了丰富的数据源。
灾害应急遥感数据共享的第一要务就是要“快”。用户获取数据的时效性是灾害应急响应的关键[7-8]。在当前业务流程中,用户急需获取的数据存储在不同的机构中,受到各机构数据共享政策的限制,下载前需要对用户身份严格审查,不仅过程繁琐,而且降低了用户获取数据的时效性。因此,需要一种在保障灾害应急遥感数据共享政策的情况下对用户身份进行快速认证的机制,以便用户可以尽快获取相关数据。区块链技术所具有的去中心化、分布式记账、不可篡改、安全可靠等特性为解决灾害遥感数据共享服务中用户信息共享问题提供了技术支持。
区块链技术最早作为比特币背后的基础技术框架,由日本学者中本聪于2008年发表论文后正式登上历史的舞台[9-10]。区块链是一种基于时间顺序将数据区块串联起来的链式结构,以密码学技术确保链上数据的安全可靠[11-12]。具有全民记账、去中心化、去中介信用、数据库可靠、不可篡改等特性[13]。根据网络范围及参与节点的特性,区块链可被划分为公有链、联盟链和私有链[14]。联盟链更适合若干机构或者组织内部进行数据开放共享,共同参与管理链上数据。参与的节点在不需要信任的情况下可以完成数据的共享,链上的数据信息仅对联盟内部成员开放。相比较公有链和私有链,联盟链更适合若干机构或者组织之间进行数据开放共享,共同参与管理链上数据。链上的数据信息仅对联盟内部成员开放[15-17]。
区块链技术最初应用于数字货币领域,智能合约的出现使得区块链技术开始扩大到涉及合约共识的金融领域[18]。由于各领域的不断发展和智能合约的可扩展性,区块链技术已应用到医疗服务、物联网、供应链管理等领域中[19-20]。随着区块链技术的深入发展及其自身所具有的独特特性使得该技术在遥感领域也得到了初步的发展和应用。2019年,欧洲空间局发布的《区块链和地球观测》白皮书强调将区块链集成到遥感应用的重要性[21]。区块链可以在不需要第三方机构的情形下实现价值转移,同时可以实现在数据拥有者保持数据所有权的情况下共享数据。Zhang等[22]提出了一种基于区块链的遥感数据共享模型,解决遥感数据分散、数据存储、共享困难等问题。Lu等[23]提出了基于区块链的RSCS(遥感云服务)交易系统模型,系统中区块链模块包含身份链和交易链,将用户个人信息和交易信息上链,实现的仅是交易过程中相关信息的保护。Pincheira等[24]提出了一个基于区块链的系统共享和检索数据,允许数据共享、维护数据来源和更新、允许检索和评估数据并添加可信性。何道敬等[25]公开了一种基于区块链的分布式遥感数据共享系统,该发明解决了遥感数据由于格式多样化导致的难以存储、难以检索、难以共享的问题,并利用区块链技术的可追踪性,避免了中心机构出于自身利益而人为恶意地篡改遥感数据。黄子龙等[26]公开了一种基于区块链的遥感成果版权管理方法,利用区块链的不可篡改性和链上数据对所有人公开透明来保护版权作者和购买者的权益,且结合密码学相关技术避免管理中心故障造成版权作者损失的问题。
本文提出并实现了一种基于区块链的灾害应急遥感用户信息共享的方案。该方案中要求各数据中心作为联盟节点将自身网站中用户信息子集按照统一标准上传到区块链平台中,组成公用用户集,存储在数据区块中,通过智能合约验证用户身份,做为一个分布式的用户库,结合身份证授权协议,实现单点登录。该方案具有以下特点:①灾害应急遥感数据共享服务中将用户信息上链共享简化了用户身份验证过程,提高了用户获取数据的时效性。②将用户信息上传到区块链平台中,利用区块链防篡改的特性保证了用户信息的安全可靠。③各数据中心为各自网站上链的用户信息背书,保证了用户信息的真实可靠,促进了用户信息的有效共享。
1 整体设计
基于区块链的灾害应急遥感用户信息共享方案中提出一个以联盟链为基础架构的区块链平台。该平台是面向参与灾害应急遥感用户信息共享的各数据中心构建的数据联盟链,主要为灾害用户信息存储、可信与共享提供技术保障。区块链平台通过为每个数据中心创建联盟链节点,支持灾害用户信息、用户信息的哈希值(Hash值)、用户信息唯一标识等数据上链。存储在链上的用户通过区块链平台进行身份验证后,直接享有访问区块链网络中各联盟节点网站的权限,无需再逐个由各网站单独完成审核认证过程,保障用户信息在安全存储的情况下进行可信共享。区块链平台由资源层、数据层、网络层、合约层和应用层组成,系统架构如图1所示。
图1 区块链平台系统架构
(1)资源层:资源层由提供用户信息资源的各卫星数据中心构成。
(2)数据层:数据层是整个区块链平台中的基础部分,采用链式的数据结构、哈希函数、密码学和时间戳等技术,对链上数据进行存储,保证链上用户信息不可篡改。
(3)网络层:网络层利用共识算法和P2P技术实现分布式网络机制,负责区块链平台各节点数据的一致性。
(4)合约层:合约层包含实现系统业务流程的智能合约。智能合约是区块链中按照系统中业务逻辑开发的代码,在满足业务约定条件时,代码自动执行,不受其他外界因素的干扰。在该平台中可以通过智能合约完成数据上链、数据检索、数据追溯等操作。
(5)应用层:应用层由数据检索、数据追溯、区块查询模块组成。用户信息正式上链后可以通过用户信息子集的数据标识作为参数调用智能合约查询上链的用户信息子集的信息,通过数据追溯功能可以查询上链用户信息子集版本的更新变化。
2 共享方法
2.1 用户信息上链标准
通过调研分析各数据中心注册时需要填写的用户信息,整理出一份各机构公用用户信息表,如表1 的“公用用户信息表a”所示。由于受到各数据机构灾害应急遥感数据共享政策的限制,数据下载前需要对用户身份进行严格审查。为了确保用户身份的唯一性,在公用用户信息表中补充了用户IP、用户来源等字段组成上链用户信息表,如表1 的“上链用户信息表b”所示。用户IP地址可以确定用户身份的唯一性,用户来源可以保障用户身份的可信性。各数据机构按照表1 中的“上链用户信息表b”将网站内用户信息上链。
表1 公用用户信息表与上链用户信息表
2.2 用户信息上链流程
参与该区块链系统的节点按照表1 的“上链用户信息表b”进行用户信息上链操作。图2 描述了用户信息上链流程(以两个节点为例)。以下是用户信息上链的具体步骤。
图2 基于区块链的用户信息上链流程
步骤1 节点A、节点B整理出各自网站内的用户信息子集A1、B1,生成该用户信息子集的数据标识,数据标识是数据集的永久唯一标识;对该用户信息子集签名,即计算该子集的Hash值,用户信息子集版本发生变化时Hash值也随之变化,可以清楚地查看数据集版本随时间的更新变化。将用户信息子集、子集的Hash值、数据标识和子集所属机构一同上传到区块链平台中,区块链平台对节点A、节点B上链的用户信息子集A1、B1整理形成公用用户集V1,将V1连同相关的上链信息一起存储在相应的数据区块中。
步骤2 节点A、节点B固定周期对用户信息子集A1、B1进行增、删、改等操作,将用户信息子集A1、B1内的用户信息进行更新,形成新的用户信息子集A2、B2,确保上链的用户信息真实有效。按照步骤1 中的流程进行上链操作,在区块链平台中形成公用用户集V2,将V2连同相关的上链信息一起存储在数据区块中。
步骤3 固定周期内节点A、节点B重复步骤2,在区块链平台中组成新的公用用户集Vn,存储在数据区块中。
步骤4 节点A、节点B通过固定周期更新用户信息子集Ai、Bi,组成最新版本的公用用户集Vi,确保在当前区块中存储的是链上最全、最新的用户信息,为用户身份验证提供数据基础。
2.3 用户信息上链存储
参与用户信息共享的各数据中心将各自网站内的用户信息子集上链到区块链平台,组成公用用户集存储在数据区块中,在该系统中各数据中心均保存一份完整的链上数据。数据存储方式如图3所示。利用区块链去中心化的分布式存储技术,改变了传统数据共享中系统上和硬件设施上中心化的管理模式,每个参与用户信息共享的数据中心在该系统中享有同样的权力和义务,可以实现用户信息的可信共享。
图3 基于区块链的用户信息存储模式
2.4 用户信息上链共享
公用用户集中的用户通过区块链平台进行身份验证后,直接享有访问区块链系统中各联盟节点网站的权限,无需再逐个由各网站单独完成审核认证过程。图4 描述了公用用户集中用户访问验证的流程。以下是用户访问验证的具体步骤。
图4 基于区块链的用户身份验证流程
步骤1 用户利用在区块链系统中任一个网站注册的账号登录A数据中心网站,即请求访问网站A。
步骤2 网站A首先在系统内部用户信息库中查询验证该用户身份。
步骤3 网站A得到内部数据库的查询验证响应,若该用户为网站自身的注册用户即验证通过,用户得到访问响应(Yes),则可以访问网站A,用户验证结束。
步骤4 若该用户不是网站A内部注册用户,没有通过网站A内部用户信息数据库验证(No),则请求区块链平台进行该用户身份验证,区块链平台在最新版本的公用用户集中验证该用户身份。
步骤5 区块链平台将验证的结果反馈给网站A,网站A将请求访问结果反馈给该用户。若该用户信息存在区块链平台的公用用户集中,则验证通过(Yes),允许访问。若该用户信息不存在公用用户集中,则验证不通过(No),拒绝访问。
2.5 用户身份验证模式
区块链平台进行用户身份验证的方式如图5所示。下面给出了用户身份验证方式的具体步骤。
图5 基于区块链的用户身份验证模式
步骤1 若请求访问的用户不是网站A内部注册用户,则网站A请求区块链平台对该用户进行身份验证。
步骤2 区块链平台在最新版本的公用用户集中查询该用户信息,若该用户信息存在则将查询结果反馈给网站A(Yes),网站A允许该用户访问。
步骤3 根据区块链系统中用户信息共享规则,区块链平台将链上存储的该用户详细的身份信息反馈给网站A。
步骤4 网站A可以将该用户身份信息存储到自身网站内部用户信息库中。
步骤5 若该用户不存在公用用户信息集中,区块链平台则将验证不通过的结果反馈给网站A(No),网站A拒绝该用户访问。
3 方案测试及分析
3.1 用户信息上链测试
通过区块链系统的客户端将用户信息上传至区块链平台,用户信息上链时需填写标识、标题、注册机构等数据信息,选择用户信息子集表,将该表上传,自动计算出该表的Hash值,提交后获得后台响应结果,如图6所示。
图6 用户信息提交后台响应结果
在区块链平台中通过数据浏览模块可以查询链上所有共享的用户信息子集,也可以根据用户信息子集的名称、标识、机构等内容对所有上链的用户信息子集进行检索,如图7所示。
图7 链上用户信息检索界面
输入数据集的标识进行检索,查看用户信息子集版本的变化,如图8所示。数据追溯功能一方面能够确保上链的单个用户信息集版本记录不是伪造的,另一方面能够确保记录顺序不会被修改。
图8 链上用户信息追溯界面
3.2 链上存储用户信息的数据区块查询测试
区块链系统中通过区块链浏览器可以查询链上区块信息,包括区块高度、Hash值、事务总量、创建时间等信息,可根据日期进行搜索,查看某一个区块的具体信息,如图9所示。
图9 存储链上用户信息的数据区块浏览界面
3.3 用户信息可信共享测试
基于区块链平台对用户信息可信共享是通过在区块链平台上存储用户信息实现的,各数据中心将用户信息子集上链到区块链平台中,组成公用用户集。公用用户集中的用户通过区块链平台的验证,可以直接访问系统中各数据中心的网站,实现用户信息的可信共享。本文将以3 个卫星数据中心网站为例。这3 个网站分别定义为网站A、网站B、网站C,展示用户信息可信共享的结果。
表2 是网站A注册的用户信息。网站A将表中的4 个用户信息上链到区块链平台,同其他卫星数据中心上链的用户信息子集组成公用用户集。
以账号为Zeng123 的用户为例进行访问验证。以下是访问验证的结果。
(1)当网站A未将表2 中的用户信息上链到区块链平台中时,Zeng123 用户访问网站A、网站B、网站C的结果如图10所示。从图10 中可以得知该用户只能访问网站A,不能直接访问网站B、网站C。
表2 网站A上链的用户信息
图10 上链前Zeng123 用户访问网站A、网站B、网站C
(2)当网站A将表2 中的用户信息上链到区块链平台后,Zeng123 用户访问网站A、网站B、网站C的结果如图11所示。从图11 中可以得知,该用户可以同时访问网站A、网站B、网站C,无需再通过网站B、网站C的单独验证,从而实现了链上用户信息的安全共享。
图11 上链后Zeng123 用户访问网站A、网站B、网站C
4 方案分析
本文所提出的基于区块链的灾害应急遥感用户信息共享方法可以从防篡改、分布式存储以及机构共享用户信息,实现单点登录等3 个方面保障用户身份信息的可靠性和安全性。
4.1 防篡改
区块链系统中数据区块是基于前一区块的Hash值串联起来的,系统中的各联盟节点均存储一份链上全部数据,且单个节点无法修改系统中的数据,除非能控制整个系统中超过一半的节点,这在多个互不信任的机构参与的区块链系统中发生的概率几乎为零。本文提出的方案上链的用户信息存储在区块体中,且将Mekle根锚定到区块链中。由于Mekle根是通过哈希算法计算的,且哈希算法具有单向性和敏感性的特征,任意一个微小的修改都能够使Merkle根发生改变,这就保证了灾害应急遥感用户信息可被追溯且不可篡改,从而保障了用户信息的真实性和安全性。
4.2 分布式存储
参与用户信息共享的各数据中心将网站内的用户信息子集上链到区块链平台中组成公用用户集存储在数据区块中,系统中各数据中心均保存一份完整的链上数据。基于区块链的灾害应急遥感用户信息共享方法解决了传统的数据中心化存储的模式,平衡了用户信息共享的效率问题,同时也考虑了各节点网站用户身份安全性问题。
4.3 机构共享用户信息,实现单点登录
区块链技术防篡改的特性保证上链后用户信息不被篡改,保障了各数据中心共享的用户信息的真实性。表1 的“上链用户信息表b”中包含用户来源的字段,各数据中心在将用户信息上链时应确保用户身份真实和有效,各数据中心为各自网站上链的用户信息背书,确保了用户信息的可靠性,有效地促进了灾害应急遥感用户信息可信共享。
5 结语
本文针对灾害应急遥感数据共享服务的应用场景,提出了一种基于区块链的灾害应急遥感用户信息共享方法。各数据中心将用户信息子集上链存储至区块链平台中,依靠区块链技术去中心化、分布式记账、上链数据不可篡改等特性,保证了用户信息的安全可靠。上链的用户信息作为整个系统内的授权用户,通过区块链平台的验证可以直接访问系统中各联盟节点网站的权限。该方法的实现在灾害应急遥感数据共享服务中简化了用户身份认证的过程,提高了灾害应急遥感用户获取数据的时效性。