潛交換(Submarine Swaps)已經討論了幾周,在產品和服務中已經有一些有趣的實現。
要理解潛交換,我們首先需要討論HTLC: 哈希時間鎖定合約。它們比看上去的更容易理解。而且,好的一面是,理解HTLC不僅是理解潛交換的關鍵,而且是理解閃電網絡本身。
HTLC作為構建塊
假設你是一個自豪的比特幣擁有者,你把它發送到一個屬于你朋友馬丁的地址。為了使用比特幣,馬丁需要證明他擁有該地址的對應私鑰。這就是比特幣在基本層面的運作方式: 馬丁證明他有鑰匙,他就可以花錢。
我說的“基本水平”是因為你可以為馬丁增加更多的條件來使用比特幣。您可以添加一個條件,即馬丁必須在給定的時間內公開某個秘密。當時間到了,比特幣可以被另一組密鑰使用,比如你自己的一些密鑰。
這個秘密從何而來?秘密是馬丁或其他人在網絡上創造的一條信息。如果馬丁自己創造了這個秘密,他當然會在付款的那一刻就知道了。如果是別人創造的,馬丁需要找出其中的秘密。
無論如何,只要馬丁知道了這個秘密,他就會把比特幣花掉,這意味著把錢寄到他自己的另一個地址就可以防止超時被激活,這是有道理的。因為隨后我們將要求索賠。
簡而言之,這就是HTLC:它是一種合同,要求交易中的接收者在一定的時間內證明他們知道某個特定的秘密,以便使用這筆錢。
事實證明,添加這個條件可以實現一個非常有趣和有用的特性:鏈接支付的能力。這最初可能與鏈上交易無關,在鏈上交易中,您可以在任何時候直接向最終收件人付款,但是在閃電網絡中非常有用,因為在閃電網絡中,能夠直接向每個人付款的效率非常低。
因為在路由網絡(如閃電網絡)的上下文中更容易理解HTLC的用途,所以我們將首先看到一個離線支付的例子。但是,請記住,HTLC同時適用于鏈上和鏈外交易。它們甚至可以在其他區塊鏈上工作,比如萊特幣。
閃電網絡中的HTLC
假設您想向Sandra支付1個BTC,但是您沒有與她共享一個支付通道。相反,Thomas和你們兩個都有渠道,會把錢轉過去。在這個支付鏈中會出現什么問題呢?
沒有HTLC,根據誰先付款,可能會出現兩種情況:
如果你先付錢給Thomas,相信他會再付錢給Sandra,Thomas可能會搶走你的資金。
如果Thomas先付錢給Sandra,你就可以讓Thomas為你支付費用。
使用HTLC, Sandra可以創建一個只有她知道的秘密,并告訴你將比特幣安全發送給Thomas,并添加一個條款,為了使用比特幣,Thomas需要在一段時間內知道這個秘密。如果他不這么做,你就可以把比特幣花掉。Sandra會在二維碼中給你這個指示,并附上她給你看的快速發票。她可以在不泄露秘密的情況下做到這一點,因為有一個有趣的特性:即使事先不知道秘密,你也會知道Thomas在泄露她創造的秘密。
現在Thomas可以給Sandra寄一個比特幣了,而且還包含了同樣的條款:要花掉它,她需要在一段時間內知道秘密。Sandra已經知道了這個秘密,她可以馬上要錢。Sandra透露了這個秘密,Thomas知道了,Thomas可以認領你發給他的比特幣。
結果是你通過Thomas成功地支付給Sandra,沒有互相信任,就沒有人拿他們的錢冒險?,F在你和Thomas都知道了Sandra創造的秘密,你們都可以用它作為付款的證明,因為Sandra是為了索要她的錢才泄露的。請注意,如果Sandra拒絕或不能透露這個秘密,暫停對于“回滾”付款是很重要的。
在潛交換中的HTLC
HTLC可以包括在鏈上和鏈外交易中。事實上,它們可以用于將發生在鏈上發送方和鏈外接收方之間的支付鏈接起來,反之亦然。這就是潛交換。
假設您想在閃電網絡中付費,但不想自己手動管理通道。潛艇掉期允許你使用鏈上的比特幣通過掉期提供商支付閃電發票。這是怎么做到的呢?
閃電商家會生成一個二維碼,提示你應該讓交易提供商透露你的秘密,以便獲得你將向他們發送的款項。您現在可以安全地將您的比特幣發送給交換提供商,創建一個鏈上HTLC。
交換提供商不能使用您剛剛發送給他的比特幣,因為他還不知道這個秘密。相反,他會通過閃電將比特幣轉移到閃電商人那里,并加上一條條款,要求閃電商人必須披露資金的秘密。
閃電提供商已經知道了這個秘密,但要想得到這筆錢,他必須把它揭露出來。在這個過程中,交換提供商會了解到這一點,并要求您支付給他們的錢。交換提供商和商家都聲稱收到了錢,但有一個區別:當交換提供商聲稱收到了鏈上的錢時,商家會聲稱收到了鏈外的錢。
潛交換有什么用?
潛交換可能是人們通過閃電進行首次付款的最簡單方式。雖然您仍然需要支付鏈上的費用,但是支付流類似于一個鏈上的支付流,并且支付可以是即時的(取決于實現)。此外,如果您只是想嘗試閃電網絡,那么打開通道本身也需要進行鏈上交易。因為我們處在閃電的早期,所以有一個方便人們嘗試的入口坡道是很重要的。這就是我們在Muun Wallet中實現潛艇交易的原因。
潛交換在用戶需要將部分資金從鏈上轉移到鏈外的情況下也很有用,反之亦然。例如,在通過閃電成功銷售一周后,商家可能需要獲得鏈上的比特幣來支付提供商。Loop Out提供了一種進行反潛交換的方法,同時重新平衡通道以獲得入站容量。
最后,考慮到潛交換也可以用其他代幣進行,你可以使用萊特幣(Litecoin),它的費用更低,確認時間更短,可以快速支付給商家,或者為你的渠道提供更多流動性。
潛交換最初是閃電實驗室的Alex Bosworth和Olaoluwa Osuntokun提出的一個想法,隨著時間的推移越來越受歡迎。雖然它也有缺點,但它有一些有趣的應用程序,可以幫助網絡在早期具有更大的流動性和采用率。
評論
查看更多