58 / 736LIQ

Ликвидность Lightning

Деньги в Lightning-кошельке ещё не означают, что ты можешь получить такую же сумму. Ликвидность показывает, сколько сейчас может пройти через платёжные каналы в определённом направлении. Важна не только сумма, но и сторона канала, на которой находятся средства.

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

У Анны и Павла есть канал ёмкостью 1 000 000 sat — миллион сатоши, минимальных единиц в цепочке Bitcoin. Представим упрощённую ситуацию: Анне принадлежат 800 000 sat, Павлу — 200 000 sat. Для наглядности пока не учитываем резервы, комиссии и незавершённые платежи. Анна отправляет Павлу деньги со своей стороны, а получает от него средства с его стороны. Поэтому Павел не может отправить ей через этот канал 300 000 sat, хотя его общая ёмкость составляет миллион. Деньги не исчезли. Просто их распределение не позволяет провести этот платёж. [1] [3]

Исходящая ликвидность — сумма, доступная для платежа от тебя. В примере её основа — баланс Анны в 800 000 sat, но реальный максимум обычно ниже из-за резервов, комиссий и незавершённых платежей. Если Анна платит не Павлу, первый шаг всё равно проходит через один из её каналов. Узел — это программа, которая управляет каналами и обрабатывает платежи Lightning. Следующим узлам нужны собственные средства для дальнейших шагов. Bitcoin вне каналов не увеличивает исходящую ликвидность автоматически: кошелёк должен подходящим способом перенести эту стоимость в Lightning. [1] [3]

Входящая ликвидность — сумма, которую другой участник может отправить тебе. Если Анна открывает канал и почти все средства принадлежат ей, отправлять удобно, а возможностей получить мало. Новый запрос на оплату этого распределения не меняет. Нужен канал, где у другой стороны есть доступный баланс. Некоторые кошельки обеспечивают это через поставщика услуг, скрывая сложность от пользователя, часто за плату. Входящая ёмкость — не дополнительные деньги Анны, а возможность получить будущий платёж. [1] [3] [5]

Теперь Анна платит Павлу 100 000 sat. В упрощённом примере балансы становятся 700 000 sat у Анны и 300 000 sat у Павла. Ёмкость остаётся 1 000 000 sat. Анна может меньше отправить, зато больше получить обратно; у Павла наоборот. Если у кошелька несколько каналов, меняются те, которые платёж действительно использовал. Направление всегда важно. Утренний показатель ликвидности необязательно соответствует тому, что можно отправить вечером. [1] [3]

Платёж удалённому получателю проходит через последовательность каналов. Каждому нужна достаточная доступная ликвидность в правильном направлении, включая суммы для комиссий следующих шагов. Если один шаг невозможен, этот маршрут не сработает даже при большой ёмкости остальных каналов. Кошелёк может попробовать другой маршрут или разделить платёж на части, если это поддерживается. Но недостающих средств это не создаёт. Важна не только сумма, но и сроки. HTLC — условный платёж, который можно завершить, доказав знание определённого секрета. Правила, связанные с CLTV, задают сроки в блоках; интервалы между ними дают посредникам время рассчитаться в цепочке Bitcoin, если передача платежа остановится. [1] [2]

Посредник должен получить платёж по одному каналу и отправить связанный платёж по другому. Большой суммы всех балансов недостаточно. Если его деньги находятся на его стороне неподходящего канала, их может не получиться использовать для выбранного маршрута. Для получения нужна входящая ликвидность в первом канале, для передачи — исходящая во втором. Эти шаги связаны условиями HTLC: завершение платежей зависит от знания определённого секрета и временных правил. Поэтому посредник не полагается лишь на обещание предыдущего участника заплатить позже. [1] [3]

Полученные и отправленные платежи естественным образом меняют ликвидность. Оператор нескольких каналов также может выполнить круговую ребалансировку: отправить платёж от себя одним путём и получить его обратно другим, переместив балансы между своими каналами. Swap обменивает средства в цепочке на средства Lightning или наоборот. Splicing позволяет изменить финансирование поддерживающего его канала без обычного закрытия и повторного открытия. Ещё один вариант — открыть другой канал. Способы различаются комиссиями, временем, следом в цепочке, требованиями к доверию и риском неудачи. Ни один не создаёт новых денег: выбирай исходя из того, нужно ли отправлять, получать или делать и то и другое. [1] [4]

Сначала определи, связана ли проблема с отправкой или получением, и находятся ли кошелёк и другой узел онлайн. На собственном узле сравни локальные и удалённые балансы каждого канала, резервы, незавершённые платежи и комиссии. В кошельке под управлением сервиса уточни, что на самом деле означает доступная сумма. Одна неудача сама по себе не доказывает потерю денег: на каком-то шаге может не хватать ликвидности, действовать лимит или произойти временный сбой. Небольшой пробный платёж проверяет только эту сумму в этот момент, а не гарантирует прохождение всех следующих платежей. [1] [3] [4]

Операторам узлов нужно различать несколько ограничений. Выход транзакции задаёт сумму и условия её расходования. channel_reserve_satoshis обозначает средства, которые должны оставаться в резерве. Часть может быть связана в ожидающих HTLC — условных платежах, которые ещё не завершились. Следующие ограничения относятся к HTLC, которые предлагает другой участник. max_htlc_value_in_flight_msat ограничивает их общую стоимость, а max_accepted_htlcs — количество; msat — тысячная доля сатоши для расчётов внутри Lightning. В зависимости от типа канала учитываются также комиссии commitment transaction, транзакции для его закрытия, и возможные anchor outputs — специальные выходы, позволяющие добавить следующую транзакцию и повысить комиссию за подтверждение всего пакета. Правила Dust определяют, какие выходы слишком малы для включения в эту транзакцию. Поэтому рассчитывай доступный максимум для конкретной реализации и типа канала, а не вычитай один универсальный резерв. [1] [6]

BOLT #7 описывает объявления каналов и правила передачи платежей. Для объявленного канала можно найти в цепочке финансирующий выход и его ёмкость. Но это не раскрывает текущего распределения между участниками. Отправитель выбирает маршрут по собственным сведениям, прошлым результатам и попыткам платежа, а не по полному публичному списку актуальных балансов. Поэтому обозреватель сети может показать большой канал, но не подтвердить, что именно сейчас твоя сумма пройдёт по нему в нужном направлении. [2]

Для полной картины прочитайте эту статью вместе с Lightning Network, Payment Channel, Lightning Routing, Inbound Liquidity, Bitcoin, HTLC. На эту статью также ссылаются Payment Channel, Lightning Routing, Волатильность, Рыночная капитализация.

DOC · 001BOLT #2 — Peer Protocol for Channel ManagementСпецификация DOC · 002BOLT #7 — P2P Node and Channel DiscoveryСпецификация DOC · 003Lightning Labs — Understanding LiquidityДокументация DOC · 004Lightning Labs — Managing LiquidityДокументация DOC · 005LSPS2 — Just-in-time channel negotiationСпецификация DOC · 006BOLT #3 — Bitcoin Transaction and Script FormatsСпецификация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией