June 20, 2022

Ликвидность в платёжной сети Lightning

Авторы: @Traffic_Rockstar, @notgeld

Также, для операторов узлов есть материал Руководство по управлению ликвидностью в сети Lightning

Ликвидность в Lightning Network, как это работает?

В LN-каналах есть сатоши (самая маленькая частичка биткоина) на локальной или удаленной стороне (Джима или Боба).

https://cryptopotato.com/what-is-lightning-network-beginners-guide/

Сатоши на локальной стороне называются "исходящей ликвидностью", это именно те сатоши, которые владелец может контролировать и отправлять. Сатоши на удаленной стороне канала называются «входящей ликвидностью» — это те саты, которые контролирует ваш партнер при открытии канала на его другой стороне и через которые вы можете получать саты на свою сторону. При открытии простого канала, все сатоши при этом остаются на стороне открывающего. Чтобы получать сатоши посредством Lightning Network, пользователю нужно иметь некоторое количество сатоши на удаленной стороне какого-либо канала, иначе называемого «входящей ликвидностью». Например, на картинке ниже узел E не сможет получить платёж, поскольку ни один узел, связанный с Е, не имеет никакой исходящей ликвидности в его сторону.

Граф ёмкостей. Стрелка указывает возможное движение некоторого количества сатоши от одного узла графа к дроугому. https://www.21ideas.org/theory-ln-lightning-inbound-liquidity-problem/

Проблема ликвидности

Ключевой проблемой ликвидности в сообществе называют недостачу средств в канале для той или иной нужной стороны: получателя и отправителя. Также из-за проблем с ликвидностью, с учетом роста сети, происходит достаточно много отказов в платежах. В сети банально не хватает ликвидности, а ликвидность, которая есть у пользователей, распределяется неправильно. Операторы узлов теряют доход всякий раз, когда платеж не проходит. Комиссионные за маршрутизацию — это доход операторов, и допущение неудачных платежей — лишает их капитала, а также лишает сеть реинвестирования.

"Уровни" протокола Биткоин: Джим и Боб не обязательно могут иметь прямой канал, но могут быть связаны маршрутом внутри сети
https://www.opennode.com/blog/bitcoin-on-chain-lightning-explained/

До того как разработчики создали инструменты по получению ликвидности, этот вопрос стоял "ребром", ведь получить ее было действительно сложно. Но со временем ситуация изменилась к лучшему. Сейчас уже существует множество сервисов, решающих эту проблему и автоматизирующих этот процесс.

Входящую ликвидность получить легче, чем исходящую, поскольку входящая ликвидность — это предоставленная ликвидность на другой стороне, и ее могут поставить в том числе и крупные держатели каналов. Исходящая ликвидность же ограничена имеющимися у владельца сатами. Каждый раз, когда пользователь что-то покупает, тратя свои сатоши, он автоматически получает это количество входящей ликвидности. Но если, установив кошелёк, пользователь совсем не имеет ни биткоинов ни сатоши, для него будет невозможно открыть канал и начать пользоваться Лайтнинг.

Когда совсем нет биткоинов, чтобы открыть канал, можно пользоваться кастодиальными кошельками или кошельками с поддержкой "хост-каналов", это вариант решения полного отсутсвия ликвидности: в этом случае сатоши можно заработать, оказывая полезные услуги тем, у кого они есть. Читайте далее практическое руководство из 4 шагов: Bitcoin Lightning за 5 минут для веселья и заработка

Решение проблемы

Самый прямой способ получения исходящей ликвидности в Лайтнинг это открытие канала с помощью своих биткоинов к какому-либо узлу, работающему в сети. Затем, потратив половину на товар или услугу, можно “сбалансировать” канал и таким образом приобрести входящую ликвидность. Помимо этого очевидного и простого способа существуют также сервисы и автоматизированные протоколы.

Например, так называемый сплайсинг эффективно делает пропускную способность канала переменной, а не фиксированной, что помогает Провайдеру ликвидности в Лайтнинг (также LSP -- Lightning Service Provider) перераспределять средства, сохраняя при этом удобство для пользователей. Другое решение PeerSwap так же отлично подходит для этой цели. В нём здесь состоит в том, чтобы избежать открытия дополнительных каналов и ребалансировки с несколькими переходами, последнее из которых часто выводит каналы других узлов из равновесия и ставит под угрозу естественные платежные потоки. Вместо этого PeerSwap предлагает способ увеличить входящую ликвидность, просто выполнив атомарный своп в цепочке.

Благодаря инструментам ликвидности, таким как Lightning Pool или Liquidity Ads, и технологиям ребалансировки, таким как PeerSwap и сплайсинг, у нас есть базовый набор инструментов, чтобы начать распределять ликвидность рационально и профессионально, как будто от этого зависят наши средства к существованию.

Как получить входящую ликвидность?

Существует множество способов получить и увеличить входящую ликвидность:

  • иметь или платить за то, чтобы кто-то другой открыл вам канал, чтобы сатоши находились на удаленной от вас стороне канала
  • открыть сбалансированный канал, чтобы контрагенты с равным количеством сатош находились по обе стороны канала
  • отправить локальные сатоши LN на другой узел, которым вы управляете самостоятельно, или в другой канал по специальному "обходному" пути
  • отправить сатоши LN сервису атомарных свопов (submarine/atomic swaps), где раскрытие платёжного секрета приводит к тому, что они получают ваши сатоши LN, а вы получаете встречную транзакцию в сети с минимальным доверием, т.е. ончейн.
  • отправить сатоши LN на другой кошелек, которым вы не управляете непосредственно (например, биржа, кастодиальный кошелек), что позволяет вам вывести средства на другой адрес в сети и "опустошить" канал
  • кто-то может заплатить вам, открывая новый канал и переведя часть средств на вашу сторону
  • после открытия канала сделайте платеж кому-то, купите что-нибудь у продавца, сделайте пожертвование на благотворительность или проект, который принимает оплату Lightning. Все это переместит сатоши с вашей локальной стороны на удаленную, таким образом, вы получите сбалансированный канал.
  • Получить канал из какого либо сервиса из списка. Эта информация может измениться, и каждый метод и услугу всегда следует тщательно проверять перед использованием

Сервисы, которые продают входящую ликвидность, или предоставляют подобные услуги:

  • https://zerofeerouting.com - здесь можно купить входящий канал из расчёта 5000 сатоши за 1М от этого узла. После открытия канала комиссия на нём устанавливается равной 0
  • Маркетплейс ликвидности Amboss Magma - https://amboss.space/magm
  • Оператор LNBIG, который также доступен из кошелька Simple Bitcoin Wallet
  • Bitrefill продаёт не только подарочные карты, но и каналы. доступен из кошелька Simple Bitcoin Wallet
  • Y’alls, аналогичен LNBIG
  • LN2Me, аналогичен LNBIG
  • Lightning Conductor - открывают встречный канал, если вы открываете канал 500K к ним
  • Форум Umbrel где вы можете найти или оставить запрос на ликвидность, вместе с другими владельцами узлов Амбрел. Действует не только для них поскольку сеть Лайтнинг работает для каждого узла одинаково.
  • Sats4Likes - здесь можно предложить открыть канал за биткоины. Этот способ похож на предыдущий, только может включать дополнительный стимул для открывающего. Если у вас есть сатоши в кастодиальном кошельке, данный способ может подходить для перевода сатош в канал с минимальным доверием  
  • LightningNetwork+ - централизованная площадка для объявлений о свопах и заявок на открытие\фондирование
  • Телеграм чат Plebs2Salvador - создан для формирования бесконечных цепочек: к вам открывают канал и вы открываете канал к кому-то ещё
  • Телеграм чат Rings of Fire
  • Сервис ликвидности Blocktank
  • Сервис Lightning Pool и Loop для пользователей LND, использует программное обеспечение, интегрированное в узел. Иногда энтузиасты открывают каналы по направлению к узлу Pool для перетока ликвидности из\в другие каналы.
  • Малоактивный маркетплейс р2р ликвидности на Etleneum https://chainmarket.etleneum.com

Отдельным образом можно выделить провайдеры мобильных кошельков Лайтнинг, которые, как правило, позволяют купить ликвидность или в некотором роде субсидируют открытие каналов из интерфейса:

Наконец, биржи и квази-биржевые сервисы, которые также допускают обмен альткоинов, например, для майнеров:

Все перечисленные сервисы конечно в большей или меньшей степени централизованы: иногда они обеспечивают просто средство коммуникации и люди сами координируются для решения своих проблем с платежами в Лайтнинг, часто это "фирма", которая имеет свою репутацию, поскольку на границе протоколов -- ончейн протокола Биткоин и оффчейн протокола Лайтнинг -- создаются условия для извлечения прибыли из комиссий.

Протоколы работы с ликвидностью

В стороне от централизованных сервисов стоят протоколы. Они позволяют минимизировать доверие при координации с незнакомцем в чате, либо вовсе позволяют обойтись без чатов используя саму сеть Лайтнинг как средство передачи инфомации. Все узлы этой сети общаются между собой по определённым правилам и некоторые разработчики придумали способ обмена специальными сообщениями запроса ликвидности.

Splicing

Сплайсингом называется перевод средств из ончейн-выходов в платежный канал или из платежного канала в независимые ончейн-выходы, при этом участникам канала не приходится ждать задержки подтверждения, чтобы потратить другие средства канала.

https://themoneymongers.com/bitcoin-splicing/

Сплайсинг бывает двух видов:

  • Splice in означает добавление средств в канал. В этом случае между вовлеченными сторонами организуется совместное закрытие канала, которое переводит средства старого канала в новый канал вместе с новым депозитом. Поскольку открытие нового канала основано на безопасности закрытия старого канала, участники канала могут безопасно тратить старые средства внутри канала, ожидая подтверждения закрытия и открытия транзакций.
  • Splice out означает вывод средств из канала на независимый выход в сети. Подобно splice in, канал закрывается и открывается новый канал, а оставшиеся средства защищены подтверждениями старого канала до тех пор, пока новый канал не будет полностью подтвержден.

Submarine swaps

Сплайсинг отличается от submarine swaps (например, реализуемых Lightning Loop), когда средства передаются между пользователями в обмен на транзакции сети — в submarine swaps общий баланс канала остается прежним; при сплайсинге меняется общий баланс канала. Суть работы таких свопов состоит в обмене секретом сделки, как в атомарных свопах биткоин — альткоин. На анимации показан ход такой сделки с порядком осуществления платежей. Итоговый секрет, полученный от торговца, используется для востребования средств ончейн, в результате свопа.

https://medium.com/muunwallet/a-closer-look-at-submarine-swaps-in-the-lightning-network-4417a2e8f93c

Статья о поддержке Submarine Swaps в Electrum.

Код и документация:

Сервис LN->Onchain, с возможностью создания бумажного кошелька (примерно 0.2% комиссии)
https://submarineswaps.org

Другой популярный сервис который работает таким образом:

https://fixedfloat.com

Liquidity Ads и каналы c двусторонним финансированием

Клиент Core Lightning поддерживает особый протокол, в котором две стороны, открывающие канал, могут договориться о количестве биткоинов, который будет в канале с каждой стороны, гарантируя таким образом наличие ликвидности и увеличивая размер канала. Подробнее об этой технологии можно прочитать в блоге. Два узла Лайтнинг “находят” друг друга для открытия таких каналов через Liquidity Ads — особые сообщения, идентифицирующие совместимые клиенты через сеть.

Доска на LNRouter.

Руководство по работе в клиентах Core (C-Lightning).

PeerSwap

Предложенная на конференции в Майами технология PeerSwap позволяет эффективно ребалансировать каналы для узлов взаимно поддерживающих этот протокол. Проект уже находится в стадии бета-тестирования и поддеживает работу как с Core Lightning так и с LND.

Сайт протокола обновился https://www.peerswap.dev.

Разработка ведётся в этом репозитории.

Инструменты для локальной установки

Существуют дополнительные программы, которые позволяют некоторые удобства для профессиональной работы с Ликвидностью в Лайтнинг. Например, если оператор энтузиаст, помогающий близлежащим киоскам и барам не иметь проблем с их узлами при оплате в Лайтнинг, или просто пытается зарабатывать больше остальных в конкурентной сетевой среде.

  • Balance of Satoshis работает в связке с LND, обеспечивает дополнительные консольные команды для удобного управления ликвидностью, и позволяет открывать сбалансированные каналы.
  • Dunder - открытое ПО для управление узлом-сервисом, от разработчика кошелька Blixt
  • clboss (c-lightning) - ПО автоматизации управлением узлом Core Lightning

Поддержите канал!

LNURL1DP68GURN8GHJ7MRWW3UXYMM59E3K7MF0D3H82UNV9ACXZ7FLW4EK2UNWV9KK20TWDA6XWETVVSMHV8MV

Или с помощью Lightning Address notgeld@lntxbot.com

Дополнительные материалы на английском:

https://lightningnetwork.plus/posts/234

https://plebnet.wiki/wiki/Getting_Inbound_Liquidity

https://medium.com/@steven_75507/how-to-bootstrap-a-profitable-lightning-node-8de72beac59c

https://medium.com/breez-technology/lightning-is-a-liquidity-network-550896ca27ea

https://blog.voltage.cloud/demystifying-inbound-liquidity/

https://blog.lopp.net/lightning-network-liquidity-management-guide/

https://wiki.ion.radar.tech/tutorials/lightning-exchanges

https://medium.com/muunwallet/a-closer-look-at-submarine-swaps-in-the-lightning-network-4417a2e8f93c

https://suredbits.com/submarine-swaps/