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

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

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

Часті запитання

Останні роботи

  • 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.