Перевод Метод атаки на кольцевые подписи Monero: воспроизведение эффекта транзакций с нулевыми миксинами / 1

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 2 май 2018.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    233
    Симпатии:
    68
    Часть первая

    Димаз Анка Виджайя (Dimaz Ankaa Wijaya)1, Джозеф Лиу (Joseph Liu) 1, Рон Стейнфелд (Ron Steinfeld) 1, Донгкси Лиу (Dongxi Liu)
    2
    1 Факультет информационных технологий, Университет Монаша, Австралия
    {dimaz.wijaya, joseph.liu, ron.steinfeld}@monash.edu

    2 Группа Data61, Объединениенаучных и прикладныхисследований (CSIRO), Австралия
    dongxi.liu@data61.csiro.au

    Аннотация

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


    Ключевые слова: Monero, кольцевая подпись, анонимность, конфиденциальность, отслеживаемость.

    I. ВВЕДЕНИЕ

    Monero является одной из самых ценных анонимных криптовалют в мире, и она основана на блокчейн технологии. Данные транзакции в блокчейне может увидеть каждый, как в случае с Bitcoin [1]. Однако, в отличие от Bitcoin, где любой желающий может отследить денежный поток между адресами, такое невозможно, когда речь заходит о Monero. Технологии использования кольцевых подписей и одноразовых ключей реализованы в качестве используемых по умолчанию настроек, что повышает анонимность данных транзакций. Реальные отправители скрываются за счёт добавления множества ложных объектов, при этом статус всех возможных отправителей одинаков, и они не отличаются друг от друга. Использование одноразового публичного ключа означает, что для каждого выхода создаётся уникальный адрес, а реальный адрес получателя никогда не будет открыт в блокчейне. При отсутствии какой-либо дополнительной информации невозможно определить, какой из адресов принадлежит определённому пользователю.

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

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

    II. ОБОСНОВАНИЕ

    A. Monero

    Monero является форком существующей криптовалюты под названием Bytecoin. В основе обеих монет лежит протокол CryptoNote, предложенный человеком, скрывающимся под псевдонимом Николас ван Саберхаген (Nicolas van Saberhagen), в 2013 году [2]. Основной целью протокола является создание анонимной криптовалюты. В случае с Bitcoin существуют определённые проблемы, связанные именно с анонимностью пользователей. Предыдущие исследования позволили выявить информацию, касающуюся пользователей Bitcoin и их действий, совершаемых с этой криптовалютой [3]. Более того, злоумышленникам, использовавшим анализ графа, удалось открыть паттерны транзакций [4].

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

    Основной особенностью Monero является наличие возможности «правдоподобного отрицания». В наборе публичных ключей невозможно определить, какие из них были потрачены при проведении транзакции (на один вход, созданный несколькими ключами, тратится только 1 публичный ключ). Поэтому другие публичные ключи являются ложными (фальшивыми). Несмотря на эту особенность, которая считается основным плюсом Monero, ограничения, связанные с её реализацией, мешают системе продемонстрировать весь свой потенциал. Анализ показал, что значительную часть транзакций Monero можно отследить.

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

    На рынке есть разные кошельки Monero. Первый и, пожалуй, главный кошелёк monero-wallet-cli создан главными разработчиками Monero. Сейчас он дополнен версией GUI. Вторым кошельком является онлайн кошелёк MyMonero. Это сетевой кошелёк, который можно использовать для создания нового кошелька, транзакций и сканирования блокчейна с целью вычисления текущего баланса. OpenMonero является открытой версией MyMonero с похожим интерфейсом, но улучшенной совместимостью с monero-wallet-cli, которую обеспечивает использование одной и той же мнемонической фразы, состоящей из 25 слов. Третий кошелёк разработан для операционной системы Android и называется Monerujo, и также является открытым проектом.

    Для проведения вычислений с Monero кошельки OpenMonero и Monerujo используют ту же кодовую базу, что и monero-wallet-cli. Отличается только их интерфейс. Другой кошелёк Monero, разработанный Freewallet, имеет закрытый код, и его использование не рекомендуется сообществом Monero, так как пользователи не владеют собственными приватными ключами.

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

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

    Сначала кошелёк Monero запрашивает «гистограммные данные». Это информация по максимальному индексу для каждой суммы каждого выхода в блокчейне. На основе этих гистограммных данных кошелёк Monero получает множество индексов. Количество индексов превышает размер кольца. В случае с транзакцией, проводимой в соответствии с протоколом RingCT, индексы будут браться из гистограммы с нулевой суммой (так как при использовании протокола RingCT любая информация о сумме транзакции шифруется, и система не может прочитать эту информацию и указывает нулевую сумму, хотя, на самом деле, она может и не быть нулевой).

    1.jpg

    B. Анонимность Monero

    Анонимность Monero состоит из двух частей: несвязываемости и неотслеживаемости [2]. Несвязываемость можно описать на примере двух транзакций — невозможно определить были они отправлены одному и тому же человеку или нет. А неотслеживаемость касается ряда входов и невозможности определения, какой из входов был потрачен в ходе транзакции [5]. Согласно определению, несвязываемость направлена на защиту получателя, в то время как неотслеживаемость сохраняет анонимность отправителя.

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

    1. Кольцевая подпись

    Ривест, Шамир и Тауман (Rivest, Shamir, Tauman) первыми предложили использовать кольцевые подписи для раскрытия секретных данных общественности. Утечка секретной информации может свидетельствовать о том, что она происходит из авторитетного источника (например, из совета директоров), но лицо, которое обнародует данные, при этом может пожелать скрыть, что именно оно является источником раскрытия секретной информации. Кольцевая подпись позволяет подписать информацию, используя приватный ключ, соответствующий публичному ключу, включённому в набор публичных ключей. Никто не сможет определить, какой из публичных ключей является тем ключом, которым была подписана транзакция.

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

    2.jpg

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

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

    2. Одноразовый публичный ключ

    Одноразовый публичный ключ, используемый в соответствии с протоколом CryptoNote, некоторым образом похож на скрытый адрес, который был создан в экосистеме Bitcoin. При этом сценарии получатель отправляет «родительский публичный ключ» отправителю. Затем отправитель, используя секретные ключи, генерирует «дочерний публичный ключ», который включается в данные транзакции в зашифрованном формате.

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

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

    3. Кольцевые конфиденциальные транзакции

    Кольцевые конфиденциальные транзакции (RingCT) впервые были использованы в Wolfram Warptangent (версия 5) и стали обязательными в Helium Hydra (версия 6). В блокчейне Monero первым блоком, содержащим RingCT транзакцию, является блок под номером 1 220 517. RingCT является методом, объединяющем в себе использование кольцевых подписей и конфиденциальных транзакций. Он был разработан для того, чтобы включить возможность конфиденциальных транзакций в систему Monero, которая уже использовала кольцевые подписи.

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

    Есть проблема ликвидности, когда пользователи не могут создать транзакцию с достаточным количеством ложных объектов и используют транзакцию с нулевыми миксинами. Транзакция с нулевыми миксинами предполагает отсутствие ложных объектов. Следовательно, она отслеживаемая, так как в отличие от транзакций с ложными объектами со 100% вероятностью можно определить, какой публичный ключ тратится в транзакции с нулевыми миксинами. Так как выходы в RingCT транзакциях маркируются как выходы с нулевым количеством монет, ложные объекты могут быть выбраны среди огромного количества публичных ключей.

    C. k-анонимность

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

    В случае с Monero, k-анонимность может быть использована для определения уровня анонимности каждого входа, содержащего множество выходов в качестве ложных объектов. Анонимность реального входа зависит от неотличимости каждого объекта и количества используемых ложных объектов.

    D. Модель обработки

    Нами была определена следующая модель обработки Monero. Любой может видеть всю информацию, содержащуюся в блокчейне Monero. Безопасность подтверждённых транзакций зависит от модели консенсуса Monero. Мы также определяем 2 типа «атакующих»: Атакующий A и Атакующий B. Атакующий A имеет достаточно средств, чтобы создавать стандартные транзакции и изменённые транзакции, но не имеет никакого доступа к программному обеспечению криптовалютных бирж или кошельков.

    Существует группа Атакующих A = [A1, A2, A3, …], вступивших в сговор с целью атаки системы, но они не доверяют друг другу. Атакующий B имеет все те же возможности, что и Атакующий A, но также он может изменять программное обеспечение криптовалютных бирж или кошельков. Также существует группа Атакующих B = [B1, B2, B3, …], вступивших в сговор, но не доверяющих друг другу. Атакующий A и Атакующий B также могут сговориться, чтобы их действия возымели наилучший результат. Атакующие реализуют все этапы предлагаемого метода. Также есть наблюдатели, которые не заинтересованы в создании транзакций, но которых привлекают результаты и последствия. Также есть пользователи, которые используют кошельки и создают транзакции, но не заинтересованы в оценке анонимности своей деятельности.

    Продолжение статьи вы можете найти по этой ссылке
     
    #1 Mr. Pickles, 2 май 2018
    Последнее редактирование: 18 май 2018
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.