Почему Lightning Network лишает средств честных пользователей и как этого избежать
После успешного тестирования в декабре сеть Lightning активно принимает первых пользователей. В частности, с помощью реальных Lightning-платежей уже можно приобрести VPN-роутер от провайдера TorGuard, виртуальный кофе Starblocks, товары в онлайн-магазине Blockstream Store, а также купить пиццу и пополнить баланс мобильного. А в марте японская энергокомпания успешно протестировала Lightning-платежи для зарядки электромобилей. Несмотря на то, что пользователи сообщают о мгновенных платежах с нулевой комиссией, разработчики отмечают ряд существенных недостатков технологии, которая нуждается в усовершенствовании.
Так, хотя Lightning Network был призван разгрузить блокчейн Bitcoin, вынеся часть транзакционных данных за пределы основного блокчейна, сеть Lightning в ее сегодняшней архитектуре сама требует хранить множество данных, что делает сложным ее загрузку и использование. Сооснователь Lightning Labs Лаолу Осантокан в соавторстве с разработчиками команды Blockstream Кристианом Декером и Расти Расселом опубликовал новое предложение «eltoo», которое существенно снизит количество записываемой на блокчейн информации, а также устранит одну из основных уязвимостей Lightning, связанную с механизмом «штрафных транзакций». Как рассказал Декер, название предложения было своеобразной шуткой и представляет собой фонетическое произношение «L2» — layer-two, «второй уровень» («решение второго уровня» стало уже распространенным названием для «надстроенного» над основным блокчейном протокола Lightning).
Если сегодня ноды Lightning Network хранят все промежуточные состояния канала, то есть данные всех операций, совершенных между открытием и закрытием платежного канала, то логика «eltoo» предлагает, чтобы новая подтвержденная операция автоматически аннулировала предыдущее состояние канала. «Только последняя заключенная сделка будет подтверждена на блокчейне», — поясняется в описании технологии.
Первой попыткой облегчить блокчейн биткоина с помощью оффчейн-транзакций были «последовательные числа», которые позволяли отслеживать, какие оффчейн-транзакции являются новейшими и какая сумма осталась на балансе пользователя после проведения последней транзакции. То есть если Алиса имела 10 BTC и послала Бобу 1 BTC, в ходе чего ее баланс упал до 9 BTC, эта транзакция получает последовательный номер «1». Если затем она пошлет Бобу 4 BTC, ее баланс станет равен 5 BTC, и эта транзакция будет иметь последовательный номер «2» и считаться новейшей.
Однако, по словам Декера, механизм не работал, потому что у майнеров не было стимула поддерживать новые правила и обновлять состояние баланса, «вынося вперед» последние из проведенных транзакции. Сегодня Lightning Network решает проблему недостатка стимула через систему «L2-penalty». Обновление старого состояния канала является необходимым, поскольку если кто-то (даже случайно) пытается передать в канал устаревшие и более недействительные данные, то это обнаруживается и пользователь наказывается путем лишения средств. Изначально эта система должна была защищать от мошеннических действий, не позволяя «обмануть» канал и украсть средства своего партнера по транзакции. Однако из-за таких правил своих средств уже не раз лишались и абсолютно честные пользователи. В марте о подобном случае рассказали Trustnodes. «Пользователь LND [одно из ПО для Lightning Network. — DeCenter.], который имел поврежденную базу данных канала, восстановил старую резервную копию и затем закрыл канал. Поскольку резервная копия была устаревшей, его нода передавала старое состояние канала, а ноды его партнеров по транзакции распознали это как попытку мошенничества и стали осуществлять штрафные транзакции», — пояснил тогда биткоин-разработчик Крис Рико. В разговоре с Coindesk Дэкер рассказал, что столкнулся с подобной проблемой лично: «У меня на компьютере была старая нода Lightning. Я восстановил ее. Я не знал, что у меня не было обновленной версии. Человек [партнер по платежному каналу. — DeCenter.] закрыл канал, потому что он знал, что это старая версия и он может украсть средства. Что он и сделал, кстати». Из-за угрозы подобных проблем устаревшие данные по аналогии с токсичными отходами называют «токсичной информацией». «Eltoo позволяет снизить риск потери средств. Мы избавляемся от этой токсичной информации», — сказал Декер.
Eltoo возвращается к идее использования последовательных чисел для замены старых транзакций новыми. Как считают разработчики, самое большое преимущество предложения в том, что оно, в отличие от сегодняшней системы штрафных транзакций, не построено по принципу «победитель забирает все». При этом штрафные механизмы eltoo и L2-penalty могут использоваться совместно. «Eltoo имеет совершенно другие компромиссы. Я не говорю, что он лучше по всем параметрам», — сказал Декер (к недостаткам eltoo разработчики относят повышенное время проведения транзакции). «Мы не знаем, какая система лучше, но я бы предпочел eltoo. Я думаю, eltoo проще объяснить и проще развивать дальше», — отметил Декер.
Но даже если eltoo будет признан крайне эффективным решением, на его пути есть препятствия, а именно давно обсуждаемый алгоритм подписей sighash_noinput. Чтобы Bitcoin мог поддерживать eltoo, этот алгоритм должен быть добавлен в его кодовую базу. Sighash служит чем-то вроде метки, обозначая, какая часть данных должна быть подписана при осуществлении транзакции. По умолчанию задана опция sighash_all, которая требует, чтобы были подписаны все части транзакции и, соответственно, благодаря этому никакая из них не может быть впоследствии изменена. Однако предложенная опция sighash_noinput будет сигнализировать о том, что данные входа транзакции (input) не нужно подписывать. И это, в свою очередь, означает, что данные входа могут измениться в промежуток времени между тем, когда была инициирована транзакция и когда она была записана на блокчейн. Это именно то, что нужно eltoo, поскольку его концепция в том, что все записи об операциях, совершенных в период с открытия до закрытия платежного канала (то есть до формирования итоговой транзакции), будут удалены, то есть первичные и последние входные данные будут отличаться.
Когда Декера спросили, считает ли он, что предложение sighash_noinput будет внедрено в кодовую базу Bitcoin, Дэкер рассмеялся и сказал: «После ситуации с SegWit я перестал делать такие прогнозы». При этом он отметил, что, по его мнению, sighash_noinput довольно легко внедрить в Bitcoin и «каждый день новые случаи из практики свидетельствуют в пользу sighash_noinput». А некоторые пользователи Twitter в знак поддержки даже начали добавлять название протокола в свои юзернеймы.
Eltoo — последнее, но далеко не единственное из предложений, возникающих по мере того, как разработчики находят слабые стороны Lightning. Одна из опасностей, по мнению разработчиков, заключается в угрозе централизации: Lightning может превратиться в сеть со звездообразной топологией, где в качестве центра, или хаба, будет выступать крупная компания. Это связано с особенностями устройства Lightning: для осуществления транзакций в каналах должны быть средства, а преимуществом пользуются игроки, которые владеют техническими и финансовыми ресурсами. Соответственно, стороны, имеющие больше капитала, могут предложить более ликвидные ноды. «Иметь много крупных нод очень эффективно. Я думаю, именно биржи станут доминирующими игроками, по крайней мере, в первые несколько лет», — сказал соавтор white paper Lightning Network Тадж Драйджа. Некоторые даже полагают, что олицетворением корпоративного зла станут главные разработчики Lightning — стартапы Blockstream, ACINQ и Lightning Labs. Сейчас они предлагают свои услуги бесплатно и развиваются за счет венчурных инвестиций, однако в какой-то момент могут начать монетизировать свои приложения, как это произошло с зародившимися в Кремниевой долине Facebook или Twitter. Декер уже сообщал, что разработчики Blockstream продумывают встречные меры: если система будет открывать каналы рандомно, это позволит «избежать того, что хабы будут следить за трафиком» и в целом «повысит резистентность сети к единым точкам отказа» (то есть тем нодам, отказ которых может вывести из строя всю систему или вызвать недоступность данных). При этом Расти Рассел, один из соавторов eltoo, отмечает, что «Lightning-платежи принимать легче, чем биткоин-платежи» и что в будущем, с созданием более удобного ПО, маятник Lightning-сообщества должен качнуться в сторону большей децентрализации.
Следующая критика в адрес Lightning заключается в том, что приватность транзакций в нем ниже, чем в сети Bitcoin. Несмотря на то, что Lightning является оффчейн-решением, итоговая информация о транзакциях будет храниться на основном блокчейне Bitcoin. И ранее, чтобы «проложить маршрут» Lightning-транзакции, пользователь должен был доверять другим участникам сети, которые помогают в осуществлении транзакции. То есть каждый пользователь мог подсмотреть детали транзакции, а также продать их правительству или рекламодателям. «Возможно, Lightning не улучшит приватность, а значительно ухудшит ее для среднестатистического пользователя», — говорил Ян Майерс, сооснователь анонимной криптовалюты Zcash. Однако разработчики уже отреагировали на это, введя так называемый «принцип луковицы» (onion routing).
В «луковице» платежи будут передаваться по множеству каналов, раскрывая минимум информации. При этом участники одного маршрута не будут знать свое точное положение внутри этого маршрута и общее количество участников, равно как и источник платежа или адрес его конечного назначения. Наличие этой функции позволит сети Lightning стать похожей на даркнет-браузер Tor и сделает ее «даркнетом для биктоин-платежей». Также о разработке тестовых версий с внедрением Lightning Network уже заявлял один из самых амбициозных проектов по повышению приватности Bitcoin — Mimblewimble.
Но наряду с аспектами децентрализации и приватности, пока вызывающими опасения сообщества, Lightning имеет и общепризнанно сильные стороны. Во-первых, сети Lightning не грозит ослабляющая биткоин проблема сборов: открытие Lightning-канала стоит несколько центов, благодаря чему канал на более 100,000 транзакций обойдется в менее чем $20. Во-вторых, открыть платежный канал в сети Lightning может любой участник и в этом не требуется помощь сторонних компаний или дорогое специализированное оборудование, что отчасти снижает риски корпоративной централизации. Драйджа также отмечал, что пользователи могут легко отделиться от корпоративных игроков, которые пытаются получить слишком большое влияние. «Представим, например, что все используют Amazon и Amazon говорит: “Мы также будем маршрутизировать платежи между пользователями”. Если одна нода начинает делать то, что не нравится людям, очень легко от нее отказаться. И они никогда не получат ваших денег», — говорит Драйджа. Разработчик Lightning-приложений в команде Blockstream Элейн Оу отмечает легкость вхождения в Lightning-индустрию, благодаря чему есть множество альтернатив, и пользователь не обязан вверяться компании, которая предоставляет некачественные услуги. «На сегодня существуют две другие реализации Lightning [помимо Blockstream: eclair от ACINQ и LND от Lightning Labs. — DeCenter.], потому я не слишком обеспокоена вопросом централизации. Характеристики находятся в открытом доступе, и изменения вносятся также открыто», — сказала Оу. Безопасность в сети Lightning тоже обещает быть на высоком уровне, благодаря концепции «сторожевых башен», которые будут оповещать пользователей в том случае, если мошенник попытается украсть их средства.