logo involta foundation
Involta Foundation

Что такое Lightning Network

coin

 

Введение

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

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

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

Что такое Lightning Network

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

Lightning Network является так называемым офф-чейн решением (англ. off-chain — вне цепи), или “вторым слоем” блокчейна. Это означает, что операции в офф-чейне не обязательно записывать в основной блокчейн.

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

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

Такая мини книга называется каналом. Скажем, Алиса и Борис каждый вкладывают по 10 BTC при создании смарт контракта. В этом канале каждый из них будет иметь на балансе по 10 BTC. Теперь Алиса и Борис могут пересылать друг другу биткоины без комиссий и практически мгновенно благодаря специальному смарт контракту. В сущности, Алиса и Борис будут просто обновлять свой баланс, не публикуя эту информацию в основной блокчейн, тем самым не создавая на него дополнительную нагрузку. Здесь не нужны майнеры и подтверждения сети, поэтому транзакции происходят моментально и без комиссий.

Зачем нужна Lightning Network

На текущий момент LN является лучшим решением проблемы масштабируемости Биткоина. К тому же, разработчикам проще проводить эксперименты на офф-чейнах, так как это является менее опасным и менее затратным.

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

Рассмотрим основные плюсы Lightning Network

Масштабируемость

В Биткоине блок формируется примерно раз в 10 минут, и может содержать в себе ограниченное количество транзакций. Размер блока — это очень важный ресурс, так как не все транзакции могут успеть попасть в формирующийся блок. Увеличить размер блока не получится. Если это сделать, то майнинг станет невыгодным, и вся сеть просто перестанет работать. В Биткоине предусмотрена система динамических комиссий — кто больше заплатит майнеру, тот и запрыгнет в формирующийся блок. В период больших нагрузок на сеть комиссии могут достигать суммы транзакции и даже больше нее. Можно поспорить, что в движении больших средств комиссия даже в 50$ кажется небольшой, но как быть с маленькими суммами? Кто захочет платить комиссию 3$ за чашку кофе?

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

Микроплатежи

В Биткоине существует правило о минимальной сумме транзакции. Это примерно 0.00000546 BTC. С ростом курса криптовалюты это число может перестать быть безобидным. Lightning Network расширяет границы минимальной суммы, в сети можно отправить самое маленькое количество биткоинов - 0.00000001 BTC или 1 сатоши. И даже такую сумму можно отправить без комиссии.

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

Анонимность

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

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

Адреса с мультиподписами

Адрес с мультиподписамями (англ. multisignature address или multisig address) содержит в себе приватные ключи (подписи), с помощью которых можно отправлять средства. Создавая такой адрес, можно указать, сколькими ключами потребуется подтвердить транзакцию. Например, схема 1-5 говорит о том, что для отправки средств необходим только один любой ключ из 5 возможных, а схема 2-3 показывает, что из трех ключей, нужны два, чтобы подтвердить отправку.

Чтобы инициализировать канал внутри Lightning Network, двое участников создают адрес со схемой 2-2, означающей, что им придется подписывать каждую транзакцию обоими ключами. Допустим, Алиса и Борис создают общий адрес с балансом в 5 BTC. Борис не сможет отправить эти биткоины без разрешения Алисы, и наоборот. Теперь внутри канала будет своя мини книга учета, где будут записываться обновления баланса обоих участников.

Но что если Алиса захочет вывести средства из канала на ее основой биткоин адрес, а Борис — нет?

Hash Timelock Contraсts (HTLC)

Если один из участников не хочет играть по правилам, то у другого всегда есть шанс спасти положение. Для этого была разработана концепция Hash Timelock Contracts.

Она объединяет в себе блокировку по хэшу и блокировку по времени (англ. hashlock и timelock).

Хэш-блокировка это специальное условие осуществления осуществления транзакции, которое обозначает следующее правило: полученные средства можно вывести только при условии, если получатель знает “секрет”. Например, Алиса отправляет Борису 3 BTC и хэш определенных данных вместе с биткоинами. Хэш функция в данном случае является асимметричной. Это означает, что хэш нельзя превратить обратно в данные, которые были зашифрованы. Таким образом, пока Алиса не скажет Борису “секрет”, то есть то, что было зашифровано в транзакции, Борис не сможет вывести полученные биткоины.

Таймлок, или блокировка по времени, это специальное условия, при котором полученные средства могут быть потрачены только через определенный промежуток времени после их получения. В данном случае, можно обозначить либо время либо высоту блока. HTLC объединяет оба этих условия. Рассмотрим, как это работает.

Открытие и закрытие каналов

Алиса и Борис создали канал с общим балансом 10 BTC, каждый перевел на специальный адрес по 5 BTC. С этого адреса средства можно отправить на другой при только при наличии подписей с каждой стороны. Алиса может попытаться предложить транзакцию для записи в основной блокчейн, но без подписи Бориса она будет недействительна. Обе стороны имеют свои “секреты”, которые они хэшируют делятся только хэшами друг с другом. Помним, что по хэшу нельзя определить, какая информация была зашифрована, но зная изначальную информацию, можно легко сверить полученный хэш. Назовем хэши их секретов h(A) и h(B).

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

Если воспринимать платежный канал как мини книгу, то набор транзакций с обязательствами — это обновления баланса участников в основном блокчейне. Канал Алисы будет теперь иметь два направления: ее адрес в основном блокчейне и адрес платежного канала. Борис делает тоже самое. Платежный канал сейчас имеет форму чека, который нельзя обналичить, так как на счету адреса нет баланса. Переводить средства внутри канала можно только при условии, что он запущен. Новый платежный канал имеет ряд свойств. Средства могут быть выведены только при соблюдении следующих условий:

Для Бориса:

  • Обе стороны подписывают транзакцию;
  • Борис может вывести деньги сам только по прошествии определенного времени (вспомним таймлок);
  • Алиса может вывести средства, только если она знает “секрет” Бориса (вспомним захэшированные данные).

Для Алисы:

  • Обе стороны подписывают транзакцию;
  • Алиса может вывести деньги сама только по прошествии определенного времени;
  • Борис может вывести деньги, только если она знает “секрет” Бориса.

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

Итак, теперь транзакции можно публиковать на адресе с мультиподписями. Средства можно вывести, если другой участник покинет канал. Когда транзакция подтверждена, канал официально запущен и начинает свою работу. Первая пара транзакций будет показывать текущий баланс мини книги. При выводе средств каждый получит по 5 BTC, которые они вложили, но если Алиса передаст Борису 1 BTC, то при выводе он получит на один биткоин больше. При новом раунде передачи средств, участники сначала выдают свои “секреты” друг другу, чтобы предыдущая транзакция была завершена. При каждой транзакции создаются новые таймлоки и хэши.

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

Как предотвращается жульничество в Lightning Network

В этой системе можно определить направление атаки. Если у Бориса есть 1 BTC, то ему ничего не мешает отправить транзакцию в основной блокчейн, которая будет показывать, что его баланс больше одного биткоина. У него уже есть подписанная со стороны Алисы транзакция, ему нужно добавить только свою подпись.

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

Алиса получает свои биткоины моментально, Борис, напротив, должен дождаться истечения таймлока на канале с мультиподписями. Алиса теперь знает “секрет” Бориса, так как начался второй раунд платежей.

Пока Борис не может ничего сделать со средствами из-за таймлока, Алиса спокойно может вывести свои деньги. Такая система наказаний предотвращает любые попытки жульничества, так как у другой стороны всегда есть доступ к средствам.

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

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

Допустим, у нас есть 100$, которые лежат на канале, вторым участником которого является кафе, где мы постоянно берем кофе. Мы просто открыли канал, откуда будут списываться деньги каждый раз, когда мы берем чашку эспрессо.

А что, если этот канал можно вообще не открывать? Если у друга Алисы Бориса уже открыт канал с кафе, то Алиса может передавать деньги через него в автоматическом режиме. Борису даже не нужно будет ничего делать.

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

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

Ограничения Lightning Network

Сложна для новичков

Биткоин - не самая простая система для новичков. Кошельки устраняют сложности, стоящие перед пользователями, но, к сожалению, платежные каналы пока нельзя создавать через приложения.

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

Ликвидность

Один из самых обсуждаемых минусов сети. Проблема заключается в количестве денег, которые можно отправлять. Их количество не превышает размер средств при изначальном создании канала. Если потратить все средства, то платежный канал закроется. Есть возможность ждать, когда кто-нибудь отправит денег через другой канал на ваш локальный баланс, но эта модель не представляется удобной.

Также ограничения существуют из-за общего запаса BTC внутри маршрута. Если локальный баланс одного из участников будет 1 BTC, а мы захотим отправить 5 BTC через этого участника, то у нас ничего не выйдет.

Централизация

Для избежания проблемы выше, каналы будут объединяться в большие маршруты, и только через них можно будет отправлять большое количество денег, при выходе таких маршрутов из сети, соединение с другими участниками будет разорвано.

Текущее состояние Lightning Network

Заключение

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

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

 

 

Читайте также