科普 | 闪电网络的入账容量问题

几个星期以来,比特币社区的很多人一直在评论闪电网络(Lightning Network)的 inbound capacity 问题。越来越难以收到闪电火炬,加上Bitrefill 发动了 Thor,还有LND 放出了 Lightning Loop,都让人们愈加重视这个问题。在本文中,我会解释这个问题的方式及其本源。咱们也会共享一些很容易被忽略的洞见。

本地和远端的余额

要了解入账容量,咱们得先深入了解闪电网络的第一个根本模块:付出通道。这个概念可能你在之前也听过了,所以咱们直接跳到跟入账容量有关的部分。

咱们先考虑一个单独的通道,然后慢慢进步思考的复杂度。

一个付出通道开通后,它就锁住了稳定数量的一些 btc,这个数量叫做 “通道容量”。参加付出通道的两边各自拥有这个容量的一部分。在你自己这边的余额,咱们叫 “本地余额”,而在你的买卖对手那儿的余额,叫 “远端余额”。你的本地余额和远端余额在封闭通道之前能够更新恣意次,但通道容量,假如你不封闭通道或许拼接通道,是无法改动的。

科普 | 闪电网络的入账容量问题

- 付出通道就像沙漏:尽管沙子的总量是稳定的,你能够恣意把沙子移动到其间一端。但假如你想改动里边沙子的数量,那就非打破这个沙漏不行 -

科普 | 闪电网络的入账容量问题

- 你跟 Robert 的通道里边有 8 btc,你的本地余额是 5 btc,你的远端余额是 3 btc -

每次付出,都是把你的本地余额转一些给你的买卖对手,也便是削减本地余额,增加远端余额。类似地,当你收到一笔付出时,你的本地余额增加,数额恰好等于你的远端余额削减的数额。

科普 | 闪电网络的入账容量问题

- 当你给 Robert 付出 1 btc 之后,你的远端余额增加了 1 btc -

入账和出账的容量

现在,咱们更清楚地了解了什么决议了通道的容量,以及本地和远端余额是怎么更新的,现在来想想,假如你是一个闪电网络的节点,是网络的一部分,将有何差异。

两个买卖方并没有直接相连的付出通道。可是,他们能够经过路由节点来付出。在整个付出途径上,每一次中转都要用到一个双向的付出通道。因而,咱们刚刚讲到的付出通道特性适用于每一次中转。

假定你想经过闪电网络来卖贴纸。那么,你需求与至少一个闪电网络节点建立衔接。你细心选择了一个节点,保证这个节点可能跟你的潜在客户 Sophie 和 Angela 相连。咱们把这个节点叫做 “lnTop”。

科普 | 闪电网络的入账容量问题

- 你跟 InTop 敞开了一个通道,锁入了 2 btc。你的本地余额是 2 btc,远端余额是 0 btc -

现在,Angela 想要买一些你的贴纸,并经过 lnTop 来付出。可是,你跟 lnTop 的通道中,你的远端余额是 0 呀,lnTop 并不能给你付出。因而,lnTop 无法路由这笔买卖。

在一个时刻点上,你能够收到的 btc 数量(也便是 “入账容量”),是由你的远端余额决议的。很简略嘛,假如你相连的节点只能发送 1 btc 给你,你是无法收到比 1 btc 更大的数额的。类似地,你能够发送的 btc 数量(“出账容量”)是由你的本地余额决议的。

在你决议跟 lnTop 敞开一个通道时,你需求确定自己想确定多少 btc 进去,也即你初始的本地余额是多少。lnTop 也一样,他们的选择决议了你初始的远端余额。这就有了一个重要影响。尽管你能够决议自己的初始本地余额(自己的初始出账容量),但你无法控制自己的初始远端余额(和入账容量)。

假如你今天要发动一个自己的闪电网络节点,而且只是马马虎虎地选了一个节点来敞开通道,你可能会发现,你根本没有入账容量可用,即,你压根无法经过闪电网络来收到付出。听起来对商人很不友爱,对不对?

好消息是,你有很多办法来进步自己的入账容量,比如自己先发起付出,或许请求其他节点提供容量(并付钱给他们)。这篇文章讲解了入账容量问题的不同处理方案。

就这么简略?

嗯 …… 也不是。即使你知道了自己如何能进步远端余额,可能也无法处理入账容量问题。关键在于:并非一切通道的入账容量都相同。要了解这一点,你要先了解,在付出路由的过程中,闪电网络的其它部分,发生了什么事情。咱们把上图所示网络的通道容量都划出来,这样更好了解了。

科普 | 闪电网络的入账容量问题

- 这是 lnTop 往通道里充值了 3 btc 之后的情形。在网络中,一切节点都跟自己相连的节点有专门的本地和远端余额 -

你从 lnTop 那里取得一些入账容量之后,Angela 最多也只能给你发 2 btc,由于你在 lnTop 那里的入账容量超过了 2 btc,但 lnTop 在 Angela 处的入账容量只要 2 btc。

可是,在这个网络里,Sophie 就无法给你发送 1 btc。你能够看看 Sophie 给你付出的途径上的通道容量状态,你的确有 3 btc 的入账容量,但 lnTop 没有 lnFirst 的入账容量。

关于付出,每个参加路由的节点和你(接收方)都必须跟上一个节点有满足的入账容量。所以,尽管你能处理跟相邻节点 lnTop 的入账容量问题,但 lnTop 可能跟相邻的节点没有满足的入账容量。Lightning Labs 的闪电网络基础设施总监 Alex Bosworth 几周曾经指出了这个问题。

还有一个现实,让这个问题很难处理。那便是,“提醒一切节点的本地和远端余额” 这件事,在闪电网络上是做不到的。作为网络中的一个节点,你只知道通道容量,并不知道这部分容量在两个参加者之间是如何散布的。

谁会受这个问题影响?

闪电网络中,并非一切的节点都有相同的需求。从上面的比如中,咱们能够辨认出至少 3 类节点。商家节点

咱们用 “商家节点” 来称呼那些首要是收账的节点。在上面的比如中,“你” 便是一个收账节点,由于你最关怀的便是收到贴纸买家的付出。因而你需求入账容量。记住:不只你要有满足的入账容量,买家到你的整个付出途径上的节点都必须有满足的入账容量才行。终端用户节点

这些节点首要运用闪电网络来发账。偶尔他们会从朋友或许闪电应用处收到钱。Sophie 和 Angela 都是终端用户。关于这个群体,关键是要连上资金充足而又与商家相连的节点。他们既需求入账容量,也需求出账容量,全看他们在特定时刻的需求。路由节点

这些节点是路由付出并从中赚取手续费的节点。LnTop 和 lnFirst 都是这样的节点。他们的作业是发现有需求的收款方,比如你,小镇上最大的贴纸商家。对终端用户,他们需求满足的入账流量;对商家,他们需求出账容量。此外他们还得跟市场上的其他服务商竞争,要保证自己总是在线。赚点钱不容易,对吧?

定论

咱们从单一通道开始评论,讲解了网络内通道的特色,终究运用 “节点信息全公开” 的假定评论了入账容量问题。

咱们将入账容量定义为给定时刻点在闪电网络中你能够收到的 btc 数量,并推论了它依赖于你的远端余额。

入账容量问题可能是闪电网络在发动阶段会遇到的问题。因而,假如流动性在整个网络中的散布更充沛、更好,问题将减轻。咱们会继续撰文探讨闪电网络在早期会遇到的问题。

(完)

视野开拓

A stable ad democatic society is impossible without a miimum degee of liteacy ad kowledge o the pat of most citizes ad without widespead acceptace of some commo set of values. Educatio ca cotibute to both. I cosequece, the gai fom the educatio of a child accues ot oly to the child o to his paets but also to othe membes of the society. The educatio of my child cotibutes to you welfae by pomotig a stable ad democatic society. It is ot feasible to idetify the paticula idividualso families) beefited ad so to chage fo the sevices edeed. Thee is theefoe a sigificat “eighbohood effect.”-《资本主义与自由》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注