Графовые алгоритмы
PageRank, HITS, кластеризация совместного владения, коэффициент кластеризации, fan-метрики.
Графовые алгоритмы
Граф строится по транзакциям: вершины — адреса, рёбра — переводы, вес ребра — объём в USD. Для каждого скорируемого адреса строится эго-граф глубиной 2 hop (адрес → контрагенты → контрагенты контрагентов). Ограничение размера графа — до 50 000 вершин.
flowchart LR
A[Скорируемый адрес] --> B[Контрагенты<br/>1 hop]
B --> C[Контрагенты контрагентов<br/>2 hop]
A --> D{Метрики}
D --> E[PageRank]
D --> F[HITS]
D --> G[Кластеризация]
D --> H[Fan-метрики]1. PageRank
Использование: важность адреса в сети. Адреса, связанные с «важными» контрагентами (биржи, крупные DeFi-протоколы), получают более высокий базовый PageRank. Аномально низкий PageRank при высокой активности — признак изолированной фермы кошельков.
Формула:
PR(v) = (1-d)/(N) + d Σ_u ∈ In(v) (PR(u))/(| Out(u) |)Параметры:
- damping factor
d = 0.85 - итерации: до сходимости (
varepsilon = 10^-6) или максимум 100
Интерпретация в контексте риска:
| Значение | Интерпретация |
|---|---|
| Высокий PageRank + нормальные признаки | Органичный участник сети |
| Низкий PageRank + высокая активность | Изолированная ферма кошельков |
| Резкий рост PageRank | Возможное накручивание связности |
2. HITS (Hyperlink-Induced Topic Search)
Использование: различение хабов (распределители средств) и авторитетов (аккумуляторы средств). В контексте AML: миксеры — типичные хабы, адреса сбора — типичные авторитеты.
Формулы:
hub(v) = Σ_u ∈ Out(v) auth(u), auth(v) = Σ_u ∈ In(v) hub(u)Итеративно до сходимости, нормализация после каждой итерации.
| Сигнал | Интерпретация |
|---|---|
| Высокий hub-score | Распределитель средств (типично для миксеров) |
| Высокий authority-score | Аккумулятор средств (адрес сбора) |
3. Кластеризация совместного владения
Использование: выявление сибил-атак — множества кошельков, контролируемых одним владельцем (фарминг бонусов, обход лимитов).
Эвристики объединения адресов в кластер:
- Common input heuristic (BTC): несколько входов одной транзакции → один владелец
- Funding source overlap: адреса, пополненные с одного источника в коротком окне (< 1 час)
- Behavioral similarity: схожие паттерны сумм, времени, последовательности действий (косинусная близость векторов признаков > 0.9)
- Sequential funding: A пополняет B, B пополняет C — цепочка
Метрики кластера:
cluster_size— число адресов в кластере; кластер > 10 адресов — красный флагcluster_risk_score— доля адресов кластера с высоким рискомis_new_cluster— все адреса кластера созданы в окне < 7 дней
4. Коэффициент кластеризации (Clustering Coefficient)
Использование: плотность связей между контрагентами адреса. Высокий CC — контрагенты связаны друг с другом (замкнутая группа, например ферма). Низкий CC — разрозненные контрагенты (нормально для обычного пользователя).
Формула:
CC(v) = (2 · |{(u,w) ∈ E : u,w ∈ N(v)}|) / (deg(v) · (deg(v) - 1))где N(v) — соседи вершины v, E — множество рёбер.
| Значение | Интерпретация |
|---|---|
| CC → 1 | Замкнутая группа контрагентов (ферма) |
| CC → 0 | Разрозненные контрагенты (обычный пользователь) |
5. Fan-метрики (Fan-in / Fan-out)
Использование: массовые рассылки и сборы.
| Метрика | Определение | Сигнал |
|---|---|---|
fan_out_7d | Число уникальных получателей за 7 дней | > 50 — рассылка |
fan_in_7d | Число уникальных отправителей за 7 дней | > 50 — сбор средств |
fan_out_burst | Максимальное число получателей за 1 час | > 20 — всплеск |
fan_velocity | Fan-out за 24 ч / fan-out за 7 дней | > 0.7 — концентрация |
Контекст: нормальное поведение игрока — fan-out 1–5 (вывод на 1–2 адреса). Fan-out > 50 — аномалия, характерная для мошеннических схем.
Ограничения и компромиссы
- 2 hop граф: больше — экспоненциальный рост данных; меньше — теряем контекст
- Веса рёбер: только объём в USD (не учитываем частоту и давность в v1)
- Аппроксимация: для графов > 50 000 вершин — выборка топ-1000 по объёму контрагентов
- Детерминизм: все алгоритмы с фиксированным seed, результат воспроизводим