Lightning Network. Что это?

Как работает сеть Lightning Network

Lightning Network — это P2P сеть, технология для создания микроплатежей цифровых валют, таких как Bitcoin, Litecoin, Vertcoin через сеть двунаправленных каналов оплаты без делегирования хранения средств для третьих лиц (ваши средства только блокируются).

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

На сегодня над воплощением идеи Lightning Network в жизнь трудятся такие компании как Lightning, Blockchain.info и Blockstream. Первая была основана создателями самой идеи проекта – Тэджем Дрийа и Джозефом Пуном. Помимо перечисленных организаций очень немногочисленное количество заинтересованных компаний и отдельных участников могут понять, в чем заключается принцип работы системы Lightning Network.

Принцип работы системы Lightning Network

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

Неподтвержденные транзакции

В основе протокола Bitcoin заложены транзакции, ссылающиеся на уже проведенные операции и на будущие. В каждой из них содержатся специальные адресные входы отправителей криптовалюты и адресные выходы получателей. Помимо этого для успешного проведения транзакции входы должны отвечать требованиям, которые должны быть выполнены создателем операции. Другими словами, нужно подтверждение пользователя, определяющее его право распоряжаться средствами, которые хранятся по указанным адресам. Для каждого текущего выхода, а также следующего входа существуют уже новые требования.

Технология Lightning Network базируется на принципе проведения стандартных биткоин-операций, однако они не сразу передаются в сеть, а хранятся на пользовательских узлах.

Система защиты от двойной траты

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

Использование мультиподписи

Третьим элементом системы является мультиподпись. Что такое мультиподпись? Это набор их нескольких специальных приватных ключей, посредством которых производится разблокировка биткоин-адреса. Пи этом условия использования мультиподписи могут быть самыми различными: 2 из 3, 2 из 2, 15 из 15, из которых вторая комбинация является наиболее популярной. Значение комбинации заключается в том, что только при использовании двух приватных ключей из двух возможных будет возможно произвести транзакцию.

Временная блокировка

Четвертым компонентом этого «пирога» являются временные блокировки. Они используются для обеспечения блокировки криптовалюты при ее выходе с адреса для произведения траты. Включить ее можно при следующем входе.

Временные блокировки разделяются на 2 вида:

  • абсолютные – представлены CLTV, или CheckLockTimeVerify. Обеспечивает блокировку крипты до конкретного предстоящего момента в условиях реального времени или конкретного блока;
  • относительные – CSV, или CheckSequenceVerify. Использует определение относительного времени. После записи выхода в блокчейне генерируется конкретное количество блоков до возможности совершения траты крипты.

Хэши

В число фундаментальных блоков Bitcoin входят криптографические примитивы, которые нашли иное применение в системе Lightning Network. «Секрет» или «значение» представляет собой уникальную строку чисел, которая не может быть угадана даже при наличии у атакующего значительных вычислительных мощностей. Данный «секрет» поддается хэшированию, то есть преобразованию в иную числовую строку под названием «хэш». Фишка состоит в том, что любой участник сети, знающий это значение, может без труда заполучить хэш, но обратное действие невозможно, поскольку хэширование является однонаправленной операцией. Данный трюк может быть использован и в работе с самим Bitcoin для его разблокировки. Примером такого использования может служить включение хэша при выходе операции при установке требования с указанием во входе соответствующего хэшу значения для возможности осуществления траты.

Двунаправленность платежных каналов

Задумка создания платежных каналов существовала еще до разработки Lightning Network. Польза от стандартных платежных каналов хоть и была, но она характеризовалась однонаправленностью. Главной фишкой работы системы Lightning Network является двунаправленность платежных каналов в режиме «без доверия».

Открытие платежного канала

Для создания двунаправленного платежного канала между сторонами должна быть согласована открывающая транзакция, которая определяет размер вкладов, инвестируемых каждой из сторон. Например, пусть пользователь №1 хочет отправить пользователю №2 один токен биткоина. Между этими участниками заведомо планируется большое количество операций – по этой причине они принимают решение об открытии двунаправленного платежного канала.

Открытие канала (операции) в Lightning Network
Для открытия этого канала в Lightning Network, участники транзакции совершают отправку на адрес с использованием мультиподписи 2 из 2 по пять токенов ВТС. Это пример открывающей транзакции. Средства, хранящиеся по этому адресу, могут быть потрачены только при условии подписи операции обоими пользователями, открывавшими транзакцию. Также пользователи сообщают друг другу «секрет» и каждый из них получает хэш.

После этого пользователем №1 сразу же создается новая операция из уже существующей. Это и есть пример транзакции-обязательства, или commitment transaction. Посредством ее использования у пользователя №1 остается 4 токена, а 6 из 10-ти имеющихся будут отправлены на второй адрес с использованием мультиподписи. Данный адрес отличается от стандартных – он может быть разблокирован пользователем №2 по прохождении 1000 блоков, поскольку в этом случае применяется блокировка типа CSV. Он также может быть разблокирован пользователем №1 при условии, что ему известен «секрет» и его хэш.

Транзакция-обязательство подписывается пользователем №1 и отправляется пользователю №2 в сети Lightning Network. В это время пользователь №2 осуществляет такую же операцию, но с точностью до наоборот: создается транзакция-обязательство, 6 токенов отправляются на свой счет, а 4 коина отправляются на созданный адрес с использованием мультиподписи. В этом случае пользователю №1 доступна разблокировка через 1000 блоков, а пользователь №2 может использовать «секрет», полученный от второго участника операции. Пользователем №2 подписывается транзакция-обязательство и отправляется пользователю №1.

После подобных манипуляций участниками операции подписывается с использованием мультиподписи транзакция и публикуется в сети Lightning Network, что позволяет записать операцию в блокчейн и открыть канал. Теперь обоим пользователям будут доступны обязательства, полученные в ходе операции – они могут быть подписаны и опубликованы в сети Lightning Network. В случае осуществления этого пользователем №1 второй участник получит на свой адрес 6 токенов, а первый – 4 и наоборот. При этом для разблокировки адреса нужно будет выждать 1000 блоков для получения доступа к активам.

А теперь самое важное – операция по факту не подписывается и не публикуется в сети, что и обеспечивает целесообразность работы двунаправленного платежного канала с помощью Lightning Network.

Обновление платежного канала

После проделанной операции пользователь №2 может изъявить желание вернуть пользователю №1 оставшийся токен. Для осуществления этой транзакции нужно просто обновить платежный канал в Lightning Network. Как это делается?

Для этого проворачивается аналогичный алгоритм манипуляций описанный выше кроме открытия операции, поскольку она уже зафиксирована в блокчейне. Теперь участниками операции отписываются по 5 токенов, а остальные 5 коинов отправляются на адреса с использованием мультиподписи. При этом требования аналогичны, но применяются новые «секреты», что значит сообщение пользователями друг другу новых хэшей. После этого производится подпись транзакций-обязательств, их отправка и обмен «секретами» по уже известной схеме.

Обновление платёжного канала в сети Lightning Network
Теперь транзакции-обязательства могут быть подписаны и транслированы в сеть Lightning Network. При этом одна из сторон получит свои активы спустя 1000 блоков, а другая – сразу. Возникает вопрос: а может ли пользователь №2 использовать уже существующую транзакцию-обязательство? Ведь это обеспечит ему получение на счет 6 токенов. Ответ прост: главной помехой в осуществлении задуманного является первый «секрет», который был передан пользователю №1. Это не позволяет вновь использовать уже созданную транзакцию-обязательство, поскольку «секрет» раскрыт. При подписи и отправке старой транзакции была бы произведена немедленная отправка 4-х коинов пользователю №1, а 6 коинов были бы получены пользователем №2 спустя 1000 блоков. Такая схема работает в двух направлениях аналогично. Это обеспечивает гарантии честности сделки и экономической заинтересованности обеих сторон в соблюдении установленных правил для трансляции в сеть Lightning Network, лишь операций с действительными состояниями платежных каналов.

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

Сетевые платежи в Lightning Network

А теперь рассмотрим вариант, когда пользователь №1 желает отправить токены пользователю №3. Для выполнения этой задачи нужно всего лишь открыть платежный канал, но становится известно, что таковой уже существует, но между пользователем №2 и №3. То есть пользователь №2 может выступить промежуточным звеном для достижения желаемого результата, однако главным вопросом здесь является доверие всех трех участников друг другу и обеспечение гарантий сохранности средств в ходе операции. Осуществление более сложной схемы платежа обеспечивается посредством использования криптографического протокола.

Все манипуляции аналогичны, но теперь в платеже участвуют три пользователя: пользователь №3 по просьбе пользователя №1 создает «секрет» и сообщает ему хэш, а также уведомляет пользователя №2 о возможности получения «секрета» при уплате одного токена. При этом пользователь №1 отправляет токен пользователю №2 при условии предоставления ему соответствующего хэшу «секрета», полученного от пользователя №3. После этого пользователем №2 сообщается «секрет» пользователю №1. Операция завершена успешно.

В приведенном примере уже понятно, что наличие доверия является основополагающим фактором проведения сделки. Честность и прозрачность взаимодействия между участниками сети Lightning Network, обеспечивается посредством использования временной блокировки HTLC.

Сетевые платежи в Lightning Network

Теперь нашим трем участникам сети Lightning Network необходимо добавить блокировку HTLC в платежный канал для того, чтобы пользователь №2, который купит у пользователя №3 «секрет» за один токен имел гарантию компенсации своих расходов посредством получения активов от пользователя №1.

Как уже было сказано, между пользователем №1 и №2 в сети Lightning Network, создаются транзакции-обязательства. В них входят стандартный выход и выход, который указывает на адрес с использованием мультиподписи, применением блокировки CSV и хэш-блокировки. Посредством осуществления обмена существующими «секретами» канал становится недействительным. В теории, после этого участники операции могут подписать обязательство и транслировать его в сеть Lightning Network.

На данном этапе вносится изменение в ход алгоритма действий. В данном случае в обязательства входит новый вид выхода с одним токеном, то есть распределение баланса осуществляется таким образом, что пользователь №1 получает 4 коина, пользователь №2 – 5, а один коин используется для открытия выхода, который отвечает контракту HTLC и может быть разблокирован тремя разными способами.

Данный выход может разблокировать токен в рамках обязательства пользователей №1 и №2 при условии, что следующая операция будет подписана одним из участников и будет использован «секрет» пользователя №2, который известнее только ему. Между обязательствами двух пользователей в данном случае есть разница: при закрытии канала пользователем №2 будет использоваться блокировка CSV при необходимости ожидания 1000 блоков, а если закрытие будет произведено пользователем №1, то активы будут получены сразу.

Это аргументируется все тем же использованием ресурсов старого канала, что говорит о возможности разблокировки вторым способом, а именно посредством попытки осуществить подобие кражи при указании последнего «секрета» пользователя №2. При попытках осуществления мошеннических действий пользователем №1 пользователь №2 имеет возможность заполучить коин, указав «секрет» пользователя №1.

При использовании HTLC в обязательства входит блокировка CLTV, которая позволяет пользователю №1 беспрепятственно вернуть свои средства. При отсутствии факта указания значения в оговоренный период средства будут возвращены на счет пользователя №1. Что у нас есть в итоге? У пользователей №1 и №2 созданы транзакции-обязательства. При отправке пользователем №1 обязательства в сеть Lightning Network происходит моментальная отправка 5-ти токенов пользователю №2. По истечении 1000 блоков производится возврат 4-х токенов пользователю №1. Пользователь №2 располагает двумя неделями времени для предоставления значения и получения одного токена из выхода HTLC, если же значение за указанный период не предоставляется, то активы возвращаются отправителю. Пользователь №2 также может транслировать подписанное обязательство в сеть Lightning Network для моментальной отправки 4-х токенов ВТС пользователю №1, а по истечении 1000 блоков он может получить свои 5 токенов и забрать свою монету после предоставления значения из выхода.

При попытках мошеннических действий с использованием устаревших состояний каналов отправитель получает обратно все свои средства.

Фиксация состояния

Теперь мы знаем, что пользователь №2 имеет полные гарантии получения обещанных средств при условии предоставления значения. Это выполняется посредством подписания и трансляции в сеть обязательства, полученного от пользователя №1, а также включения значения в следующую операцию и ее отправке в сеть.

Пользователю №1 эти условия взаимодействия известны, поэтому это исключает вероятность мошенничества при заключении сделки.

Вся описанная схема действия позволяет осуществлять согласование платежного баланса вне рамок канала. Пользователем №2 может быть передано значение пользователю №1, который обновляет состояние платежного канала без применения блокировки HTLC и тайм-аута. Это целесообразно при условии заинтересованности участников в поддержке функционирования открытого канала, поскольку такая схема работы гораздо проще сравнительно с фиксацией состояния платежного канала в сети блокчейна.

Фиксация состояния в сети Lightning Network

При условии, что оба пользователя, участвующего в операции, хотят закрыть существующий канал, им достаточно создать операцию, которая переопределит все события, произошедшие после открывающей операции в Lightning Network. Иными словами, если пользователь №1 изъявит желание закрыть платежный канал, то он создает операцию, по которой 4 токена выплачиваются пользователю №1, а 6 коинов – пользователю №2, после чего пользователь №2 осуществит аналогичные манипуляции. Произойдет подписание и трансляция обязательств в сеть Lightning Network, что и закрывает канал.

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

Закрытие транзакции в Lightning Network

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

В результате создания операции оба пользователя получают на баланс средства. Пользователем №1 подписывается транзакция выплаты и передается пользователю №2. Для ее подтверждения нужно использовать подпись и транслировать ее в сеть. Это же делает пользователь №2.

Создание транзакций-обязательств, подписанных в одностороннем порядке, позволяет заблокировать нужное количество коинов для осуществления взаимодействия между участниками сети.

Особенности Lightning Network

  • Мгновенные платежи. Молниеносные платежи в сети, не беспокоясь о времени подтверждения блока. Безопасность обеспечивается блочными смарт-контрактами, не создавая транзакцию основанную на блокчейне для отдельных платежей. Скорость платежа измеряется в миллисекундах.
  • Масштабируемость. Способность проводить до миллиарда транзакций в секунду через сеть.
  • Низкая стоимость. При осуществлении транзакции вне блокчейна Lightning Network позволяет получать исключительно низкие комиссии, что позволяет использовать новые варианты использования, такие как мгновенные микроплатежи.
  • Перекрестные сети. Абонентские свопы с перекрестными цепями могут происходить вне цепи мгновенно с гетерогенными консенсус-логическими цепочками. Пока цепочки поддерживают одну и ту же криптографическую хеш-функцию, можно совершать транзакции через цепочки без передачи доверия к сторонним хранителям. Если у вас есть 1 BTC вы сможете отправит его на кошелек LTC и получите соответствующую сумму.
  • Безопасность. Учитывая последние новости про контроль агентствами США всех транзакций в блокчейне биткоина и других неанонимных криптовалют, безопасность становится как никогда актуальной. Учитывая, что по желанию пользователей платежи не будут фиксироваться в блокчейне, отслеживание таких транзакций становится более сложным и даже невозможным занятием.

Alex Автор