LocalMonero will be winding down

The winding down process begins May 7th, 2024, and finishes after November 7th, 2024. Our support staff will be available for help throughout this period.
  1. Effective immediately, all new signups and ad postings are disabled;
  2. On May 14th, 2024, new trades will be disabled as well;
  3. After November 7th, 2024, the website will be taken down. Please reclaim any funds from your arbitration bond wallet prior to that date, otherwise the funds may be considered abandoned/forfeited.

Как Dandelion++ помогает сохранить приватность источников транзакций Monero

Опубликовано:
By Diego Salazar

Конфиденциальность как приоритет

Если смотреть на Monero невооружённым глазом, эта криптовалюта может показаться довольно скучной. Она не претендует на какую-то особую славу ‘мировой компьютерной’ или ‘революционной xyz индустрии’. Проект просто направлен на то, чтобы сделать деньги приватными, цифровыми и взаимозаменяемыми, и реализация любого очередного обновления и новой технологии только приближает Monero к достижению этой цели.

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

Monero предпринимает все меры предосторожности, необходимые для обфускации данных в блокчейне, таких как данные получателя, отправителя, и суммы, используя скрытые адреса, кольцевые подписи и обязательства Педерсена. Это сводит к минимуму вероятность того, что случайному наблюдателю удастся получить какую-то критически важную информацию после того, как транзакция будет проведена и станет частью уже записанной истории. Тем не менее, существуют некоторые виды атак, которые можно произвести исключительно в момент проведения транзакции и ни в какое другое время.

Атака, направленная на раскрытие IP-адреса

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

Хорошо, однако, то, что эту информацию не получится получить после того, как транзакция уже будет проведена, то есть, её не получится узнать позже, ведь IP-адреса не сохраняются в блокчейне. Также приятно осознавать, что подобный вид атаки едва ли будет воспроизведён в реальных условиях, поскольку для этого злоумышленнику придётся использовать большинство узлов, присутствующих в сети. Тем не менее, если кому-то удастся заполучить под свой контроль подавляющее большинство узлов, такой пользователь сможет идентифицировать “направление”, с которого пришла транзакция.

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

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

Если ситуация не стала понятней, давайте рассмотрим следующий пример. Предположим, у нас с вами есть общий друг, которого мы с вами не видим. Этот друг громко зовёт нас. Я слышу его голос первым и громче, чем вы. Обладая этой информацией, мы можем прийти к выводу, что я нахожусь ближе к нашему другу. Тот факт, что звук доходит до вас позднее (даже на какую-то незначительную долю секунды), и что звук этот тише, означает, что нам необходимо искать нашего друга где-то в области, в которой нахожусь я, а не вы.

Если злоумышленнику удастся угадать, каким из одноранговых узлов была отправлена транзакция, и поскольку у него будет IP-адрес, связанный с узлом, то злоумышленник будет уверен в том, что именно с этого IP-адреса была отправлена транзакция. Это довольно серьёзная информация, поскольку IP-адрес указывает на страну, в которой находится пользователь, а также на соответствующего провайдера интернет-услуг (ISP). Кроме того, самим ISP известно, какой IP-адрес закреплён за определённым пользователем, что означает фактическую деанонимизацию пользователя Monero.

Способы защиты

Одним из способов предотвращения подобной атаки является использование оверлейной сети, такой как Tor или I2P. В этом случае, даже если злоумышленнику удастся выяснить IP-адрес источника, то, вероятнее всего, это будет совсем не тот адрес, с которого была отправлена транзакция, а так называемый outproxy в случае с I2P или выходной узел оверлейной сети в случае с Tor. Однако, это нельзя считать всеобъемлющим решением, поскольку оверлейные сети, VPN и подобное программное обеспечение запрещены во многих странах, и надежда на то, что абсолютно все будут пользоваться такими сетями, синхронизироваться и проводить транзакции с их помощью, далека от реальности. Необходимо решение, которое позволит не прибегать к внешнему программному обеспечению и не использовать внешние сети; решение, которое будет доступно любому среднестатистическому пользователю.

Таким решением и является Dandelion++ (DPP) — обновлённая версия оригинального протокола Dandelion, разработанного для Bitcoin. Данный протокол предполагает наличие двух фаз, фазы стебля и фазы пуха, которые вместе составляют некое подобие одуванчика.

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

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

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

Безусловно, объединение вышеуказанных решений (DPP и оверлейной сети) обеспечивает более высокую гарантию конфиденциальности и защиты от отслеживания вашего IP. Также следует отметить, что DPP никак не защищает от другого вида атаки, связанного с отслеживанием сети, который может провести ваш ISP, но это не является темой данной статьи.

Dandelion++ будет реализован в сети Monero и будет по умолчанию использоваться основным клиентом после выхода версии 0.16. Это небольшое изменение ещё больше повысит защиту в сети Monero от возможных атак, и оно наглядно демонстрирует, почему Monero возглавляет список проектов, реализующих практические, прикладные технологии обеспечения приватности.

Читайте также