閃電網絡目前面臨的主要困境
作者:RGB++Fans;;來源:字節元CKB
在上一篇《閃電網絡是如何工作的(2)》中,我們探討了Bitcoin閃電網絡(LightningNetwork)的工作原理。本質上,閃電網絡是一個精心設計的支付通道系統,它把一條條支付通道串聯起來,形成一個廣闊的、相互連接的支付網絡,讓不直接相連的各方可以通過多跳路由實現相互支付,HTLC、PTLC等合約會保障路由的安全。
經過多年的發展,盡管閃電網絡在技術和用戶體驗方面取得了長足進步,但我們不得不直面一個現實:它仍未達到可大規模采用的程度。今天這篇文章,我們將聚焦閃電網絡當前面臨的一個關鍵挑戰:流動性問題。這一問題可進一步細分為兩個方面,一個是網絡整體流動性不足,另一個是流動性分配問題。網絡整體流動性不足
根據 mempool 的最新統計數據,Bitcoin閃電網絡目前擁有12,389個Node,48000條支付通道,所有的通道容量加起來為5311.8BTC。

目前,在Bitcoin生態中,UTXOStack 已經宣布轉型為閃電網絡質押層,通過Decentralization質押協議為閃電網絡提供更好的流動性和更好的收益模型。同時,UTXOStack還將推出Tokens激勵機制,激勵用戶質押BTC以增強閃電網絡支付通道的流動性。流動性分配問題
即便解決了整體流動性不足的問題,如何有效分配這些流動性仍是一個挑戰。
我們以Alice通過路由NodeBob向Carol付款為例,假設初始狀態時Alice和Carol在通道中各自有2萬聰,Bob在每條通道中有1萬聰。經過幾次交易后,通道中的余額分布如下(為了簡化,不考慮路由NodeBob收取的手續費):
如果未來的一段時間內,Alice和Carol還有業務往來,還需要Alice向Carol發起付款,應該怎么辦呢?Bob已經無法路由支付了(即Bob與Carol的通道中,Bob已無法再向Carol轉移資金),他需要再平衡自己的通道。
上面這種情形對于閃電網絡中的那些路由Node而言非常常見。Node運營者必須在自己的通道之間不斷平衡流動性,如果通道在你這一端沒有資金,就無法發送支付;如果通道內的所有資金都在你這一端,就無法收取支付。
上面例子中,一種方法是直接關閉Bob和Carol之間的通道,并開啟新的通道,但這個方法并不經濟,因為關閉通道和開啟通道的交易都需要上鏈,都需要支付Bitcoin礦工費。閃電網絡的設計初衷,就是為了減少鏈上操作,把盡可能多的交易放在鏈下通道中進行,如果閃電網絡每天有幾億個通道要開啟和關閉,BitcoinBlockchain會一直擁堵,礦工費會高到離譜。
為此,Bitcoin社區提出了多種創新方案來解決流動性分配問題:SubmarineSwap(潛水艇互換)
簡單來說,SubmarineSwap可以讓用戶向閃電網絡中的互換服務商發送通道中的BTC,而互換服務商會將相應數量的BTC發送到Bitcoin鏈上的收款地址,或者反過來,用戶發送鏈上BTC給互換服務商,互換服務商發送通道中的BTC給指定的接收Node。這一過程雖然有互換服務商的參與,但是通過HTLC(哈希時間鎖合約),全程無需信任。
SubmarineSwap還啟發了許多后來者,比如通道余額調節協議PeerSwap,可以讓用戶直接跟他的通道對手實施潛水艇互換。在上面的例子中,Carol可以直接充當互換服務商的角色,Bob轉鏈上的BTC給Carol,Carol在通道中支付相應數量的BTC給Bob,即可。具體來說:
Bob生成一個秘密值R(原像)及其哈希值H。
Bob在BitcoinBlockchain上使用哈希值H創建一個HTLC:Bob會給Carol支付1萬聰,只要他能在5個區塊內提供秘密值R,否則這些錢會返回給Bob。
Carol在他和Bob的支付通道中,使用同樣的哈希值H創建一個HTLC:Carol會在通道中給Bob支付1萬聰,只要他能在4個區塊內提供秘密值R,否則這些錢會返回給Carol(為了簡化,這里不考慮互換服務商收取的服務費)。
Bob使用秘密值R解鎖通道中的HTLC,拿走1萬聰。
Bob拿走資金之后,Carol也知道了秘密值R,他用R解鎖Bitcoin鏈上的HTLC,拿走1萬聰。
相比關閉通道然后開啟新通道,SubmarineSwap只有一筆鏈上交易,更加經濟,而且全程無需信任。通道拼接(Splicing)
通道拼接一種鏈上的再平衡方法:Node在單筆交易中關閉通道又再開啟通道,從而改變鎖在通道中的余額。當這樣做的Node鎖入更多資金,我們稱為“加長(splicein)”;如果減少了鎖定的資金,就叫“剪短(spliceout)”。在上面的例子中,Bob和Carol之間的通道可以通過通道拼接進行加長。
通道拼接比起用兩筆交易來關閉、重新開啟通道要方便得多,不過它依然要在網絡中廣播交易、支付鏈上礦工費并等待交易確認。多路徑付款(Multi-PathPayment,MPP)
多路徑付款可以將一筆付款分割成幾部分,這些部分可以同時在不同的地方停駐或流轉。如果Alice需要繼續給Carol支付1萬聰,雖然Bob已經無法路由支付了,但Alice通過路由NodeDavid可以向Carol支付6000聰,通過路由NodeEva可以向Carol支付4000聰,那么Alice的這筆1萬聰交易就可以通過多路徑付款的方式完成。
多路徑付款技術的初衷是為了克服了單路徑支付的局限性,允許更大數額的支付通過分割成較小的多個部分來送達,比如一筆金額為1BTC的閃電網絡交易,可以分成100筆0.01BTC的交易來完成。多路徑付款對網絡的Decentralization和交易的隱私保護有好處,在安全性上,原子化多路徑付款(AMP)技術可以保證如果有一條路徑無法完成付款,則所有付款都不會成功,從而防止混亂和欺詐。
順便提一下,在閃電網絡中,大額的交易除了通過多路徑付款之外,還可以通過Wumbo通道完成。Wumbo通道取消了常規閃電通道所能持有的Bitcoin數量上限——0.1667BTC,允許Node擁有更高的通道容量,從而支持大額交易。結語
流動性是制約閃電網絡發展的主要因素之一。通過降低閃電網絡Node的搭建和維護門檻,引入額外的激勵機制,可以幫助閃電網絡解決網絡流動性不足的難題,而SubmarineSwap、通道拼接、多路徑付款等方案,在解決閃電網絡流動性分配方面有一定的幫助。
除了上述方案,Bitcoin社區還提出了LightningPool(一種通道租賃拍賣市場)、LiquidityAdvertisement(一種通道租賃方案)、環路支付(一個Node通過一條由支付通道形成的環路來給自己支付,實現鏈下再平衡)等其他方案來優化網絡的流動性。
流動性管理無疑是閃電網絡面臨的一項復雜工程,但隨著技術的不斷進步和社區的持續努力,我們有理由相信,這些流動性難題終將得到解決。
