Dandelion++ является улучшением приватности, разработанным исследователями из Университета Иллинойса. Он изменяет способ передачи транзакций по сети Monero в попытке затруднить привязку транзакции или группы транзакций к конкретному IP-адресу. Обновление Dandelion изначально было разработано для Bitcoin, но разработчики Monero опередили их в реализации. Код для Dandelion++ был успешно интегрирован в кодовую базу Monero и будет включен в следующий релиз клиента Monero. Обновление не нуждается в хардфорке, так как не меняет никаких правил консенсуса. Monero сегодня Как и Bitcoin, узлы Monero взаимодействуют с другими узлами, используя тот же TCP/IP (Transmission Control Protocol/Internet Protocol - Протокол управления передачей/Интернет-протокол), который используется вашим веб-браузером для доступа к этой веб-странице. Кошельки Monero взаимодействуют по крайней мере с одним из этих узлов для доступа к сети. В настоящее время узел Monero, который транслирует транзакцию кошелька, начинает процесс передачи, называемый "затоплением". Исходный узел передает транзакцию всем своим пирам, а все эти пиры передают транзакцию всем своим пирам и так далее. К сожалению, при текущей реализации можно связать транзакцию с IP-адресом. Это непростая задача, требующая некоторой технической сложности и усердной работы, но при достаточной мотивации, навыках и ресурсах это можно сделать. Команда исследователей из Люксембурга, Австралии и Гонконга в конце 2019 года показала, что можно развернуть узлы Monero, чтобы обнаружить все узлы в сети, а также их соединения. Определив топологию сети, вредоносный узел (узлы) может определить происхождение транзакции и ее IP-адрес, вычислив, какой узел (узлы) видит транзакцию первым. Dandelion++ - это метод передачи транзакции по IP-адресу, который делает эту транзакцию устойчивой для данного типа атаки. Monero и Dandelion++ Основная идея Dandelion++ заключается в том, чтобы сначала направлять транзакции в случайный узел неотслеживаемым способом, который затем рандомизирует "наводнение" транзакции. Имя Dandelion (Одуванчик) дает приблизительную визуализацию этой идеи. Узел, который пытается транслировать транзакцию, ищет один прокси-узел для трансляции транзакции. Это соединение выглядит как стебель и поэтому называется "стадией стебля". Затем прокси-узел при получении транзакции транслирует транзакцию таким образом, что поток информации создает фигуру, похожую на одуванчик. Это называется "стадией пуха". Стадия стебля также называется "стадией анонимности", а пуховая - "фазой распространения". Два различных способа ссылаются на один и тот же процесс. Стадия стебля достигает анонимности благодаря динамическому соединению, т.е. узлы переключают соединения каждые несколько минут. Каждый интервал времени между переключениями называется "эпохой". В начале каждой эпохи узлы случайным образом выбирают два новых соединения для передачи транзакций. Всякий раз, когда у узла появляется новая транзакция, которую он должен транслировать, он выбирает один из двух узлов ретрансляции и оставляет соединение с этим узлом в течение всей этой эпохи. После окончания этой эпохи начинается новая, и узел выбирает еще два узла для соединения. В дополнение к динамическому переключению каждую эпоху узел обозначает себя как ретранслятор или диффузор. Ретранслятор перенаправляет полученные транзакции на прокси-узел (фаза стебля или анонимности), а диффузор запускает процесс диффузии (фаза распространения или пуха). Во время фазы распространения время обмена данными между узлами случайное, что затрудняет обнаружение источника транзакции и, следовательно, соответствующего IP-адреса вредоносными узлами. Последний компонент Dandelion++ называется "отказоустойчивым механизмом". Каждый узел, который передает транзакцию во время фазы стебля, запускает таймер для этой транзакции. Если определенное количество времени проходит без получения транзакции узлом в фазе распространения, он инициирует свою собственную фазу распространения. Этот механизм защищает транзакцию от двух вещей: (1) транзакция была отброшена вредоносными узлами, которые могут отклонить транзакцию в фазе стебля, и (2) она срывает попытки деанонимизации, так как источником транзакции вряд ли является тот, кто "распространяет" или "пушит" транзакцию. Coda При наличии этих механизмов результатом является быстрый, эффективный и действенный метод сопротивления широкомасштабным злоумышленникам, которые пытаются нарушить правила и связать IP-адреса с транзакциями. С включением Dandelion++ в сеть Monero массивная недобросовестная бот-сеть, участвующая в сети Monero, не сможет надежно связать транзакции с IP-адресами. Сообщество разработчиков Monero продолжает невероятными темпами совершенствовать свои и без того всемирно известные механизмы обеспечения конфиденциальности. Мы гордимся поддержкой Monero на нашей платформе и надеемся на ее дальнейший успех. Источник: Monero Development Update: Dandelion++ Перевод: TheFuzzStone (@TheFuzzStone) Редактирование: Agent LvM (@LvMi4) Коррекция: Kukima (@Kukima)