Lightning Network (LN), предложенная в официальном документе в 2016 году, представляет собой решение второго уровня, построенное на базе Биткойна. LN был создан в ответ на проблемы масштабируемости Биткойна, а именно скорости и стоимости транзакций Биткойн.
Текущее теоретическое максимальное количество транзакций в секунду (TPS) Биткойна составляет 10, хотя на самом деле оно составляет от 3 до 7. Сравните это с традиционными платежными системами, такими как VISA, которые в 2020 году обрабатывали в среднем 6000 транзакций в секунду (на основе заявления VISA о 188 миллиардах транзакций в секунду). год).
Комиссии за транзакции Bitcoin могут сильно различаться в зависимости от текущего спроса на использование сети. Например, 20 апреля 2021 года средние комиссии за транзакции превысили 50 долларов США, а 9 августа 2021 года средний показатель составил около 2,50 долларов США. Для крупных транзакций, таких как банковские переводы или международные денежные переводы, скорость и стоимость Bitcoin сопоставимы или превосходят альтернативы. Но если Bitcoin будет использоваться для повседневных платежей (так называемые микротранзакции, например, чашка кофе, бензин), скорость транзакций должна увеличиться, а транзакционные издержки должны резко снизиться.
Сеть Lightning в теории
Чтобы понять, как работает LN, и каковы текущие проблемы LN, нам нужно поговорить о Bitcoin. Ограничивающим фактором сети Bitcoin является то, что каждая транзакция должна быть помещена в новый блок в цепочке. Поскольку блоки добавляются в цепочку примерно каждые 10 минут, существует жесткое ограничение на количество возможных транзакций без существенного изменения протокола Bitcoin.
Дебаты о крупных переработках протокола Bitcoin уже происходили и привели к «хард-форкам», наиболее заметным из которых стало создание Bitcoin Cash. Lightning Network, а не создание нового блокчейна, является решением уровня 2. Это означает, что она позволяет протоколу Bitcoin оставаться относительно неизменным, но обеспечивает преимущества, которые могут принести крупные переработки — по крайней мере, в теории.
LN работает, устанавливая платежный канал между двумя сторонами, где только первая и последняя транзакция помещаются в блокчейн Bitcoin. Любое количество транзакций между первой и последней будет происходить вне цепочки, что означает, что эти транзакции не ограничены протоколом Bitcoin.
Чтобы запустить платежный канал, обе стороны должны зафиксировать сумму Bitcoin. Эта сумма Bitcoin удерживается и не может быть выпущена, пока платежный канал остается открытым. Общая сумма Bitcoin, которая может быть переведена через этот канал, является общей суммой Bitcoin, зафиксировавшей это. Давайте рассмотрим пример, чтобы проиллюстрировать это:
Алиса и Боб хотят сформировать платежный канал друг с другом. Алиса вкладывает 10 BTC, а Боб вкладывает 5 BTC в платежный канал. Начальная транзакция, удерживающая объединенные 15 BTC Алисы и Боба, помещается в блокчейн Bitcoin. После того, как эта транзакция будет добавлена в блокчейн, что может занять 10 минут или больше, Алиса и Боб могут совершать транзакции неограниченное количество раз на гораздо более высоких скоростях и фактически с нулевой стоимостью. Ниже приведены транзакции между Алисой и Бобом:
Алиса отправляет Бобу 1 BTC Алиса: 9 BTC Боб: 6 BTC
Алиса отправляет Бобу 2 BTC Алиса: 7 BTC Боб: 8 BTC
Боб отправляет Алисе 3 BTC Алиса: 10 BTC Боб: 5 BTC
Боб отправляет Алисе 1 BTC Алиса: 11 BTC Боб: 4 BTC
Когда один или оба хотят закрыть канал, закрывающая транзакция отправляется в блокчейн с конечными балансами Алисы и Боба. В этом случае конечный баланс Алисы составляет 11 BTC, а Боба — 4 BTC.
Что, если Алиса захочет провести транзакцию с Кэрол? Ну, так уж получилось, что у Боба есть платежный канал с Кэрол, поэтому Алиса проводит транзакцию с Бобом, а Боб передает транзакцию Кэрол. Обратите внимание, что в этом сценарии Боб может взять небольшую плату за передачу транзакции. Со временем, согласно теории шести степеней разделения, LN позволяет Алисе проводить транзакции с кем угодно еще.
Сеть Lightning на практике
LN — это новый протокол, который все еще находится на стадии тестирования. Таким образом, он сталкивается со многими проблемами, начиная от удобства использования и заканчивая безопасностью.
Существуют опасения относительно того, насколько легко запустить узел LN. Для того чтобы LN был успешным, ему требуется надежная сеть узлов Bitcoin, работающих по протоколу LN. Запуск узла LN может быть довольно сложным, и может случиться так, что возникнут проблемы с платежными стимулами для запуска более мелких узлов. Можно утверждать, что запуск LN не намного сложнее, чем запуск полного узла Bitcoin. Однако, поскольку LN в основном нацелен на микротранзакции, повседневный опыт работы с LN будет осуществляться через кошельки с поддержкой LN. Кошельки с поддержкой LN не очень удобны для пользователя, и большинство из этих кошельков предупреждают, что, поскольку они все еще находятся на стадии публичного тестирования, рекомендуется не вносить слишком много средств. В отличие от некоторых более известных кошельков Bitcoin, новизна этих кошельков с поддержкой LN означает, что существуют компромиссы между версиями с хранением и без него. Некастодиальные кошельки LN немного сложны в использовании — более запутанные, менее простые. Кастодиальные варианты использовать проще, но вы должны положиться на третью сторону с вашими биткоинами.
Наконец, и это самое тревожное, LN столкнулся с рядом уязвимостей. К ним относятся:
Атаки Griefing: средства не теряются, но приводят к заморозке средств жертвы на счете Lightning, в результате чего платежный канал не может обрабатывать никакие транзакции.
Наводнение и грабеж: злоумышленник заставляет многих жертв одновременно запрашивать свои средства из блокчейна (наводнение). Злоумышленник использует эту перегрузку, чтобы украсть средства, которые не удалось затребовать до истечения срока (грабеж).
Атаки с замедлением времени: злоумышленник увеличивает время, в течение которого жертва узнает о новых блоках, задерживая доставку блоков.
Атаки с закреплением: злоумышленник обманывает жертву, заставляя ее несанкционированно закрыть свой канал LN, и крадет отдельные транзакции.