Блог им. Ilia_Zavialov

Завьялов Илья (Поинт Пей) про приватность в сети Lightning.

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


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

В сценарии с несколькими “прыжками” или “хопами” (пересыланиями сатоши от одного партнера по каналу к другому и дальше) конечный получатель обретает часть другого UTXO, не того же самого, который вы, как отправитель изначально ему отправляли. Это можно сравнить с тем, как если бы я дал вам купюру в 10 долларов, чтобы вы передали ее вашему другу, а вы потратили мою купюру на проезд и передали вашему другу другую купюру, полученную вами в абсолютно другом месте. Только в Lightning это происходит посредством криптографии и эта система не вынуждает вас никому доверять.

Улучшенная приватность в сети Lightning

Каждый пир (участник/узел) в многохоповой транзакции запрашивает оплату у следующего пира в прыжке. Все, что они знают, – это кто попросил их направить платеж и кто является следующим пиром, которому следует передать средства. Из-за свойств луковой маршрутизации платежей маршрутизатор не знает, кто выступает в качестве последующих пиров на пути платежа и кто стоит в этой цепочке перед ними. Это также включает в себя первоначального отправителя или конечного получателя.

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

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

Приватные каналы не приватны

Приватные каналы (private channels) – это термин, используемый для описания канала, который публично не объявляется в Lightning Network. Общественность не может знать о существовании канала между двумя узлами или UTXO, стоящими за ними, не приложив никаких усилий. По умолчанию эту информацию знает только ваш контрагент по каналу. Однако давайте разберемся, почему “приватные каналы на самом деле не являются приватными”.

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

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

Чтобы получать средства по приватным каналам, вы должны закодировать информацию о канале в инвойсе, который вы предоставляете отправителю. К сожалению, идентификаторы каналов основываются на информации о UTXO. Отправители могут определить, какие UTXO лежат в основе ваших приватных каналов. Помните о 50% в лучшем случае, 100% в худшем, о которых мы говорили выше? То же самое применимо и здесь. Если вы не отправили инвойс по защищенному каналу связи, считайте, что это публичная информация. Также учитывайте, что отправитель может использовать эту информацию против вас — он может продать или обнародовать ее.

Но и это не самое страшное. Вы не только раскрываете эту информацию каждому отправителю, у которого запрашиваете средства, но и можете быть атакованы злоумышленниками. Можно спамить платежами через узел в попытке попасть в реальный приватный канал, угадав UTXO. Злоумышленник начинает с анализа всех транзакций в сети Биткоин и создания набора UTXO, которые отправляются на адрес, похожий на мультисиг. Обнаружив, что UTXO используется в приватном канале жертвы, злоумышленник может попытаться узнать, кто является обладателем второго узла. Это делается путем замены pubkey узла на один из 37,000 узлов, известных сети Lightning. Угадать другой узел невозможно только в том случае, если он никогда не открывал публичный канал и никогда не запускал приватный.

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

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

Решение: чтобы скрыть один из ваших UTXO, откройте приватный канал за одним из ваших публичных каналов. Альтернативный вариант – заставить другой узел открыть канал к вам, раскрывая только его UTXO.


теги блога Завьялов Илья Николаевич

....все тэги



UPDONW
Новый дизайн