一文了解閃電網路的力量:快速完成物聯網小額支付

作者: Omer Shlomovits

引言

設想你開車到外地去參加一場重要的會議,一路上會途徑三個收費站。那你要給過路費,不是又要把車慢下來,又要浪費一些時間嗎,這就產生了 “自動支付系統” 的需要。

靠設備間通信(device-to-device communication,D2D)完成、無需人力介入的原子化支付,是解決這個問題的理想方案。雖然有可能將這些設備與傳統的支付系統(比如信用卡)關聯起來,但這就引入了一個第三方,他們可能會把管理成本轉嫁給你,甚至收集你的隱私,這樣來看,密碼貨幣可以創建一個更方便的支付系統,因此,把 IoT(物聯網)和密碼貨幣(例如比特幣、以太坊)結合起來可以解決這些問題,

憑借去中心化賬本的概念,比特幣已經成為了一種顛覆性的支付系統,但對支付場景來說,它有一些重大缺陷,比如手續費太高,交易的確認時間很長。

閃電網路(Lightning Network,LN)已經用一種大膽的做法解決了這些問題 —— 鏈下支付。有了這一進步,用比特幣來做小額支付也頗有前景,而且也能被許多 IoT 應用接受。然而,在 IoT 設備上托管閃電網路和比特幣節點是不可行的,因為它們的存儲、內存和處理開銷。

自閃電網路問世以來,它已經有了超過 20000 個節點,物聯網設備只有非常有限的計算、通信和存儲能力;因此,在大部分配置較低的物聯網設備上安裝閃電節點都是不可能的,具體來說,使用閃電網路需要你運行一個閃電節點以及一個比特幣全節點,兩者加起來需要超過 340 GB 的存儲空間。要參與比特幣區塊的驗證,可靠的互聯網連接和相對較高的計算能力也是必不可少的。

考慮到所有這些因素,我們需要一種輕量化的解決方案。我們提議一種基于門限密碼學的協議,由可信的閃電網路網關負責托管完整的閃電網路節點和比特幣節點,讓物聯網設備能夠通過這個網關發起閃電網路操作。

還可以通過支付手續費來激勵 LN 網關提供這項服務,

我們提議的協議具有以下特點:

  • 能夠實現即時付款
  • 可以運行在低帶寬的網路上
  • 所需物聯網設備

閃電網路

我們的協議會用到閃電網路。閃電網路是 2015 年提出的概念,很快就被 Lightning Labs 和其他團體在比特幣上實現了,它是一個比特幣區塊鏈網路之上的點對點二層網路,

閃電網路致力于解決比特幣的可擴展性問題。利用比特幣的智能合約功能,閃電網路讓用戶可以開設安全的支付通道、享受即時和便宜的比特幣轉賬,還能在網路中實現多跳間接支付。

自問世以來,使用閃電網路的用戶已有了可觀的增長。閃電網路現在有總計 59192 個通道,留存 1986.06 btc。

我們用一個例子把閃電網路講得更清楚些:

Alice 想給 Bob 支付,所以跟 Bob 開啟了一個閃電網路支付通道。在這個支付通道中,資金可以在 Alice 和 Bob 之間雙向流動,無需把交易提交到比特幣區塊鏈上。也就是說交易是在鏈下發生的。

圖 1. 一個閃電網路通道的生命周期

從圖 1 中可以看出,閃電網路的一個重要基石是承諾交易(commitment transaction),承諾事務有三個輸出。

Alice 發出的承諾事務的三個輸出一般是:

  1. 給 Alice 分配當前她在通道中的余額,但是帶有時間鎖,要過一段時間才能使用
  2. 給 Bob 分配當前他在通道中的余額,是馬上就可用的
  3. 支付合約(實質是 HTLC,哈希時間鎖合約)

(譯者注:承諾事務隨時可以提交到比特幣區塊鏈上,使其資金分配效果成真,所以承諾事務一經交換,便意味著雙方余額更新、支付完成;只要沒有任何一方把承諾事務廣播到網路中,通道就一直開啟,雙方可以幾乎無限次轉賬,)

閃電網路技術基礎(BOLT)

為了我們的協議,我們修改了閃電網路的閃電網路技術基礎 #2,閃電網路技術基礎是閃電網路用來管理通道的對等節點協議,用來實現安全的比特幣鏈下支付。

BOLT #2 有三個階段:

  • 通道建立
  • 通道的正常操作
  • 通道關閉

門限密碼學(Threshold Cryptography)

我們的主要創新是在閃電網路中加入門限密碼學。

現實生活中的密鑰分割(sharing secret)是非常普遍的,但我們要借用到數字世界來。

“門限密碼學” 是安全多方計算(Secure Multiparty Computation)的一個子集,處理的是超過一方參與的密碼學操作,

在密碼貨幣的世界里,私鑰(private key,本身應是一個秘密值)被盜會導致資金損失,所以,人們提出了在多方間分割密鑰的想法。在一個門限方案中,密鑰是在多方間分割的,而且預先定義了一個閾值,參與者的數量如果少于這個閾值,無論如何也不能知道關于這個密鑰的資訊。

為了在物聯網設備上使用閃電網路,同時無需承擔所有的內存負擔,我們要利用門限密碼學。

這也是可以實現的,因為我們把閃電網路節點獨立了出去,物聯網設備只需參與關鍵的密碼學部分,

這樣做可以加速我們的開發進程,讓整個系統更容易跑起來,還節約成本,

系統模式

圖 2. 系統模式示意圖

我們的系統有四個主要部分:

(1)物聯網設備;

(2)閃電網路網關;

(3)橋接閃電網路節點;

(4)目標閃電網路節點。

其它中介包括:

(1)門限客戶端;

(2)物聯網設備網關;

(3)閃電網路網關的比特幣核閃電網路節點;

(4)門限服務器。

一些假設:

物聯網設備可通過網關連接到互聯網。

物聯網設備和閃電網路網關在發送支付的過程中不會掉線,

物聯網設備在其余時間可以離線,

協議

假設一個物聯網設備現在想給目標閃電網路節點支付(比如支付過路費)

  • 從 IoT 網關開始,設備聯系 閃電網路網關,網關管理著閃電網路節點、比特幣節點和門限服務器
  • 無論什么時候 IoT 設備發起請求,閃電網路網關便打開與橋接閃電節點的通道,以連接到目標網路節點
  • 橋接網路節點可以向發起支付的閃電網路網關收取路由費
  • IoT 設備的支付通過橋接節點路由到指定的目標節點
  • 現在,門限密碼學的操作在 IoT 設備和閃電網路網關間運行,所以只有閃電網路網關需要運行這個改進后的協議。系統的其余部分可以運行原始的 BOLT 協議,

安全分析

這里,我們假設我們的系統會面臨三種威脅:串謀攻擊、IoT 設備與閃電網關串謀和勒索攻擊,

串謀攻擊:

1.閃電網關和橋接節點串謀

在我們的系統中,支付總是從 IoT 設備發送到目標閃電節點的,反過來說,這總是會增加橋接節點在通道中的余額,因此,橋接節點的舊通道狀態余額總是會低于最新的狀態,所以這種勾結不會發生,我們這套協議當前局限于單向的支付,為物聯網設備實現雙向的支付是未來的工作,

現在,假設閃電網關要把舊狀態廣播到區塊鏈網路中,只有閃電網關的某個舊狀態比當前狀態具有更多資金,這樣做才有好處的。但是,這也不可能,因為閃電網關會對 IoT 設備的每一次支付收費,其余額也是一直上漲的。此外,橋接節點的舊狀態余額也必定較低,所以他們兩個的舊狀態余額都比較低,串謀是得不到好處的。

(譯者注:補充一些背景也許可以幫助讀者理解何以需要分析這些威脅,以及這些威脅如何得到處理:在這個系統中,IoT 設備和網關共同使用一把門限私鑰與橋接節點開設通道(多簽名合約),但是每次承諾事務都有輸出向 IoT 設備和網關各自控制的地址分配資金,而不是把資金分配給門限私鑰;所以,通道可以做到網關和橋接節點的余額總是遞增的。具體細節見文末所附的完整論文,)

2.IoT 設備和閃電網關勾結:因為 IoT 設備的通道內資金總是隨著支付的發生而下降,所以它很容易與閃電網關勾結,向網路廣播一個過時的狀態,

如果橋接節點不想丟失資金,那他在其它時間也不能下線,因此,這種勾結不是我們的協議特有的,而是閃電網路普遍的問題。

盜竊 IoT 設備的資金:

閃電網關可以通過以下方法盜取 IoT 設備所承諾的資金:

  1. 把它們發送給其他閃電網路節點
  2. 把舊狀態廣播到網路中
  3. 與其他閃電網路節點勾結

如果我們使用閃電網路的原始簽名機制,閃電網關就可以拿走 IoT 設備在通道中的資金,無需來自 IoT 設備的簽名。我們所提議的修改 —— 在閃電網關的承諾交易中使用(2-2)的門限方案 —— 正是為了保護 IoT 設備不會損失資金(譯者注:即網關若要廣播承諾事務就必須經過 IoT 設備,因為通道是使用他們共同計算出的私鑰來開啟的)。

勒索攻擊:

這種攻擊是閃電網關偏離協議描述的情形。舉個例子,網關可以告訴 IoT 設備,“給我多少多少比特幣,不然我就不幫你關閉通道”,或是 “現在開始,你要接受 10% 的服務費率,不如我就不給你服務了”。

此時,IoT 設備最好的辦法就是拒絕勒索,干耗著,然后,閃電網關會扣著 IoT 設備的資金,盡可能地拖延。這是個死循環,雙方都是干耗著。

LN 網關最好的做法是繼續為 IoT 設備服務并收取服務費。

應用和實驗

我們這個協議的應用場景包括電動車充電樁、傳感器數據銷售和停車場收費系統。還是拿一開始的收費站做例子好了,因為我們也實地做了測試,

實時響應對收費站來說是最關鍵的,因為理想狀態是汽車通過收費站時不必停車,利用(比如)無線網路就完成支付,

每當一輛車進入一個收費站的無線覆蓋領域,它就通過 IoT 的網關向收費站的閃電網關發起支付請求,這個閃電網關立即發送所請求的支付數額給收費公司的閃電節點,支付完成之后,一條表示 “支付成功” 的消息通過 IoT 網關返回給車輛。

要讓這個系統在現實中能用,整個支付流程必須在汽車駛離收費站的無線網路覆蓋范圍之前完成,

因為支付只需花費 4.12 秒,所以車子是能及時完成支付的。

至于成本,我們假設一輛車一天要交兩次過路費。假設這輛車已經提前開好通道了,那么使用這套服務唯一的成本就是閃電網關對每次支付收取的服務費,雖然這個費率是由網關決定的,我們假設服務費數額是過路費實際數額的 5%。如果每次通行需支付 0.75 美元的過路費,那么每次支付的手續費就是 0.0375 美元,每個月的服務費不過是 2.5 美元(0.0375* 60),

考慮到瞬時支付過路費的便利,每個月多花 2.5 美元應該不算什么。實際上,信用卡公司的收費差不多,甚至更多,

結論

我們的評估結果顯示,閃電網路節點可以支持快速而及時的物聯網小額支付,而且運營成本很低。

本研究的目的是讓資源有限的物聯網設備能夠與閃電網路交互(一般來說是做不到的),并與其他用戶開展小額支付,

就我們所知,這是第一個在閃電網路中實現了門限密碼學的工作。

所以,你可以享受旅行、及時抵達,不用擔心過路費支付啦!

我們的協議還可以用在許多其它的物聯網小額支付應用中(也即不限于過路費支付),

我們的成果也是門限密碼學閃電網路通用框架開發的一個里程碑。

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧