Prerequisites:
- 04-bitcoin-script
- 06-mining-pow
Lightning Network
Зачем это нужно в блокчейне
Bitcoin обрабатывает примерно 7 транзакций в секунду. Visa — тысячи. Но Lightning Network позволяет проводить миллионы платежей в секунду, используя офчейн-каналы, которые записывают на блокчейн только открытие и закрытие канала.
Lightning Network — это протокол второго уровня (Layer 2), который переносит большинство платежей с блокчейна (ончейн) в двусторонние каналы (офчейн). На блокчейн попадают только две транзакции: открытие канала и его закрытие. Между ними — неограниченное число мгновенных платежей без комиссий майнерам.
Lightning Network запущена в 2018 году. К концу 2025 года ёмкость сети превысила ~5000 BTC, а число активных узлов — ~16000. LN используется для микроплатежей, мгновенных переводов и платежей в точках продаж (например, в Сальвадоре через Chivo Wallet).
Проблема масштабирования
Почему Bitcoin не может просто увеличить пропускную способность?
| Параметр | Bitcoin (L1) | Ограничение |
|---|---|---|
| Размер блока | ~1-4 MB (с SegWit) | Все полные узлы хранят все блоки |
| Интервал блока | ~10 минут | Нужен для глобального консенсуса |
| Транзакций в блоке | ~2000-4000 | Ограничен размером блока |
| TPS | ~7 | 2000 tx / 600 сек |
Каждая ончейн-транзакция требует:
- Включения в блок (ожидание ~10 минут)
- Подтверждения всеми узлами сети (~65 000 узлов)
- Постоянного хранения в блокчейне (навсегда)
Увеличение блока решает проблему линейно: 2x блок = 2x TPS, но требует 2x ресурсов от каждого узла. Это централизация.
Lightning Network решает проблему экспоненциально: N каналов могут обрабатывать M платежей, где M неограничено.
Идея платежного канала
Представьте, что вы с другом открываете совместный «счёт»:
- Каждый вносит по 5 BTC (это запись в блокчейне — funding TX)
- Вы ведёте «тетрадку» с текущим балансом: Alice 5 | Bob 5
- Когда Alice платит Bob 1 BTC, вы просто обновляете запись: Alice 4 | Bob 6
- Когда захотите — закрываете «счёт», и итоговые балансы записываются в блокчейн
Ключевое преимущество: шаги 2-3 происходят мгновенно, без блокчейна, без комиссий. Блокчейн нужен только для шагов 1 и 4.
Но как гарантировать, что никто не обманет? Для этого существуют commitment-транзакции и механизм отзыва (подробно в BTC-10).
Жизненный цикл платежного канала
Пройдите все этапы жизни платежного канала — от открытия до закрытия:
Разбор каждого этапа
Funding TX (открытие):
- Alice и Bob создают 2-of-2 мультисиг-адрес (помните OP_CHECKMULTISIG из BTC-04?)
- Оба отправляют BTC на этот адрес — это ончейн-транзакция
- Для траты с этого адреса нужны подписи ОБЕИХ сторон
- После подтверждения funding TX канал считается открытым
Commitment TX (обновление состояния):
- Каждый платёж внутри канала создаёт новую commitment TX
- Обе стороны подписывают новое состояние
- Старое состояние отзывается (обмен ключами отзыва)
- Всё происходит офчейн — не нужна запись в блокчейн
Closing TX (закрытие):
- Кооперативное: обе стороны подписывают финальную транзакцию, средства доступны сразу
- Принудительное: одна сторона публикует последнюю commitment TX, но должна ждать таймлок
Funding Transaction: 2-of-2 мультисиг
Funding TX — это обычная Bitcoin-транзакция, которая создаёт выход на 2-of-2 мультисиг-адрес. Вспомните из урока BTC-04 (Bitcoin Script):
OP_2 <pubkey_Alice> <pubkey_Bob> OP_2 OP_CHECKMULTISIG
Эта транзакция записывается в блокчейн. После подтверждения средства «заперты» в канале: их можно потратить только при согласии обеих сторон.
Важно: Перед отправкой funding TX обе стороны уже подготавливают первую commitment TX. Иначе средства могут быть заблокированы навсегда, если одна сторона откажется сотрудничать.
Commitment-транзакции
Commitment TX — ключевой механизм платежных каналов. У каждой стороны есть СВОЯ версия commitment TX:
| Выход | В версии Alice | В версии Bob |
|---|---|---|
| to_local | Alice получает (таймлок!) | Bob получает (таймлок!) |
| to_remote | Bob получает (сразу) | Alice получает (сразу) |
Почему таймлок на собственные средства? Потому что:
- Таймлок даёт партнёру время обнаружить публикацию старого состояния
- Если Alice опубликует старую commitment TX, Bob может использовать ключ отзыва и забрать все средства канала
Таймлоки реализуются через OP_CHECKSEQUENCEVERIFY (CSV) — относительный таймлок из BTC-04. Типичное значение: 144 блока (~1 день).
Закрытие канала
Кооперативное закрытие (cooperative close)
Лучший сценарий: обе стороны согласны закрыть канал.
- Формируется closing TX с итоговыми балансами
- Оба подписывают
- Транзакция записывается в блокчейн
- Средства доступны сразу (без таймлока)
Принудительное закрытие (force close)
Если одна сторона недоступна или отказывается сотрудничать:
- Активная сторона публикует последнюю commitment TX
- Партнёр получает свои средства сразу (to_remote)
- Инициатор ждёт таймлок (to_local, ~144 блока)
Принудительное закрытие дороже (больше данных в блокчейне) и медленнее (таймлок).
Маршрутизация в Lightning Network
Не обязательно иметь прямой канал с каждым получателем. Lightning Network позволяет маршрутизировать платежи через цепочку каналов:
Как работает маршрутизация
- Обнаружение маршрута: Alice знает топологию сети (узлы и каналы публикуют информацию через gossip-протокол)
- Выбор пути: Алгоритм находит путь с достаточной ликвидностью и минимальными комиссиями
- Луковая маршрутизация (onion routing): Alice шифрует маршрут слоями, как луковицу:
- Внешний слой: инструкция для Carol «отправь дальше Dave»
- Внутренний слой: инструкция для Dave «это твой платёж»
- Carol не знает, что платёж от Alice, а Dave не знает промежуточный маршрут
Ликвидность каналов
Ключевое ограничение: маршрут работает, только если каждый промежуточный канал имеет достаточный баланс в нужном направлении.
| Канал | Ёмкость | Alice | Bob |
|---|---|---|---|
| Alice-Carol | 0.5 BTC | 0.4 | 0.1 |
| Carol-Dave | 0.5 BTC | 0.3 | 0.2 |
Alice может отправить максимум 0.3 BTC через Carol->Dave (ограничение — баланс Carol в канале с Dave).
Routing fees
Промежуточные узлы берут комиссию за маршрутизацию. Типичные значения:
- Base fee: 1 sat (фиксированная)
- Fee rate: 1 ppm (0.0001%, пропорциональная)
Текущее состояние Lightning Network
| Метрика | Значение (конец 2025) |
|---|---|
| Ёмкость сети | |
| Активных узлов | ~16 000 |
| Каналов | ~70 000 |
| Средний размер канала | ~0.07 BTC |
| Реализации | LND, CLN, Eclair, LDK |
Применение:
- Микроплатежи (< 1 sat через keysend)
- Мгновенные переводы (< 1 секунды)
- Точки продаж (Сальвадор, другие страны)
- Streaming платежи (podcasting 2.0, Nostr zaps)
Дальнейшее чтение
Эти темы выходят за рамки нашего курса, но важны для глубокого понимания Lightning:
- Watchtowers — сторонние сервисы, которые мониторят блокчейн на предмет публикации старых commitment TX. Если владелец канала офлайн, watchtower применит наказание автоматически.
- AMP (Atomic Multi-Path Payments) — разделение одного платежа на несколько частей, идущих разными маршрутами. Решает проблему недостаточной ликвидности одного канала.
- BOLT спецификации — Basis of Lightning Technology: формальные спецификации протокола (BOLT 1-12). Определяют формат сообщений, HTLC, onion routing и т.д.
- Splicing — добавление или вывод средств из канала без его закрытия. Канал остаётся активным, пока ончейн-транзакция подтверждается.
- BOLT 12 (Offers) — новый протокол для повторяемых платежей и статических инвойсов. Замена BOLT 11 инвойсов.
Практика
В этом уроке нет лабораторной работы — Lightning Network рассматривается концептуально. Убедитесь, что вы можете объяснить:
- Зачем нужны платежные каналы и что они решают
- Жизненный цикл канала: funding -> commitment updates -> closing
- Роль 2-of-2 мультисига в funding TX
- Разницу между кооперативным и принудительным закрытием
- Как маршрутизация позволяет платить без прямого канала
- Почему луковая маршрутизация обеспечивает конфиденциальность
Итоги
| Концепция | Суть | Зачем |
|---|---|---|
| Funding TX | 2-of-2 мультисиг, ончейн | Открывает канал, запирает средства |
| Commitment TX | Офчейн, подписана обеими сторонами | Фиксирует текущий баланс канала |
| Отзыв | Обмен ключами при обновлении | Делает публикацию старого состояния наказуемой |
| Маршрутизация | Путь через промежуточные каналы | Платежи без прямого канала |
| Onion routing | Шифрование маршрута слоями | Конфиденциальность промежуточных узлов |
Следующий урок: Payment Channels и HTLC — подробная структура commitment-транзакций, механизм отзыва с наказанием, и Hash Time-Locked Contracts для атомарных мультихоп-платежей.
Finished the lesson?
Mark it as complete to track your progress