May 26, 2021

Приватность в Ligthning Network

В мире Биткоина уже установилось понятие спектра в отношении степени децентрализации любого протокола. Например, по отношению к основному блокчейну, сайдчейн Liquid является распределённым и более централизованным. При этом Lightning Network является более децентрализованной чем Liquid, но менее, чем Биткоин, в котором все экономические узлы равны. В Lightning Network какие-то узлы могут быть "ровнее" из-за доминирующей ликвидности и возможности установить свои ставки на маршрутизацию платежей. Картельный сговор будет уничтожен рынком быстро, но он возможен.

То же понятие спекта могло бы быть применимо и к приватности, если бы её компрометация не носила аддитивный характер. Если пользователь не является гиперпараноидальным, то каждая новая утечка будет успешно ликвидировать достинство нового уникального супер-приватного инструмента. Но у этого факта есть один ньюанс: мы как-бы переносимся в систему координат, связанную с пользователем, вместо того, чтобы стоять на позиции внешнего наблюдателя, который пытается собирать данные. В таком случае любые сайты, программы или устройства могут занимать своё место в "спектре приватности". Какой-то сайт ограничится временной формой и там не нужно будет создавать аккаунт, какое-то устройство можно использовать "как есть", не регистрируясь на сайте производителя и так далее, все эти примеры более приватные, чем любые аналоги, требующие аккаунта и тем более входа по паспорту.

В Биткоине есть место таким оценкам. Какие-то кошельки (Eclair, Phoenix, Electrum) используют протокол Electrum, который раскрывает все адреса кошелька своему серверу. То есть пользователям требуется свой сервер, чтобы пользоваться им приватно. Иные кошельки могут быть лёгкими SPV клиентами и в некотором роде они будут приватными без необходимости иметь всю инфраструктуру в своём распоряжении(BLW, Wasabi, Blitz). Чем особенно плох Биткоин в плане приватности: блокчейн должен храниться вечно. Это гарантия его децентрализации и консенсуса десятков тысяч узлов в отношении общей истории. При этом молчаливый наблюдатель может на протяжении многих лет собирать информацию из мемпулов его сотен узлов, распределённых в разных точках земного шара, сканировать страницы сайтов в поисках адресов и отслеживать пользователей форумов, которые публикуют свои биткоин адреса. Некоторое количество альткоинов (Monero, ZCash, Beam, Grin) пытаются решить эти проблемы на уровне базового протокола.

Допустим на секунду, что все они, Monero, ZCash, Beam или Grin, решили проблему Биткоина и значительное количество пользователей поверили в это. Они начинают устанавливать кошельки, заходить на определённые сайты, чтобы обменять нужную криптовалюту. На этом этапе они все уже могут быть скомпрометированы и подвержены более целенаправленной атаке. Например, так было с пользователями Tor браузера. Только представьте, что недавно обнаруженная уязвимость, которая позволяла деанонимизировать пользователей Tor браузеров с помощью специальных JS скриптов, существовала на протяжении 11 лет. В случае кошельков "приватных" альткоинов нарушается первое правило приватности не выделяться в толпе.

В противоположность любому "приватному" альткоину Ligthning Network разрабатывается в первую очередь в целях масштабирования. Ключевое качество сети должно позволить сделать как можно больше платежей любого вида и адаптация среди торговых точек подразумевается сама собой. Для многих кошельков LN главными являются простота использования, чтобы их установили тысячи новых пользователей самостоятельно и через магазины приложений. Успешный LN кошелёк будет массовым и будет совершать транзакции оффчейн, а значит приватность будет побочным продуктом широкой адаптации. Ни один из "приватных" альткоинов не может мечтать об этом, поскольку ни у одного из них нет реальных планов масштабирования.

Атаки на приватность и анонимность в LN

Ончейн приватность

В части биткоин-коммьюнити, которая использует и продвигает CoinJoin распространен взгляд на LN как на так называемый post-mix инструмент, когда каналы создаются из монет, прошедших через CoinJoin. Это имеет смысл для узла LN, который 100% времени работает в Tor, но мало кто обращает внимание на то, что ни одна из реализаций LN не поддерживает нормальную работу с выходами CoinJoin, поскольку это не является приоритетом. Узлы Лайтнинг свободно обращаются с выходами транзакций биткоина и формируют новые каналы из них. Таким образом эффект от разрушения детерминистических связей между транзакциями может быть довольно быстро сведён на нет, к тому же несколько компрометируя всех остальных участников CoinJoin.

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

Попытка деанонимизации LN узлов предпринималась в работе о совместном анализе блокчейна Биткоина и сети Лайтниг. Авторы описали эвристики, с которыми они работали и рассказали, что им удалось связать 43.7% LN узлов с 26.3% Биткоин-адресами. Однако, возможность кластеризации адресов и связи с публичными адресами узлов не является научным открытием. Это технических компромисс, который сопутствовал LN и пока не разработано хороших средств сокрытия идентичности узла Лайтнинг ончейн. В ответ на это Dammkewl представил техническое решение для объединения LND и CoinJoin клиентов в одну систему. Это может помочь запутать ончейн след узла Лайтнинга, работающего за Тором.

Прозрачность леджера Биткоина это "не баг, а фича". На этом уровне LN будет всегда зависеть от технологий, которые создаются для того, чтобы повысить приватность ончейн транзакций. При этом возможны альтернативы, сайчейн Liquid также допускает работу LN протокола и clightning клиент его поддерживает. Это означает, что если существует задача создания сети типа Лайтнинг для существенной экономии на оффчейн расчётах, то это возможно реализовать в сайдчейне с достижением улучшенной приватности с использованием конфиденциальных транзакций (они полностью маскируют количество токенов в канале).

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

Например идея субмарин свопов, submarineswaps.org, первоначально разрабатывалась для ончейн операций альткоины-Биткоин, но оказалась также очень полезной для LN. На её основе работает сервис Lightning Labs Loop и LND узлы могут иметь прямой доступ к нему через свои клиенты. Идея свопов заключается в возможности оплатить ончейн платежом инвойс LN, с помощью Биткоина или например Лайткоина. Также как у Chainmarket, у него есть определённые достоинства в смысле приватности: не смотря на то что Bitcoin Script траты выходов сервера могут быть хорошо заметны, в целом сервер не имеет понятия, кто оплатил инвойс LN, если средства выводятся из Лайтнинг, и ончейн они отправляются также в направлении, известном только клиенту. Однако при вводе сатоши в Лайтнинг, если производится расходование биткоинов с узла LN, то скрипты будут заметны и внешнему наблюдателю будет понятно, что используется Loop для ввода ликвидности.

Тайминг атаки

В работе Counting Down Thunder: Timing Attacks on Privacy in Payment Channel Networks исследовались уязвимости приватности, когда атакующая сторона находится на пути платежа и получает информацию о состоянии каналов через величину заморозки HTLC контракта, возрастающую по мере удлинения пути платежа и равную 0 в конце (т.е. мы знаем точно например получателя). В общем случае, внутри сети Лайтнинг работает луковая маршрутизация — т.е. начало и конец маршрута для промежуточного узла не известны. Однако в описываемом типе атаки используется информация для неявных вычислений и сокращения множества анонимности отправителей и получателей.

Обмен сообщениями о состояниях канала при роутинге платежа

Проверку концепции авторы выполнили на основе плагина c-lightning и в общем в статье убедительно демонстрируется наличие уязвимости. Решение данной проблемы предлагалось разработчиками клиентов Лайтнинг в форме "теневого роутинга", т.е. приданию интервалам блокировки HTLC случайного значения. Технология разбиения крупных платежей на мелкие и отдельного роутинга в данном случае не сильно помогает защититься от атаки, но снижает вероятность попадания платежей на прослушиваемые маршруты.

Проблему тайминг-атак может частично решить более продвинутый выбор маршрутов. В работе “Security and Privacy of Lightning Network Payments with Uncertain Channel Balances” авторы предприняли попытку улучшить алгоритм поиска оптимального маршрута платежа. Лучшие варианты для конткретного адреса и размера платежа помогают снижать количество попыток, которые узел пытается предпринять и таким образом снижают количество информации, которую сообщает LN узел о себе во внешнюю сеть.

На графике черная сплошная линия показывает результаты симуляции текущим алгоритмом выбора пути платежа и все остальные это более-менее оптимизированные алгоритмы. В целом новый метод снизил на 20% количество попыток для оптимизированных вариантов поиска. Авторы обещают, что если новый алгоритм будет совмешён с предложениями о добавлении методов ребаланса в BOLT14, снижение попыток может достигнуть 48%. Эта работа показывает как приватность может быть улучшена в системе координат, связанной с узлом.

Деанонимизация платежей LN

В An Empirical Analysis of Privacy in the Lightning Network авторы занимались несколькими направлениями: определением состояний каналов, т.е. балансами контрагентов и деанонимизацией отправителя и получателя. Описываемые атаки использовали публичную информацию и относились только к публичным каналам (которые делают маршрутизацию платежей), проведённая атака была осуществлена на тестнете, майннете, две другие — на симуляторе, по причинам экономическим и этическим. В тестнете авторы смогли создать каналы с 132 узлами, пытаясь атаковать 4585 каналов, они смогли получить информацию о 619 каналах с 47.68 BTC суммарной ёмкости. Они связали такой низкий процент успеха с проблемами работы клиентов и зомби-каналами. В майннете из 1 293 каналов были разведаны балансы 678, суммарной ёмкостью 6.06 BTC. Разведка платежа, также как и разведка получателя и отправителя использовала информацию, добытую о состоянии каналов и снепшоты — "снимки" состояния балансов для отслеживания изменений каналов и определения направления платежа, в таком случае направление движения можно определять вычислительным образом.

В LN реализовано разбиение больших платежей на совокупность более мелких отдельных транзакций, так называемые (Base) Multipath Payments или более продвинутая технология Atomic Multipath Payments в этом случае только если наблюдатель имеет точные частые снэпшоты всей сети Лайтнинг, он сможет проанализировать реальные размеры платежей на конечные узлы. Даже предполагая, что он каким-то образом достиг это результата и генерирует снэпшоты с частотой платежей через каналы, если пользователь имеет хост-канал, или платит пользователю с хост каналом, то конечный адресат платежа будет точно не известен наблюдателю. Виртуализация каналов между доверенными узлами может запутать путь платежа для наблюдателя со снэпшотами: платёж будет "исчезать" в одном месте графа сети "появляться" в другом.

Два альтернативных предложения роутинга служат для снижения количества раскрываемой истинной информации. Rendezvous, особый вид роутинга, когда получатель создаёт фейковые узлы в маршруте после себя и Route Blinding позволяет сделать "приватные" каналы менее заметными в процессе обычной работы LN. Особый алгоритм Trampoline routing важен прежде всего для мобильных узлов LN. Граф сети растёт непрерывно и уже трудно "умещается" в мобильные телефоны, к тому же имеющие ограничения на передачу данных. "Трамплинный роутинг" использует только часть графа сети и уменьшает возможности для утечки данных через автоматическое пробирование канала и тайминг атаку.

Заключение

Как мы видим в Lightning, вместе с исследованиями условно атакующими сеть, появились и развиваются идеи и технологии, которые улучшают работу сети и свойства приватности. Это особенность LN, поскольку она не зависит от основного протокола, который меняется медленнее и в конечном счёте должен перестать меняться совсем.

Лайтнинг — это платёжная сеть — чьи достоинства проявляются максимальным образом при высоких валовых платежах. Величина платежей остаётся достаточно низкой, и стимул атак, связанных с хищением средств, в большинстве случаев очень мал. Более опасными для идеи Лайтнинг сети как таковой могли бы быть атаки деанонимизации, поскольку она должна была бы иметь лучшие характеристики анонимности и приватности по сравнению с прозрачным Биткоином, однако опасности деанонимизации в Лайтнинг имеют совершенно отличный характер. Разумеется, и FATF и все прочие другие правительства будут стараться снижать пороговые суммы AML. Например, можно предположить что они могут упасть до размеров беспошлинных международных покупок, т.е. примерно 30-50 евро. Проблема в том, что для LN в текущем состоянии нормальными являются ещё меньшие платежи и с ростом устойчивости, надёжности и приватности (например за счёт лучшего роутинга и других мелких доработок), средние LN платежи будут расти. Чтобы атаковать сеть и деанонимизировать транзакции наблюдателю придётся собирать очень много разнообразной информации, сложно представить, что это возможно, также как и сложно представить, что в этом будет какой-либо смысл вообще, поскольку в этом случае любая альтернативная платёжная система типа PayPal также будет вынуждена тотально отслеживать и отчитываться о таких транзакциях.

Любая технология в Лайтнинге может быть разработана очень быстро и быстро внедрена. Например в кошельке Bitcoin Lightning Wallet используются хост-каналы, "виртуальные" каналы, которые не создаются транзакцией в Биткоине а используют реальный канал "хоста", будучи оконечным узлом в графе сети Лайтнинг. Пользователь может создать такой канал, пополнить его через какой-либо сервис, потратить деньги и уничтожить публичный ключ, т.е. идентичность в сети LN, все эти действия могут быть совершены в течение 10 минут, т.е. одного периода между блоками Биткоина. Даже если информация об отправителе будет сохранена на каком-либо узле атакующего, это не будет иметь никакого смысла (для него). Публичные хост-каналы комбинируются с trampoline routing и вообще не содержат никакого ончейн следа, хотя требуют наличия некоторой доверенной среды между узлами, или контроля этих узлов со стороны одного сервиса. В этом случае вероятно появление сервисов, аналогичных централизованным миксерам Биктоина, только с низкими рисками, поскольку платежи совершаются практически в реальном времени.

Поддержите канал!

Шлите ваши сатоши, используя эту LNURL ссылку

LNURL1DP68GURN8GHJ7MRWW3UXYMM59E3XJEMNW4HZU7RE0GHKCMN4WFKZ7URP0YLH2UM9WFHXZMT9843NXUPSWFESSLK458

Используя страничку, либо просто пользователю @c3p0rs через @lntxbot.

Если вы ещё не знаете как использовать сатоши в Лайтнинг сети, прочитайте руководство для кошелька BLW или исследуйте Телеграм-бот @lntxbot.