作者: Omer Shlomovits
原文鏈接:
https://zengo.com/make-micro-payments-in-a-flash-the-power-of-lngate/
引言
設想你開車到外地去參加一場重要的會議,一路上會途徑三個收費站。那你要給過路費,不是又要把車慢下來,又要浪費一些時間嗎。這就產生了“自動支付系統” 的需要。
靠設備間通信(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 發出的承諾事務的三個輸出一般是:
- 給Alice 分配當前她在通道中的餘額,但是帶有時間鎖,要過一段時間才能使用
- 給Bob 分配當前他在通道中的餘額,是馬上就可用的
- 支付合約(實質是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 設備所承諾的資金:
- 把它們發送給其他閃電網絡節點
- 把舊狀態廣播到網絡中
- 與其他閃電網絡節點勾結
如果我們使用閃電網絡的原始簽名機制,閃電網關就可以拿走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 美元應該不算什麼。實際上,信用卡公司的收費差不多,甚至更多。
結論
我們的評估結果顯示,閃電網絡節點可以支持快速而及時的物聯網小額支付,而且運營成本很低。
本研究的目的是讓資源有限的物聯網設備能夠與閃電網絡交互(一般來說是做不到的),並與其他用戶開展小額支付。
就我們所知,這是第一個在閃電網絡中實現了門限密碼學的工作。
所以,你可以享受旅行、及時抵達,不用擔心過路費支付啦!
我們的協議還可以用在許多其它的物聯網小額支付應用中(也即不限於過路費支付)。
我們的成果也是門限密碼學閃電網絡通用框架開發的一個里程碑。想要了解整個方案的所有細節,請看我們的論文。
希望你有所收穫!
特別聲明
免責聲明:本文不代表0x财经立場,且不構成投資建議,請謹慎對待,如需報導或加入交流群,請聯繫微信:VOICE-V。
來源:以太坊愛好者原創