В этой статье мы подробно разберём предпосылку к созданию Lightning Network (LN) и почему её свойства масштабирования придутся кстати к тому, что мы имеем сегодня, а может быть выльются и в преобразовательное улучшение. Опишем некоторые фундаментальные основы, которые делают возможным создание Lightning Network. Затем исследуем её ограничения, включая ослабление безопасности (если сравнивать с транзакциями на блокчейне), а также рассмотрим, почему сеть Lightning вряд ли подойдёт для обеспечения крупных платежей.
Создание Lightning Network: предпосылки
Платёжные системы на блокчейне обычно работают в режиме «рассказать всем». То есть когда кто-то осуществляет платёж, ему нужно рассказать о транзакции всем участникам сети.
Узлы (ноды) в такой системе должны:
- хранить транзакцию в течение неограниченного срока;
- подтверждать транзакцию;
- передавать транзакцию.
Майнеры, между тем, должны участвовать в энергоёмком конкурентном процессе, чтобы на случай возникновения конфликтной транзакции определить, вписывать ли транзакцию в блок.
У получателя платежа нет никаких особых требований. Например, если кто-то покупает кофе, используя Bitcoin, транзакция транслируется во всю сеть Bitcoin, не отдавая приоритета в распространении данных о транзакции ни кофейне, ни оператору платежа этой кофейни. Многие считают, что это неэффективно. Если появится задача создать платёжную систему, которая будет использоваться миллионами людей по всему земному шару, такой подход даже логичным не назовешь.
Lightning Network представляет собой улучшение эффективности и использует более логичную структуру платеж-сеть. Вместо того, чтобы оповещать о транзакции каждого, транзакция посылается напрямую получателю платежа. Только в том случае, если стороны не являются честными, требуется прибегать к громоздкому процессу, в котором распределённая и устойчивая к цензуре система вынуждена находить консенсус. Таким образом, можно достичь производительности и эффективности, почти эквивалентной скорости прямого общения между различными лицами в интернете, и при этом сохранить ряд характеристик безопасности, присущих блокчейну Биткоина.
Однако создание такой платёжной системы, в которой все стороны всегда будут возвращаться к блокчейну и востребовать свои средства в случае возникновения проблемы, будет сложным и сопряжённым с некоторыми рисками и ограничениями.
Технические основы Lightning Network
Диаграмма выше показывает традиционный способ создания базового непрямого платежного канала. Хотя создание такого канала включает оповещение о транзакции каждого, как только канал настроен, множественные платежи от Боба к Алисе могут быть осуществлены простой передачей данных от Боба Алисе, избегая оповещение всей сети. Платёжный процесс можно повторять снова и снова, пока средства в канале (в данном случае 1 BTC) не иссякнут.
В теории, канал выше безопасен по ряду причин:
- если Боб попытается отказаться от своего платежа, всё, что нужно сделать Алисе, это подписать и оповестить сеть о транзакции P1, которую Боб подписал, когда делал платёж. И если это подтвердится до истечения однонедельной блокировки транзакции B, Алиса получит свои 0,1 BTC вне зависимости от действий Боба;
- если Алиса откажется подписывать что-либо, чтобы огорчить Боба, Бобу нужно лишь подождать одну неделю, пока транзакция B не станет действительной, и тогда он сможет перевести деньги из канала себе, оповещая сеть о транзакции B, которую Алиса уже подписала;
- процесс будет ещё более безопасным, если транзакцию A не сможет изменить третья сторона (изменить TXID), иначе Боб мог бы создать транзакцию B только для того, чтобы она стала недействительной в случае изменения транзакции A, заставив тем самым Алису удерживать средства в заложниках в течение неопределённого срока.
Как следует из одного электронного письма, которое Сатоши отправил разработчику Bitcoin Майку Херну, эта базовая структура была идеей Сатоши.
Как работает Lightning Network
В основе Lightning Network лежит создание микроплатежей. Сама сеть, по сути, представляет собой конструкции из платёжных каналов. Платежи находят путь через каналы, которые соединены с собой напрямую, пока не достигнут конечного получателя.
Такая конструкция каналов, из которых составляется Lightning, ложится в основу более сложных технологий. Конструкция выше является ненаправленной, и чтобы она была полезной, платежи в ней должны осуществляться в обоих направлениях. Например, можно представить создание двунаправленных платёжных каналов за счёт создания двух каналов между Алисой и Бобом, каждый в противоположном направлении.
Если точнее, Lightning использует конструкцию каналов Пуна-Дрижи. У неё более низкие требования к ликвидности, чем у сети ненаправленных платёжных каналов, идущих в противоположных направлениях, которые потребовали бы в два раза больше замкнутых внутри канала средств. Но канал Пуна-Дрижи имеет больше слабостей по сравнению с другими подходами. Каналы Пуна-Дрижи требуют, чтобы каждая сторона подписывала новую транзакцию всякий раз, когда канал обновляется (платёж проводится), в то время как ненаправленный канал требует только подписи отправителя при обновлении канала.
Старую добрую функцию блокировки по времени можно заменить более продвинутыми:
- проверка подлинности блокировки по времени (check locktime verify, BIP65) может подтвердить, что вывод нельзя потратить, пока не истечёт определенный срок, вместо того, чтобы считать, что определенная часть вывода неверна до наступления определённой даты, как это делает блокировка по времени;
- относительная блокировка по времени (BIP68) может заменить конкретную дату окончания относительной датой для соответствующего вывода. Это может позволить платёжным каналам оставаться открытыми в течение неопределённых периодов, при этом транзакция закрытия будет активировать временное окно, на протяжении которого другая сторона будет иметь ограниченный период времени (например, две недели), чтобы оповестить о транзакции востребования и восстановить средства;
- хешированные контракты блокировки по времени (HTLC) могут потребовать от получателя платежа предоставить строчку, которая хешируется до определённого значения определённой датой или возвращением средств плательщику. Этот же хеш можно использовать для активации других платежей в сети каналов, позволяя осуществлять платежи по цепочке каналов.
Преимущества Lightning Network
В теории, Lightning Network позволит всем участникам сети осуществлять почти мгновенные и дешёвые транзакции во всех направлениях, находя путь среди узлов. Таким образом, это позволит избежать оповещение сети Bitcoin при отсутствии проблем, и приведёт к масштабированию сети. Такая архитектура даже допускает микротранзакции и улучшает конфиденциальность платежей.
Каналы могут оставаться открытыми в течение неопределённого срока из-за функции относительной блокировки по времени и не должно быть риска вмешательства; если кто-то попытается украсть средства за счёт закрытия канала, другие участники транзакции будут иметь достаточно времени, чтобы осуществить собственное востребование средств и получить их назад.
Функциональность сети и пользовательский опыт
Остаётся непонятным, как люди и бизнес будут использовать сеть, и у комментаторов разные взгляды на этот вопрос. Некоторые полагают, что Lightning Network в конечном итоге станет повсеместным средством для осуществления небольших платежей, а все сложные моменты будут обрабатываться автоматически. Другие скептически относятся к LN из-за внедрения дополнительных компонентов, которые потребуют ручной настройки. Они также предвидят неприятный пользовательский опыт, омрачённый неожиданным закрытием каналов и периодами простоя LN.
В реальности, истина может быть где-то между этими двумя видениями, и сеть потенциально может перейти к более амбициозному представлению с течением времени. Несогласие, по всей видимости, сводится к тому, что скептики LN рассматривают её как сложную, неполную и непрактичную платежную систему, основанную только на системе создания платёжных каналов. Сторонники видят в LN рецепт масштабирования за счёт надстройки вторичного слоя на блокчейне Bitcoin, который в итоге будет поддержан кошельками, системами обработки платежей и компаниями, предоставляющими услуги, и приведёт к простому и незаметному пользовательскому опыту. В конечном итоге кошельки могут общаться между собой и автоматически, динамически решать, какая методология платежей будет лучшей: на цепи блоков или же через LN.
Риски безопасности Lightning Network
Необходимость быть онлайн при получении платежа. Как мы объяснили выше, перед получением платежа получатель должен подписать транзакцию, так что отправитель будет знать, что он может востребовать свои средства в случае, если враждебный канал закроется или откажется подписывать транзакцию. Следовательно, для получения денег нужен горячий кошелек, а значит приватные ключи потенциально покажутся, если где-то возникнет брешь.
Необходимость отслеживать канал. Участники Lightning Network или наблюдатели могут быть необходимы для активного отслеживания платёжных каналов. Это может нагрузить пользователей и потенциально снизить безопасность средств в канале относительно хранения их на блокчейне Bitcoin. Существует риск упустить дедлайн востребования транзакции, либо в случае ненадлежащего наблюдения канала, либо в случае забитого, перегруженного блокчейна.
Майнеры могут подвергать цензуре транзакции, закрывающие канал. 51 процент хешрейта может иметь возможность украсть средства у пользователей Lightning, подвергая цензуре транзакцию закрытия канала, в которой майнер является одной из сторон. Хотя потенциальные последствия этого типа атаки будут разрушительны и без LN, LN потенциально предлагает враждебным майнерам пространство для манёвра.
Хотя каждый из этих трех факторов сам по себе может и не быть значительным, необходимость демонстрировать свои приватные ключи интернету при получении платежей, риск закрытия враждебного канала и риск цензурирования транзакций в сумме могут стать серьёзной угрозой для безопасности, хотя всеми этими рисками можно управлять в некоторой степени.
Существует риск, что плохо информированный пользователь будет держать слишком много денег в канале и средства будут потеряны или украдены в случае одного из этих неудачных сценариев. Существует также риск того, что волатильность цены приведёт к тому, что пользователи будут удерживать больше средств в платёжных каналах, чем они хотели.
Выводы
LN, очевидно, предлагает существенные и преобразующие улучшения в отношении масштабируемости. В результате скорость транзакций и комиссионные сборы значительно улучшатся, а безопасность основного протокола останется неизменной. Но ослабленные свойства безопасности платежей в сети Lightning сделают LN непригодной для проведения больших платежей (или даже ненужной). В любом случае, широкое распространение LN потребует значительного времени.
Подписывайтесь на наш канал в Телеграме. В сети Lightning уже биткоинов на 2 миллиона долларов.
Два Биткоина
Автор: Илья Морской