闪电网络中的潜交换HTLC是如何工作的
扫描二维码
随时随地手机看文章
潜交换(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,没有互相信任,就没有人拿他们的钱冒险。现在你和Thomas都知道了Sandra创造的秘密,你们都可以用它作为付款的证明,因为Sandra是为了索要她的钱才泄露的。请注意,如果Sandra拒绝或不能透露这个秘密,暂停对于“回滚”付款是很重要的。
在潜交换中的HTLC
HTLC可以包括在链上和链外交易中。事实上,它们可以用于将发生在链上发送方和链外接收方之间的支付链接起来,反之亦然。这就是潜交换。
假设您想在闪电网络中付费,但不想自己手动管理通道。潜艇掉期允许你使用链上的比特币通过掉期提供商支付闪电发票。这是怎么做到的呢?
闪电商家会生成一个二维码,提示你应该让交易提供商透露你的秘密,以便获得你将向他们发送的款项。您现在可以安全地将您的比特币发送给交换提供商,创建一个链上HTLC。
交换提供商不能使用您刚刚发送给他的比特币,因为他还不知道这个秘密。相反,他会通过闪电将比特币转移到闪电商人那里,并加上一条条款,要求闪电商人必须披露资金的秘密。
闪电提供商已经知道了这个秘密,但要想得到这笔钱,他必须把它揭露出来。在这个过程中,交换提供商会了解到这一点,并要求您支付给他们的钱。交换提供商和商家都声称收到了钱,但有一个区别:当交换提供商声称收到了链上的钱时,商家会声称收到了链外的钱。
潜交换有什么用?
潜交换可能是人们通过闪电进行首次付款的最简单方式。虽然您仍然需要支付链上的费用,但是支付流类似于一个链上的支付流,并且支付可以是即时的(取决于实现)。此外,如果您只是想尝试闪电网络,那么打开通道本身也需要进行链上交易。因为我们处在闪电的早期,所以有一个方便人们尝试的入口坡道是很重要的。这就是我们在Muun Wallet中实现潜艇交易的原因。
潜交换在用户需要将部分资金从链上转移到链外的情况下也很有用,反之亦然。例如,在通过闪电成功销售一周后,商家可能需要获得链上的比特币来支付提供商。Loop Out提供了一种进行反潜交换的方法,同时重新平衡通道以获得入站容量。
最后,考虑到潜交换也可以用其他代币进行,你可以使用莱特币(Litecoin),它的费用更低,确认时间更短,可以快速支付给商家,或者为你的渠道提供更多流动性。
潜交换最初是闪电实验室的Alex Bosworth和Olaoluwa Osuntokun提出的一个想法,随着时间的推移越来越受欢迎。虽然它也有缺点,但它有一些有趣的应用程序,可以帮助网络在早期具有更大的流动性和采用率。