Раздел 4 · Урок 4.1
Exposure и multi-hop taint: как считается риск
Когда сервис показывает «риск 72/100» или «12% средств связаны с даркнетом», за этими цифрами стоит конкретная математика. В этом уроке разбираем, как из графа транзакций получается число: что такое exposure, как «краска» рискового источника проходит через цепочку переводов, чем отличаются модели haircut и FIFO и почему далёкие хопы должны весить меньше близких.
▶ Видеоурок: как считается риск-скор (озвучка на русском).
Прямой риск против косвенного
Первое различие, без которого невозможно понять ни один отчёт, — это разница между прямым и косвенным риском.
- Прямой риск (1 хоп)Проверяемый адрес получил средства напрямую от рискового контрагента или отправил их ему. Между вами и источником нет посредников. Это самый сильный сигнал: если кошелёк получил USDT прямо с санкционного адреса из списка OFAC, обсуждать нечего.
- Косвенный риск (2+ хопа)Между вами и источником есть промежуточные адреса. Деньги пришли от кошелька, который сам ранее получил их от миксера. Чем длиннее цепочка, тем слабее связь и тем осторожнее нужно её интерпретировать.
Практический смысл прост: прямой контакт с санкциями или взломом — это почти всегда стоп-фактор, а косвенная связь на 4–5 хопов через десятки обычных кошельков — часто фоновый шум, который есть почти у любого активного адреса. Задача скоринга — не паниковать от любой связи, а количественно оценить, сколько именно рисковых денег и насколько близко они к проверяемому кошельку.
Что такое exposure
Exposure (экспозиция) — это доля средств кошелька, которую удаётся проследить до рискового источника или к рисковому получателю. Измеряется в процентах или в абсолютной сумме.
Ключевая идея: скоринг работает не с «да/нет», а с долями. Кошелёк редко бывает на 100% чистым или на 100% грязным. Реальная картина — «41% входящих средств прослеживается до P2P-бирж без KYC, 6% — до даркнет-маркета, остальное — до централизованных бирж с верификацией». Такой профиль экспозиции и есть сырьё для итоговой оценки.
Различают два направления, и путать их нельзя (этому посвящён отдельный урок 4.2):
- Входящая экспозицияОткуда пришли деньги на кошелёк. Отвечает на вопрос «не отмываю ли я чужой криминал».
- Исходящая экспозицияКуда кошелёк отправляет деньги. Отвечает на вопрос «не финансирую ли я запрещённое».

Multi-hop taint: «краска» рискового источника распределяется по цепочке переводов и слабеет с каждым хопом. Проверяемый кошелёк наследует лишь ту долю, которая физически до него дотекла.
Taint-анализ: как краска течёт по графу
Taint (буквально «пятно», «загрязнение») — это метод, которым риск «переносится» по графу транзакций от источника к вашему адресу. Представьте, что рисковый кошелёк окрашивает свои монеты красной краской. Дальше вопрос в том, какая доля этой краски дойдёт до проверяемого адреса через промежуточные переводы.
Механика на одном примере. Пусть адрес X получил 10 ETH, из них 3 ETH пришли с миксера (рисковый источник), а 7 ETH — с обычной биржи. Тогда:
- Считаем прямую экспозицию X. 3 из 10 ETH окрашены → tainted-доля X = 30%.Это входящая экспозиция первого хопа.
- X отправляет 5 ETH на адрес Y. Вопрос: сколько «красных» ETH ушло к Y?Ответ зависит от модели окрашивания — см. haircut против FIFO ниже.
- Y наследует часть краски. Его собственная экспозиция теперь зависит и от X, и от других его входящих переводов.Так риск распространяется на второй хоп и дальше.
Именно из-за шага 2 существует не одна, а несколько конкурирующих моделей taint. Выбор модели радикально меняет результат, поэтому его нужно понимать.
Haircut против FIFO: две модели окрашивания
Проблема в том, что монеты на блокчейне взаимозаменяемы (fungible). Когда на адресе смешались чистые и грязные средства, а потом часть ушла дальше, невозможно физически сказать, «какие именно» монеты отправились. Поэтому модели вводят разные допущения.
- Haircut (пропорциональное окрашивание)Считаем, что любой исходящий перевод несёт краску пропорционально общей доле загрязнения на балансе. Если баланс окрашен на 30%, то и каждый ушедший рубль окрашен на 30%. В примере выше из 5 ETH к Y уходит 1.5 ETH краски. Модель мягкая, «размазывает» риск тонким слоем по всему графу и быстро затухает.
- FIFO (First In, First Out)Считаем, что монеты тратятся в порядке поступления: первым пришёл — первым ушёл. Тогда важен точный порядок транзакций. Если грязные 3 ETH пришли раньше чистых, то первый же исходящий перевод «вычерпывает» именно их. Модель строгая, способна отследить конкретную сумму до конкретного получателя и используется в форензике и судебных разбирательствах.
Почему это важно на практике. Один и тот же кошелёк по haircut может показать «4% риска» (размазано), а по FIFO — «эти конкретные 3 ETH пришли с миксера и ушли на биржу такой-то». Haircut отвечает на вопрос «насколько в среднем загрязнён баланс», FIFO — «куда физически ушли грязные монеты». Коммерческие платформы обычно комбинируют: haircut для скоринга, FIFO/poison («отравление» — весь смешанный вывод считается грязным) для расследований.
Существует и третья, самая жёсткая логика — poison / taint-by-association: любое касание грязных средств делает весь кошелёк грязным (100%), без учёта долей. Она даёт огромное количество ложных срабатываний и в чистом виде почти не применяется для скоринга, но встречается в некоторых санкционных трактовках, где важен сам факт контакта.
Затухание по хопам и taint inflation
Здоровый скоринг обязан затухать с расстоянием. Связь через 1 хоп и через 6 хопов не могут весить одинаково — иначе почти любой адрес окажется «связан» с чем угодно, ведь блокчейн сильно связный граф.
- Decay (затухание)Вес рискового вклада уменьшается с каждым хопом — например, множителем 0.5 или через порог «дальше N хопов не считаем». Прямой контакт весит полной силой, шестой хоп — почти ничего.
- Порог отсеченияМногие движки просто обрезают анализ на 5–10 хопах: дальше сигнал неотличим от фона и добавляет только шум и вычислительную нагрузку.
Taint inflation — главная ошибка новичка. Если складывать экспозицию по всем путям без затухания и без нормировки, цифры «раздуваются» и превышают 100%. Один грязный источник, до которого ведут десять параллельных путей, может быть посчитан десять раз. Итог: кошелёк с реальными 5% риска выглядит как «связан с криминалом на 80%». Правильный движок нормирует вклад по фактически дотёкшей сумме и не считает одну и ту же монету дважды.
Отсюда практический навык чтения отчётов: всегда смотрите не только на процент, но и на дистанцию (сколько хопов) и на модель (haircut или FIFO). «30% косвенной экспозиции на 5-м хопе по haircut» и «30% прямой экспозиции по FIFO» — это две принципиально разные ситуации с разными управленческими выводами.
Разбор кейса от начала до конца
Соберём всё вместе. Клиент присылает адрес и просит проверить перед приёмом платежа.
- Строим граф входящих. Идём назад по транзакциям на 5 хопов, помечаем известные источники по меткам.Биржи, миксеры, санкции, даркнет, P2P.
- Считаем прямую экспозицию. 0% прямого контакта с hard-флагами — уже хорошо.Прямой контакт с санкциями закрыл бы вопрос сразу.
- Считаем косвенную по haircut с затуханием. Получаем: 4% через миксер на 3-м хопе, 22% через no-KYC P2P на 2-м хопе.Каждый вклад умножен на decay по дистанции.
- Интерпретируем. 4% миксера на 3-м хопе — фоновый шум. 22% P2P — умеренный флаг, стоит запросить у клиента происхождение средств.Число само по себе не решение — оно вход для суждения.
Вывод урока. Exposure — это доли, а не приговор. Taint показывает, как эти доли перетекают по графу, а модель окрашивания (haircut/FIFO) и затухание по хопам определяют, во что превратится сырой граф. Цифра «риск 72» бессмысленна без ответов на три вопроса: какая доля, на каком расстоянии, по какой модели. В следующем уроке разберём, как этим долям присваивают веса — почему санкции тяжелее казино и как из профиля экспозиции рождается финальное число 0–100.
Материалы носят образовательный характер.