Что такое Dandelion++ и почему это так круто

Вкратце, технология Dandelion++ создана для запутывания происхождения транзакций путём сокрытия IP-адреса, с которого транзакция уходит в сеть блокчейна. GHOST на данный момент является первой в мире криптовалютой, одновременно использующей технологию Dandelion++ и систему кольцевых подписей Ring CT.

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

Криптовалюты, ориентированные на конфиденциальность, такие как GHOST, Monero и Zcoin, включают в себя функции анонимности на уровне блокчейна (Ring CT и доказательства с нулевым разглашением), чтобы гарантировать невозможность отслеживания транзакций. Тем не менее, P2P/наслаиваемая сетевая коммуникация также играет жизненно важную роль в анонимизации взаимодействий в сети блокчейнов. Анонимные монеты интегрируют функции конфиденциальности сетевого уровня, такие как Tor и I2P, но эти функции также имеют длительную разработку и другие недостатки.

Протокол Dandelion (англ. «одуванчик») — это решение для анонимности сетевого уровня, которое было первоначально предложено в 2017 году, чтобы помочь улучшить конфиденциальность P2P-сети Биткойна. Впоследствии было обнаружено, что его первоначальное предложение содержит различные ошибки, которые со временем могут привести к его деанонимизации из-за некоторых идеалистических предположений о потенциальных противниках.

Что такое протокол Dandelion?

В конце концов, в мае в начале прошлого года была предложена улучшенная версия протокола под названием Dandelion++. Dandelion++ решает проблемы, связанные с исходным протоколом, и уже был реализован исследовательской группой, получив положительный ответ от команд разработчиков Биткойн. Dandelion++ уже активно используется в коде GHOST.

Что такое Dandelion++?

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

Чтобы лучше понять, как работает Dandelion ++, важно сосредоточиться на том, как транзакции транслируются в биткоинах и как работал исходный протокол Dandelion. В Биткоине, когда пользователь транслирует транзакцию со своего узла, она распространяется на узлы, подключенные к этому конкретному узлу, известные как его одноранговые узлы. Затем сообщение о транзакции распространяется в цепной реакции, где каждый узел далее распространяет сообщение на узлы, к которым они подключены. Это называется «протоколом сплетен» Биткойна, и благодаря ему транзакции могут очень быстро достичь большинства узлов в сети.

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

Источник сообщения транзакции и его IP-адрес (который не включен в сообщение транзакции Биткойн) могут быть отображены сторонними наблюдателями, если они контролируют достаточное количество узлов или используют суперузел, который подключен к значительному количеству узлов. Они могут эффективно сопоставить исходный адрес, наблюдая, какие узлы видят транзакцию первыми. В документации Dandelion++ явно указывается, как в исследовании, в котором использовался суперузел (supernode), регистрировался ретранслируемый трафик всех узлов P2P, и наблюдались закономерности распространения транзакции во времени, что позволяло в конечном итоге определить исходный IP-адрес. Связывая IP-адрес с псевдонимом отправителя, третья сторона может деанонимизировать пользователей и связывать дальнейшие транзакции, даже если для каждой транзакции используется новый открытый ключ.


Первоначально Dandelion предлагался для смягчения этих уязвимостей, но полагался на теоретические гарантии, которые не подтвердились на практике. В первоначальном предложении Dandelion были сделаны 3 идеализированных предположения:

  • Все узлы подчиняются протоколу
  • Каждый узел генерирует ровно одну транзакцию
  • Все узлы Биткойн запускают Dandelion


Эти предположения явно не работали на практике, и именно поэтому Dandelion++ пытался их решить. Оригинальный протокол Dandelion работает в 2 этапа:

  • Фаза стебля
  • Фаза пуха


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


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

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

Dandelion++ заметно отличается от Dandelion своей стеблевой фазой, когда он передает транзакции по переплетенным путям, известным как wires («телеграммы»), перед тем, как передать сообщение транзакции в сеть. Телеграммы могут быть фрагментированы, но его интуиция при выборе узла для распространения по-прежнему ограничивается его локальным соседством. Это важное соображение при сравнении решений для обеспечения анонимности на сетевом уровне, типа Tor, который является протоколом луковой маршрутизации, где клиентам требуется глобальная текущая сетевая информация для определения путей транзакций.

И Dandelion, и Dandelion++ работают в асинхронных циклах. Каждый узел продвигается вперед, когда его внутренние часы достигают определенного порога. Для каждого периода Dandelion++ функционирует в 4 основных компонентах с небольшой оптимизацией:

  • График анонимности
  • Переадресация транзакций (собственная)
  • Пересылка транзакций (реле)
  • Отказоустойчивый механизм

График анонимности использует случайный 4-регулярный граф, а не линейный график для фазы анонимности. Выбор узлов Dandelion++ реле не зависит от того, поддерживают ли их исходящие соседи Dandelion++ или нет.

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

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


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

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

Dandelion++ не увеличивает задержку в сети, и его практическая осуществимость была продемонстрирована в основной сети GHOST. Он предоставляет легкий и эффективный инструмент анонимности на сетевом уровне для уменьшения вероятности сопоставления атак для деанонимизации пользователей. Несмотря на свои преимущества, Dandelion++ не обеспечивает явной защиты от злоумышленников на уровне ISP или AS, которые могут использовать атаки маршрутизации для деанонимизации пользователей.


Сравнение Dandelion++ и Tor


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

Интеграция Tor на уровне сетевого стека криптовалютных систем является чрезвычайно сложной задачей. Monero является отличным примером этого, поскольку на внедрение своего Tor-подобного проекта I2P Kovri в их сеть потребовалось более четырех лет, и работа над ним всё ещё продолжается. У многих криптовалютных сетей нет ни времени, ни технических знаний для интеграции такого типа функций.

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

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

Заключение


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

Оригинал статьи на Medium: https://ghostbymcafee.medium.com/the-case-for-dandelion-bd37f2fb0771

Добавить комментарий