袁小溪,孫 舟,陳 平,及洪泉,劉祥璐,潘鳴宇,陳思源
(1.國網(wǎng)北京市電力公司電力科學研究院,北京 100075;2.重慶倍來電新能源有限公司,重慶 401122;3.北京理工大學 計算機學院,北京100081)
全球導航衛(wèi)星系統(tǒng)(GNSS)是一種基于衛(wèi)星的導航技術,它可以在任何時間、任何地點和任何天氣條件下給出三維位置信息。中國北斗衛(wèi)星導航系統(tǒng)(BDS)是自主創(chuàng)新的衛(wèi)星導航系統(tǒng)。它是繼美國全球定位系統(tǒng)(GPS)和俄羅斯格洛納斯衛(wèi)星導航系統(tǒng)(GLONASS)之后的第三個成熟的衛(wèi)星導航系統(tǒng)。隨著北斗系統(tǒng)Ⅲ的運行,北斗衛(wèi)星導航系統(tǒng)覆蓋了世界大部分地區(qū),其綜合定位服務能力部分優(yōu)于GPS系統(tǒng),安全性比GPS系統(tǒng)高,還具有短消息數(shù)據(jù)通信等差別功能。
隨著定位系統(tǒng)和相關技術[1]的發(fā)展,定位精度得到了顯著提高。目前存在多種類型的定位形式,如靜態(tài)測量、實時動態(tài)定位(RTK)和智能手機的位置跟蹤。這些系統(tǒng)用于各種需要精確定位的領域,比如涉及運動變化的無人機、自動駕駛和部分物聯(lián)網(wǎng)場景[2-8],都會實時接收校正信息來估計精確的坐標。提供校正的方式分為狀態(tài)空間表示(State-Space Representation,SSR)和觀測空間表示(Observation Space Representation,OSR)兩種,典型的方法有單一RTK和網(wǎng)絡RTK[9-11]。此外,還有其他技術,如基于衛(wèi)星的增強系統(tǒng)(Satellite-Based Augmentation System,SBAS)、廣域RTK(Wide Area RTK,WARTK)和精確點定位RTK(Precise Point Positioning RTK,PPP-RTK)[12-14]。隨著技術和應用的不斷完善,利用北斗衛(wèi)星導航系統(tǒng)為軍事、資源環(huán)境、防災減災、測繪、電力、電信、城市管理、工程建設、機械控制、交通運輸、農業(yè)、林業(yè)、漁牧業(yè)、考古業(yè)、物聯(lián)網(wǎng)等行業(yè)提供服務,將會成為社會生產(chǎn)生活發(fā)展的必然趨勢。
不同國家使用GNSS有著不同的需求和規(guī)范,在我國,一般導航用戶使用北斗衛(wèi)星精密定軌徑向精度需優(yōu)于10 cm,實時動態(tài)偽距差分定位精度需2~4 m,測繪、國土資源調查等專業(yè)定位用戶可采用精密單點定位、基線相對定位達到厘米和毫米級[15]。在英國和美國,使用網(wǎng)絡RTK進行大地測量需要在3~10 cm的精度范圍。根據(jù)測量等級的不同,美國有的情況甚至要求精度高達1 cm,數(shù)據(jù)延遲小于2 s。在GNSS測量中使用的網(wǎng)絡RTK技術大多是中心式系統(tǒng),其中連續(xù)運行的參考站(Continuously Operating Reference Stations,CORS)的服務器數(shù)據(jù)是中心化存儲的。基于這種結構[16]使用“漫游”模式進行信號發(fā)射和接收。在這個過程中,用戶可以發(fā)送偽造的數(shù)據(jù),美國海洋電子協(xié)會(National Marine Electronics Association,NMEA)和服務提供商可以根據(jù)這些數(shù)據(jù)生成RTCM報文,因此,最壞的情況是所有這些數(shù)據(jù)都可能是虛假的[17],美國已經(jīng)發(fā)生了多起操縱和偽造GPS數(shù)據(jù)的案例。隨著導航軟件、輔助駕駛等技術的普及,定位數(shù)據(jù)不僅可以用來識別物體的位置,還可以通過分析交通狀況,在車輛導航服務中按擁堵程度分配路線,定位數(shù)據(jù)不僅越來越關乎用戶的駕駛體驗,更直接關系到用戶的生命安全,其可靠性也因此越來越受到廣泛關注。然而,定位數(shù)據(jù)在接收機和服務器端存在安全性方面的缺陷。Samios等人[18]為地震儀、加速度計和GPS接收機創(chuàng)建了一個攻擊路徑,識別出了系統(tǒng)安全漏洞。圖1展示了RTK基本工作流程,流動站可以篡改NMEA數(shù)據(jù)發(fā)送給服務器得到相應的RTCM數(shù)據(jù),由于缺乏有效的數(shù)據(jù)溯源機制,定位數(shù)據(jù)使用方一般無法辨別流動站交付的數(shù)據(jù)是否經(jīng)過篡改(例如,案件嫌疑人以案發(fā)當天的車輛GPS定位數(shù)據(jù)作為自己不在案發(fā)現(xiàn)場的證據(jù),由于數(shù)據(jù)可以被部分隱藏或者通過后期偽造,使得證據(jù)真實性受到質疑)。鑒于此,非常有必要提升定位數(shù)據(jù)的完整性和可靠性。
圖1 RTK基本工作流程
傳統(tǒng)系統(tǒng)大多采用中心化的數(shù)據(jù)存儲,數(shù)據(jù)容易丟失和被篡改,區(qū)塊鏈通過多個分布式數(shù)據(jù)庫達成共識,實現(xiàn)數(shù)據(jù)的完整性和一致性。區(qū)塊鏈天然具有去中心化、防篡改、可溯源等性質,在提升數(shù)據(jù)可靠性方面有著得天獨厚的優(yōu)勢[19]。此外,區(qū)塊鏈向用戶提供賬本信息,實現(xiàn)了公開可驗證性,提升了數(shù)據(jù)的透明度和可信度。利用區(qū)塊鏈防止數(shù)據(jù)偽造的研究越來越多:Kowaiski等人[20]通過區(qū)塊鏈提升了貿易融資中業(yè)務伙伴之間的信任關系和安全性;Majeed等人[21]將區(qū)塊鏈技術應用于智慧城市并提高了智慧城市的可靠性和安全性;Li等人[22]提出了一個基于區(qū)塊鏈的定位數(shù)據(jù)使用框架,并通過數(shù)據(jù)過濾提高了定位精度。蓋等人[23-24]利用區(qū)塊鏈技術有效提升了云計算、邊緣計算場景下數(shù)據(jù)的隱私性和安全性。
本研究是為了解決現(xiàn)有衛(wèi)星定位數(shù)據(jù)可能造假的問題。假設基準站、流動站與服務器通信中沒有數(shù)據(jù)篡改,利用區(qū)塊鏈存儲北斗NMEA和RTCM數(shù)據(jù)保證數(shù)據(jù)完整性和可靠性,通過流動站統(tǒng)計報文流量,實現(xiàn)按流量計費。在NMEA傳輸過程中,基準站、流動站接收到的NMEA被發(fā)送到NTRIP(Networked Transport of RTCM via Internet Protcol)服務器,隨后NTRIP服務器產(chǎn)生RTCM數(shù)據(jù)并將NMEA和RTCM數(shù)據(jù)記錄在區(qū)塊鏈網(wǎng)絡上。本研究的貢獻如下:(1)在北斗RTK定位過程中,提出了一種基于區(qū)塊鏈的RTK服務系統(tǒng)來檢查數(shù)據(jù)的合規(guī)性,利用區(qū)塊鏈Keccak-256函數(shù)、Merkle樹等密碼學工具保證北斗數(shù)據(jù)的完整性。(2)區(qū)塊鏈上的散列值設計使得定位數(shù)據(jù)源和定位過程能夠得到溯源和驗證,提高了北斗定位數(shù)據(jù)的可靠性。(3)優(yōu)化了計費方案,按實際使用報文流量采用流量計費,使付費模式更加合理精細。
北斗衛(wèi)星導航系統(tǒng)是中國自主建設和運行的全球衛(wèi)星導航系統(tǒng),與世界其他衛(wèi)星導航系統(tǒng)兼容。北斗衛(wèi)星導航系統(tǒng)(BDS)的發(fā)展戰(zhàn)略分為三個步驟。自20世紀90年代發(fā)展起步以來,北斗、北斗Ⅱ、北斗Ⅲ的建設已按照“三步”戰(zhàn)略實施。隨著北斗Ⅲ基礎系統(tǒng)建設的完成,2018年12月27日提供了全球服務。
與北斗Ⅱ相比,北斗Ⅲ網(wǎng)絡覆蓋了全球。該系統(tǒng)在負載、衛(wèi)星間鏈路和激光通信等方面都得到了改進。此外,還增加了衛(wèi)星搜救功能和全球位置報告功能。與其他衛(wèi)星導航系統(tǒng)相比,增加了性能和兼容性更好的B1C和B2a信號,并根據(jù)國際標準提供了基于衛(wèi)星的增強服務。同時,配置了性能更高的銫原子鐘和氫原子鐘,銫原子鐘的穩(wěn)定性在E-14級,氫原子的穩(wěn)定性在E-15級。北斗Ⅲ的詳細信息如表1所示。新技術極大地提高了北斗Ⅲ的性能[25]。通過全球測試,對北斗基礎服務的性能進行了評估,如表2所示。北斗Ⅲ在北斗Ⅱ的基礎上,定位精度提高了1~2倍,衛(wèi)星設計壽命提高到10~12年。保留了短信的通信功能。
表1 北斗系統(tǒng)Ⅲ業(yè)務技術指標說明
表2 北斗系統(tǒng)Ⅲ服務表現(xiàn)
導航定位是衛(wèi)星導航系統(tǒng)提供的基本服務。北斗系統(tǒng)的導航服務可分為基本導航服務、差分導航服務和精確定位服務[26]。
基本導航業(yè)務分為兩種模式:衛(wèi)星無線電測定業(yè)務(Radiodetermination Satellite Service,RDSS)和衛(wèi)星無線電導航業(yè)務(Radio Navigation Satellite Service,RNSS)。RDSS的定位精度一般在100 m左右,在有標定站的區(qū)域將提高到20 m。
差分導航服務是一種基于基本導航服務的精度增強服務,主要是基于地面差分站的修正誤差來提高精度。差分服務可分為局域差分和廣域差分。北斗全球系統(tǒng)為授權的RNSS用戶提供基于衛(wèi)星的增強導航服務,定位精度可達米級。
精密定位服務是測量用戶的應用。精確定位可分為精確單點定位、相對定位和差分定位。北斗精度單點定位精度:水平2~4 cm,海拔5~6 cm。北斗和GPS的結合將提高收斂時間。
區(qū)塊鏈技術基于P2P網(wǎng)絡,并使用分布式賬本[27]構建系統(tǒng)。該技術解決了現(xiàn)有中心化系統(tǒng)[28-30]存在的許多問題。由于必須超過51%的節(jié)點被黑客攻擊才能進行數(shù)據(jù)操作,因此保障了數(shù)據(jù)完整性和可靠性,實際上自2008年誕生以來比特幣網(wǎng)絡還從未被篡改。此外,即使某些節(jié)點由于DDoS攻擊而失效,其他節(jié)點也會繼續(xù)提供服務,區(qū)塊鏈系統(tǒng)不會癱瘓。區(qū)塊鏈中數(shù)據(jù)對所有人開放,數(shù)據(jù)源的透明度解決了信息不對稱的問題。
區(qū)塊鏈的特性保證了程序生成數(shù)據(jù)的完整性,基于此可以解決現(xiàn)有計算機系統(tǒng)中存在的各種數(shù)據(jù)可靠性問題。以太坊,也被稱為第二代區(qū)塊鏈,在區(qū)塊鏈網(wǎng)絡[31]上運行一種名為Solidity的圖靈完整性語言編寫代碼。圖靈完備性語言很重要,因為理論上可以通過圖靈完備性語言解決任何可計算的問題。以太坊利用它來創(chuàng)建智能合約,以解決此前計算機系統(tǒng)無法解決的合約問題。
區(qū)塊鏈存在各種框架,根據(jù)對節(jié)點參與資格的限制,區(qū)塊鏈分為三種類型:公有鏈、私有鏈和聯(lián)盟鏈。節(jié)點之間根據(jù)區(qū)塊鏈類型和功能的不同采用不同的共識算法。比特幣和以太坊屬于公有鏈,對于節(jié)點的數(shù)量和節(jié)點的參與權限并沒有限制,因此附加了加密貨幣的概念,對維護系統(tǒng)的節(jié)點進行補償。在私有鏈和聯(lián)盟塊鏈中,只允許授權的節(jié)點和用戶參與。與公有鏈委托匿名用戶進行服務維護不同,私有鏈和聯(lián)盟塊鏈不需要對節(jié)點維護進行代幣補償,它使用成員節(jié)點現(xiàn)有的資源。
區(qū)塊鏈能夠確保數(shù)據(jù)完整性,防止數(shù)據(jù)被篡改。由于區(qū)塊鏈提高了數(shù)據(jù)的可靠性,也可以通過區(qū)塊鏈來提高北斗數(shù)據(jù)的準確性。區(qū)塊鏈具有遭受51%攻擊的弱點,因為它信任所有節(jié)點,而不評估節(jié)點聲譽[32]。然而,51%攻擊需要巨大的成本,即使成功也不會有數(shù)據(jù)的更改和損失,攻擊是為了經(jīng)濟利益,一般以盜竊公有鏈中的加密貨幣為主要目標。因此,采用聯(lián)盟鏈或私有鏈存儲北斗數(shù)據(jù)可以有效提高北斗數(shù)據(jù)的可靠性,避免被惡意篡改。
本文設計了基于區(qū)塊鏈的北斗RTK服務系統(tǒng)架構,系統(tǒng)中兩臺接收機(一臺基準站,一臺流動站)都在接收北斗衛(wèi)星NMEA(National Marine Electronics Association)數(shù)據(jù),是美國國家海洋電子協(xié)會為海用電子設備制定的標準格式,目前業(yè)已成了GPS/北斗導航設備統(tǒng)一的RTCM標準協(xié)議。同時,基準站通過將所接收的載波相位信號(或載波相位差分校正信號)進行處理,轉換格式后通過網(wǎng)絡傳輸給NTRIP服務器,服務器把GNSS差分數(shù)據(jù)提交給NTRIP分發(fā)服務器;分發(fā)服務器接收、發(fā)送GNSS差分數(shù)據(jù);流動站注冊NTRIP客戶端并登錄后,NTRIP分發(fā)服務器把GNSS差分數(shù)據(jù)發(fā)送給它。流動站不僅要指定掛載點,還要發(fā)送自身的坐標給NTRIP分發(fā)服務器,分發(fā)服務器根據(jù)這個坐標選擇或產(chǎn)生差分數(shù)據(jù),將NMEA和RTCM數(shù)據(jù)上傳至區(qū)塊鏈并發(fā)送給流動站。流動站基于這些數(shù)據(jù)開展位置校正,通過流動站上的固化軟件進行一定時間的反復運算,就可以實現(xiàn)差分計算[33],從而精確地定出基準站與流動站的空間相對位置關系,并利用區(qū)塊鏈提高北斗數(shù)據(jù)的完整性和可靠性。系統(tǒng)架構如圖2所示。
圖2 系統(tǒng)架構圖
一是完整性。全過程NMEA和RTCM數(shù)據(jù)被存儲在區(qū)塊鏈中,由于區(qū)塊鏈由分布式節(jié)點維護,個別節(jié)點宕機并不會使賬本中數(shù)據(jù)丟失;另一方面,賬本公開可見,流動站無法對數(shù)據(jù)接收方部分隱藏數(shù)據(jù),從而保證了數(shù)據(jù)完整性。
二是可靠性。設第n個區(qū)塊blockn存儲數(shù)據(jù)為datan,區(qū)塊體哈希值Hashn=Hash(datan)。若流動站要對該區(qū)塊數(shù)據(jù)進行篡改,則需找到使得Hashn=由哈希函數(shù)的抗碰撞性保證無法找到從而保證了數(shù)據(jù)的可靠性。
基準站可以采用樹莓派/Windows計算機運行STRSVR軟件,利用Ucenter設置基準站,讓UART2輸出RTCM數(shù)據(jù),并將數(shù)據(jù)傳輸?shù)絉TK2gO網(wǎng)站。流動站使用RTCM數(shù)據(jù)流,流動站可以采用RTK客戶端電路板并設置RTK播發(fā)數(shù)據(jù),實現(xiàn)數(shù)據(jù)流采集。配置如圖3~圖5所示。
圖3 基準站配置
圖4 流動站配置
圖5 NTRIP分發(fā)服務器轉發(fā)
在北斗測量過程中,當接收站與NTRIP分發(fā)服務器建立連接之后,NTRIP分發(fā)服務器需要將NMEA和RTCM數(shù)據(jù)記錄在區(qū)塊鏈網(wǎng)絡中,以確保數(shù)據(jù)完整性,通過HTTP提供程序建立了到網(wǎng)絡的連接,并創(chuàng)建了一個Web3實例,然后使用從中提取的ABI和字節(jié)碼以及編譯的Solidity代碼來部署合同,詳見算法1。同時,可根據(jù)流動站數(shù)據(jù)流量統(tǒng)計收取費用,詳見算法2~3。
本文利用以太坊開源客戶端geth(go-ethreum)搭建了私有鏈測試環(huán)境,假設根據(jù)流動站流量計費,用戶應該向RTK服務提供商支付5eth,創(chuàng)建客戶賬戶的以太坊賬戶“Beidou_User”和RTK服務提供商賬戶“RTK_Provider”,用戶解鎖賬戶并向RTK服務提供商發(fā)起轉賬交易,經(jīng)過區(qū)塊鏈打包上鏈后最終完成轉賬,如圖6所示。
圖6 私有鏈測試環(huán)境
本文提出了一種基于區(qū)塊鏈的高可靠北斗RTK服務系統(tǒng),利用區(qū)塊鏈使所有用戶都可以使用合約地址檢查特定地點的RTK數(shù)據(jù)以及操作流程,確保了數(shù)據(jù)的完整性,提升了服務的可靠性;優(yōu)化了計費方案,按實際使用報文流量采用流量計費,使付費模式更加合理精細,并在私有鏈中進行了實現(xiàn)。地籍調查等容易被操縱和造成個人經(jīng)濟損失,本研究如果應用于此類事件中,將有助于政府記錄并給出令人信服的調查全流程信息,可以有效防止法律糾紛,提高行政效率。