Проблема входящей пропускной способности в сети LightningПеревод статьи
https://blog.muun.com/the-inbound-capacity-problem-in-the-lightning-network/Автор FLORENCIA RAVENNA 17 апреля 2019
Локальный и удаленный балансПотребность во входящей емкости транзакций можно понять только при более внимательном рассмотрении первого блока Lightning Network. Возможно, вы слышали об этом раньше, поэтому давайте перейдем непосредственно к аспектам, связанным с входящей пропускной способностью. Сначала мы расскажем об одном канале отдельно и увеличим количество взаимодействий на протяжении всего поста.
Пока платежный канал открыт, в нем заблокировано постоянное количество биткойнов. Это называется пропускной способностью канала . Обе стороны канала владеют частью этой пропускной способности. Сумма на вашей стороне канала называется
локальным балансом, а сумма на стороне партнера -
удаленным балансом . Ваш локальный и удаленный баланс может быть изменен много раз, без закрытия канала, но пропускная способность канала не может измениться, не закрывая или соединяя его с другими.
Это как песочные часы: хотя общее количество песка в нем фиксировано, вы, безусловно, можете перемещать песок между верхней и нижней частью. Если вы хотите изменить количество песка в нем, вам нужно разбить песочные часы.Ваш канал с Робертом имеет пропускную способность 8 BTC. Ваш локальный баланс составляет 5 BTC, а удаленный - 3 BTC.
Каждый раз, когда вы делаете платеж, вы переводите часть своего локального баланса на счет вашего партнера. Это уменьшает ваш локальный баланс и увеличивает ваш удаленный баланс. Точно так же, когда вы получаете платеж, ваш локальный баланс увеличивается на ту же сумму, что и ваш удаленный баланс.
Когда вы платите Robert 1 BTC, ваш локальный баланс уменьшается на 1 BTC, а ваш удаленный баланс увеличивается на 1 BTC.
Входящая и исходящая емкостьТеперь, когда у нас есть более четкое понимание того, что определяет пропускную способность канала и как обновляется локальный и удаленный баланс, давайте подумаем о том, что происходит, когда вы являетесь частью сети подключенных узлов.
Два партнера не должны быть напрямую связаны, чтобы платить друг другу. Вместо этого они могут платить через узлы маршрутизации . В каждом движении платежа всегда есть двусторонний канал оплаты. Поэтому то, что мы только что увидели для одного канала оплаты, применимо к каждой транзакции.
Предположим, вы хотите продавать наклейки через сеть Lightning. Поэтому вам необходимо подключиться хотя бы к одному узлу сети Lightning. Вы выбираете это тщательно, убеждаясь, что это связано с вашими потенциальными клиентами, Софи и Анжелой Давайте назовем этот узел LnTop.
Вы открываете канал с помощью lnTop и блокируете 2 BTC. Ваш локальный баланс составляет 2 BTC, а ваш удаленный баланс - 0 BTC.
Теперь Анжела хочет купить наклейки и заплатить через LnTop. Но ваш удаленный баланс с LnTop равен 0, и LnTop не может отправить вам деньги. LnTop не может быть маршрутом для платежа.
В данный момент сумма денег, которую вы можете получить , или
входящая емкость , ограничена вашим удаленным балансом. Вы просто не можете получить больше денег, чем то, что ваши соседние узлы могут отправить вам. Точно так же сумма денег, которую вы можете отправить , или
исходящая емкость , ограничена вашим локальным балансом.
Когда вы открыли канал с LnTop, вы решили, сколько биткойнов вы хотите заблокировать в нем, т.е. ваш первоначальный локальный баланс. Точно так же, если lnTop откроет канал с вами, он определит ваш первоначальный удаленный баланс. Это имеет важные последствия. Хотя выбор первоначального локального баланса позволил вам определить начальную пропускную способность, вы не контролировали
первоначальный удаленный баланс или входящую емкость.
Если вы запустите свой узел Lightning сегодня и просто откроете канал для другого узла по вашему выбору, вы, вероятно, обнаружите, что у вас нет входящей емкости, т.е. вы не можете получать платежи через сеть Lightning. Похоже, огромная проблема для торговцев, верно?
Хорошая новость заключается в том, что существует несколько способов увеличить входящую емкость: от простого расходования денег до запроса (и оплаты) другим узлам на его предоставление. В этом посте рассматриваются различные решения проблемы входящей емкости.
Вот такНу ... нет, это не так. Даже если вы выясните, как получить достаточный удаленный баланс на вашем канале с помощью lnTop, проблема входящей емкости может быть не решена. Вот в чем дело: не все входящие возможности одинаковы. Чтобы понять причины этого, нам нужно больше информации о том, что происходит в остальной части сети. Давайте раскроем локальный и удаленный баланс всех узлов в сети, чтобы лучше понять, как движутся деньги.
Вот сеть после того, как lnTop финансирует канал на 3 BTC. В сети каждый узел имеет локальные и удаленные балансы с соседними узлами.
После получения некоторой входящей емкости с помощью lnTop, Анджела может отправить вам до 2 BTC, потому что у вас есть как минимум 2 BTC удаленного баланса с lnTop, а lnTop имеет как минимум 2 BTC удаленного баланса с Angela.
Анжела отправляет вам 1 BTC и балансы обновляются. Она все еще может отправить вам еще 1 BTC.
Однако в этой сети Софи даже не может отправить вам 1 BTC. Если вы посмотрите на маршрут между Софи и вами, вы увидите, что, несмотря на то, что у вас есть 3 BTC в качестве удаленного баланса, у lnTop нет входящей емкости с lnFirst.
lnFirst не может перенаправить 1 BTC платеж в lnTop. Софи не может заплатить тебе.
Для входящих платежей каждый узел маршрутизации и вы (получатель) должны иметь достаточную пропускную способность по сравнению с предыдущим соседним узлом. Таким образом, хотя вы могли бы решить входящую емкость со своим соседним узлом, lnTop, то lnTop может не иметь хорошей входящей емкости со своими соседними узлами.