Часть 4: Применение концепций анализа цепочки для улучшения приватности пользователей
Cover

Часть 4: Применение концепций анализа цепочки для улучшения приватности пользователей

11 августа 2021 г.
Данный материал также доступен в видеоформате в этом плейлисте.

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

Перевод статьи от разработчиков Samourai Wallet

Поддержать проект

Введение #

Ранее в этом руководстве были представлены основные концепции, используемые в анализе цепочки, и концепции, используемые для обхода этого анализа.

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

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

Потерянные в блокчейне — отправные точки и нарушение псевдонимности #

Биткоин по умолчанию псевдонимен. Без дополнительной информации, привязывающей активность пользователей к активности в блокчейне, анализ не имеет “отправной точки” для отслеживания связанной с ней активности в сети Биткоина.

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

Для начинающих аналитиков обычно необходим некоторый “контекст” для проведения анализа. Таким ценным контекстом часто является анализ собственных транзакций. Пользователям, оценивающим историю своих транзакций через сторонний обозреватель блокчейна, рекомендуется использовать VPN или браузер Tor для предотвращения связи своего IP-адреса с информацией о транзакциях.

Рабочий процесс в обозревателе OXT — адреса в качестве отправных точек #

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

  1. Войдите в свою учетную запись OXT. Учетные записи бесплатны и не требуют для создания какой-либо персональной информации.

  2. Введите нужный адрес в строку поиска.

Запрос адреса в OXT

  1. Перейдите на вкладку TRANSACTIONS

Вкладка TRANSACTIONS на странице ADDRESS в OXT

  1. Выберите нужную транзакцию. Пользователи должны учитывать, что по начальному адресу может быть проведено несколько платежей. Если по адресу было проведено несколько транзакций, необходимо выбрать нужную транзакцию, исходя из объема и даты/времени проведения транзакций.

  2. После этого откроется страница транзакции.

Страница с деталями транзакции и инструментом создания графа

  1. Откройте граф транзакции, чтобы начать оценку движений UTXO.
Если у пользователя уже есть идентификатор нужной транзакции, он может не входить в аккаунт OXT и перейти непосредственно на страницу транзакции для доступа к графу. Дополнительные сведения о работе с графом транзакций см. в части 2.

Направления анализа — история и будущие траты UTXO #

Аналитики, получив исходную транзакцию и UTXO, могут вести исследование в двух направлениях.

Они могут искать “источник” средств, оценивая прошлую историю целевого UTXO. Оценка источника для цепочки транзакций с одним входом достаточно проста, поскольку не нужно принимать “решение” о том, по какому пути следовать за UTXO. Однако в случае транзакций с несколькими входами аналитику приходится оценивать несколько источников.

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

Направление исследования — источник и место назначения

Не следует отслеживать движение UTXO в различных кастодиальных сервисах. Маловероятно, что депозитный UTXO будет использован для выплат объекту, внесшему депозит.

Последствия отправки и получения платежей для приватности #

При отправке или получении платежа пользователь обязательно раскрывает контрагенту часть своего набора UTXO. В случае необдуманного управления UTXO это может привести к раскрытию контрагенту всего баланса кошелька пользователя.

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

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

Рассмотренные ниже приемы призваны смягчить негативные побочные эффекты прозрачности Биткоина.

Транзакции для повышения приватности в кошельке Samourai #

Большая часть анализа цепочки основана на следующих основных концепциях:

  • Аналитики нуждаются в отправной точке
  • Определение графа транзакций
  • Обнаружение сдачи
  • Кластеризация отдельных адресов по эвристике владения совместными входами

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

Команда OXT совместно с разработчиками кошелька Samourai тестирует и создает методики, которые смягчают недостатки приватности в сети Биткоин, представленные нами до этого момента. Эти техники рассматриваются ниже.

Скрытые адреса — отказ от отправной точки #

Аналитикам необходима отправная точка при попытке отследить деятельность объекта в блокчейне. Как правило, это означает привязку интернет-активности пользователя к адресу, который он опубликовал для получения платежей или пожертвований. По этому адресу аналитик может оценить активность пользователя, включая полученные платежи, общий баланс адреса и модели трат.

Пользователи часто обмениваются адресами для получения платежей. Передаваемые адреса - это те же адреса, которые отображаются в блокчейне и доступны для поиска через любой обозреватель блокчейна.

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

Реализация скрытых адресов в Samourai Wallet основана на предложении BIP47, выдвинутом проектом Open Bitcoin Privacy Project. Многоразовые платежные коды BIP47 позволяют отправителю создавать неограниченное количество уникальных Биткоин-адресов для платежей адресату без необходимости получателю быть онлайн.

Архитектура платежного кода BIP47 v1 (Источник)

Многоразовые платежные коды лишают аналитиков “простой” стартовой точки в блокчейне Биткоина. Более подробную информацию о многоразовом платежном коде в Samourai Wallet можно найти здесь.

Контроль монет — разделение UTXO #

Объединение входов из нескольких источников при будущих тратах может позволить отправителям платежей оценить историю транзакций других UTXO в сочетании с потраченными ими UTXO.

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

  • Маркировка полученных платежных UTXO. Как минимум, маркировка должна включать информацию об отправителе и причине платежа.
  • Пометка “Не тратить”. Чтобы кошелек не смог случайно включить UTXO в будущий платеж, UTXO можно сделать нерасходуемыми для включения в будущие платежи.
  • Отправка отдельных UTXO (выборочная активация). UTXO можно тратить выборочно.

Контроль монет в Samourai Wallet

При проведении платежей пользователям также следует взять за привычку маркировать свои UTXO. При добавлении комментария к одному UTXO кошелек Samourai автоматически присвоит ту же метку всем остальным UTXO (выходу сдачи) из той же транзакции.

Ricochet — увеличение дистанции #

Ricochet - это простой инструмент, который автоматически добавляет “скачки” (хопы), или фиктивные транзакции, между UTXO отправителя и назначением платежа. Ricochet-транзакции не скрывают источник средств и не нарушают граф транзакций. Однако эти транзакции увеличивают дистанцию между назначением платежа и предыдущей историей UTXO.

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

Пример Ricochet-транзакции

Текущая версия Ricochet производит четыре дополнительных скачка. Более “динамичный” Ricochet с изменяемым количеством хопов планируется в будущих обновлениях. Более подробную информацию о Ricochet можно найти здесь.

Stonewall и Stonewall x2 — платежи стали безопасными #

Stonewall и Stonewall x2 используют один и тот же алгоритм выбора UTXO для создания транзакций со свойствами CoinJoin. Stonewall - это имитация CoinJoin, использующая входы из одного кошелька. Stonewall x2 - это “настоящий” CoinJoin, в котором используются входы от двух взаимодействующих пользователей/кошельков.

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

Пример Stonewall-транзакции

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

Благодаря свойствам CoinJoin, Stonewall-транзакции способны преодолеть эвристику круглого значения суммы платежа, которая не может быть побеждена простой тратой. Stonewall преодолевает эту эвристику путем создания транзакции с “фиктивным” выходом, равным предполагаемой сумме платежа.

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

Stowaway — преодоление CIOH #

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

Пример Stowaway-транзакции

PayJoin-транзакции, как правило, не имеют отличимого отпечатка в блокчейне. При построении транзакции используются два кошелька для включения входов от отправителя и получателя платежа. Это преодолевает CIOH и создает “ложный кластер”. Вследствие того, что получатель вносит вход в PayJoin-транзакцию, истинная сумма платежа в транзакции также скрывается.

Whirlpool — Создание приватности в будущем #

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

Whirlpool является единственной реализацией CoinJoin со 100% энтропией ZeroLink. Whirlpool не включает в транзакцию “несмешанную сдачу”, которая может быть использована для дальнейшего отслеживания действий пользователя.

Пример Whirlpool-транзакции

Процесс Whirlpool-транзакции начинается с транзакции Tx0, которая оплачивает комиссию координатора, создает готовые к смешиванию UTXO (Premix), равные номиналу пула плюс комиссия майнерам, и отдельный UTXO сдачи.

Входы для Tx0 следует выбирать с осторожностью, чтобы избежать объединения UTXO из разных источников. Совмещение нескольких источников входов позволяет выявить владение объединяемыми входами. UTXO сдачи также должны обрабатываться с осторожностью, чтобы не связывать напрямую любые будущие траты.

Пример транзакции Tx0

После CoinJoin и разрыва связей между исходными UTXO (Premix) и смешанными UTXO (Postmix) получатели платежей могут быть уверены, что отправители платежей не смогут достоверно отследить дальнейшие траты их платежных UTXO.

Обзор #

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

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

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

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

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

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

К таким шагам относятся:

  • отказ от привязки действий в блокчейне к личности в интернете
  • избегание повторного использования адресов
  • разделение UTXO с разной историей
  • обеспечение приватности в будущем с помощью CoinJoin
  • использование рассмотренных ранее расширенных инструментов траты

… для преодоления эвристик анализа цепочки.

Грамотное использование этих приемов может позволить пользователям получить привычный базовый уровень приватности.

Заключение #

Многие читатели просили подготовить общее руководство по приватности в сети Биткоин и OXT. Мы надеемся, что это руководство станет для вас отправной точкой для дальнейшего расширения вашего понимания приватности Биткоина.

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

Отзывы, комментарии и пожелания о создании дополнительных руководств приветствуются.

Спасибо за прочтение и оставайтесь в безопасности.

— Исследовательская команда OXT

Поддержите переводчика #

Поддержать переводчика можно, отправив немного сат в сети Лайтнинг:

LNURL1DP68GURN8GHJ7MRW9E6XJURN9UH8WETVDSKKKMN0WAHZ7MRWW4EXCUP0X9UX2VENXDJN2CTRXSUN2VE3XGCRQPNAPC6


Connect to our relay to leave a comment. Details.
Подключитесь к нашему релею, чтобы оставить комментарий. Подробнее.