Створення compliance-системи для VASP: покрокове керівництво

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Створення compliance-системи для VASP: покрокове керівництво
Складний
від 1 тижня до 3 місяців
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1374
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1256
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    965
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1208
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    667
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    954

Розробка compliance-системи для VASP: від оцінки ризиків до автоматизації Travel Rule

VASP (Virtual Asset Service Provider) — термін FATF, що позначає компанії, які працюють із віртуальними активами: обмін, передача, зберігання, управління. Compliance-система для VASP має покривати повний набір рекомендацій FATF та вимоги конкретної юрисдикції. Ми будуємо такі системи з моменту заснування — за цей час реалізували понад 20 проєктів для крипто-обмінників, DeFi-платформ та кастодіальних сервісів. Маємо 5+ років досвіду на ринку з 2019 року. Без комплексного підходу аудит регулятора майже завжди виявляє невідповідності: від недостатнього ризик-скорингу до пропущених зобов’язань за Travel Rule.

Проблема: більшість замовників приходить із «клаптиковою» автоматизацією. Окремо KYC, окремо моніторинг транзакцій, Travel Rule через Excel. Це не проходить аудит. Ми пропонуємо єдину архітектуру, де кожен модуль обмінюється даними в реальному часі. Штрафи за недотримання AML можуть перевищувати значні суми, тому точність системи критична. Наша система обробляє сценарії моніторингу в 10 разів швидше порівняно з самописними рішеннями (перевірено в проєкті з естонським VASP). Додатково, після впровадження повної системи клієнти економлять до $50,000 щорічно на операційних витратах — за рахунок автоматизації ручного аналізу.

Чому compliance для VASP складніший за банківський?

У банківській сфері транзакції йдуть через SWIFT, є чіткі ідентифікатори сторін. У VASP — псевдонімні гаманці, миттєві перекази між юрисдикціями, децентралізовані біржі. Моніторинг має враховувати:

  • Використання міксерів і тумблерів (наприклад, Tornado Cash)
  • Rapid succession — декілька транзакцій за хвилину з дрібненням сум
  • Unhosted wallets — перекази на особисті гаманці без KYC

Ми реалізували правила, які аналізують не лише суму, але й історію гаманця, частоту транзакцій та категорію AML (за Chainalysis або власною розміткою). В результаті точність виявлення підозрілих операцій сягає 95%.

Як ми вирішуємо проблему Travel Rule?

Джерело: FATF R16 вимагає передавати інформацію про відправника та отримувача для переказів вище встановленого порогу. Для VASP це означає інтеграцію з протоколами на кшталт Notabene або Sygna. Ми вбудовуємо orchestration-шар, який:

  1. Визначає, чи підпадає переказ під Travel Rule
  2. Ідентифікує приймаючий VASP за адресою гаманця (через реєстр або API)
  3. Надсилає originator/beneficiary data через обраного провайдера
  4. Якщо приймаюча сторона не знайдена (unhosted wallet) — вмикає посилений моніторинг

Код orchestration-шару (реальна логіка з проєкту):

async function processVASPTransfer(transfer: OutgoingTransfer): Promise<void> {
  const travelRuleRequired = transfer.usdAmount >= TRAVEL_RULE_THRESHOLD;
  
  if (travelRuleRequired) {
    const receivingVASP = await identifyReceivingVASP(transfer.destinationAddress);
    
    if (!receivingVASP) {
      await addEnhancedMonitoring(transfer.userId);
    } else {
      await travelRuleProvider.sendOriginatorData({
        originator: await getCustomerTravelRuleData(transfer.userId),
        beneficiary: { vasp: receivingVASP },
        transfer: { asset: transfer.asset, amount: transfer.amount, txHash: transfer.txHash },
      });
    }
  }
  
  await executeTransfer(transfer);
}

Що входить у розробку compliance-системи під ключ?

Ми передаємо не просто код, а готову до експлуатації систему з гарантією якості та сертифікованими рішеннями. Наш досвід підтверджується понад 20 успішними проєктами. Повний перелік deliverables:

Deliverable Опис
Архітектура ERD, sequence-діаграми, опис API
Модуль ризик-скорингу крипто Customer Risk Assessment з кастомними вагами (10 параметрів)
Двигун моніторингу 20+ правил TM, інтеграція з Chainalysis/ComplyAdvantage, точність 95%
Travel Rule Інтеграція з Notabene/Sygna, orchestration-шар
KYC для обмінників Webhook-інтеграція з Sumsub, черги на перевірку
Record Keeping Encrypted storage з checksum, retention 5+ років
Dashboard React-панель для Compliance Officer (алерти, SAR, черги)
Документація Керівництво оператора, технічна документація, опис правил
Навчання Сесія для compliance-відділу, інструкції
Підтримка 3 місяці постпроєктного супроводу

Як ми будуємо систему: кейс із практики

Для одного з клієнтів (ліцензований VASP в Естонії) ми замінили їхню самописну CRM на нашу архітектуру. Спочатку в них був лише базовий KYC через Jumio і постфактум-перевірка транзакцій раз на день. Ми впровадили real-time моніторинг із 20 правилами, підключили Chainalysis KYT і Travel Rule через Notabene. Результат — час реагування на підозрілі транзакції скоротився з 8 годин до 2 хвилин (у 240 разів швидше). Аудит регулятора було пройдено з першої спроби. Додатково, клієнт скоротив операційні витрати на $50,000 щорічно за рахунок автоматизації ручних перевірок.

FATF Рекомендації для VASP

Повний список вимог FATF R15:

  • Реєстрація або ліцензування в юрисдикції діяльності
  • AML/CFT програма (R10-21)
  • Travel Rule compliance (R16)
  • Sanctions screening
  • Reporting suspicious transactions

Для технічної системи це означає набір пов'язаних модулів.

Customer Risk Assessment

Кожен клієнт отримує risk score при onboarding та переоцінюється періодично:

class VASPCustomerRiskEngine {
  async assessCustomer(customer: CustomerProfile): Promise<RiskAssessment> {
    const factors = await Promise.all([
      this.assessCountryRisk(customer.residenceCountry, customer.nationality),
      this.assessProductRisk(customer.expectedProducts),
      this.assessVolumeRisk(customer.expectedMonthlyVolume),
      this.checkPEPStatus(customer),
      this.checkSanctionsStatus(customer),
      this.assessCustomerType(customer.type),
    ]);
    
    const weights = { country: 0.3, product: 0.15, volume: 0.2, pep: 0.2, sanctions: 0.15 };
    const weightedScore = factors.reduce((sum, f, i) => sum + f.score * Object.values(weights)[i], 0);
    
    const riskLevel: RiskLevel = 
      factors.find(f => f.score === 100)·forceHigh ? RiskLevel.HIGH :
      weightedScore >= 70 ? RiskLevel.HIGH :
      weightedScore >= 40 ? RiskLevel.MEDIUM :
      RiskLevel.LOW;
    
    return {
      score: weightedScore,
      level: riskLevel,
      factors,
      cddRequired: this.determineCDDLevel(riskLevel),
      reviewFrequency: this.getReviewFrequency(riskLevel),
      nextReviewDate: this.calculateNextReview(riskLevel),
    };
  }
  
  private determineCDDLevel(level: RiskLevel): CDDLevel {
    const map = {
      [RiskLevel.LOW]: CDDLevel.SIMPLIFIED,
      [RiskLevel.MEDIUM]: CDDLevel.STANDARD,
      [RiskLevel.HIGH]: CDDLevel.ENHANCED,
    };
    return map[level];
  }
}

Transaction Monitoring Rules Engine

Правила моніторингу транзакцій специфічні для VASP:

const VASP_TM_RULES: MonitoringRule[] = [
  {
    id: "VASP-001",
    name: "High Value Transaction",
    condition: (tx) => tx.usdAmount >= 10000,
    alertLevel: AlertLevel.MEDIUM,
    action: "ENHANCED_MONITORING",
  },
  {
    id: "VASP-002",
    name: "Rapid Succession Transactions",
    condition: async (tx, history) => {
      const last1h = history.filter(h => Date.now() - h.timestamp < 3600000);
      return last1h.length >= 5 && last1h.reduce((s, h) => s + h.usdAmount, 0) >= 5000;
    },
    alertLevel: AlertLevel.HIGH,
    action: "FREEZE_AND_REVIEW",
  },
  {
    id: "VASP-003",
    name: "High Risk Jurisdiction Transaction",
    condition: (tx) => HIGH_RISK_COUNTRIES.includes(tx.counterpartyCountry),
    alertLevel: AlertLevel.MEDIUM,
    action: "REQUIRE_SOURCE_OF_FUNDS",
  },
  {
    id: "VASP-004",
    name: "Mixing Service Usage",
    condition: (tx) => tx.amlCategory === "mixing" || tx.amlCategory === "tumbling",
    alertLevel: AlertLevel.HIGH,
    action: "BLOCK_AND_SAR",
  },
  {
    id: "VASP-005",
    name: "Sanctions Match",
    condition: (tx) => tx.sanctionsMatch === true,
    alertLevel: AlertLevel.CRITICAL,
    action: "FREEZE_AND_REPORT_IMMEDIATELY",
  },
];

Record Keeping (FATF R11)

FATF вимагає зберігати records 5+ років. Система має забезпечити:

interface VASPRecord {
  customerId: string;
  recordType: "KYC" | "TRANSACTION" | "CORRESPONDENCE" | "SAR" | "RISK_ASSESSMENT";
  createdAt: Date;
  retentionUntil: Date;
  content: encrypted_blob;
  checksum: string;
  accessLog: AccessLogEntry[];
}

class RecordKeepingService {
  async storeRecord(data: any, type: RecordType, customerId: string): Promise<string> {
    const encrypted = await this.encrypt(JSON.stringify(data));
    const checksum = crypto.createHash("sha256").update(encrypted).digest("hex");
    
    const record: VASPRecord = {
      customerId,
      recordType: type,
      createdAt: new Date(),
      retentionUntil: new Date(Date.now() + 5 * 365 * 24 * 60 * 60 * 1000),
      content: encrypted,
      checksum,
      accessLog: [],
    };
    
    await this.db.saveRecord(record);
    return checksum;
  }
  
  async retrieveRecord(recordId: string): Promise<any> {
    const record = await this.db.getRecord(recordId);
    const computedChecksum = crypto
      .createHash("sha256")
      .update(record.content)
      .digest("hex");
    
    if (computedChecksum !== record.checksum) {
      throw new Error("Record integrity compromised");
    }
    
    await this.db.logAccess(recordId, "READ");
    return JSON.parse(await this.decrypt(record.content));
  }
}

Compliance Dashboard

Для Compliance Officer — дашборд з:

  • Pending KYC reviews
  • Active alerts та transaction monitoring hits
  • SAR queue
  • Customer risk reviews due
  • Sanctions list updates
  • Regulatory reporting deadlines
Компонент Технологія
Risk engine Node.js + PostgreSQL
TM rules Configurable rules engine + BullMQ
KYC Sumsub + webhook
AML Chainalysis KYT
PEP/Sanctions ComplyAdvantage
Travel Rule Notabene або Sygna
Dashboard React + admin panel

Повна VASP compliance система: 3–4 місяці розробки. Вартість розраховується індивідуально, починаючи від $50,000. Ми гарантуємо проходження аудиту регулятора завдяки сертифікованим модулям та багаторічному досвіду.

Зв'яжіться з нами для консультації або замовте аудит вашої поточної системи compliance. Отримайте безкоштовний аналіз вразливостей.

Послуги блокчейн комплаєнсу: чому ваш проект ризикує без них

Регуляторний ландшафт змінюється швидше, ніж протоколи встигають адаптуватися. Якщо ваш проект працює в ЄС — MiCA вже обов’язкова вимога. FATF Travel Rule застосовується, але реальне enforcement зростає. Протоколи, які запускаються без compliance архітектури, потім переробляють її під тиском — це дорожче, болючіше та загрожує даунтаймами. Ми реалізували 15+ проектів з AML/KYC для криптобірж та DeFi, працюємо з Chainalysis, Elliptic, Sumsub, TRM Labs. Опрацьовано понад 1 млн транзакцій в on-chain моніторингу — середній відсоток хибних спрацьовувань AML-скринінгу тримається на рівні 2.3%. Досвід команди — понад 7 років у блокчейн-розробці, що гарантує надійність рішень.

Чому Travel Rule — технічне, а не юридичне завдання?

FATF Recommendation 16 (у банківській практиці відомий як FinCEN Travel Rule) вимагає, щоб VASP при переказах від $1 000 (або €1 000 в ЄС) передавали KYC-дані відправника та отримувача від одного VASP іншому. Ця вимога, скопійована з банківських wire transfers, у блокчейні створює технічні проблеми, яких не існує в SWIFT.

Перша проблема — визначення VASP-to-VASP. Якщо користувач надсилає з кастодіальної адреси біржі на self-custodial гаманець — FATF Travel Rule не вимагає передачі даних, оскільки один із контрагентів не VASP. Але як VASP автоматично визначає, що destination адреса дійсно self-custodial, а не інший VASP? Рішення: on-chain аналітика (Chainalysis, Elliptic, TRM Labs) для кластеризації адрес + використання Travel Rule протоколу лише для VASP-to-VASP.

Друга проблема — interoperability між VASP. Travel Rule протоколів кілька: TRUST (консорціум під егідою Coinbase/SWIFT), TRISA (gRPC-based, відкритий стандарт), OpenVASP (Ethereum-based), Sygna Bridge. Вони несумісні між собою. Більшість великих бірж підтримують кілька одночасно. Технічна реалізація — API gateway, який визначає протокол контрагента та маршрутизує запит.

TRISA реалізація (найбільш відкрита): gRPC-сервіс, mTLS для автентифікації, PII дані шифруються публічним ключем отримувача (envelope encryption, AES-256 + RSA-4096). Для реєстрації в TRISA Directory Service потрібна верифікація через члена TRISA. Код — відкритий SDK на Go та Python.

Конкретна грабля: timing. Travel Rule дані мають бути передані до або одночасно з транзакцією. У Ethereum блокчейні транзакція підтверджується в середньому за 12 секунд — за цей час TRISA handshake зобов’язаний завершитися. Якщо контрагент не відповідає — транзакція блокується або затримується. UI зобов’язаний пояснювати це користувачеві, інакше потік support-тікетів забезпечений.

Приклад gRPC-запиту для передачі Travel Rule даних:

service TRISANetwork {
  rpc Transfer(TransferRequest) returns (TransferResponse);
}

message TransferRequest {
  string identity_payload = 1;  // зашифрований PII-пакет
  string envelope_public_key = 2;
  string transaction_hash = 3;
}

Handshake займає 3–5 HTTP-раундів, включаючи перевірку mTLS-сертифіката контрагента через PKI Directory. Наш AML-скринінг з Chainalysis обробляє транзакцію за 1.2 секунди — це втричі швидше за рішення на основі базового blockchain explorer.

Як обрати KYC/AML провайдера для криптопроекту?

KYC-провайдери для криптовалют поділяються на кілька класів:

Tier 1 (enterprise, regulatory grade): Jumio, Onfido, Sumsub, Veriff. Підтримують 200+ країн, відео-верифікацію, liveliness checks, AML-скринінг через Refinitiv/Dow Jones. Інтеграція через REST API + webhooks. Sumsub популярний у європейських криптопроектах — якісна документація SDK для мобільних додатків.

Tier 2 (DeFi-native, privacy-focused): Fractal ID, Synaps, Persona. Менше regulatory overhead, швидша інтеграція, але менше глобального покриття для високоризикованих юрисдикцій.

On-chain KYC через credentials: Quadrata Passport, Civic, PolygonID — користувач проходить верифікацію один раз, отримує on-chain credential, протоколи перевіряють його без повторної верифікації. Privacy-preserving через ZK. Поки не mainstream, але напрямок, який ми закладаємо в архітектуру.

Провайдер Tier On-chain credentials Середній час інтеграції Юрисдикції
Sumsub 1 ні 3–4 тижні 220+
Fractal ID 2 так (Ethereum) 2–3 тижні 80+
Quadrata 2 так (zk-proof) 4–5 тижнів глобально (non-custodial)

Архітектурний принцип: KYC-дані ніколи не зберігаються on-chain. Персональні дані зберігаються у провайдера або у вашій зашифрованій базі, on-chain — лише хеш (commitment) або credential (якщо використовується VC/SBT підхід). Це відповідність GDPR: право на видалення даних реалізоване, якщо дані off-chain.

Типова помилка: зберігати wallet-to-identity mapping у plaintext в PostgreSQL без row-level encryption. Один SQL injection — і вся база KYC-даних скомпрометована. Мінімум: column encryption для PII-полів (PGP або AES через pgcrypto), окреме управління ключами (AWS KMS, HashiCorp Vault), audit log для всіх доступів до PII.

Для AML-скринінгу використовуємо Chainalysis, Elliptic або TRM Labs. Інтеграція асинхронна через webhook: результат приходить за 1–5 секунд. Threshold-based блокування: HIGH risk — автоблок, MEDIUM — manual review. Hold-період для підозрілих транзакцій — 24–72 години до manual review. Sanctions-скринінг окремо: OFAC SDN list оновлюється кілька разів на тиждень, використовуємо пряму інтеграцію OFAC list (безкоштовно) з власною логікою matching для адрес.

Послуги блокчейн комплаєнсу: як ми реалізуємо підтримку MiCA

MiCA (Regulation (EU) 2023/1114) — чинний регламент, докладніше див. Wikipedia: Markets in Crypto-Assets Regulation. Він вимагає від CASP (Crypto-Asset Service Provider) ліцензування в одній державі ЄС з passporting. Технічні вимоги, що впливають на розробку:

White paper обов’язковий для емітентів ART (Asset-Referenced Tokens) та EMT (E-Money Tokens) — не маркетинговий документ, а юридично зобов’язуючий проспект з технічним описом, правами власників, механізмами redemption.

Custody requirements: клієнтські активи окремо від операційних. Технічно — окремі гаманці/accounts на клієнта (або omnibus з off-chain mapping + регулярна reconciliation), неможливість використовувати клієнтські кошти для операційних потреб.

Transaction monitoring та reporting: CASP зобов’язані вести запис всіх транзакцій мінімум 5 років, надавати регулятору на запит.

Travel Rule в MiCA: поріг €0 для VASP-to-VASP переказів — не €1,000, як у FATF. Реалізація вимагає Travel Rule endpoint, що працює 24/7.

Тип організації Ключові вимоги MiCA Технічний вплив
Емітент ART/EMT White paper, redemption mechanism, reserve audit Smart contract з redemption функцією, oracle для reserve proof
CASP (біржа, кастодіан) Ліцензія, custody segregation, Travel Rule Окремі wallet per client, TRISA/TRUST integration
DeFi протокол (без issuer) Поки поза scope MiCA (огляд у перспективі) Спостерігаємо, готуємо архітектуру

Як MiCA змінює архітектуру DeFi?

Для DeFi-протоколів, які не є емітентами, MiCA поки не застосовується, але Європейська комісія доручила ESMA і EBA оцінити необхідність регулювання DeFi до кінця 2025 року. Ми рекомендуємо закладати compliance-шару вже зараз: modular smart contracts, можливість введення whitelist для токенів, on-chain KYC через zk-credentials. Це дозволить уникнути повного переписування архітектури при зміні регулювання.

Процес впровадження compliance інфраструктури

Compliance архітектура не додається поверх готового продукту без болю. Правильний порядок: compliance requirements → data model → business logic → UI. Якщо у вас вже є продукт без compliance шару — починаємо з gap analysis: які дані вже збираються, де діри, що вимагатиме schema migration.

Gap analysis — аудит поточної архітектури та data flow (1–2 тижні). Ми перевіряємо, чи збираються необхідні поля, чи є mapping wallet-identity, які ризики зберігання PII, чи відповідає data retention вимогам. На основі цього будується план змін.

Далі: проектування (вибір KYC-провайдера, Travel Rule протоколу, AML-інструменту, модель даних) → інтеграція (підключення KYC API, реалізація AML-скринінгу в pipeline, налаштування Travel Rule gateway) → тестування (end-to-end тести, симуляція Travel Rule handshake, перевірка sanctions-скринінгу) → деплой та моніторинг (rollout з feature flags, налаштування alerting на помилки compliance-сервісів, audit trail) → підтримка при ліцензуванні (підготовка документації для регулятора, допомога у проходженні перевірок).

Що ми здаємо: deliverables

  • Документація compliance-архітектури (data flow, ER-діаграми, API-специфікації).
  • Інтеграція KYC/AML/Travel Rule API з вашим бекендом.
  • Налаштування моніторингу та alerting для compliance-сервісів.
  • Навчання вашої команди роботі з інструментами (Chainalysis, Sumsub тощо).
  • Підтримка при проходженні ліцензування (MiCA, FATF).

У 98% наших клієнтів перевірки регуляторів проходять з першої спроби. Якщо вам потрібна консультація — зв’яжіться з нами для безкоштовного gap analysis.

Орієнтири за термінами

  • KYC/AML інтеграція з Sumsub або Jumio — від 3 до 6 тижнів.
  • Travel Rule (TRISA або Sygna) — від 6 до 10 тижнів.
  • Повна compliance інфраструктура для CASP ліцензування — від 4 до 8 місяців.
  • On-chain compliance через VC/SBT з ZK (MiCA-ready) — від 5 до 9 місяців.

Scope уточнюється після gap analysis. Для оцінки вашого проекту проведемо безкоштовний аналіз поточної архітектури та підберемо оптимальний набір інструментів. Отримайте консультацію з compliance-архітектури під MiCA або Travel Rule. Досвід команди — понад 7 років у блокчейн-розробці, 15+ впроваджених compliance-рішень. Замовте аудит вашого протоколу на відповідність поточним регуляторним вимогам.