閃電網絡中的 Submarine Swap
有關 submarine swap(“潛水艇互換”)的討論已經持續好一段時間了,而且已經出現了有意思的產品和服務。那么,Submarine Swap 到底是什么,又是怎么工作的呢?本篇文章就要講解這個問題。
要理解 submarine swap,我們先要知道什么是 HTLC:哈希時間鎖合約。名字很唬人,但實際上很容易理解。而且,理解 HTLC 不僅僅是理解 submarine swap 的關鍵,也有助於理解閃電網絡本身。
哈希時間鎖
假如你是高貴的 Bictoiner,擁有 1 btc,你把一些錢轉給了你的朋友 Martin 持有的地址。(得到你的支付之後)在花費這些比特幣時,Martin 需要證明自己擁有這個地址所對應的私鑰。這就是比特幣最基本的工作形式:Martin 證明自己擁有私鑰,然後就能花費那些錢。
我之所以說這事 “最基本的工作形式”,是因為你可以給 Martin 的使用行為添加更多的約束條件。實際上,你可以加入條件,要求 Martin 必須在一段時間內提供一個特定的祕密數據,否則就不能花這筆錢。一旦超時,這筆比特幣就只能用另一組密鑰(比如你自己的密鑰)來使用了。
這個祕密數據是怎么來的?始作俑者是誰?這不是太重要。只有一點區別,如果這個數據是 Martin 自己創造的,那在使用這筆資金時就不會遇到任何障礙。但如果這個數據是別人創造的,那 Martin 就只有找到這個人、要到這個數據之後才能使用這筆資金。
無論如何,只要 Martin 知道了這個祕密數據,他就會盡快花掉這筆錢,哪怕是發給自己持有的另一個地址也好,以免超時。我們把這個動作叫做 “申領資金”。
你看,這就是所謂的哈希時間鎖合約了:它是一個要求資金的接收方在一段時間內證明自己知道一個特定的數值,否則就無法花費這筆錢的合約。
事實證明,可以增加這種條件,讓許多非常有趣且有用的功能得以實現,其中之一就是 “連鎖支付”。這種功能對鏈上的交易來說可能用處不大,因為你畢竟可以把錢直接支付給最終的接收方。但對閃電網絡來說就非常有用,因為閃電網絡是由一對一的支付通道組成的,要讓每個人都能給另一個人直接支付是非常低效的。
因為在路由網絡(比如閃電網絡)的語境下會更容易理解 HTLC 的作用,我們會先看一些鏈下支付的例子。不過,請記住,HTLC 在鏈上和鏈下交易中都能實現。甚至在別的區塊鏈,比如萊特幣中,也能實現。
哈希時間鎖在閃電網絡中的作用
假設你要給 Sandra 支付 1 btc,但你們之間沒有支付通道;只有 Bob 跟你們倆都分別开設了一個支付通道,可以轉發你的支付給她。這種連鎖支付會遭遇什么問題呢?
如果沒有哈希時間鎖,事情可能在兩個環節失控,就取決於誰先支付了”
但如果有了哈希時間鎖,Sandra 可以生成一個只有自己知道祕密數據,然後告訴你可以放心地轉账給 Thomas,只是這筆資金有一個附加條款,Thomas 必須能在給定時間公开這個祕密數值,否則這筆錢會重新回到你手上。Sandra 可以在閃電網絡收款請求中使用二維碼給你這個指示。她完全無需把祕密數值透露給你,因為,即使你對這個數值一無所知,也可以知道 Thomas 公开了 Sandra 的數值(錢會被取走)。
現在 Thomas 可以給 Sandra 發送 1 btc,但是附上了一摸一樣的條款:Sandra 必須在給定時間內揭示這個祕密數據。Sandra 自己知道這個數據,因此當然可以取走這個錢。然而,在她申領資金的那一刻,這個祕密也隨之暴露,Thomas 也就知道了這個數值,因此可以申領你給他的資金了。
結果就是,你成功通過 Thomas 支付給了 Sandra,無需信任他們,也沒有人會面臨風險。現在你和 Thomas 都知道了 Sandra 所生成的祕密值,你也可以用它作為一種 支付證明,因為 Sandra 揭示它就獲得了支付給她的資金。注意,這裏的的超時機制是很重要的,它充當了應對 Sandra 拒絕或不能揭示這個祕密值時候的 “退款” 措施。
Submarine swap 中的哈希時間鎖
哈希時間既可以用在鏈上交易中,也可以用在鏈下交易中。實際上,它可以用在鏈上的支付方和鏈下接收方之間的連鎖支付中,反過來也可以。這就是所謂的 “潛水艇互換”。
假設你想在閃電網絡中為某事支付,到又不想自己手動管理一個通道。那么 submarine swap 讓你可以使用鏈上的比特幣給閃電網絡的收款請求支付,只需通過一個 “互換服務提供商”。這是怎么做到的呢?
閃電網絡的收款方可以生成一個二維碼,來提示你設置給予互換服務提供商的資金的申領條件。這樣你就可以放心地在鏈上把比特幣發給互換服務提供商,附上哈希時間鎖。
互換服務提供商沒法立即使用你發給他的錢,因為他還不知道哪個祕密值。相反,他要通過閃電網絡給收款方轉账,附帶一摸一樣的申領條件,要求收款方公开這個祕密。
收款方知道這個祕密數值,但要領走這筆資金就只能暴露這個祕密,這時候,服務商也就知道了這個祕密,可以申領你支付給他的資金了。服務商和收款方皆大歡喜,區別只在於服務商要在鏈上申領資金,而收款方在鏈下申領。
潛水艇互換有什么用?
潛水艇互換可能是人們嘗試閃電網絡支付最簡單的手段。雖然你還是要支付鏈上手續費,整個支付流程也很像鏈上支付,但收款方可以是即時到账的(跟具體的實現有關)。如果你想开一個閃電網絡通道,也需要發起一筆鏈上交易。考慮到我們現在還在閃電網絡早期,有一個易於上手的玩法是很重要的。這也是為什么我們在 Muun Wallet 中實現了潛水艇互換。
潛水艇互換對於想把部分資金從鏈上轉移到鏈下(或者反之時),也很有用。舉個例子,靠閃電網絡來收账一周之後,店家可能需要一些鏈上的比特幣來償還账款。Loop Out 提供了一種支持反向潛水艇交換的方法,執行時可以重新調整通道內的余額平衡並獲得入账容量。
最後,給定潛水艇互換也可以在其它鏈上實行,你可以使用其它幣,比如萊特幣(手續費更低且上聯速度更快)來做閃電支付,或者給自己的通道提供更多流動性。
潛水艇支付的觀念來自 Lightning Labs 的开發者 Alex Bosworth 和 Olaoluwa Osuntokun,如今獲得了越來越多的熱度。雖然不無缺點,它可以幫早期的網絡解決兩大問題:流動性和接受度。
有關閃電網絡,這裏還有一些閱讀材料:
Rebalancing: The Key to the Lightning Network
Rebalancing in the Lightning Network: Circular Payments, Fee Management and Splices
How Splices Impact Lightning Network Fees
The Inbound Capacity Problem in the Lightning Network(中文譯本)
原文鏈接: https://medium.com/muunwallet/a-closer-look-at-submarine-swaps-in-the-lightning-network-4417a2e8f93c
作者: Florencia Ravenna
翻譯: 阿劍
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
Uniswap公告Unichain主網明年初上線!首測路線圖兩功能,UNI強彈17%
去 中心化交易所(DEX)龍頭 Uniswap 於 10 月宣佈推出專為 DeFi 設計的 Lay...
下周必關注|LayerZero決定是否开啓“費用开關”;Aligned空投注冊結束(12.23-12.29)
下周重點預告 12 月 23 日 Aligned 將向 891322 個地址空投 26% 的 AL...
空投周報 | OpenSea基金會官推上线;Azuki、Doodles疑似即將發幣(12.16-12.22)
@OdailyChina @web3_golem Odaily星球日報盤點了 12 月 16 日至...
資金費率的演變:從2021年黃金時代,到2024-2025年套利復興
資金費率起源 資金費率起源於加密貨幣衍生品市場,特別是從永續期貨合約中發展而來。它作為一種機制,用...