Chainalysis не сломала ни один криптографический примитив. Каждый трейс личности, который она выдаёт, начинается со статистического сопоставления паттернов на публичных данных леджера — кластеризация co-spend, эвристики депозитных адресов, тайминг- и поведенческие отпечатки — плюс off-chain корреляция вроде записей KYC и IP-логов. Это не взлом кода. Цепочка раскрывает паттерны, а не тебя. Это различие определяет, сколько защиты приватности тебе реально нужно, и в нём весь смысл этой статьи.
Что на самом деле доступно Chainalysis
Chainalysis получает ровно то, что видно любому с block explorer’ом: адреса, суммы транзакций, таймстампы, типы скриптов и полный публичный граф связей между ними. Никакого особого доступа на уровне протокола, никакого бэкдора в Bitcoin или Ethereum и никакой возможности что-то расшифровать — потому что на прозрачных цепочках расшифровывать нечего. Сырые данные бесплатны и публичны; продукт Chainalysis — это слой, построенный поверх них.
В этом слое два компонента. Первый — on-chain эвристики, группирующие тысячи адресов в кластеры с предполагаемым общим владельцем. Второй — проприетарная база размеченных сущностей: hot-кошельки бирж, известные адреса миксеров, кошельки даркнет-маркетов, санкционные адреса — собранная за годы лицензионных сделок, записей по повесткам и ручных расследований. Ни один из компонентов не требует доступа к самому протоколу. Оба применяются поверх данных, которые уже были публичны в момент подтверждения транзакции.
Как работает кластеризация адресов: co-spend, change-address, deposit-эвристики
Базовая техника, формализованная в академической работе больше десяти лет назад, — эвристика co-spend (она же common-input-ownership): если Bitcoin-транзакция тратит несколько входов вместе, эти входы почти наверняка принадлежат одному кошельку, потому что подписать все входы разом может только тот, кто владеет ими всеми. Применив это ко всей цепочке, тысячи адресов схлопываются в горстку контролирующих кластеров.
Вторая техника — эвристика change-address. У типичной Bitcoin-транзакции два выхода: платёж получателю и сдача обратно отправителю. Статистические паттерны — круглые суммы платежа, несовпадение типов адресов, порядок выходов — позволяют аналитику с приличной точностью угадать, какой выход — сдача, расширяя кластер с каждой новой транзакцией.
Третья — эвристика deposit-address, именно так Chainalysis атрибутирует кластеры конкретным биржам. Кастодиальные платформы генерируют свежий депозитный адрес под каждого пользователя, но в итоге сметают средства в небольшое число hot-кошельков. Наблюдение за тысячами таких свипов со временем раскрывает паттерн hot-кошелька, и любой адрес, который потом депонирует туда, помечается «отправил средства на биржу X» — при этом Chainalysis никогда не видит внутреннюю базу биржи.
| Эвристика | Что наблюдается | Что раскрывается |
|---|---|---|
| Co-spend (common-input) | Несколько входов подписаны в одной транзакции | Входы принадлежат одному владельцу |
| Change-address | Паттерны выходов, суммы, типы адресов | Какой выход возвращается отправителю |
| Deposit-address | Повторяющиеся свипы на известные hot-кошельки | Какой кластер принадлежит какой бирже |
Эта академическая база — прежде всего эвристики co-spend и change-address, формализованные в работе Meiklejohn и соавторов “A Fistful of Bitcoins” — десять лет спустя остаётся хребтом коммерческой блокчейн-аналитики. Chainalysis и конкуренты добавили сверху machine learning и более крупные размеченные датасеты, но базовая логика — та же статистическая инференция, не криптоанализ.
Chainalysis не сломала ни один криптографический примитив. Каждый её трейс — статистическое сопоставление паттернов на данных, которые и так были публичны.
Ethereum и аккаунт-модель: почему кластеризация устроена иначе
UTXO-структура Bitcoin — причина, по которой co-spend кластеризация вообще существует: свежий адрес по умолчанию, поэтому связать их можно только инференцией. Аккаунт-модель Ethereum переворачивает это: кошелёк — это один постоянный адрес, используемый во всех транзакциях по дизайну, а значит кластеризация зачастую бесплатная. Не нужно выводить, какие адреса принадлежат одному владельцу, когда владелец и так транслирует один адрес на всё.
Сложнее на Ethereum не кластеризация, а прослеживание средств через композируемость. Один свап может задеть DEX-роутер, контракт пула ликвидности и мост в рамках одной транзакции, породив десяток внутренних трансферов, которые не выглядят как простой перевод. Прослеживание средств через несколько хопов DeFi-роутинга, особенно через мосты в другие сети, добавляет реальный шум в граф, хотя технически ничего не скрыто. Это замедляет аналитика — но не заставляет адрес исчезнуть.
Где на самом деле прикрепляется личность: KYC, IP-метаданные, фиатные офф-рампы
Одна только on-chain кластеризация даёт кластер, а не имя. Момент, когда к кошельку прикрепляется юридическая личность, почти всегда происходит off-chain — в одном из трёх мест.
Точки KYC. В момент, когда кластер адресов депонирует на биржу с верификацией личности или выводит с неё, этот кластер привязывается к юридическому имени во внутренней базе биржи — базе, которую Chainalysis не обязана видеть напрямую, потому что повестка, лицензионное соглашение или запрос правоохранителей могут вытащить запись, когда это важно.
IP-метаданные. Трансляция транзакции через кошелёк, подключённый к публичному узлу, или через некоторые RPC-провайдеры раскрывает IP-адрес рядом с транзакцией. Это утечка на сетевом уровне, а не блокчейн-уровне — но результат тот же: идентификатор, связывающий конкретного человека с конкретной транзакцией.
Фиатные офф-рампы. Конвертация крипты обратно в банковский счёт — это точка, где цепочка встречается с традиционной финансовой системой, а традиционные финансовые системы по закону хранят записи, привязанные к юридическим именам. Каждый офф-рамп — это чекпоинт, где хорошо размеченный, но анонимный кластер превращается в атрибутированный.
Раскрытие цепочки — поведенческое, а не криптографическое. Граф показывает паттерны; личность прикрепляется там, где цепочка касается чего-то, что уже знает твоё имя.
Как приватный роутинг рвёт цепочку кластеризации
Каждая эвристика выше зависит от публичного, постоянного графа транзакций, с которым она работает. Кластеризации co-spend нужны видимые входы. Детекции change-address нужны видимые выходы. Deposit-эвристикам нужны видимые паттерны свипов. Убери граф — и эвристикам не с чем работать, не потому что они ослабли, а потому что их исходных данных больше не существует.
Это и есть механизм, стоящий за роутингом свапа через цепочку с приватностью по умолчанию, как Monero. Ring signatures скрывают, какой из множества возможных входов реально был потрачен. Stealth-адреса означают, что получающий адрес никогда не повторяется on-chain, поэтому нет пункта назначения для кластеризации по нескольким входящим платежам. RingCT скрывает сумму транзакции целиком. Ни одной из трёх эвристик выше не за что зацепиться на этом участке маршрута — потому что нужные им данные никогда не попадали в публичный леджер.
Именно это структурно делает свап BTC в Monero или свап USDT в BTC через приватный маршрут — перемещает стоимость через участок маршрута, на котором у модели слежки просто нет графа для анализа. Как устроен двухходовой свап через Monero и обратно — читай в разделе как работает приватный роутинг.
Частые ошибки, которые обнуляют выигрыш в приватности
Разрыв on-chain графа не защищает от воссоздания той же связи off-chain — и большинство провалов приватности случаются именно там.
- Отправка результата напрямую на KYC-биржу. Если средства попадают на кастодиальный аккаунт, привязанный к верифицированной личности, внутренний леджер биржи просто восстанавливает связь, которую свап разорвал on-chain.
- Повторное использование одного адреса получения в нескольких свапах. Даже на приватной цепочке переиспользование адреса, переданного третьей стороне (бирже, продавцу), позволяет этой стороне скоррелировать несколько депозитов с одной личностью.
- Тайминг-корреляция. Свап сразу после известного депозита или сразу перед известным выводом даёт аналитику тайминг-отпечаток, даже если сами on-chain данные нелинкуемы.
- Подмешивание pre-KYC средств в маршрут. Если исходные средства уже были привязаны к верифицированной личности до начала свапа, эта история едет вместе с транзакцией до точки, где граф реально рвётся — задним числом она не исчезает.
Смежный сценарий провала, который стоит понимать структурно, а не просто исключать из головы, — что происходит, когда сам сервис приватного роутинга оказывается скомпрометирован. Различие между сломанной моделью приватности и эксплуатированной операционно важно при выборе, какому сервису доверить маршрут.
Когда статистический трейсинг всё ещё побеждает
Ничто из вышеописанного не делает трейсинг невозможным во всех сценариях, и честный ответ должен указывать границы.
Крупные транзакции привлекают ручное внимание расследователей независимо от использованной on-chain приватности — правоохранители с полномочиями повестки и достаточными ресурсами могут скоррелировать off-chain точки данных, от которых никакая криптография не защищает. Поведенческие отпечатки существуют независимо от отдельной транзакции: одно и то же ПО кошелька, один и тот же нод-провайдер, один и тот же паттерн браузерной сессии или одни и те же привычки логина на бирже могут связать активность между якобы разными личностями. А на фиатном офф-рампе никакая on-chain техника приватности не меняет того, что банки и лицензированные биржи обязаны хранить записи, привязанные к личности.
Реалистичный фрейминг — многослойная защита, а не серебряная пуля: разрывай on-chain граф там, где можешь, не воссоздавай ту же связь off-chain, и понимай, что цель — поднять цену и точность, необходимые для твоего трейсинга, а не заявить, что трейсинг становится математически невозможным. Конкретные сценарии, которые часто спрашивают читатели, — в FAQ.