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