Блокчейн

Lightning Network

В 2017 году один Bitcoin-перевод мог стоить 50 и занимать часы. Купить кофе за BTC было дороже, чем сам кофе. Казалось, Bitcoin навсегда останется «цифровым золотом» - ценным, но бесполезным для повседневных платежей. А потом появилась Lightning Network, и стало возможным отправить 10 сатоши (меньше цента) за доли секунды с комиссией в тысячные доли цента. Как именно этого добились?

  • **El Salvador** (2021) принял Bitcoin как законное платёжное средство - массовые повседневные покупки идут через Lightning (кофе, такси, продукты). Приложение Chivo Wallet обработало миллионы микротранзакций
  • **Nostr** (децентрализованная социальная сеть) использует Lightning для «zaps» - мгновенных микроплатежей авторам контента. Вместо лайков - реальные сатоши, пересылаемые за миллисекунды
  • **Bitstamp, Kraken, Coinbase** - крупнейшие биржи интегрировали Lightning для мгновенных депозитов и выводов Bitcoin, сократив время с 30-60 минут до секунд

Предварительные знания

  • Bitcoin: the UTXO model
  • Bitcoin Script: programmable money

Payment Channels

Bitcoin обрабатывает ~7 транзакций в секунду. Visa - ~24 000. Записывать каждую покупку кофе в блокчейн - всё равно что отправлять нотариально заверенное письмо вместо SMS. **Payment channel** решает эту проблему: два участника открывают канал одной on-chain транзакцией и затем обмениваются платежами **мгновенно и бесплатно**, не трогая блокчейн.

Аналогия: таб в баре

Как payment channel работает в реальной жизни

Ты приходишь в бар и оставляешь карту бармену (funding transaction). Весь вечер заказываешь напитки, бармен ведёт счёт. Ни одна покупка не проходит через банк. В конце вечера ты закрываешь таб (closing transaction) - и только тогда происходит одно банковское списание на итоговую сумму. Payment channel работает так же: одна транзакция на открытие, сколько угодно платежей внутри, одна транзакция на закрытие.

Для открытия канала Алиса и Боб создают **funding transaction** - multisig 2-of-2 транзакцию, которая блокирует средства на совместном адресе. Допустим, Алиса вносит 0.5 BTC. Теперь эти средства контролируются обеими подписями.

Каждый платёж внутри канала - это новая **commitment transaction**. Она перераспределяет баланс между участниками, но не публикуется в блокчейн. Обе стороны подписывают новое состояние и **отменяют предыдущее** с помощью revocation keys.

Если Алиса попытается опубликовать **старый** commitment TX (где у неё больше денег), у Боба есть revocation key для этого состояния. Боб может использовать его в течение таймлока и **забрать все средства канала** как штраф. Это делает мошенничество экономически невыгодным.

**Ключевой инсайт:** payment channel использует блокчейн как **арбитражный суд**. Пока обе стороны честны - суд не нужен. Но если кто-то мошенничает - блокчейн обеспечивает справедливость. Это называется **optimistic execution**: предполагаем честность, наказываем обман.

Что произойдёт, если Алиса опубликует старый commitment TX, в котором у неё больше средств?

Hash Time-Locked Contracts (HTLC)

Payment channel связывает только двух участников. Но что если Алиса хочет заплатить Кэрол, с которой у неё нет прямого канала? Если у Алисы есть канал с Бобом, а у Боба - с Кэрол, можно **передать платёж через Боба**. Проблема: как гарантировать, что Боб не украдёт деньги?

**HTLC (Hash Time-Locked Contract)** решает эту проблему с помощью двух механизмов: 1. **Hash Lock** - средства можно забрать, только предъявив секрет (preimage), хеш которого совпадает с заданным 2. **Time Lock** - если секрет не предъявлен за определённое время, средства возвращаются отправителю

**Атомарность:** платёж либо проходит **полностью** (все HTLC разрешаются), либо **не проходит совсем** (все HTLC истекают по таймлоку). Невозможна ситуация, когда Боб получил деньги от Алисы, но не заплатил Кэрол - потому что Боб узнает секрет S **только после** оплаты Кэрол.

В реальной Lightning Network цепочка может содержать **до 20 промежуточных узлов**. Каждый HTLC на пути уменьшает таймлок (по умолчанию на 40 блоков ≈ 6.7 часа), поэтому максимальная цепочка ограничена суммарным таймлоком.

Почему таймлоки в цепочке HTLC уменьшаются от отправителя к получателю (например, 48h → 24h)?

Маршрутизация платежей

HTLC объяснил, как безопасно передать платёж через цепочку узлов. Но как **найти** эту цепочку? В сети Lightning Network тысячи узлов и десятки тысяч каналов. Нужен механизм, который построит маршрут от отправителя до получателя.

Lightning использует **source routing** - маршрут выбирает **отправитель**, а не промежуточные узлы (как в IP-сетях). Для этого отправитель должен знать топологию сети. Узлы обмениваются информацией о каналах через **gossip protocol**: каждый узел сообщает соседям о своих каналах, комиссиях и ёмкости.

Для крупных платежей, которые не помещаются в один канал, Lightning поддерживает **MPP (Multi-Part Payments)** - разбиение платежа на части и отправка по разным маршрутам. Например, платёж в 1 BTC может пойти как 0.3 + 0.3 + 0.4 по трём разным путям.

Но если отправитель выбирает маршрут - промежуточные узлы видят, кто кому платит? Нет. Lightning использует **onion routing (Sphinx)**, вдохновлённый Tor. Каждый промежуточный узел знает только **предыдущий и следующий хоп**. Платёж «заворачивается» в слои шифрования - как луковица.

**Проблема маршрутизации** - одна из самых сложных в Lightning. Отправитель знает ёмкость каналов, но не знает **текущее распределение балансов** (это приватная информация). Поэтому маршрут может не сработать, и придётся пробовать альтернативные пути. Современные реализации используют вероятностные модели для оценки успешности маршрута.

Что видит промежуточный узел Боб при маршрутизации платежа Алиса → Боб → Кэрол → Дима?

Ликвидность и управление каналами

Маршрут найден, HTLC работает, onion routing обеспечивает приватность. Но есть фундаментальная проблема: **ликвидность**. Канал с ёмкостью 1 BTC не означает, что через него можно передать 1 BTC в любом направлении. Ёмкость разделена между участниками, и это распределение постоянно меняется.

Ключевое различие: **inbound capacity** (сколько вам могут заплатить) и **outbound capacity** (сколько вы можете заплатить). Если Алиса открыла канал на 1 BTC с Бобом, у Алисы 1 BTC outbound, но 0 inbound - ей **не могут заплатить** через этот канал, пока она не потратит часть средств.

Когда каналы становятся несбалансированными (вся ёмкость на одной стороне), маршрутизация перестаёт работать. Для решения используют несколько стратегий: - **Circular rebalancing** - отправить платёж самому себе через кольцевой маршрут, чтобы перераспределить балансы - **Submarine swaps** - обмен on-chain BTC на Lightning BTC (и наоборот) без закрытия каналов. Позволяет «долить» ликвидность в канал

Для обычных пользователей и мерчантов управление каналами - сложная задача. Поэтому появились **LSP (Lightning Service Providers)** - профессиональные операторы, которые открывают каналы к пользователям, обеспечивают inbound capacity и маршрутизацию. Примеры: Breez, Phoenix (ACINQ), Voltage.

Протокол **Liquidity Ads** (представлен в спецификации BOLTs) позволяет узлам **объявлять** о готовности предоставить ликвидность за плату. Например: «Я готов внести 0.5 BTC в общий канал за комиссию 500 sat». Это создаёт **рынок ликвидности**, где операторы конкурируют за предоставление входящей ёмкости.

**Масштаб Lightning (2025):** ~15 000 публичных узлов, ~50 000 каналов, ~5 000 BTC общей ёмкости. Через Lightning ежедневно проходят миллионы транзакций с комиссией менее 1 сатоши. Крупнейшие интеграции: Binance, Coinbase, Cash App, Nostr (zaps).

Lightning Network - это отдельный блокчейн или altcoin, работающий параллельно с Bitcoin

Lightning Network - это **layer 2** протокол, построенный **поверх** Bitcoin. Все средства в Lightning обеспечены реальными Bitcoin, заблокированными в multisig транзакциях на основной цепочке. Закрытие канала - это обычная Bitcoin-транзакция, которая распределяет средства согласно последнему состоянию.

Путаница возникает, потому что платежи в Lightning не записываются в блокчейн Bitcoin. Но это не значит, что они «ненастоящие». Каждый канал привязан к on-chain UTXO, и любой участник может в любой момент закрыть канал и вернуть свои BTC в основную цепочку. Lightning масштабирует Bitcoin, не создавая отдельной валюты.

Алиса открыла канал с Бобом, внеся 1 BTC. Сколько BTC ей могут заплатить через этот канал прямо сейчас?

Итоги

  • **Payment channels** - два участника блокируют средства в multisig транзакции и обмениваются платежами off-chain. Блокчейн используется только для открытия и закрытия канала - как арбитражный суд, который нужен лишь при споре
  • **HTLC** (Hash Time-Locked Contracts) - обеспечивают **атомарные** платежи через цепочку промежуточных узлов. Preimage + убывающие таймлоки гарантируют: либо все получат деньги, либо никто
  • **Source routing + onion routing** - отправитель строит маршрут по графу каналов (gossip protocol), а Sphinx-шифрование скрывает полный путь от промежуточных узлов. **MPP** позволяет разбивать крупные платежи на части
  • **Ликвидность** - inbound vs outbound capacity определяет, кто может платить и получать. LSP, submarine swaps и Liquidity Ads решают проблему управления ликвидностью для обычных пользователей
  • Вспомните вопрос из начала: как отправить доли цента за миллисекунды, если Bitcoin обрабатывает 7 транзакций в секунду? Ответ - **вынести платежи за пределы блокчейна**, сохранив его безопасность через payment channels и HTLC

Связанные темы

Lightning Network строится на базовых примитивах Bitcoin и открывает дорогу к новым возможностям:

  • Bitcoin: модель UTXO — Funding transaction создаёт UTXO на multisig-адресе - это фундамент канала. Понимание UTXO необходимо для понимания commitment transactions
  • Bitcoin Script — HTLC, таймлоки (CLTV, CSV) и revocation keys реализованы через Bitcoin Script. Ограничения Script определяют возможности Lightning
  • Taproot — Taproot делает cooperative close каналов неотличимым от обычной транзакции (приватность), уменьшает размер on-chain данных и открывает путь к PTLCs - улучшенной замене HTLC

Вопросы для размышления

  • Payment channel требует, чтобы обе стороны были онлайн для мониторинга мошенничества (старые commitment TX). Как это ограничение влияет на использование Lightning обычными пользователями с мобильных устройств, и какие решения существуют (watchtowers)?
  • Source routing означает, что отправитель должен знать топологию сети, но не знает текущие балансы каналов. Как вы думаете, почему балансы каналов не публикуются через gossip protocol, и к каким проблемам это привело бы?
  • Submarine swaps позволяют обменивать on-chain BTC на Lightning BTC. Но они требуют on-chain транзакцию, которая стоит дорого. Видите ли вы здесь замкнутый круг, и как LSP и Liquidity Ads пытаются его разорвать?

Связанные уроки

  • dist-07-transactions
Lightning Network

0

1

Войти