Что такое Lightning Network

Блокчейн Биткойна может обрабатывать в среднем только 7 транзакций в секунду. Этого, конечно, недостаточно, чтобы сделать его подходящей платформой для обработки миллионов транзакций, которые люди совершают каждый день. Таким образом, чтобы Биткойн мог претендовать на роль средства обмена, необходимо создать платежные системы, позволяющие пользователям совершать транзакции в биткойнах быстро и дешево. Lightning Network — одна из таких платежных систем.

Что такое Lightning Network

«Сам по себе Биткойн не может масштабироваться так, чтобы каждая финансовая транзакция в мире транслировалась всем узлам сети и включалась в основной блокчейн. Необходим вторичный уровень платежных систем, более легкий и эффективный»,

— Хэл Финни описывает необходимость многоуровневых масштабирующий решений на форуме BitcoinTalk.

Что такое Lightning Network?

Lightning Network — это протокол второго уровня, позволяющий выполнять биткойн-транзакции офчейн, то есть не записывая каждую из них в основной блокчейн Биткойна. Поскольку они не записываются в блокчейн и, следовательно, не требуют майнинга, lightning-платежи несравнимо быстрее и дешевле.

Как работает Lightning Network?

Подобно сети Биткойна, сеть Lightning состоит из нод, на которых работает специализированное ПО Lightning Network. Однако в отличие от сети Биткойна, lightning-транзакции не транслируются публично и не хранятся всеми участниками сети. Отдельные lightning-ноды взаимодействуют друг с другом приватно. Для выполнения транзакций между собой lightning-ноды используют каналы.

Что такое платежный канал Lightning?

Lightning-канал — это двунаправленный платежный канал, то есть обе стороны могут отправлять и получать по нему платежи. Lightning-каналы образуют сеть Lightning и обладают определенной емкостью — пропускной способностью — в биткойнах. Эта емкость распределяется между двумя сторонами канала, и биткойны перемещаются между ними в lightning-транзакциях.

Открытие lightning-канала

Для открытия lightning-канала две стороны вносят биткойны на multisig-адрес типа 2-из-2. Эта транзакция записывается в блокчейн Биткойна, и когда она получает подтверждение, lightning-канал открывается. Открытый lightning-канал позволяет обеим сторонам выполнять между собой любое количество транзакций дешево и мгновенно. Совершив между собой все желаемые транзакции, стороны могут закрыть канал с помощью еще одной транзакции, записываемой в основной блокчейн Биткойна. Эта ончейн-транзакция будет отражать чистое изменение балансов обеих сторон на момент закрытия канала.

Совершение транзакций через lightning-канал

Платежный канал представляет собой пул средств, разделенный между двумя сторонами. Эти средства всегда хранятся на multisig-адресе; не создает дополнительных токенов или иных представлений биткойнов. Lightning-транзакции по этому каналу производятся путем перераспределения средств на соответствующем multisig-адресе. Всякий раз, когда биткойны «перемещаются» по каналу — от стороны А к стороне Б — баланс канала обновляется. Но эти обновления не записываются в блокчейн Биткойна.

В примере ниже Элис и Боб открывают канал и вносят на multisig-адрес по 1 BTC каждый. Затем Боб переводит Элис 0,5 BTC по сети Lightning. Общий баланс канала после этого по-прежнему составляет 2 BTC, но теперь 1,5 BTC принадлежат Элис и 0,5 BTC – Бобу.

Что такое Lightning Network?

Закрытие lightning-канала

Окончательный расчет средств происходит, когда обе стороны решают закрыть канал. При закрытии канала в блокчейн Биткойна записывается транзакция, расходующая BTC с multisig-адреса. При этом происходит расчет между участниками канала согласно окончательному балансу на момент закрытия. В нашем примере у Элис теперь будет 1,5 BTC, а у Боба – 0,5 BTC.

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

Базовые конструкционные блоки Lightning Network — это ноды и платежные каналы, посредством которых ноды могут взаимодействовать друг с другом. Само собой, не каждая нода будет иметь прямой канал с той нодой, на которую она хочет отправить платеж. Маршрутизация платежей позволяет производить транзакции между двумя не связанными между собой напрямую сторонами по ряду уже существующих каналов.

Как работает маршрутизация в Lightning Network?

Представьте, что Элис хочет сделать перевод Кэрол по Lightning Network, но не имеет с ней прямого открытого канала. Однако и у Элис, и у Кэрол есть платежные каналы с Бобом. Криптографический процесс позволяет Элис отправлять платеж Бобу с гарантией того, что Боб перешлет платеж Кэрол. В обмен на такое посредничество Боб получит небольшое вознаграждение.

Такая маршрутизация возможна благодаря HTLC, хешированным контрактам с временной блокировкой. HTLC — это особый тип биткойн-транзакций, действующих как смарт-контракты. В контексте HTLC используются, чтобы позволить Элис обещать выплату Бобу только в том случае, если он сможет представить подтверждение, что заплатил надлежащую сумму Кэрол.

Кто разработал Lightning Network?

Таддеус Дрия (Thaddeus Dryja) и Джозеф Пун (Joseph Poon) впервые представили в своей уайтпейпер «The Lightning Network: Scalable Off-Chain Instant Payments» (PDF, англ.) в 2015 году.

Различные реализации Lightning

Существует множество различных реализаций используемого кошельками ПО для нод Lightning Network. Наиболее популярные из них — Lightning Network Daemon от Lightning Labs, Eclair от ACINQ и c-lightning от Blockstream.

Хотя эти три реализации написаны на разных языках программирования, все они совместимы друг с другом. Все реализации Lightning следуют стандартам, прописанным в Basis of Lightning Technology (BOLT), своде правил, обеспечивающих консенсус и взаимную совместимость между различными реализациями Lightning. Благодаря спецификациям BOLT, существует только один протокол Lightning Network.