Вы запускаете криптобиржу на 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(), }); } } Процесс разработки
- Аудит текущих compliance-процессов и потоков транзакций.
- Проектирование правил и ML-моделей под вашу юрисдикцию.
- Реализация rule engine и интеграция с blockchain (RPC, mempool).
- Тестирование на исторических данных — валидация покрытия не менее 90%.
- Деплой и обучение команды.
Что входит в работу
- 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.







