
В Lightning можно отправить только то, что лежит на вашей стороне каналов, и получить только столько, сколько лежит на другой стороне. Эта другая сторона называется входящей ликвидностью. Кошелёк с 0,01 BTC в одном канале, который он сам пополнил, может отправить почти 0,01 BTC, но не может ничего получить, пока что-то не потратит или пока кто-то не откроет канал к нему. Большинство ошибок «payment failed» и «cannot receive» происходят именно из-за этого, а не из-за того, что сеть не работает.
Канал как отрезок фиксированной длины
Представьте канал на 1 000 000 сат между вами и узлом-партнёром как отрезок фиксированной длины. Граница между вашей стороной (исходящая) и его (входящая) смещается с каждым платежом, но общая длина не меняется, пока канал не расширят сплайсингом или не закроют. Заплатив 300 000 сат, вы переносите их на его сторону; теперь через этот канал можно получить обратно до 300 000.
| Событие | Ваша сторона (отправка) | Сторона партнёра (получение) |
|---|---|---|
| Вы открыли и пополнили канал | ≈ 990 000 | 0 |
| Вы заплатили 300 000 сат | ≈ 690 000 | 300 000 |
| Вы получили 100 000 сат | ≈ 790 000 | 200 000 |
| Партнёр открыл к вам канал на 500 000 | + 0 | + 500 000 во втором канале |
Цифры начинаются примерно с 990 000, а не с 1 000 000, потому что каждая сторона держит резерв канала, обычно 1% ёмкости, который нельзя потратить. Резерв держит обе стороны честными: всегда есть что терять, если кто-то опубликует старое состояние. В commitment-транзакции также откладываются ончейн-комиссии на будущее закрытие.
Как кошельки получают входящую ликвидность
- Канал от LSP при первом получении. Кошельки вроде Phoenix или Breez позволяют своему поставщику Lightning-услуг открыть к вам канал, когда приходит платёж, который не помещается. Провайдер берёт комиссию — обычно процент от суммы плюс ончейн-расходы.
- Покупка входящей ликвидности. Операторы узлов покупают каналы к себе на маркетплейсах ликвидности или у LSP.
- Сначала потратить. Оплата чего-либо переносит ликвидность на другую сторону и освобождает входящую ёмкость.
- Submarine swap. Вывод средств из Lightning на ончейн-адрес («loop out») опустошает вашу сторону канала и одновременно создаёт входящую ликвидность.
Почему не проходят крупные платежи
Платежу нужен маршрут, где в каждом канале достаточно ликвидности на нужной стороне. У крупных узлов большие каналы, но последний шаг к маленькому кошельку часто оказывается узким местом. Многопутевые платежи делят сумму по нескольким маршрутам, это помогает, но каждой части всё равно нужен путь. Кроме того, узел может держать в канале ограниченное число незавершённых платежей (протокольный лимит — 483 HTLC в каждую сторону), что важно только для очень загруженных маршрутизирующих узлов.
- Если отправка не проходит, попробуйте меньшую сумму — так станет понятно, в ликвидности ли дело.
- Посмотрите каналы в кошельке: доступный к отправке баланс меньше общего на резерв и ожидающие комиссии.
- Для получения узнайте лимит приёма в кошельке; выше него может взиматься комиссия LSP или понадобится ончейн-вариант.
- Для сумм больше нескольких миллионов сат ончейн-платёж часто проще и дешевле, чем пробивать маршрут.
Маршрутизирующие узлы ещё и ребалансируют каналы: платят сами себе по кругу через сеть, чтобы перенести ликвидность из полного канала в пустой. Это стоит комиссий маршрутизации и относится к обслуживанию узла — пользователю мобильного кошелька этим заниматься не нужно.
Сплайсинг: изменение размера без закрытия
Сплайсинг позволяет добавить или вывести средства из канала одной ончейн-транзакцией, не закрывая его и продолжая им пользоваться. Splice-in добавляет исходящую ликвидность; splice-out отправляет часть баланса на ончейн-адрес. Phoenix использует сплайсинг, чтобы держать у каждого пользователя один канал; в других реализациях поддержка появляется постепенно. Каждый сплайс платит ончейн-комиссию, поэтому при высоких комиссиях мемпула пригодится калькулятор комиссии Bitcoin.
У продавцов, которые в основном принимают платежи, обратная проблема: каналы заполняются на их стороне, и входящая ёмкость заканчивается. Они регулярно выводят средства submarine swap или сплайсингом, чтобы освободить место для новых платежей.
Какие расходы учитывать
Ликвидность не бесплатна. Открытие и закрытие каналов платят ончейн-комиссии; LSP берут плату за входящие каналы; маршрутизирующие узлы берут базовую и пропорциональную комиссию за пересылку. Для редких небольших платежей удобство того стоит; чтобы один раз переместить крупную сумму, ончейн-Bitcoin обычно дешевле. Прежде чем обменивать BTC в KOT.CASH, который работает только ончейн, выведите его из Lightning, как описано в статье как вывести биткоин из Lightning ончейн.
Частые вопросы
Что такое входящая ликвидность?
Сумма на стороне партнёров в ваших каналах — максимум, который вы можете получить через Lightning.
Почему новый кошелёк не принимает Lightning-платёж?
У кошелька, который сам пополнил канал, нет входящей ёмкости. Кошельки с LSP открывают канал при первом получении за комиссию.
Что такое резерв канала?
Часть канала, обычно 1%, которую каждая сторона обязана держать и не может тратить, пока канал открыт.
Можно ли отправить весь баланс Lightning?
Не совсем: резерв и запас на комиссии остаются заблокированными, пока канал не закрыт или не уменьшен сплайсингом.
Для крупных сумм ончейн лучше?
Часто да. Одна ончейн-транзакция избавляет от ограничений маршрутов и комиссий LSP.