AMLConsensus · курс
Программа · Урок 2.6
Раздел 2 · Урок 2.6

Граф транзакций и кластеризация адресов

Один человек в блокчейне почти никогда не пользуется одним адресом. У него их десятки, сотни, а у биржи — миллионы. Как же аналитику понять, что двадцать разных адресов на самом деле принадлежат одному кошельку? Ответ — граф транзакций и эвристики кластеризации. Это фундамент всей блокчейн-аналитики: именно так Chainalysis, Elliptic и AMLConsensus превращают хаос анонимных адресов в понятные сущности «биржа», «миксер», «мошенник».

Что такое граф транзакций

Блокчейн по своей природе — это гигантский граф. В математике граф состоит из вершин (узлов) и рёбер (связей между ними). В блокчейн-анализе:

Когда вы вводите адрес в AML-проверку, система не смотрит на него изолированно. Она подтягивает его окружение — кто ему платил, кому платил он, — и строит подграф. Именно по форме и содержанию этого подграфа делается вывод о риске.

Простейший пример графа: адрес A отправил 1 BTC адресу B, B отправил 0.5 BTC адресу C и 0.5 BTC адресу D. Нарисуйте это стрелками — и вы получите направленный взвешенный граф. Аналитик читает такие структуры как текст: разветвление на множество мелких выходов может означать «дробление» (structuring), схождение множества входов в один — сбор средств, а прохождение через известный контракт миксера — попытку разорвать связь.

Мини-схема потока.
Жертва фишинга → Адрес вора A → дробит на A1, A2, A3 → каждый на новый адрес → миксер → биржа-депозит.
Задача аналитика — не потерять «нить» через все эти пересадки и понять, что A1, A2, A3 — один и тот же владелец.

Проблема: адрес ≠ владелец

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

Эвристика 1: общий вход (common-input-ownership)

Это самая мощная и надёжная эвристика для сетей на модели UTXO (Bitcoin, Litecoin). Её идея проста и опирается на то, как работают подписи.

Логика common-input

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

  1. Наблюдаем транзакцию. Входы: адрес X (0.3 BTC), адрес Y (0.2 BTC), адрес Z (0.5 BTC). Выход: один платёж 1 BTC. Три входа собраны вместе.
  2. Делаем вывод. X, Y и Z подписаны одним человеком → все три принадлежат одному кошельку. Объединяем их в кластер.
  3. Расширяем. Если завтра X участвует в транзакции вместе с адресом W, то W тоже втягивается в тот же кластер. Кластеры растут «снежным комом».

Именно так один кластер биржи может разрастись до сотен миллионов адресов — все они хоть раз участвовали в совместных транзакциях consolidation.

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

Эвристика 2: адрес сдачи (change address)

Вторая классическая эвристика тоже родом из UTXO-модели. Когда вы платите частью своего баланса, «сдача» возвращается вам — но на новый адрес, чтобы не раскрывать остаток. Если аналитик поймёт, какой из выходов является сдачей, он свяжет этот новый адрес с отправителем.

Пример: адрес A тратит 1 BTC. Выходы: 0.7 BTC на адрес продавца B и 0.29 BTC на новый адрес C. Эвристика change: C — это сдача, а значит, C принадлежит тому же владельцу, что и A. Теперь A и C — в одном кластере, даже если формально это разные адреса.

Другие сигналы кластеризации

Поведенческие и внешние эвристики

От кластера к сущности: как аналитик «видит» кошелёк

Соберём всё вместе на сквозном примере. Аналитик расследует адрес жертвы, у которой украли средства.

  1. Строит граф вокруг адреса вора. Видит, что украденное дробится на A1, A2, A3. Первый слой отмывания.
  2. Применяет common-input. Через две недели A1 и A3 засветились в одной consolidation-транзакции — значит, это один владелец. Кластер собран. Дробление не помогло — эвристика склеила обратно.
  3. Применяет change-эвристику. Отслеживает сдачу и не теряет «нить», когда часть средств уходит на «новые» адреса. Кластер растёт.
  4. Ловит точку выхода. Кластер отправляет средства на адрес, помеченный как депозит биржи X. Здесь начинается off-chain.
  5. Делает вывод для отчёта. «Похищенные средства через 4 пересадки и дробление осели на депозите биржи X — туда следует направить запрос на раскрытие KYC». Анонимный граф превратился в actionable-вывод.
Почему это важно для AML-скоринга. Когда вы проверяете кошелёк в AMLConsensus и видите «связь с миксером» или «получение средств с даркнет-маркета», за этой строкой стоит именно кластеризация: система знает, что множество адресов миксера — одна сущность, потому что склеила их эвристиками. Без кластеризации каждый адрес был бы безымянным, и скоринг был бы невозможен.
Помните об ошибках. Эвристики — это вероятностные предположения, а не доказательства. Common-input ломается CoinJoin'ом, change-эвристика — умышленным использованием круглых выходов и одинаковых типов адресов. Хороший аналитик всегда указывает уровень уверенности и не выдаёт кластер за неопровержимый факт. Ложное склеивание двух владельцев в один кластер — реальный источник несправедливых «красных» скоров, о чём мы поговорим в разделе о ложных срабатываниях.

Материалы носят образовательный характер.