header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

閃電網路再思考

閱讀本文需 16 分鐘
Fedimint 讓我們可以動態地跟一群人分享所有權,而且可以透過網關跟閃電網路交互,這是當前技術下比特幣擴容夢想的頂峰。
原文標題:《Rethinking Lightning》
原文作者:benthecarman
原文編譯:BTCStudy


過去幾個月來,我感覺比特幣社群對閃電網路越來越感到厭倦。說實在的,這完全說得過去。在 2017 年,我們得到的承諾是,這會是一個去中心化的支付網路、永遠提供便宜的支付、而且每個人都能運行自己的節點。今天,閃電網絡的普通用戶實際上並不使用閃電網絡,他們只使用一款託管錢包;而其中少數運行閃電節點的用戶常常發現這是一個繁重的任務。我們 Mutiny Wallet 的同仁,一直在透過嘗試開發輕量的自主保管錢包來改變這一切,而且,我認為,我們已經很好地實現了這個夢想。在本文中,我將分析這些問題,並提出一種新的理解閃電網路的視角,然後論辯這對比特幣的未來意味著什麼。


閃電網路的使用者體驗挑戰中的第一個也是最艱鉅的一個,就是通道流動性。 (譯者註:這意味著,用戶不僅有餘額即支付額度,還有收款額度。)今天,除了閃電網絡,沒有其它支付系統存在這樣的問題,所以這常常會讓許多用戶感到困惑。更糟的是,我們沒有任何實用的訣竅可以解決這個問題。 Muun Wallet 使用「一個鏈上錢包+ 潛水艇互換」的模式繞過了這個通道流動性問題,這個解決方案在平時工作得非常好,直到手續費漲起來的那天,每個用戶都會意識到它並不是一個真正的閃電錢包。 (譯者註:在這種模式下,使用者不會跟任何人創建通道,只透過鏈上資金與鏈下資金的互換來實現閃電支付;每當用戶需要發起閃電支付時,都要做一筆鏈上交易。所以用戶的支付成本是跟網絡手續費率掛鉤的,在費率上漲的時候就會暴露出來。)更好的解決方案是JIT 流動性,就像我們在Mutiny 的做法,或者是通道拼接技術(Phoenix 已經實現了)。 (譯者註:「JIT」是「Just in time」的縮寫,意為「隨時獲取」,大致做法是,當超出收款額度的支付到達時,會導致新通道的建立,從而使用戶獲得足夠的收款額度。)這些解決方案部分地抽象掉了流動性問題,但還不夠,我們常常會遇到用戶在客戶支援頻道中提問,為什麼某一些支付有手續費,而另一些沒有。事實就是,通道流動性對於絕大部分終端使用者來說不是一種可用的使用者體驗。


閃電網路的另一個主要痛點是離線收款問題。根本上,你必須在線,使用你的私鑰來簽署並申領一筆支付。技術上來說,有一個持續進展的規範提案可以解決這個問題(本質上是創建一個通知系統,告知用戶何時應該上線收款),但也並不能解決根本的問題,也依然有限制。也有一些解決這個問題的嘗試,最著名的當屬 Zeus Pay 的閃電位址。本質上,它只是創建一筆卡住的支付,然後等待收款方上線來接收支付,這給人們帶來了不計其數的問題,甚至迫使我們Mutiny 禁止用戶向他們支付,因為它導致了許許多多的強制關閉通道事件。這是一個難題,因為其餘所有的比特幣/密碼貨幣生態的工作模式都是你只需複製-粘貼一個地址,然後就可以隨時給這個地址支付,不會有任何警告要求你提醒自己的朋友記得打開錢包。閃電地址這樣的東西甚至讓它進一步惡化,因為它從一開始就需要一個網頁伺服器來使你能夠獲得發票。


我認為,通道流動性問題和離線收款問題,是自主保管的閃電錢包沒辦法流行起來的兩個最顯著的理由。絕大部分用戶聽到這兩個問題中的任何一個,都會想「算了」,然後轉去使用一款託管錢包,因為那實在是容易太多了。如果我們只有這兩個問題,我認為自主保管的閃電錢包還是好的,也許不會成為人們使用閃電網絡的主流方式,但我們可以讓用戶體驗足夠好,好到能讓大一部分人群以自我主權的方式使用閃電網路。然而,表象之下還有更多的問題。


通道流動性是一個問題,但它也有欺騙性。當你擁有 10 萬聰的收款額度時,你會認為你最多可以收到 10 萬聰的支付,但不是這樣的,你常常收不到任何支付。這是因為鏈上手續費。在閃電通道中,每當你發生一筆付款時,你都需要創建一筆新的預先簽名交易,而這筆交易需要為每一筆正在處理(還未完成)的支付安排一個輸出,這些輸出會影響交易的體積,因此需要為之提供手續費;網路手續費率越高,你的流動性就越少(被分配給了手續費)。在我們解決了 Mutiny 的大部分導致強制關閉通道的問題時,這個問題就成了數量最多的客服請求。即使你做對了一切事情、理解了流動性並你的支付準備了足夠多的流動性,支付依然可能不成功,因為鏈上手續費太高了。這總是讓人失望,因為,閃電網路的全部意義不就在於你不必非得支付鏈上手續費嗎?基本上,目前所有的閃電通道,都可以因為鏈上手續費率變得足夠高而淪為無用之物,因為一次支付需要太多準備金。顯然這只是一種誇張,但我希望我表達清楚了:鏈上手續費不僅影響開啟和關閉通道的代價,即時你是一個勤奮的節點運營者,僅在手續費率低的時候開啟通道,那也不夠,你的通道需要足夠大,大到足以在未來的任何時候、鏈上手續費率的任何水平、為你的每一個HTLC 支付鏈上手續費。隨著鏈上手續費不斷上漲,這個問題只會變得更加嚴重。


為這個保證金問題而提議的解決方案是“錨點通道”、“交易包轉發”、“一次性錨點”,等等。這些想法都有價值,也不錯,但某種程度上只是掩蓋了問題。它們確實能夠讓手續費保證金變得非常低,甚至可以是零,然而,其取捨在於,你需要可以使用的鏈上資金來為你強制關閉通道的操作追加手續費,這樣交易才能得到區塊確認。 (譯者註:這裡解決方案的核心是“CPFP”,使用高費率的子交易提高父交易的吸引力;因此,父交易,在這裡是通道的承諾交易,可以不准備任何手續費,也就沒有資金佔用問題。但取捨如作者所述。)這又一次打破了自主保管錢包用戶的使用體驗,因為他們 必須 在閃電網絡資金之外持有鏈上資金,這樣他們才可以追加手續費。而需要準備的鏈上資金的規模依然動態地取決於鏈上手續費率。解決這個問題的方法包括讓其他人來幫你追加手續費,但這會引入一個受信任的第三方,所以並不理想。


當我們列出一個閃電節點需要做的所有權衡、尤其是高手續費環境對它的影響時,我不禁思考,我們到底在做什麼?我們走的路是錯的嗎?閃電網路依然從頭到尾是一個極為強大的支付協議,但它的局限性在於它需要 擴大規模。基本上我列舉的每一個問題,在你擁有一個大閃電節點時都會消失不見——你有大量的流動性和高運行時間。我們應該優化這一切。市場一直在教育我們,這麼多年了,90% 以上的閃電用戶都在使用託管式錢包,因為它在擴大規模上就是做得更好。那麼,我們如何能夠不使用託管錢包而用上大規模的閃電節點呢?


遺憾的是,結合現有的大體量的閃電網路基礎設施以及自主保管解決方案,依然力有不逮捕。到目前為止,做到這一點的唯一真實的方法是我們前面提到的 Muun Wallet,但它並不真的解決了問題,因為所有一切都只是鏈上交易。但是,Muun 做對了一些事情。設計一個通往閃電網路的更簡單的協定介面的架構,是一種天才的想法,而且給了我們兩個世界裡最好的東西。我們可以發起快速而便宜的支付,並讓那個大男孩透過運行閃電節點來收取手續費。剛剛啟動的 Aqua Wallet 本質上也是一個 Muun Wallet,只不過是在 Liquid 上,這是一個很好的權宜之計,但並不能從根本上解決問題。


在我們繼續前進之前,我們應該退後一步,分析一下我們要嘗試解決什麼問題。比特幣有一個根本上的擴容限制:其區塊大小。如果我們可以擁有無限的區塊大小,那麼我們就不需要任何 layer 2 解決方案了,因為我們只需要鏈上支付。然而,我們生活在真實世界中,而且有 1 MB 的區塊體積限制,它限制了我們可以在鏈上確認的交易數量。閃電網路是對比特幣的巨大提升,因為我們不需要將每一筆 交易都發佈到鏈上,我們只需要開啟一條通道,然後就可以發起幾乎無限筆支付。那麼,閃電網怎麼沒有一劍封喉?因為閃電網路讓我們可以將支付轉移到鏈下,但沒有做到能讓我們將所有權轉移到鏈下。根本上,閃電網路依然依賴於,最終的最終,一個 UTXO 會歸屬於某一個使用者。所以,即使鏈上的每一筆交易都屬於某一條閃電通道,我們依然會撞上一個限制——能夠擁有自己的通道的人的數量終究是有限的。我們需要的是另一種 layer 2,可以擴展 utxo 的所有權,並且可以跟閃電網絡交互,這樣我們就有辦法在擴大支付容量的同時擴大所有權的容量。


那麼,我們要如何擴大所有權的容量呢?簡單來說,今天的答案是託管(custody),無論是純粹的託管商(例如 Wallet of Satoshi)或處於灰色地帶的(例如 fedimint 和 Liquid),今天我們能用的唯一方法就是託管或聯盟橋。在比特幣上,唯一能夠將一個UTXO 的所有權委託給多方的辦法就是多簽名,然而,它要求任何一個用戶希望交互時,每一個用戶都在線,而且,當你沿著這條路走得足夠遠,最終你只會重新發明閃電網路。


那我們注定要失敗嗎?沒有能夠以自我主權的方式擴展比特幣的方法嗎?幸運的是,答案是否定的,但我們需要一些軟分叉。限制條款(covenant)就是擴大所有權容量的辦法。有許許多多的限制條款提議,但歸根到底,它們所提議的都是添加一種辦法,讓你可以擁有一種比特幣地址,可以限制其中的資金被花到哪裡去、怎麼花。這看起來似乎很奇怪,但我們今天的比特幣上已經有這種東西了,OP_CTLV(CheckLockTimeVeiry),是在2016 年的軟分叉中激活的,它僅允許你使用具有給定locktime 數值的交易來花費一個比特幣地址中的資金,所以它讓你可以把關可以花費一個UTXO 的 時間。目前的限制條款提議所做的是讓你可以把關可以花費一個 UTXO 去哪裡。有這個簡單的元件,我們就可以開發出許多不同的協議,允許擴大所有權的容量。


不過,未來並不灰暗,即使沒有限制條款,我們依然可以擴容比特幣,只不過不是以理想的方式。在 Mutiny,我們正在全力推進在錢包中實現 fedimint,我個人(以及我們團隊中的其他人也)認為,這是比特幣當前最好的擴容解決方案。 Fedimint 給了我們可以動態地跟一群人分享所有權的能力,而且可以透過網關跟著閃電網路互動。這是當前科技下比特幣擴充夢想的頂峰,我們將不遺餘力幫助它成為現實。


原文連結


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交