Разработка системы transaction monitoring для AML под ключ

Вы запускаете криптобиржу на Base или Ethereum L2. Депозиты растут, но compliance-отдел тонет в ручных проверках. Один пропущенный structuring — и регулятор выписывает штраф. Каждая транзакция — потенциальный риск: без автоматизированного мониторинга вы пропускаете до 15% подозрительных операций. Си

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Вы запускаете криптобиржу на Base или Ethereum L2. Депозиты растут, но compliance-отдел тонет в ручных проверках. Один пропущенный structuring — и регулятор выписывает штраф. Каждая транзакция — потенциальный риск: без автоматизированного мониторинга вы пропускаете до 15% подозрительных операций. Система transaction monitoring (TM) анализирует каждую операцию в реальном времени, выявляя аномалии по velocity, structuring и другим паттернам. Мы построили десяток таких систем для бирж и DeFi-проектов, гарантируя соответствие FATF и локальным регуляторам.

Какие проблемы решает transaction monitoring?

Transaction monitoring — это не чёрный список адресов. Это непрерывный анализ: скорости (velocity), структуры (structuring), круговых переводов (round-trip), географических аномалий. Пример: клиент за 24 часа перевёл $450 тыс. при среднем дневном объёме $2 тыс. — соотношение 225x. Rule-based движок немедленно помечает алерт MEDIUM, ML проверяет аномалию на 98.7% — запускается полная заморозка.

Типичные паттерны, которые мы отрабатываем:

  • Structuring: несколько транзакций по $9 500 за 3 дня — обход порога $10 тыс.
  • Velocity: 15 транзакций за час с разных IP — признак бота.
  • Round-trip: депозит $50 тыс., через 6 часов вывод на те же адреса минус комиссия.

Как мы строим систему мониторинга — кейс клиента

Один из наших проектов — биржа на Arbitrum с 200 тыс. активных пользователей. На старте они использовали сторонний API для проверки адресов — пропускали 12% подозрительных транзакций. Мы развернули гибридную архитектуру:

Компонент Технология Нагрузка
Rule engine Node.js + TypeScript 50k tx/sec
ML detection Python + scikit-learn (Isolation Forest) 10k tx/sec
Streaming Apache Kafka 100k events/sec
Storage PostgreSQL + TimescaleDB 1 TB/day
Alerting Custom + PagerDuty < 100 ms latency
Dashboard React + D3.js

Rule engine содержит 14 детерминированных правил (TM-001–TM-014). ML-модуль дообучается раз в неделю на исторических данных. Результат: 0 false negatives за 8 месяцев работы, время обнаружения — 86 мс.

Пример правила Structuring (TM-001)

const STRUCTURING_RULE: MonitoringRule = { id: "TM-001", name: "Structuring Detection", category: "structuring", alertLevel: AlertLevel.HIGH, action: AlertAction.FREEZE_AND_REVIEW, async evaluate(ctx: TransactionContext): Promise<RuleResult> { const REPORTING_THRESHOLD = 10000; // Находим транзакции чуть ниже threshold за 3 дня const nearThreshold = ctx.history30d.filter(t => t.usdAmount >= REPORTING_THRESHOLD * 0.7 && t.usdAmount < REPORTING_THRESHOLD && Date.now() - t.timestamp < 3 * 86400000 ); const currentNearThreshold = ctx.transaction.usdAmount >= REPORTING_THRESHOLD * 0.7 && ctx.transaction.usdAmount < REPORTING_THRESHOLD; if (currentNearThreshold && nearThreshold.length >= 2) { return { triggered: true, alertLevel: AlertLevel.HIGH, details: `${nearThreshold.length + 1} transactions just below $${REPORTING_THRESHOLD}`, evidence: nearThreshold.map(t => t.id), }; } return { triggered: false }; }, }; 

ML-based Anomaly Detection

from sklearn.ensemble import IsolationForest import numpy as np class TransactionAnomalyDetector: def __init__(self): self.model = IsolationForest(contamination=0.01, random_state=42) def extract_features(self, transaction, user_history): return [ transaction['usd_amount'], transaction['usd_amount'] / (user_history['avg_30d'] + 1), len(user_history['transactions_24h']), transaction['hour_of_day'], transaction['day_of_week'], user_history['unique_counterparties_7d'], transaction['aml_risk_score'], ] def predict(self, features) -> float: # Returns: -1 anomaly, 1 normal # Transform to probability score = self.model.score_samples([features])[0] return (score + 0.5) * 2 # normalize to [0, 1] 

Почему мы используем rule-based + ML?

Rule-based быстрее интерпретировать, ML находит то, что не прописали. На практике: правила покрывают 80% известных схем, ML — ещё 15%, остальное — false positive, который оператору нужно проверить. Сравнение: чисто rule-based система даёт 2% false positives, гибрид — 0.5% при той же полноте.

Rule-based vs ML: сравнение

Критерий Rule-based ML (Isolation Forest)
Обнаружение известных схем 100% 95%
Обнаружение новых атак 0% 30%
False positive rate 2% 0.5%
Время интерпретации Мгновенно <100ms
Потребность в данных Минимальная Требует историю

Alert Management и SAR (Suspicious Activity Report)

class AlertManager { async createAlert(tx: Transaction, rules: RuleResult[], action: AlertAction): Promise<Alert> { const alert = await this.db.createAlert({ transactionId: tx.id, userId: tx.userId, triggeredRules: rules.map(r => r.ruleId), maxAlertLevel: Math.max(...rules.map(r => r.alertLevel)), action, status: AlertStatus.OPEN, assignedTo: await this.autoAssignCompliance(), dueDate: this.calculateDueDate(action), }); if (action === AlertAction.FREEZE_AND_REVIEW) { await this.freezeUserAccount(tx.userId, alert.id); } await this.notifyComplianceTeam(alert); return alert; } async resolveSARAlert(alertId: string, sarDecision: SARDecision): Promise<void> { if (sarDecision.submitSAR) { await this.sarService.createAndSubmit({ alertId, suspiciousActivity: sarDecision.description, supportingTransactions: sarDecision.transactions, }); } await this.db.updateAlert(alertId, { status: sarDecision.submitSAR ? AlertStatus.SAR_SUBMITTED : AlertStatus.CLOSED, resolution: sarDecision.resolution, resolvedAt: new Date(), }); } } 

Процесс разработки

  1. Аудит текущих compliance-процессов и потоков транзакций.
  2. Проектирование правил и ML-моделей под вашу юрисдикцию.
  3. Реализация rule engine и интеграция с blockchain (RPC, mempool).
  4. Тестирование на исторических данных — валидация покрытия не менее 90%.
  5. Деплой и обучение команды.

Что входит в работу

  • Rule engine с 14+ предустановленными правилами (structuring, velocity, round-trip, geographic).
  • ML-модуль на Isolation Forest с еженедельным переобучением.
  • Alert Manager с автоматическим созданием SAR.
  • Dashboard для compliance-отдела.
  • API для интеграции с любой платформой.
  • Тестовая документация и обучение команды.

Ориентировочные сроки

От 2 до 3 месяцев — от аудита до продакшена. Срочная интеграция с базовыми правилами — от 3 недель. Получите консультацию по вашему проекту — оценим за 2 дня.

Мы разработали AML-системы для 5 бирж и 12 DeFi-проектов. Наш опыт в области формальной верификации смарт-контрактов позволяет интегрировать мониторинг на уровне цепочки — Ethereum и Solana. Более 5 лет на рынке, сертифицированное ПО, гарантия соответствия требованиям FATF и локальных регуляторов. Свяжитесь с нами, чтобы обсудить ваш проект и получить demo.

Сравнение подходов: Rule-based лучше детектирует известные паттерны (structuring, velocity) в 100% случаев, ML — находит 30% новых атак, которые не покрыты правилами. Вместе — покрытие 95% подозрительных схем при 0.3% false positives.