闪电网络该如何克服再平衡问题
扫描二维码
随时随地手机看文章
在比特币最近的技术进步中,闪电网络是最雄心勃勃的项目。一旦剩下的障碍被清除,它承诺提供更快的交易,更低的费用,更宽敞的街区和更满意的钱包。
尽管闪电网络的优势是热门话题,但人们对它的障碍却知之甚少。再平衡问题是闪电网络每个节点都必须克服的挑战之一。我们将在一系列文章中阐明这个问题。
在我们开始之前,快速回顾一下闪电网络的基础知识。
支付渠道
你可能听说过支付渠道。它们是闪电网络的第一个构件。简单地说,支付通道是双方之间的管道,我们称他们为Alice和Bob,这允许他们来回发送金钱,而不需要向区块链广播交易。这些移动被称为脱机交易,并且可能是免费的,并且是即时的。
在闪电网络中,支付渠道也被设置为不可信的。Alice和Bob不需要成为朋友就能做到这一点。
首先,Alice和Bob必须打开一个支付通道。他们签署并传播一个交易。这个初始承诺的总和称为共享通道的余额,Alice和Bob各自拥有属于自己的部分。
Alice和Bob打开支付通道,分别存入2个BTC和3个BTC。
一旦打开,Alice和Bob就可以更新通道,在它们之间重新分配余额,次数不限。每次更新都需要签署一个交易,并且必须经过同意,但是不需要将其广播到网络。没有确认时间,没有开矿费。
Alice给Bob发送了一个BTC。
Alice和Bob可以通过该通道进行任意数量的支付,但是每次支付中处理的金额受发送方余额的限制。在给定时刻,Alice给Bob的钱不能超过她自己那部分余额。
Bob给Alice发送了3个BTC。她现在可以发送最多4个BTC给Bob, Bob可以支付最多1个BTC。
最后,Alice和Bob可能决定通过广播第二个交易来关闭频道。渠道中的资金被解锁并分配给Alice和Bob,与他们在关闭时各自拥有的余额成比例。
Alice和Bob关闭了他们的频道。Alice拥有4个比特币,Bob拥有1个比特币。
当通道被多次更新时,它们是有意义的。开通和关闭通道都需要进行链上交易,因此需要支付费用并等待确认时间。此外,尽管该渠道是开放的,但它们的资金是锁定的,这意味着它们不能将资金用于其它地方。如果Alice和Bob使用一个通道进行单次非链交易,他们就是在浪费金钱和时间。
HTLC
Alice可能也想和Eve 和 Dave进行交易。为了做到这一点,她可以和他们每个人都开一个频道,然后决定她将为每个频道投入多少钱。
Alice打开三个通道,每个通道提交2个BTC,总共锁定6个BTC。最初,她可以为每个频道支付最多2个BTC。
投入渠道的资金只能用于该渠道的支付。尽管Alice拥有这些比特币,但她无法用她承诺给Eve频道的钱付给Bob。Eve为了支付,她首先需要关闭现有的渠道。
Alice把钱分在太多的频道,问题是她不能给任何人一大笔钱。迟早,她将不得不关闭现有的频道,用新的频道取而代之。这将花费她的金钱和时间。
这个问题的解决方案是一种特殊的交易输出,称为HTLC。它们是闪电网络的第二个组成部分。
HTLC带来了通过几个连锁渠道汇款的可能性。这意味着可能没有必要让成对的用户在他们之间创建一个直接的通道来支付。
如果Bob、Eve和Dave连接到另一个用户Carol, Alice可以与Carol打开一个单独的通道,并将她所有的资金投入其中。她不会与任何她想要打交道的人直接联系,但这不会成为障碍。
Alice与Carol打开一个通道,并在那里提交6个BTC。最初,她最多可以支付6个比特币。
Carol是一个路由节点,将在与她连接的用户之间路由支付。让我们放大Carol, Alice和Bob,看看他们频道的状态。
Alice和Carol分别用6BTC和2 BTC共享一个通道。Carol和Bob还分别用2BTC和4 BTC共享一个通道。
Alice和Bob之间的一次支付涉及到沿途所有通道的更新。首先,Alice把钱寄给Carol更新他们的频道。然后Carol把钱寄给Bob更新他们的通道。
Alice向Carol发送一个BTC,更新通道A-C的状态。
Carol向Bob发送一个BTC,更新通道C-B的状态。
HTLC的操作是原子性的、不可信的。虽然支付分为两部分(首先Alice支付Carol,然后Carol支付Bob),但是操作要么完全执行,要么根本不执行。
再平衡
链接通道出现了一个很容易被忽略的问题。为了使整个工作正常进行,路由节点必须预先为其通道提供资金。Carol只有在她和Bob的通道中有足够多的余额时才能进行付款。
有时,路由节点将没有足够的资金来路由支付。这是因为每当节点路由支付时,其与接收方的余额减少,而与发送方的余额增加。虽然她的总金额保持不变,但她的钱分配得更不均匀。
Alice想寄2个BTC给Bob,但是这次Carol无法汇款。她只有一个BTC在她的频道与Bob。
为了保持支付的正常运行,Carol需要在平衡她的频道。在平衡是一个节点采取的战略行动,以增加其在支付通道中的余额为代价,减少其在另一个通道中的余额,从而保持路由支付。
拼接
Carol可以选择使用链上交易将她的钱从一个渠道转移到另一个渠道。要做到这一点,她必须首先关闭与爱丽丝的频道,并重新开放,留出一些资金。这个操作称为外拼接,可以在单个链上交易中完成。
Carol关闭了她与Alice的频道,并打开一个新的频道。她现在用一个BTC解锁。
以类似的方式,Carol将广播另一个交易并进行拼接。这次行动包括关闭她与Bob的频道,并用额外的资金重新开通。
Carol关闭了与Bob的通道并打开了一个新的通道,提交了额外的BTC.
总结
在平衡渠道需要资金。虽然拼接比单独关闭和打开频道要方便得多,但它们仍然涉及广播交易和支付链上费用。
因此,路由支付至少涉及两项成本:开通和关闭渠道的运营成本,以及锁定资金的财务成本。