吳宏杰
(甘肅宏天亞達電子技術有限公司,甘肅蘭州)
將區塊鏈技術應用到數據共享中,可以使數據在采集、存儲、傳遞、使用等環節中得到安全保障。進入5G 時代,構建基于區塊鏈的5G 物聯網并實現數據的實時共享,成為整合數據資源、挖掘數據價值的必要前提。但是受到區塊鏈交易機制、驗證速度等方面的限制,存在交易處理速度慢、可擴展性差等問題,難以滿足5G 物聯網下大數據的傳遞和處理需求。基于此,許多學者提出了改進方案,例如側鏈技術、分片技術等,從實際應用效果來看確實能夠提升交易效率,但是安全性差。相比之下,閃電網絡方案通過建立鏈外交易通道,兼顧了安全與效率,成為更適合5G 物聯網數據共享的優化方案。
將若干個區塊按照時間的先后順序串聯起來,得到的鏈式結構即為區塊鏈。在區塊鏈中,每一個獨立的區塊都是由區塊頭、區塊體2 部分組成,前者又包含了版本號、哈希值、時間戳等元素,后者則包含了詳細的交易信息。為提高數據信息的安全性與完整性,采用Merkle 證明機制[1]。區塊鏈的結構如圖1 所示。

圖1 區塊鏈的數據結構
現階段常用的區塊鏈有公有鏈、私有鏈、聯盟鏈3種基本類型。其中,聯盟鏈采用分布式一致性算法(如PBFE、Paxo 等),數據運算能力可以達到10 000 次/s,廣泛應用于物流、金融等領域。本文提出的數據共享技術以聯盟鏈作為底層區塊鏈。
基于區塊鏈的5G 物聯網數據共享框架由2 個服務器和2 個數據節點組成,整體架構如圖2 所示。

圖2 數據共享框架
(1) 數據提供節點包含了多種可以采集數據的物聯網設備,包括智能手機、智能手環以及支持智能駕駛的汽車等。該節點可以實時獲取智能設備上的數據,并通過數據共享的方式將數據信息上傳至區塊鏈服務器。
(2) 任何有數據使用需求的對象,都可以部署數據需求節點,例如智能駕駛汽車、智慧建筑等。該節點獲取數據包含兩個必要的步驟,其一是發起請求,其二是支出共享幣,然后獲得相應的數據。
(3) 區塊鏈服務器由3 個服務器組成,賬戶服務器主要用于發行共享幣,同時實時更新物聯網各個節點的賬戶余額信息;交易服務器主要用于接收和相應來自各個物聯網節點的數據共享申請,并為數據需求節點提供數據;共識服務器負責維護區塊鏈賬本的一致性。
(4) 云服務器用于存儲數據,為了保證數據的安全性和隱私性,采用對稱密鑰對數據進行加密處理,將數據以密文形式保存在云端。在數據需求節點請求訪問數據時,需要驗證授權令牌,驗證不通過則禁止訪問,從而保證數據安全;驗證通過后,使用對稱密鑰進行解密,將密文變成明文,并發送給相應的數據需求節點[2]。
基于區塊鏈的5G 物聯網需要經過系統初始化、更新節點狀態、數據交易等步驟實現數據共享,具體流程如圖3 所示。

圖3 數據共享流程
所有參與數據共享的物聯網節點,必須提前完成注冊成為合法節點,從源頭上保證數據的來源可靠、內容真實。注冊后可以取得證書、公私鑰對和錢包地址,并生成包含由節點身份、證書、公私鑰對、錢包地址4 個核心因素構成的映射列表,將該列表存儲到賬戶服務器中。
為提高響應速度,在每次進行數據交易前區塊鏈服務者會獲取節點當前的狀態信息,同時根據數據使用要求判斷當前節點的屬性,即屬于數據提供節點還是數據需求節點,并更新節點狀態。
當物聯網中的某個節點有數據需求時,首先向交易服務器發出一個申請,該申請信息中至少要包含5個要素,分別是證書、公鑰、錢包地址、數據需求、地理位置。請求得到響應后,檢索滿足要求的數據,尋找匹配的節點。匹配成功后,準備進行數據交易。
在交易前數據已經準備完畢,只需要數據需求節點支付相應數量的共享幣,即可將準備好的數據發送出去。
已經完成的數據交易并不能直接上鏈,而是暫存在交易池中。此時系統會驗證錢包內是否存入共享幣,如果未存入或者存入數額不夠,則數據交易中止;驗證通過后,數據允許打包上鏈。區塊的構建過程如圖4 所示。

圖4 區塊的構建過程
數據需求節點將授權令牌發送給云服務器,云服務器會驗證令牌簽名,如果驗證不通過則拒絕數據訪問請求;如果驗證通過則按照數據需求節點地址,掀起發送儲存在云服務器的加密數據。這樣就能避免在數據傳輸過程中被第三方竊取,從而維護了數據的隱私和安全。數據需求節點在成功接收數據后,使用與數據提供節點配對的私鑰進行解密,得到相應的明文數據。數據需求寫點利用明文數據的哈希值與原來加密數據的哈希值做對比,兩者一致則說明該數據完整[3]。
閃電網絡(Lightning Network)最早是應用于比特幣系統的一種支付通道,其特點是在現有的區塊鏈以外建立起獨立的交易通道,從而達到降低交易延時的效果[4]。為了進一步增強閃電網絡的交易效率,可采取多通道拓展方法,其原理如圖5 所示。

圖5 閃電網絡多通道擴展示意
如圖5 所示,假設在用戶Bob 和Carol 之間、Alice和Bob 之間均建立了支付通道。要想在Alice 和Carol之間完成交易,可以讓Bob 作為本次交易的中間人,先由Alice 轉賬給Bob,然后再由Bob 轉賬給Carol。在基于區塊鏈的5G 物聯網中,Bob 相當于一個路由節點。為了確保Bob 能夠在規定時間內轉賬給Carol,引入了一個哈希時間鎖定合約機制。作為交易的對象,Carol 會挑選隨機密文并通過運算得到其哈希值(Hash),然后將該值交給交易的另一方Alice。此時,Alice 會構建一筆加鎖的轉賬與Bob 建立交易,Bob 需要從Carol 那里拿到密文才能解鎖,如果在規定時間內未能解鎖,這筆錢將會退回到Alice 的賬戶。通過上述方式保障了Alice 與Carol 之間的交易能夠安全完成。
從實際情況來看,基于區塊鏈的5G 物聯網數據共享場景下,用戶之間采用“點對點”的數據共享模式;同時,絕大多數用戶之間的交易屬于小額交易,并且對實時提現的需求度并不高。基于以上特點,本文提出了一種基于閃電網絡的鏈下交易方案。其核心思想是利用序列到期可撤銷合約(RSMC)和哈希時間鎖定合約(HTLC)完成鏈下交易[5]。
RSMC 可以看作是在任意兩個或多個數據共享節點之間構建微支付通道。交易雙方提前在該通道內存入一部分資金,正式交易后共同核驗資金分配方案,在確認信息無誤后確認電子簽名,然后完成交易;在提取資金時,將蓋有電子簽名的資金分配方案寫入區塊鏈中并進行確認,如果確認不通過則無法提取資金,從而保障用戶資金的安全;在確認通過后,用戶可以順利提現。基于RSMC 的交易過程中,除了提現需要使用到區塊鏈外,其他的環節均不需要上鏈,這樣就能大幅度地減少區塊鏈的請求次數。
交易雙方簽署的資金分配方案本質上屬于一種具有時效性的智能合約,即HTLC。一方完成轉賬操作后,轉賬資金并不是直接進入另一方的賬戶,而是被暫時凍結,同時生成唯一的哈希值;在約定期限內,接收方提供另一個哈希值,兩者配對完畢后可以將資金解凍,然后轉入到接收方的賬戶中。
基于閃電網絡的鏈下交易模型如圖6 所示。

圖6 基于閃電網絡的鏈下交易模型
基于閃電網絡的鏈下交易流程如下:
(1) 獲取節點信息。閃電網絡需要從兩種節點獲取IP 地址、端口號等基本信息。
(2) 創建支付通道。利用步驟(1)中獲取的信息建立支付通道,由于交易在區塊鏈下完成,從而簡化了交易流程。在創建支付通道時,數據需求節點根據提供的錢包地址,存入一定數額的資金,并將資金存儲到資金池中,利用資金池中的一部分資金創建微支付通道。
(3) 完成支付。在閃電網絡的接受測發起支付申請,數據提供節點根據該申請產生一個接收單據并發送給數據需求節點。在兩個節點之間提供一個支付路由,并限定支付時間,在規定時間內完成支付。
(4) 資金提現。數據提供節點將更新后的資金分配方案寫入區塊鏈中,在區塊生效后可以通過數據提供節點提取資金。
基于區塊鏈的5G 物聯網數據共享技術,利用了區塊鏈支持不可信環境下多方信任交互的特點,讓陌生節點之間可以安全、高效地減小“點對點”的信息傳遞,為數據共享奠定了扎實的基礎。同時,將閃電網絡機制應用到5G 物聯網數據共享中,彌補了區塊鏈交易處理速度慢、可擴展性差等短板,進一步提高了5G物聯網數據共享技術的實用性。