作者:LN Capital
來源:https://twitter.com/LN_Capital/status/1604540519392153602
閃電網絡支持以下兩種付款方式:
- 直接(節點到節點)
- 間接(節點經由節點)
當你發送一筆間接付款時,由於你與接收方之間沒有開啟通道,你的付款需經由一個或多個中間節點發送。但是,面對7.5 萬個通道和1.5 萬個節點,我們如何從中選擇最佳的付款路徑?
@lightning的LND 實現目前使用Dijkstra 的算法進行尋路(不是同一個算法,但是非常相近)。
Dijkstra 的算法發表於1959 年,目的是找到節點圖中任意兩個節點之間的最短路徑。
下圖展示了尋路算法是如何從起始點(左下角的紅點)開始搜索到目的點(右上角的綠點)的。
每當你在閃電網絡上發送交易時,你的節點都會在節點圖中搜索最短的可行路徑。
如果說我們能夠優化該尋路算法,使之更快速、更便宜、更可靠呢?
Pickhardt Payment 正是以此為目標。
@renepickhardt是一位獨立研究者,以改進閃電網絡為己任。雖然他碩果頗豐,但最出名的還是他的尋路優化算法。
Pickhardt Payment 使用概率來判定付款成功的可能性。通過使用概率模型,Pickhardt 算法可以估測出節點圖中任意給定通道的流動性儲量。付款會經由流動性最大的通道發送,提高可靠性而非速度。
使用概率優化付款可靠性可以大幅提高閃電網絡的付款上限,讓之前不可能的大額付款成為現實。
想像一下在閃電網絡上支付1 萬美元只花了一美分不到的手續費。有了Pickhardt Payment 便可美夢成真。
@renepickhart和@stefanwouldgo在他們的研究報告中指出:“早期實驗表明,我們的方法能夠可靠地將當前技術水平下的付款額提高幾個數量級。”
實現Pickhardt 算法後,@Core_LN發現其付款完成時間和付款失敗率減半,速度提高了一倍。這一切的背後只用到了一個API 調用而已。
Pickhardt Payment 會為閃電網絡打開雙贏的局面。一方面,節點運營者能夠收穫更多利潤;另一方面,用戶能夠享有更高的可靠性,還能發送更高金額的付款。
網絡優化是非線性的,因為它們遵循梅特卡夫定律(網絡的價值與其用戶人數的平方成正比)。
因此,一旦我們提高了付款可靠性,我們的網絡就會吸引更多流動性,進一步提高可靠性。
那麼,我們如何才能使用#PickhardtPayments呢?
@c_otto83的LND-manageJ 現已支持Pickhardt Payment。
這裡有一個使用Rust 語言編寫的@lightningdevkit補丁:https://t.co/h75gZv1Uns
這裡有一個python 庫可供用戶測試和構建自己的版本:https://t.co/OwtWg5JCOq
(完)