Lightning Loop:Musig2 如何助力閃電網絡流動性分佈

作者:Alex Bosworth

來源:https://lightning.engineering/posts/2025-02-13-loop-musig2/

本文會解釋我們如何使用 “MuSig2”(Schnorr 電子簽名算法的聚合公鑰協議)來加強 Lightning Loop —— 我們的非託管潛水艇互換服務。潛水艇互換讓用戶可以交換鏈上的比特幣與閃電網絡中的比特幣(反之亦可),辦就是哈希時間鎖合約(HTLCs),它保證了原子性、消除了對手方風險。

我們也很高興分享我們在 Loop In上的技術進步,用戶現在可以將鏈上比特幣直接發送到一條閃電通道中以補充出賬容量、用於 Lightning Loop。最近的一版更新讓 Loop In 的用戶可以利用 MuSig2, 在互換的鏈下部分執行之前,提前在鏈上為 Loop In 互換注資。從終端用戶的角度看,這減少了用戶體驗的複雜性,而且可以鎖定可能的較低成本,而且支持重試,所以是增強了 Loop In 的功能性。

給 Loop 加入 MuSig2

去年,我們將是所有的 Loop 互換都升級成使用 MuSig2 簽名,這降低了所有互換的代價。MuSig2 是一種多重簽名方案,設計目的是讓比特幣交易更加高效、隱私和安全。它讓多方可以合作生成一個簽名,並且這個簽名跟放在常規單簽名交易中的沒有區別(從區塊鏈上看不出區別)。它減少了交易體積,從而降低了手續費,並且也通過隱藏參與者的數量加強了隱私性。與更早的多簽名方案相比,MuSig2 更快,而且消除了每一個步驟都需要交互通信的需要。

此外,我們還加入了 Instant Loop Out,可以立即將通道資金換成鏈上資金,無需等待區塊確認。Loop Out 互換的作用是補充通道的入賬容量。這種即時模式允許用戶預先將資金注入一個非 HTLC 的父輸出中,其子 HTLC 是虛擬化的,所以超時機制(在這個注資的時刻)還不會開始計時;因此,我們就可以提前注資,不必等到迫在眉睫。這就像支付通道會提前得到確認,遠遠早於用戶有意支付之前。

這一變更是我們的 MuSig2 和 Taproot 計劃的一部分,我們希望完全利用由這些新功能帶來的好處。計劃的第一步是簡單升級到 Schnorr 簽名,比起 ECDSA 簽名,其體積更小,因此空間效率更高。然而,由於 Taproot 的腳本設計,在一些場景中,這可能會造成更多的空間花費。所以,我們積極遷移到 MuSig2,將互換的機制從腳本執行(會在鏈上寫入互換的所有細節)轉變成合作式密鑰花費,這樣就能省去互換的細節,並且,由於使用了聚合公鑰,最終在鏈上只會留下一個簽名,也不會有腳本的執行。

更低的代價,對開發者更友好的用戶體驗

在最新版本中引入新的 Loop In 功能後,一旦 Loop In 交易在鏈上得到確認,終端用戶就能發起 Loop In,無需等待。這讓用戶可以抓住低手續費的時機注入資金,從而減少跟 Loop In 服務相關的手續費開銷。

這是通過將潛水艇互換的技術實現從一個 “2-of-2 OR HTLC(雙簽名花費,或 HTLC 花費)” 輸出變成一個 “2-of-2 OR RELATIVE-TIMEOUT(雙簽名花費或相對時間鎖過期,可以單方啟動退款)” 輸出(以及一個虛擬化的子交易)來實現的。這種新的相對時間鎖輸出,在互換時只會被花費到一個虛擬的帶有 HTLC 輸出的子交易中;即使該子交易實際用於互換,也依然可以使用合作分支,而不是將 HTLC 完全暴露在鏈上,所以互換的鏈上體積已經保持在最小規模 —— 一個簽名,沒有嵌套的交易。

這樣一來,Loop In 就獲得了額外的 MuSig2 和 Taproot 特性,服務商可以重試或取消互換,而不是隻能讓互換成功或失敗。這就消除了鏈下流動性轉移比鏈上確認更快鎖帶來的潛在故障情形,資金不會再有卡住長達一週的情形,相反,在一段時間裡,你可以無限次重試!順便說一句,取消互換是免費的。

最後,它對開發者也更加友好:一旦一個互換地址(也即 2-of-2 OR RELATIVE-TIMEOUT 輸出)建立,這個地址就不會承諾任何具體的時間或者支付哈希值,所以可以無限次使用;甚至不需要跟服務商互動也可以收款。服務商將僅在 Loop In 的用戶啟動互換時才注意到有這筆資金。這是非常有用的,在開發者不想要加載 Loop 客戶端的時候、想要從不支持閃電支付的交易所取出自己的餘額時候、希望限制放在自己的活躍通道(熱錢包)中的資金而又不想犧牲自己的閃電支付能力的時候。在互換地址的相對時間鎖過期之前,你可以隨時將這些資金轉移到閃電通道中。這就提高了靈活性,因為,你可以在資金存入的幾個月後再發起即時互換。

未來的強化

如上所述,這些特性的初步實現從手續費、重試機會以及交易時機上給終端用戶提供了更好的體驗。除了這些提升,我們也期待還能進一步加強這些特性、給用戶更多靈活性。我們已經在開發這些加強措施了,一旦 Loop In 交易在鏈上得到確認,用戶就可以:

  1. 直接開啟通道
  2. 以冷存儲的私鑰來控制這些資金,雖然它們可以隨時加入你的通道中
  3. 直接存入一個交易所或者冷錢包

從概念上來說,有了這些升級,向一個 Loop In 地址注資將不需要終端用戶犧牲任何東西,因為存入其中的資金可以用於常規的鏈上支付(不需要支付更多的手續費)。感謝 MuSig2 和 Taproot,Loop In UTXO 將升級成可以做到常規 UTXO 能做的所有事,而且開銷完全相同。最終,在未來幾個月裡,我們計劃讓這套新流程變成所有 Loop 交易的默認選項。

此外,在未來,Loop In 互換地址可以預充值足夠的資金,允許多次互換。所以,虛擬交易將變成單向的支付通道(而不是一次性的互換),用戶的簽名只是在通道中給服務商分配更多資金。

結論

總結一下,Loop In 互換地址的新模式使之可以重複使用,而這些地址都無需服務商交互就可以存入資金,兩者都大大簡化了用戶體驗。此外,用戶可以提前幾個月注入資金,供後續的互換需要;在合理使用時,這將為用戶的互換操作減少鏈上手續費代價。最後,新模式允許用戶在互換失敗時重試,從而可以提高一段時間內互換操作的最終成功率。在不遠的將來,終端用戶將能使用互換地址中的 UTXO 來注資任何鏈上操作,而不需要承擔(比常規的鏈上資金)更大的開銷,從而獲得最大的靈活性。

未來,我們還計劃使用這種的父子交易機制加入許多新的特性,甚至,我們還可以添加一筆祖父交易或其它分支啟動步驟,使之變得更加靈活。我們的主要目標是熔化互換操作的注資,從而,不再是每個用戶都每一次互換請求一個自己的輸出,而是讓用戶們在互換間共享他們的輸出,然後我們再分割這個注資輸出。簡單來說,如果兩個用戶使用 Loop IN,那麼,不再是他們各自跟服務商形成一個 2-of-2 輸出,而是三方合併成一個 3-of-3 輸出,從而 UTXO 的數量可以從 2 個減為 1 個,有了這樣的進步,我們就可以推廣到 N 個用戶的情形,從而每次互換隻會形成固定數量個輸出,意味著只要規模夠大,我們可以將形成輸出的成本削減到近乎為零。

鏈上效率只是 Loop 的其中一個考量。我們也關心其它同樣非常重要的方面,例如鏈下流動性考量、審計、手續費優化、操作安全性、自動化,等等。我們的目標是為以及將 Loop 用於真實世界商務的用戶優化體驗,並解決去中心化的閃電網絡可能遭遇的任何流動性問題。此外,我們也在積極尋求反饋,希望能加速這一切。

關於新的 Loop In 互換,想了解更多,請閱讀我們的 Loop In 說明書。我們希望與社區緊密合作以迭代這些特性,歡迎在 GithubSlack 上給我們反饋。

(完)

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論