基於區塊鏈的移動終端網絡定位方法與流程
2023-06-14 03:25:07 3

本發明涉及信息安全中心的密碼學技術領域,特別涉及一種基於區塊鏈的移動終端網絡定位方法。
背景技術:
智能移動網際網路已經逐漸滲入到人們生活的各個方面,從近幾年移動網際網路智能設備的發展趨勢看,以智慧型手機為代表的智能移動終端數量一直處於高速增長的狀態。隨著智能設備的普及,智能設備具有定位功能得到了十分廣泛的應用,保障位置信息的安全可信是保證用戶良好體驗的重要前提。但是由於城市室內環境的複雜性或者野外環境不確定性,gps信號處於弱信號或者無信號狀態,這對安全可信定位提出了更高的要求。
通常節點從gps獲得其位置信息,然而如果沒有gps信號,則很難知道所有節點的位置,並且對於一個節點來說,難以驗證由其他節點廣播的位置的真實性。考慮一組具有手持行動裝置的人在孤立的野外執行任務的情況,其中沒有來自外部世界的網絡和gps信號。這些節點將自組織一個智能移動終端網絡,通過它們可以利用多跳來相互發送數據,以實現安全的通信和定位。
2008年,由中本聰(satoshinakamoto)首次提出並規範證明了比特幣的概念,隨著這種不通過金融機構的點對點交易的快速發展,比特幣概念也從最早的數字貨幣衍生成一種去中心化的數字貨幣支付系統。比特幣網絡系統以使用計算機解決複雜性數學問題的形式(可以將之稱為「挖礦」)來產生新的比特幣,通過構建特定的算法使得以遞減的速度產生新的比特幣保持整個系統中的平衡,即不會產生嚴重的「通貨膨脹」。而區塊鏈(blockchain)技術,作為比特幣交易系統中最核心的一種信息技術,因其交易系統的開放性、不依賴任何信任機構的去中心化性、時間戳和數字籤名所保證的不可篡改性和合法交易存於區塊鏈的永久性等特點,解決了雙重消費問題和拜佔庭將軍問題,並實現了一種無信任的共識網絡系統,越來越多的科研團隊和商業隊伍認識到區塊鏈技術的顛覆性,加入到了信息基礎技術的巨大創新中。
區塊鏈是比特幣協議的一部分,是不需要維護的分布式數據,它維護著一個持續增長的不可篡改的數據記錄列表,可以使用加密,時間戳和分布式共識技術來實現分散式架構。
技術實現要素:
本發明旨在至少在一定程度上解決上述相關技術中的技術問題之一。
為此,本發明的一個目的在於提出一種基於區塊鏈的移動終端網絡定位方法。該基於區塊鏈的移動終端網絡定位方法可以將區塊鏈中的區塊視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,並在無gps信號或弱gps信號情況下進行準確定位自己在通信網絡中的位置信息。
為了實現上述目的,本發明的公開了一種基於區塊鏈的移動終端網絡定位方法,所述移動終端網絡包括多個節點,節點的節點信息以區塊的形式進行存儲,多個區塊組成一個區塊鏈,區塊鏈中的區塊數據為節點的節點信息,所述節點信息至少包括與相鄰節點的相對位置信息,包括:搜索區塊鏈中的相鄰節點的相對位置信息;並根據所述區塊鏈中的相鄰節點的相對位置信息,獲取節點之間的相對位置和在區塊鏈中的相對位置。
根據本發明的基於區塊鏈的移動終端網絡定位方法,可以將區塊鏈中的區塊視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,並在無gps信號或弱gps信號情況下進行準確定位自己在通信網絡中的位置信息。
另外,根據本發明上述實施例的基於區塊鏈的移動終端網絡定位方法還可以具有如下附加的技術特徵:
進一步地,還包括:接受所述區塊鏈中的各個節點互相進行位置驗證,並對未通過驗證的節點實行懲罰機制。
進一步地,所述接受區塊鏈中的各個節點互相進行位置驗證具體包括:獲取gps發出的位置信息,並向所述移動終端網絡進行廣播;與進行廣播的節點相連的節點驗證是否在自己的節點信息中包括進行廣播的節點的位置;如果無法通過節點間的相互驗證過程,則判斷進行廣播的節點為欺騙節點。
進一步地,增加區塊以使待加入移動終端網絡的節點加入到所述移動終端網絡。
進一步地,具體步驟為:s1:對區塊鏈中的前導節點進行驗證,以確認所述前導節點的身份是否真實;s2:如果驗證通過,根據自組織網絡定位系統,獲取所述待加入移動終端網絡的節點的相對位置信息;s3:不斷嘗試隨機數使得區塊雜湊值由若干個前導零組成;s4:如果嘗試成功,對所述雜湊值進行私鑰籤名,並建立一個臨時數據塊;s5:面向所述區塊鏈廣播所述待加入移動終端網絡的節點所述臨時數據塊的信息;s6:接收所述區塊鏈中的各個節點的驗證;s7:如果驗證通過,則使得所述待加入移動終端網絡的節點加入到所述區塊鏈,如果驗證不通過,則實行懲罰機制,將所述待加入移動終端網絡的節點加入到黑名單中,並將所述待加入移動終端網絡的節點中的相關信息丟棄。
進一步地,步驟s5:存儲所述待加入移動終端網絡的節點廣播所述臨時數據塊的信息。
進一步地,步驟s6中的驗證主要包括位置信息是否存在欺騙,是否重複處理。
進一步地,所述黑名單在所述前導節點的區塊數據中。
本發明的附加方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是根據本發明一個實施例的基於區塊鏈的移動終端網絡定位方法的流程圖;
圖2是根據本發明另一個實施例的基於區塊鏈的移動終端網絡定位方法的流程圖;
圖3是根據本發明一個實施例的使用歐幾裡得方法的aps(adhocpositioningsystem,基於自組織網絡定位系統)方案定位示意圖;
圖4是根據本發明一個實施例的區塊鏈結構圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能理解為對本發明的限制。
以下結合附圖描述根據本發明實施例的基於區塊鏈的移動終端網絡定位方法。
圖1是根據本發明一個實施例的基於區塊鏈的移動終端網絡定位方法的流程圖。
如圖1所示,根據本發明一個實施例的基於區塊鏈的移動終端網絡定位方法,包括:
其中,移動終端網絡包括多個節點,在進行自組織網絡時,採用區塊鏈技術,一個節點均對應有一個區塊,節點的節點信息以區塊的形式進行存儲,多個區塊組成一個區塊鏈,區塊鏈中的區塊數據為對應節點的節點的信息,結合圖4所示,節點信息包括但不限於位置信息,其中,節點信息還包括序列號,序列號為每個節點在加入移動終端自組織網絡時根據可信公鑰基礎設施發布創建的,自組織網絡中的節點與節點通信時,將通信信息保存在相應區塊中。
再結合圖4所示,所述節點信息包括但不限於公共會話密鑰、籤名、前一塊的雜湊值、序列號、黑名單、礦工候選等等。
其中,礦工是具有許多鄰節點的節點,並且只有在與該節點相連的節點一半以上稱為礦工之後,該節點才可以二次成為礦工。礦工由系統分配。
為了避免被分配為下一個礦工,節點可以轉為離線或拒絕計算和推出新塊,系統將在系統參數(param)中設置礦工候選編號(cannum)。在每個塊中依據它們的鄰節點數進行排序,所統計的鄰節點數量不會被欺騙,因為距離也會在同一塊中公布,因此,所有節點可以驗證正確性。礦工將根據順序分配候選者,並確保候選者不是節點總數的一半內的礦工。候選中的第一個應該是下一個塊的礦工,而如果第一個候選者變為離線或拒絕在多個時期內發布下一個塊,則第二候選將充當礦工並在下一個時期中發布新塊。
黑名單(blacklist):與比特幣的激勵機制不同,假設兩個相鄰節點之間沒有多跳連接且同時拒絕生成新塊的現象是罕見的。為了懲罰分配的拒絕發布新塊的礦工,接下來的礦工將創建一個包含新塊中的前候選者的黑名單blacklist。所有節點將拒絕與黑名單中的節點通信,除非它移除blacklist塊,之後重新申請加入網絡。如果移動終端網絡在一個時期內獲得由候選列表中的兩個礦工發布的兩個不同塊,則將接受由前候選者發布的塊,因為它可能發生網絡延遲。當假設所有候選人將在同一時期變為離線或拒絕發布新塊的概率將是可忽略的,這個規則將適用於候選人,若離線或者拒絕發布新塊這樣的事故發生,系統將會進行重新組織。此外,所有的欺騙節點將被添加到含blacknum(表示受處罰節點處於黑名單中的塊數)的黑名單blacklist中。
區塊鏈:新塊由礦工創建,包含前一塊的雜湊值。由礦工接收的所有記錄將被包含在塊中,其中包括公鑰更新、公共會話密鑰、定位信息和由相關節點籤名的籤名。礦工將收集移動終端網絡中所有節點的定位信息,並計算相對位置以生成所有節點的坐標,其中礦工是坐標原點。最新的blacknum中的欺騙節點的黑名單也包含在塊中。礦工將根據規則分配候選人。為了縮減塊的大小,所有節點將在merkle樹中進行雜湊,並且根包含在塊中,因此過時的記錄將被丟棄,其驗證與簡化的比特幣支付驗證相同。
綜上所述,本發明的區塊鏈中區塊數據包括位置信息塊以及新的參數子塊:黑名單塊、礦工後選塊、merkle樹的根節點雜湊值塊等。
具體包括如下步驟:
s110:搜索區塊鏈中的相鄰節點的相對位置信息。
因為在節點均存儲著節點與相連節點的相對位置信息,基於區塊鏈特徵,區塊鏈中的節點可以向移動終端網絡進行廣播,獲取自己與相連節點的相對位置信息。
s120:根據區塊鏈中的相鄰節點的相對位置信息,獲取節點之間的相對位置和在區塊鏈中的相對位置。
根據本發明的基於區塊鏈的移動終端網絡定位方法,可以將區塊鏈視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,並在無gps信號或弱gps信號情況下進行準確定位自己在通信網絡中的位置信息。
在一些實施例中,還包括:接受區塊鏈中的各個節點互相進行位置驗證,並對未通過驗證的節點實行懲罰機制。進一步地,接受區塊鏈中的各個節點互相進行位置驗證具體包括:獲取gps發出的位置信息,並向移動終端網絡進行廣播;與進行廣播的節點相連的節點驗證是否在自己的節點信息中包括進行廣播的節點的位置;如果無法通過節點間的相互驗證過程,則判斷進行廣播的節點為欺騙節點。
具體來說,結合圖3所示,a廣播其聲明從gps接收的位置,其接近b,c和d。然而,由b,c和d廣播的記錄不包含與a的距離,因此網絡可以推斷出a的位置可能被欺騙。
其中,a的廣播內容為:
在一些實施例中,增加區塊以使待加入移動終端網絡的節點加入到移動終端網絡。
結合圖2所示,具體步驟為:
s1:對區塊鏈中的前導節點進行驗證,以確認前導節點的身份是否真實。
具體來說,以待加入移動終端網絡的節點為節點usr1,區塊鏈中的前導節點為usr0為例,其中,前導節點是指在usr1之前加入到行動網路的節點,usr1使用公鑰對usr0的信息內容進行驗證。在usr0的位置信息塊處讀取位置信息,在這裡,以節點usr0發布的信息作為參照標準,並將之稱為地標信息。
s2:如果驗證通過,根據自組織網絡定位系統,獲取所述待加入移動終端網絡的節點的相對位置信息。
具體來說,在aps定位方案基礎上可以了解,任意節點可以通過測試無線電信息號的信號強度來獲得與其緊鄰節點的距離,如果該任意節點可以至少獲得三個節點的距離,則可以確認相對位置。於是,通過直接相鄰節點位置信息可以獲得該節點usr1的相對位置信息。
作為一個示例,如圖3所示,節點usr1(以a表示)可以通過測試無線電信號的信號強度來獲得與其緊鄰節點的距離ab、ac,前導節點usr0(以o表示)。經過步驟s1之後,usr1讀取到usr0創建的塊中的ob,oc距離。也就是說,四邊形abco的四邊現已知,且假設從usr0前導區塊中bc距離也已知,則計算ol距離實際是求a到o歐氏距離。但是a可能在bc左側、也可能在右側,當a和o具有共同的幾對鄰節點的時候,或者測量與b和c的相同鄰居來在a點進行投票判斷,是位置a或者位置a』。當做出選擇後,通過三角形△acb、△bco和△aco以及畢達哥拉廣義定理得到ao的距離。
四個節點知道彼此的之間的距離,即ab,bc,co,oa,ac,則確認這四個節點的相對位置。當然這些節點還具有其他附近的節點。每個節點廣播包含與其緊鄰節點的距離的記錄,並一個節點連結所有節點,因此將確認整個終端網絡的相對位置。
綜上所述,節點可以通過aps獲得相對位置,並且如果有一半以上的移動終端網絡節點接收到弱gps信號,則所有節點將獲得確切的位置。
s3:不斷嘗試隨機數使得區塊的雜湊值由若干個前導零組成。
具體來說,節點usr1計算節點usr0的雜湊值,接收被廣播但未放入區塊鏈中的塊,檢驗usr1構成的區塊的有效性,並進行工作量證明。
其中,雜湊值計算是對已經創建好的數據鏈中的最後一個數據塊進行雜湊計算。工作量證明:區塊鏈中存在一個關鍵數據nonce,稱作區塊的答案,這個答案對於每一個區塊是唯一,同時答案有以下特點1)這個答案很難獲得;2)有效答案有很多個,但只需找到一個答案即可;3)其他區塊對有效答案的驗證很容易。然而問題很難解答且沒有固定算法,所以唯一的辦法就是不斷的嘗試,這個過程就叫做「挖礦」。計算
hash(nonce||prev_block||positon||tx||…||tx)<bits
合法的區塊雜湊值含有若干個前導零,零的個數由網絡的難度值決定,如果上述雜湊值與工作量證明難度比較,具有合法的若干個前導零,則工作量證明結束。
s4:如果嘗試成功,對雜湊值進行私鑰籤名,並建立一個臨時數據塊。
具體來說,節點usr1對所計算出來的雜湊值進行私鑰籤名,並在工作量證明結束後對所有信息打包成臨時數據塊,其中,臨時數據塊為:
s5:面向區塊鏈廣播待加入移動終端網絡的節點臨時數據塊的信息。
具體來說,臨時數據塊從節點usr1傳到節點usr2的同時,面向全移動終端網絡將區塊內容進行廣播,方便各用戶節點進行驗證。
其中,區塊鏈中的節點存儲待加入移動終端網絡的節點廣播臨時數據塊的信息。
s6:接收區塊鏈中的各個節點的驗證。
具體來說,數據塊分支判斷,接收其他用戶節點的驗證,檢驗是否存在欺騙節點以及塊的合法性。
其中,驗證前導節點的合法性。同時,驗證主要包括位置信息是否存在欺騙,是否重複處理。因為區塊鏈數據以交易單形式存在,所以該種情況亦稱重複支付或雙重消費問題。
s7:如果驗證通過,則使得待加入移動終端網絡的節點加入到區塊鏈,如果驗證不通過,則實行懲罰機制,將待加入移動終端網絡的節點加入到黑名單中,並將待加入移動終端網絡的節點中的相關信息丟棄。
黑名單在前導節點的區塊數據中。
懲罰機制是與比特幣的激勵機制不同的,意味系統中區塊鏈中節點是誠實的,並且礦工一旦拒絕生成一個新塊將會被放入黑名單並隔離,所有節點都具有系統應該是穩定的安全的共識,如果所有礦工罷工,將會花費更多的能量來重新組織系統,提高了安全性。
根據本發明的基於區塊鏈的移動終端自組織網絡定位方法,可以將區塊鏈中的區塊視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,並在無gps信號或弱gps信號情況下進行準確定位自己在通信網絡中的位置信息。
此外,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有「第一」、「第二」的特徵可以明示或者隱含地包括至少一個該特徵。在本發明的描述中,「多個」的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本發明中,除非另有明確的規定和限定,術語「安裝」、「相連」、「連接」、「固定」等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關係,除非另有明確的限定。對於本領域的普通技術人員而言,可以根據具體情況理解上述術語在本發明中的具體含義。
在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。
儘管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的範圍內可以對上述實施例進行變化、修改、替換和變型。