引介

闪电网络的缺环:一个去中心化的流动性市场

曾汨   |     |   859 次阅读

Default featured image huge

1

Liquidity ads (ad 字面意义为 “广告”)是一个最近在 c-lightning v0.10.1 中实现的规范,是闪电网络的一个重要补充。它体量虽轻,却能让网络以去中心化的方式在网络中协调流动性部署,并保证可访问性。

Liquidity ads 解决了通过闪电网络来接收支付的一个常见问题:从何处以及如何获得入账流动性(inbound liquidity)。

实际上,补充 入账 流动性,是闪电网络中每个节点或多或少都要面对的问题。

为什么入账流动性很重要

无论是要接收支付,还是路由支付,入账流通性都极为重要。

你的入账流动性总量,就是你能在闪电网络中接收的支付额的上限;这对于使用闪电网络的 供应商/服务商 来说,重要性不言而喻;对于普通的节点来说,也关系到可以获得的路由费总数。

总而言之,入账流动性的作用是:

  • 在闪电网络中接受流动性
  • 赚取路由费

入账流动性与路由费

在闪电网络中赚取路由费就是通过转介支付交易来获得手续费。这部分收获会累加在你的节点的通道的本地余额(local balance)中。

也就是说,你的闪电网络余额,会随着你把入账流动性转化为出账流动性而增加,且这一过程会在所有通道中发生。

这里,我们来考虑一个假想的例子,一个路由节点靠转介支付交易来赚取手续费。我们来看看他可以获得的路由手续费的数量,是如何被通道开启时的入账容量所限制的。

我们假设,这个节点一开始有两个通道,通道的余额使得支付交易可以在两个通道间穿梭,这个节点(<Node>)则居中路由。他的通道分别有 1000 聪的入账容量和 1000 聪的出账容量。

1000sats <----->  0sats <Node> 1000sats <-------> 0sats

<Node> 为两个通道设置了 100 聪(sat)的 “路由费”,也就意味着,每次有支付交易经过,<Node> 就要收取 100 聪。

如我们所见,随着转介次数的增加,节点的通道费将逐渐侵蚀其路由能力 —— 因为他净赚了转移资金的费用。

简单演示一下。假设我们通过这两个通道来回发送支付,每支付一次,都要给 <Node> 支付 100 聪。

那么,在开始时:

1000sats <----->  0sats <Node> 1000sats <-------> 0sats

然后我们用这两个通道来回发送支付交易。每一次我们都支付最大可支付的数额,所以第一笔我们支付 1000 聪,减去 100 聪的手续费之后,接收方得到 900 聪。

0sats <-----> 1000sats  <Node> 100sats <-------> 900sats. Payment of 900sats
  800sats <-----> 200sats <Node> 1000sats <-------> 0sats.  Payment of 800sats
  0sats <----->  1000sats <Node> 300sats <-------> 700sats. Payment of 700sats
  600sats <-----> 400sats <Node> 1000sats <-------> 0sats.  Payment of 600sats
  0sats <----->  1000sats <Node> 500sats <-------> 500sats. Payment of 500sats

  400sats <-----> 600sats <Node> 1000sats <-------> 0sats.  Payment of 400sats
  0sats <----->  1000sats <Node> 700sats <-------> 300sats. Payment of 300sats
  200sats <-----> 800sats <Node> 1000sats <-------> 0sats.  Payment of 200sats
  0sats <----->  1000sats <Node> 900sats <-------> 100sats. Payment of 100sats

经过这么多次转介之后, <Node> 就没法在转介支付交易了。这个节点路由了 9 笔支付交易。

一开始,节点有 1000 聪的出账容量(也就是自己能花的钱)和 1000 聪的入账容量。

在转介了 9 笔支付交易之后,节点现在拥有了 1900 聪的出账容量和 100 聪的入账容量。

通过转介支付交易,你成功用这对状态通道赚到了 900 聪。我们的节点如果还想继续做路由交易的生意的话,就需要更多的入账容量了。

让流动性可获取、更便宜

某种程度上来说,每个节点都需要入账流动性。

因为这是运行一个闪电网络节点的基础部分 —— 只有节点能获得入账容量之时,闪电网络对他才有意义。

现在,补充入账容量有很多办法:

  • 使用闪电网络来买一些东西,可以获得入账容量
  • 使用像 Lightning Labs 的 Loop 或是 Boltz 这样的 loop out 服务,可以将资金从你的闪电网络节点推回你的链上钱包
  • 与朋友合议开启一个余额充足的通道
  • 使用第三方的布告栏(bulletin board)比如 LightningNetwork.plus
  • 从已知的服务商比如 LNBig 的流动性服务处购买入账容量
  • 找一个愿意通过中心化拍卖来出租入账容量给你的人

Liquidity ads 与这些方法都不相同:你是通过闪电网络的 gossip 网络找出节点来租用入账容量。

Ads (广告)是去中心化的,任何拥有一个公开通道的节点都可以创建一个并发送给网络上的每一个节点。租用广而告之的流动性非常简单,就是跟发布广告的节点开启一个通道。你也知道跟你开启通道的人是谁 —— 在开启租用之前,你可以看到对方都有哪些通道。

流动性不是同质化的

在闪电网络上,流动性不是同质化的,它们是嵌在网络中的,而网络由节点和他们的通道余额组成。

在一个流动性网络中,没有两条意义完全相同的通道 —— 每个通道都是独一无二的,连接起了网络的不同部分。新的通道对闪电网络通道图的影响也不完全相同。一个新加入的节点处在网络的哪个位置、最短路径的启发,也会因他连上的节点而有所不同。

换句话说:新创建的每个通道,都对一个节点在网络图谱中的位置有完全不同的影响。连上某个节点的一条新通道,可能让这个节点迅速靠近中心;而连上另一个节点可能对此毫无帮助。

如果不知道一条新的通道会在网络图谱的哪个位置,为这笔新的入账流动性定价是很难的。即使善意的第三方会尝试给不同对等节点的价值 “评级”,也很难准确估计来自一个未知节点的入账资金的价值。实际上,分辨具有哪些属性的节点是值得分配流动性与之建立通道的,仍然是一个未有定论的问题

估计价值的困难,同样也使人们难以辨别哪些入账流动性是有价值的。

举个例子,如果我的节点在广告流动性,你怎么知道该给我付多少钱呢?

这个问题的答案会因节点而异,因为我所提供的流动性的价值,也部分取决于你的节点当前的流动性情形以及通道图谱中,你我的节点的相对位置。

我希望能看到一些服务商为不同的节点广告提供实时估价,并为谋求租用入账容量的节点量体裁衣。

权衡

Liquidity ads 是一种强大、轻量的方法,可协助入账流动性在闪电网络所有节点间的部署。然而,关于布告栏方法,仍有一些要点需要强调。

优点:

  • 只需提交一笔链上交易来租用入账流动性。不需要将资金预先锁定在拍卖账户中。
  • 任何带有一个公开通道的节点都可以创建一个广告。
  • 在租用开始之前,你可以知道自己的通道对手的情形。
  • 租用可持续一个月(4032 个区块)
  • 部分租用条款可在链上强制执行 *
  • 通道对手会为租用资金转介支付交易的手续费承诺一个上限

缺点:

  • 无法保证流动性可用。对手可能用尽了资金,或者无法为你提供足够的数额
  • 出租资金的节点必须提前决定资金的费率(没有即插即用的拍卖机制来决定它的价格)。不过,这可以通过第三方服务来缓解,他们可以帮助你拍下可用流动性,然后用 dual-funded/liquidity ad 来执行。
  • 流动性的市场可能更为碎片化,因为任何人都可以在任何时间向你请求流动性。
  • 你必须自己调查为你提供流动性的对等节点。

* 租用的资金会用 CSV(相对时间锁)锁在一个 to_remote 输出中。

要了解关于中心化的流动性池拍点与 Liquidity ads 规范的区别,可见 Bitcoin Optech 在 7 月 28 日的推送

立即使用 Liquidity Ads

c-lightning 刚刚放出的 v0.10.1 版本已经包含一个 liquidity ads 提议草案的实现。

想连接如何使用、如何发布广告、如何租用资金,请见此处

(完)


原文链接: https://medium.com/blockstream/lightnings-missing-piece-a-decentralized-liquidity-market-a0bb47534a4f
作者: Lisa Neigut
翻译: 阿剑


你可能还会喜欢:

闪电网络的入账容量问题

有关闪电网络的常见疑问

闪电网络中的 Submarine Swap

 
0 人喜欢