Lightning Network — сеть платежей биткоином через платёжные каналы. Её называют вторым уровнем, потому что она опирается на правила основной сети Биткоина. Участники обновляют согласованное распределение уже заблокированных биткоинов, вместо того чтобы записывать каждый платёж отдельно в основную сеть Биткоина. Это не другая монета. Сотрудничество позволяет платить быстро; если оно прекращается, подготовленные Bitcoin-транзакции дают способ провести расчёт.
Обычный Bitcoin-платёж ждёт включения в блок и соперничает с другими за ограниченное место. Lightning работает иначе: участники сначала подготавливают платёжный канал, а затем могут менять распределение средств, обмениваясь подписанными данными. При нормальном сотрудничестве не нужно отдельно записывать каждый завершённый платёж в блок. Bitcoin-транзакции остаются основой окончательного расчёта. Этот дополнительный уровень не отменяет правила Биткоина и не выпускает свой токен. [2] [1]
Канал — договорённость между двумя участниками, подкреплённая настоящими биткоинами. При открытии создаётся funding transaction, то есть финансирующая транзакция в основной сети. Её выход, конкретная сумма с условиями расходования, составляет основу канала. У участников есть подготовленные и подписанные commitment transactions, позволяющие распределить средства при закрытии. Баланс меняется за счёт перераспределения прав на уже заблокированные биткоины, а не создания новых. [2]
В кошельке с самостоятельным хранением нужно контролировать ключи и сведения, необходимые для управления каналами. Одни приложения делают это напрямую, другие используют вспомогательные сервисы. В кастодиальном сервисе, напротив, средствами и каналами управляет оператор. Ваш баланс — его запись о том, сколько он позволит вывести. Само слово Lightning и сумма на экране не различают эти модели. Важно, кто может подписывать, что вы сохраняете в резервной копии и от чьей доступности зависите. [2]
Платя партнёру по каналу, вы совместно подписываете новое распределение средств. В обычной конструкции каналов предыдущие версии отзываются: попытка навязать отозванное состояние может стоить обманывающей стороне её средств. Это больше, чем необязательная правка числа в приложении. Если партнёр перестанет сотрудничать, подготовленная commitment transaction позволит односторонне закрыть канал через Bitcoin. Но защита по-прежнему требует верных данных о состоянии и своевременной реакции. [3]
В упрощённом канале на вашей стороне 1 000 000 sat, на стороне партнёра — 0 sat. Satoshi, сокращённо sat, — наименьшая единица BTC. После прямого платежа 200 000 sat распределение составит 800 000 sat для вас и 200 000 sat для партнёра. Общая сумма остаётся прежней, а само обновление не требует нового блока. Пример не учитывает комиссии и обязательные резервы. Он не означает, что в реальном канале можно отправить весь показанный баланс. [3]
Прямой канал с получателем не обязателен. Платёж может пройти через несколько соединённых каналов, но на каждом участке нужны доступные средства в направлении платежа. Это направленная ликвидность: сколько действительно можно перевести в эту сторону. Большая общая ёмкость не поможет, если деньги находятся не на той стороне. На результат также влияют резервы, ограничения незавершённых платежей, комиссии за пересылку и доступность узлов. [3]
Платежи через несколько каналов связывают HTLC, сокращение от Hashed Timelock Contract. Это условные права на средства: выплата зависит от раскрытия одного и того же секрета, соответствующего согласованному криптографическому отпечатку, и от временных условий. Секрет называется preimage. Когда получатель раскрывает его, он может получить последний платёж, а посредники — свои входящие платежи. Ближе к получателю сроки короче, чтобы у посредников было время отреагировать. Если платёж не завершится, средства можно вернуть при соблюдении соответствующих временных условий, но не обязательно сразу. [3]
На маршруте может не хватать средств в нужном направлении, узел может быть недоступен или комиссии превысят выбранный предел. Сведения о канале тоже могут устареть. Тогда кошелёк может попробовать другой путь или разделить платёж, если поддерживает это. Неудачная попытка не означает автоматически кражу или исчезновение биткоинов. Но и обычная скорость платежей не гарантирует, что любой запрос на оплату будет немедленно выполнен с первой попытки. [3]
Нужно защищать текущее состояние канала и следить, не опубликовал ли партнёр отозванную версию. Помочь может watchtower — сервис, который отслеживает такие попытки и может вовремя отреагировать. Но его помощь не заменяет все резервные копии и процедуру восстановления вашего конкретного кошелька. Seed Phrase, резервная последовательность слов для восстановления ключей, сама по себе может не восстановить нужные данные канала. Поэтому до использования нужно разобраться в резервировании, восстановлении и зависимости от вспомогательных сервисов. [4] [5] [6]
Открытие и закрытие канала используют Bitcoin-транзакции. Одностороннее закрытие может добавить периоды ожидания, комиссии и дальнейшие транзакции для разрешения незавершённых HTLC. Средства в ожидающем платеже могут остаться заблокированными до его разрешения по соответствующим условиям. Поэтому неудача не обещает немедленного или бесплатного возврата, а быстрый платёж не гарантирует такого же быстрого вывода в блокчейн. Но именно возможность расчёта на Bitcoin служит опорой каналам под вашим контролем. [4]
Для полной картины прочитайте эту статью вместе с Транзакция, SegWit, Taproot, Кошелёк, Transaction Fees. На эту статью также ссылаются Кошелёк, SegWit, Taproot, Биткоин-адрес.