Lightning Network

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

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

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

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

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

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

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

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

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

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

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

Защита от двойной траты в сети Lightning Network
Защита от двойной траты в сети Lightning Network

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

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

Мультиподпись в сети Lightning Network
Мультиподпись в сети Lightning Network

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

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

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

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

Секреты и хэши

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

Секреты и хеши в сети Lightning Network
Секреты и хеши в сети Lightning Network

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

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

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

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

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

Открытие канала (операции) в Lightning Network
Открытие канала (операции) в 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

Теперь транзакции-обязательства могут быть подписаны и транслированы в сеть 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

Работа с функционалом сети 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

Закрытие канала по обоюдному согласию – консенсус

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

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

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

Ввод средств в Lightning Network

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

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

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

Осуществление платежей

Теперь о выплатах. Для осуществления данной операции с помощью Lightning Network, необходимо создать операцию выплаты, которая свидетельствует о получении пользователями средств, распределенных по схеме, описанной выше. Опять используются обязательства, подписанные в одностороннем порядке.

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

Использование «анти-чит» обеспечивает надлежащий уровень безопасности при работе со средствами и ориентировано на идентификацию действий мошенников в сети. К слову, данный механизм представляет одну из причин, определяющих необходимость исправления проблем пластичность операций Lightning Network, или transaction milleability, который входит в SegWit.

Чтобы своевременно выявить действия мошенников «анти-чит» может быть использована и другими пользователями сети, что позволяет быстро выявить использование старых состояний платежных каналов.

Достоинства Lightning Network

Работа в сети Lightning Network предоставляет пользователям следующие преимущества:

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


ОСТАВЬТЕ ОТЗЫВ

Please enter your comment!
Please enter your name here