Перейти к содержанию

AML-проверка

В данном разделе описан процесс противодействия отмыванию денег (Anti-Money Laundering) на платформе Univex: как выявляются рискованные транзакции, какие решения принимаются и как обрабатываются «грязные» депозиты.

Общий принцип

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

Шаги процесса

  1. TopupScan обнаруживает входящую транзакцию на адрес пользователя.
  2. Создаётся запись ChainTopUp с отслеживанием числа подтверждений.
  3. После достижения необходимого числа подтверждений активируется AML-Poller.
  4. Elliptic Check сервис вызывает Elliptic API с деталями транзакции (tx_hash, сумма, адрес отправителя).
  5. Elliptic возвращает:
    • risk_score — числовая оценка риска (0–100).
    • Категории риска (например: darknet, sanctions, mixer, stolen_funds).
  6. Категории сохраняются в таблице chain_topup_aml_categories.
  7. Система сравнивает risk_score с пороговыми значениями из таблицы risk_categories:
    • Если риск ниже порога: статус → AML_CLEAN → депозит обрабатывается.
    • Если риск выше порога: статус → AML_DIRTY → создаётся алерт для администратора.
  8. Чистые депозиты (AML_CLEAN): TopupProcessor зачисляет средства на FUNDING-баланс пользователя, статус → DEPOSITED.
  9. Грязные депозиты (AML_DIRTY): администратор через AdminGateway может:
    • Выполнить BypassAML — принудительно зачислить депозит (с ручным подтверждением).
    • Инициировать возврат — refund-processor отправляет средства обратно на адрес-источник.
  10. После возврата кошелёк помечается как «грязный» (dirty wallet) для предотвращения повторного использования.
  11. Вся история статусов фиксируется в таблице chain_topup_status_history.

Диаграмма: AML-процесс

flowchart TD
    A([TopupScan: транзакция обнаружена]) --> B[Создать ChainTopUp\nAWAITING_CONFIRMATIONS]
    B --> C{Достигнуто N\nподтверждений?}
    C -- Нет --> C
    C -- Да --> D[Статус: CONFIRMED]
    D --> E[AML-Poller активирован]
    E --> F[Вызов Elliptic API\ntx_hash, amount, address]
    F --> G[Получен risk_score\n+ категории рисков]
    G --> H[Сохранить категории\nв chain_topup_aml_categories]
    H --> I{risk_score vs\nпороги из risk_categories}

    I -- Ниже порога --> J[Статус: AML_CLEAN]
    J --> K[TopupProcessor:\nзачислить на FUNDING баланс]
    K --> L([Статус: DEPOSITED])

    I -- Выше порога --> M[Статус: AML_DIRTY]
    M --> N[Создать алерт\nдля администратора]
    N --> O{Решение администратора\nчерез AdminGateway}

    O -- BypassAML --> P[Принудительное зачисление]
    P --> L

    O -- Возврат --> Q[refund-processor:\nотправить на адрес-источник]
    Q --> R[Пометить кошелёк\nкак dirty wallet]
    R --> S([Статус: REFUND_REQUESTED])

    J --> T[Записать в\nchain_topup_status_history]
    M --> T
    L --> T
    S --> T

Категории риска Elliptic

Elliptic возвращает одну или несколько категорий, связанных с транзакцией или адресом отправителя:

Категория Описание
darknet Адрес связан с даркнет-площадками
sanctions Адрес находится под санкциями (OFAC и др.)
mixer Средства прошли через миксер/тумблер
stolen_funds Средства связаны с кражей или взломом
gambling Азартные платформы
ransomware Адрес связан с программами-вымогателями

Пороги риска

Пороговые значения хранятся в таблице risk_categories и могут быть настроены администратором через AdminGateway. Пример:

Категория Порог блокировки (risk_score)
По умолчанию 70
sanctions 10 (мгновенная блокировка)
mixer 50
darknet 60

Ручные операции администратора

Все административные операции выполняются через AdminGatewayExchangeIntegration → Exchange Admin.

Добавление адреса в чёрный список

Администратор может вручную добавить адрес в таблицу blacklist:

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

BypassAML

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

Инициирование возврата

Администратор запускает возврат — refund-processor автоматически формирует транзакцию обратно на адрес-источник. Кошелёк помечается как dirty и исключается из ротации.

Хранение данных

Таблица Содержимое
chain_topup Основная запись депозита и его статус
chain_topup_aml_categories Категории риска от Elliptic
chain_topup_status_history История изменений статуса депозита
risk_categories Настройки пороговых значений риска
blacklist Вручную добавленные адреса

Связанные разделы