APP下载

基于区块链的高可靠北斗RTK服务系统研究*

2022-11-15袁小溪及洪泉刘祥璐潘鸣宇陈思源

网络安全与数据管理 2022年10期
关键词:流动站差分北斗

袁小溪,孙 舟,陈 平,及洪泉,刘祥璐,潘鸣宇,陈思源

(1.国网北京市电力公司电力科学研究院,北京 100075;2.重庆倍来电新能源有限公司,重庆 401122;3.北京理工大学 计算机学院,北京100081)

0 引言

全球导航卫星系统(GNSS)是一种基于卫星的导航技术,它可以在任何时间、任何地点和任何天气条件下给出三维位置信息。中国北斗卫星导航系统(BDS)是自主创新的卫星导航系统。它是继美国全球定位系统(GPS)和俄罗斯格洛纳斯卫星导航系统(GLONASS)之后的第三个成熟的卫星导航系统。随着北斗系统Ⅲ的运行,北斗卫星导航系统覆盖了世界大部分地区,其综合定位服务能力部分优于GPS系统,安全性比GPS系统高,还具有短消息数据通信等差别功能。

随着定位系统和相关技术[1]的发展,定位精度得到了显著提高。目前存在多种类型的定位形式,如静态测量、实时动态定位(RTK)和智能手机的位置跟踪。这些系统用于各种需要精确定位的领域,比如涉及运动变化的无人机、自动驾驶和部分物联网场景[2-8],都会实时接收校正信息来估计精确的坐标。提供校正的方式分为状态空间表示(State-Space Representation,SSR)和观测空间表示(Observation Space Representation,OSR)两种,典型的方法有单一RTK和网络RTK[9-11]。此外,还有其他技术,如基于卫星的增强系统(Satellite-Based Augmentation System,SBAS)、广域RTK(Wide Area RTK,WARTK)和精确点定位RTK(Precise Point Positioning RTK,PPP-RTK)[12-14]。随着技术和应用的不断完善,利用北斗卫星导航系统为军事、资源环境、防灾减灾、测绘、电力、电信、城市管理、工程建设、机械控制、交通运输、农业、林业、渔牧业、考古业、物联网等行业提供服务,将会成为社会生产生活发展的必然趋势。

不同国家使用GNSS有着不同的需求和规范,在我国,一般导航用户使用北斗卫星精密定轨径向精度需优于10 cm,实时动态伪距差分定位精度需2~4 m,测绘、国土资源调查等专业定位用户可采用精密单点定位、基线相对定位达到厘米和毫米级[15]。在英国和美国,使用网络RTK进行大地测量需要在3~10 cm的精度范围。根据测量等级的不同,美国有的情况甚至要求精度高达1 cm,数据延迟小于2 s。在GNSS测量中使用的网络RTK技术大多是中心式系统,其中连续运行的参考站(Continuously Operating Reference Stations,CORS)的服务器数据是中心化存储的。基于这种结构[16]使用“漫游”模式进行信号发射和接收。在这个过程中,用户可以发送伪造的数据,美国海洋电子协会(National Marine Electronics Association,NMEA)和服务提供商可以根据这些数据生成RTCM报文,因此,最坏的情况是所有这些数据都可能是虚假的[17],美国已经发生了多起操纵和伪造GPS数据的案例。随着导航软件、辅助驾驶等技术的普及,定位数据不仅可以用来识别物体的位置,还可以通过分析交通状况,在车辆导航服务中按拥堵程度分配路线,定位数据不仅越来越关乎用户的驾驶体验,更直接关系到用户的生命安全,其可靠性也因此越来越受到广泛关注。然而,定位数据在接收机和服务器端存在安全性方面的缺陷。Samios等人[18]为地震仪、加速度计和GPS接收机创建了一个攻击路径,识别出了系统安全漏洞。图1展示了RTK基本工作流程,流动站可以篡改NMEA数据发送给服务器得到相应的RTCM数据,由于缺乏有效的数据溯源机制,定位数据使用方一般无法辨别流动站交付的数据是否经过篡改(例如,案件嫌疑人以案发当天的车辆GPS定位数据作为自己不在案发现场的证据,由于数据可以被部分隐藏或者通过后期伪造,使得证据真实性受到质疑)。鉴于此,非常有必要提升定位数据的完整性和可靠性。

图1 RTK基本工作流程

传统系统大多采用中心化的数据存储,数据容易丢失和被篡改,区块链通过多个分布式数据库达成共识,实现数据的完整性和一致性。区块链天然具有去中心化、防篡改、可溯源等性质,在提升数据可靠性方面有着得天独厚的优势[19]。此外,区块链向用户提供账本信息,实现了公开可验证性,提升了数据的透明度和可信度。利用区块链防止数据伪造的研究越来越多:Kowaiski等人[20]通过区块链提升了贸易融资中业务伙伴之间的信任关系和安全性;Majeed等人[21]将区块链技术应用于智慧城市并提高了智慧城市的可靠性和安全性;Li等人[22]提出了一个基于区块链的定位数据使用框架,并通过数据过滤提高了定位精度。盖等人[23-24]利用区块链技术有效提升了云计算、边缘计算场景下数据的隐私性和安全性。

本研究是为了解决现有卫星定位数据可能造假的问题。假设基准站、流动站与服务器通信中没有数据篡改,利用区块链存储北斗NMEA和RTCM数据保证数据完整性和可靠性,通过流动站统计报文流量,实现按流量计费。在NMEA传输过程中,基准站、流动站接收到的NMEA被发送到NTRIP(Networked Transport of RTCM via Internet Protcol)服务器,随后NTRIP服务器产生RTCM数据并将NMEA和RTCM数据记录在区块链网络上。本研究的贡献如下:(1)在北斗RTK定位过程中,提出了一种基于区块链的RTK服务系统来检查数据的合规性,利用区块链Keccak-256函数、Merkle树等密码学工具保证北斗数据的完整性。(2)区块链上的散列值设计使得定位数据源和定位过程能够得到溯源和验证,提高了北斗定位数据的可靠性。(3)优化了计费方案,按实际使用报文流量采用流量计费,使付费模式更加合理精细。

1 相关概念

1.1 北斗卫星导航系统

北斗卫星导航系统是中国自主建设和运行的全球卫星导航系统,与世界其他卫星导航系统兼容。北斗卫星导航系统(BDS)的发展战略分为三个步骤。自20世纪90年代发展起步以来,北斗、北斗Ⅱ、北斗Ⅲ的建设已按照“三步”战略实施。随着北斗Ⅲ基础系统建设的完成,2018年12月27日提供了全球服务。

与北斗Ⅱ相比,北斗Ⅲ网络覆盖了全球。该系统在负载、卫星间链路和激光通信等方面都得到了改进。此外,还增加了卫星搜救功能和全球位置报告功能。与其他卫星导航系统相比,增加了性能和兼容性更好的B1C和B2a信号,并根据国际标准提供了基于卫星的增强服务。同时,配置了性能更高的铯原子钟和氢原子钟,铯原子钟的稳定性在E-14级,氢原子的稳定性在E-15级。北斗Ⅲ的详细信息如表1所示。新技术极大地提高了北斗Ⅲ的性能[25]。通过全球测试,对北斗基础服务的性能进行了评估,如表2所示。北斗Ⅲ在北斗Ⅱ的基础上,定位精度提高了1~2倍,卫星设计寿命提高到10~12年。保留了短信的通信功能。

表1 北斗系统Ⅲ业务技术指标说明

表2 北斗系统Ⅲ服务表现

导航定位是卫星导航系统提供的基本服务。北斗系统的导航服务可分为基本导航服务、差分导航服务和精确定位服务[26]。

基本导航业务分为两种模式:卫星无线电测定业务(Radiodetermination Satellite Service,RDSS)和卫星无线电导航业务(Radio Navigation Satellite Service,RNSS)。RDSS的定位精度一般在100 m左右,在有标定站的区域将提高到20 m。

差分导航服务是一种基于基本导航服务的精度增强服务,主要是基于地面差分站的修正误差来提高精度。差分服务可分为局域差分和广域差分。北斗全球系统为授权的RNSS用户提供基于卫星的增强导航服务,定位精度可达米级。

精密定位服务是测量用户的应用。精确定位可分为精确单点定位、相对定位和差分定位。北斗精度单点定位精度:水平2~4 cm,海拔5~6 cm。北斗和GPS的结合将提高收敛时间。

1.2 区块链

区块链技术基于P2P网络,并使用分布式账本[27]构建系统。该技术解决了现有中心化系统[28-30]存在的许多问题。由于必须超过51%的节点被黑客攻击才能进行数据操作,因此保障了数据完整性和可靠性,实际上自2008年诞生以来比特币网络还从未被篡改。此外,即使某些节点由于DDoS攻击而失效,其他节点也会继续提供服务,区块链系统不会瘫痪。区块链中数据对所有人开放,数据源的透明度解决了信息不对称的问题。

区块链的特性保证了程序生成数据的完整性,基于此可以解决现有计算机系统中存在的各种数据可靠性问题。以太坊,也被称为第二代区块链,在区块链网络[31]上运行一种名为Solidity的图灵完整性语言编写代码。图灵完备性语言很重要,因为理论上可以通过图灵完备性语言解决任何可计算的问题。以太坊利用它来创建智能合约,以解决此前计算机系统无法解决的合约问题。

区块链存在各种框架,根据对节点参与资格的限制,区块链分为三种类型:公有链、私有链和联盟链。节点之间根据区块链类型和功能的不同采用不同的共识算法。比特币和以太坊属于公有链,对于节点的数量和节点的参与权限并没有限制,因此附加了加密货币的概念,对维护系统的节点进行补偿。在私有链和联盟块链中,只允许授权的节点和用户参与。与公有链委托匿名用户进行服务维护不同,私有链和联盟块链不需要对节点维护进行代币补偿,它使用成员节点现有的资源。

区块链能够确保数据完整性,防止数据被篡改。由于区块链提高了数据的可靠性,也可以通过区块链来提高北斗数据的准确性。区块链具有遭受51%攻击的弱点,因为它信任所有节点,而不评估节点声誉[32]。然而,51%攻击需要巨大的成本,即使成功也不会有数据的更改和损失,攻击是为了经济利益,一般以盗窃公有链中的加密货币为主要目标。因此,采用联盟链或私有链存储北斗数据可以有效提高北斗数据的可靠性,避免被恶意篡改。

2 基于区块链的北斗RTK服务系统架构

本文设计了基于区块链的北斗RTK服务系统架构,系统中两台接收机(一台基准站,一台流动站)都在接收北斗卫星NMEA(National Marine Electronics Association)数据,是美国国家海洋电子协会为海用电子设备制定的标准格式,目前业已成了GPS/北斗导航设备统一的RTCM标准协议。同时,基准站通过将所接收的载波相位信号(或载波相位差分校正信号)进行处理,转换格式后通过网络传输给NTRIP服务器,服务器把GNSS差分数据提交给NTRIP分发服务器;分发服务器接收、发送GNSS差分数据;流动站注册NTRIP客户端并登录后,NTRIP分发服务器把GNSS差分数据发送给它。流动站不仅要指定挂载点,还要发送自身的坐标给NTRIP分发服务器,分发服务器根据这个坐标选择或产生差分数据,将NMEA和RTCM数据上传至区块链并发送给流动站。流动站基于这些数据开展位置校正,通过流动站上的固化软件进行一定时间的反复运算,就可以实现差分计算[33],从而精确地定出基准站与流动站的空间相对位置关系,并利用区块链提高北斗数据的完整性和可靠性。系统架构如图2所示。

图2 系统架构图

一是完整性。全过程NMEA和RTCM数据被存储在区块链中,由于区块链由分布式节点维护,个别节点宕机并不会使账本中数据丢失;另一方面,账本公开可见,流动站无法对数据接收方部分隐藏数据,从而保证了数据完整性。

二是可靠性。设第n个区块blockn存储数据为datan,区块体哈希值Hashn=Hash(datan)。若流动站要对该区块数据进行篡改,则需找到使得Hashn=由哈希函数的抗碰撞性保证无法找到从而保证了数据的可靠性。

3 具体流程

3.1 站点搭建

基准站可以采用树莓派/Windows计算机运行STRSVR软件,利用Ucenter设置基准站,让UART2输出RTCM数据,并将数据传输到RTK2gO网站。流动站使用RTCM数据流,流动站可以采用RTK客户端电路板并设置RTK播发数据,实现数据流采集。配置如图3~图5所示。

图3 基准站配置

图4 流动站配置

图5 NTRIP分发服务器转发

3.2 接入区块链

在北斗测量过程中,当接收站与NTRIP分发服务器建立连接之后,NTRIP分发服务器需要将NMEA和RTCM数据记录在区块链网络中,以确保数据完整性,通过HTTP提供程序建立了到网络的连接,并创建了一个Web3实例,然后使用从中提取的ABI和字节码以及编译的Solidity代码来部署合同,详见算法1。同时,可根据流动站数据流量统计收取费用,详见算法2~3。

本文利用以太坊开源客户端geth(go-ethreum)搭建了私有链测试环境,假设根据流动站流量计费,用户应该向RTK服务提供商支付5eth,创建客户账户的以太坊账户“Beidou_User”和RTK服务提供商账户“RTK_Provider”,用户解锁账户并向RTK服务提供商发起转账交易,经过区块链打包上链后最终完成转账,如图6所示。

图6 私有链测试环境

4 结论

本文提出了一种基于区块链的高可靠北斗RTK服务系统,利用区块链使所有用户都可以使用合约地址检查特定地点的RTK数据以及操作流程,确保了数据的完整性,提升了服务的可靠性;优化了计费方案,按实际使用报文流量采用流量计费,使付费模式更加合理精细,并在私有链中进行了实现。地籍调查等容易被操纵和造成个人经济损失,本研究如果应用于此类事件中,将有助于政府记录并给出令人信服的调查全流程信息,可以有效防止法律纠纷,提高行政效率。

猜你喜欢

流动站差分北斗
RLW-KdV方程的紧致有限差分格式
符合差分隐私的流数据统计直方图发布
北斗时钟盘
“北斗”离我们有多远
浅析高校党员工作流动站的作用及意义
建立教师企业实践流动站制度架构与可行性分析
关于独立院校党建流动站建设发展的有关问题的思考
基于差分隐私的数据匿名化隐私保护方法
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗