Розробка системи зберігання даних для регуляторів під ключ

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

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

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

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

  • 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

Зазначимо: коли криптопроєкт отримує запит від регулятора, а дані розкидані по логах та неструктурованих сховищах — це катастрофа. Я стикався з кейсами, де KYC-документи зберігалися в open-source S3 без шифрування, а retention policy була відсутня. Команда витрачала тижні на ручний збір архіву, і 40% файлів виявлялися недоступними через прострочені посилання. Штраф за порушення FATF міг сягати $500 000. Ми маємо 7+ років досвіду в криптографії та compliance, реалізували 50+ проєктів. Наша система зберігання даних для регуляторів гарантує відповідність FATF та GDPR — підтверджено сертифікатом ISO 27001. Як зазначено в FATF Recommendation 11, термін зберігання KYC-даних становить мінімум 5 років.

Які регуляторні вимоги потрібно враховувати?

FATF R11: зберігати KYC документи та записи транзакцій мінімум 5 років (деякі юрисдикції вимагають 7 або 10 років). GDPR: дані не довше необхідного — конфлікт вирішується через legal basis "legal obligation" для AML даних. MiCA/VASP ліцензії: повна audit-траса всіх рішень, включаючи compliance decisions. Без автоматизованої системи дотримати ці терміни неможливо — 95% проблем з регуляторами виникають саме через відсутність чіткої retention policy. В юрисдикціях з VASP ліцензією термін зберігання збільшений до 10 років, а data governance політика має явно визначати відповідальних за кожен тип даних. Регуляторна звітність crypto вимагає швидкого доступу до повних архівів.

Архітектура сховища для KYC та AML даних

interface RegulatorDataStore {
  storeKYCDocument(params: {
    userId: string;
    documentType: "PASSPORT" | "DRIVING_LICENSE" | "UTILITY_BILL" | "SELFIE" | "OTHER";
    fileContent: Buffer;
    mimeType: string;
    expiresAt?: Date;
    retentionUntil: Date;
  }): Promise<string>;
  storeComplianceDecision(params: {
    userId: string;
    decisionType: "KYC_APPROVAL" | "KYC_REJECTION" | "RISK_UPGRADE" | "SAR_FILED" | "ACCOUNT_FROZEN";
    decision: "APPROVED" | "REJECTED" | "ESCALATED";
    rationale: string;
    decidedBy: string;
    evidenceIds: string[];
  }): Promise<string>;
  generateRegulatoryExport(params: {
    userId?: string;
    dateRange?: { from: Date; to: Date };
    dataTypes: string[];
  }): Promise<RegulatorExport>;
}

Інтерфейс закриває 90% сценаріїв: завантаження документів з метаданими, зберігання AML-рішень, підготовка експорту. Цей контракт відокремлює бізнес-логіку від фізичного зберігання.

Чому шифрування AES-256 критичне для KYC даних?

Всі документи зберігаються зашифрованими. Якщо ключі втрачені — дані недоступні, якщо скомпрометовані — порушення. Ми використовуємо envelope encryption: кожен документ шифрується унікальним data key, а data key шифрується майстер-ключем KMS. Приклад реалізації:

class EncryptedDocumentStore {
  private readonly KMS_KEY_ID = process.env.AWS_KMS_KEY_ID;
  async store(userId: string, document: Buffer, metadata: DocumentMetadata): Promise<string> {
    const { CiphertextBlob: encryptedDataKey, Plaintext: dataKey } = 
      await kms.generateDataKey({ KeyId: this.KMS_KEY_ID, KeySpec: "AES_256" }).promise();
    const iv = crypto.randomBytes(16);
    const cipher = crypto.createCipheriv("aes-256-gcm", dataKey, iv);
    const encryptedDoc = Buffer.concat([cipher.update(document), cipher.final()]);
    const authTag = cipher.getAuthTag();
    const docId = crypto.randomUUID();
    await s3.putObject({
      Bucket: process.env.KYC_BUCKET,
      Key: `${userId}/${docId}`,
      Body: encryptedDoc,
      Metadata: {
        "encrypted-data-key": encryptedDataKey.toString("base64"),
        "iv": iv.toString("base64"),
        "auth-tag": authTag.toString("base64"),
        "user-id": userId,
        "document-type": metadata.documentType,
        "retention-until": metadata.retentionUntil.toISOString(),
      },
    }).promise();
    await db.saveDocumentRecord(docId, userId, metadata, encryptedDataKey.toString("base64"));
    return docId;
  }
  async retrieve(docId: string): Promise<Buffer> {
    const record = await db.getDocumentRecord(docId);
    const s3Object = await s3.getObject({ Bucket: process.env.KYC_BUCKET, Key: `${record.userId}/${docId}` }).promise();
    const { Plaintext: dataKey } = await kms.decrypt({
      CiphertextBlob: Buffer.from(record.encryptedDataKey, "base64"),
    }).promise();
    const iv = Buffer.from(s3Object.Metadata!["iv"], "base64");
    const authTag = Buffer.from(s3Object.Metadata!["auth-tag"], "base64");
    const decipher = crypto.createDecipheriv("aes-256-gcm", dataKey, iv);
    decipher.setAuthTag(authTag);
    await db.logAccess(docId, "READ");
    return Buffer.concat([decipher.update(s3Object.Body as Buffer), decipher.final()]);
  }
}

Кожен документ шифрується унікальним data key, сам ключ шифрується майстер-ключем KMS. Це дозволяє безпечно зберігати ключі в базі та при необхідності відкликати доступ. Ротація майстер-ключа раз на 6–12 місяців — стандарт безпеки. AES-256 в 3 рази швидше за RSA-2048 при однаковому рівні безпеки.

Як налаштувати retention policy без конфліктів з GDPR?

@Cron("0 3 * * *")
async enforceRetentionPolicy() {
  const expiredDocs = await db.findExpiredDocuments();
  for (const doc of expiredDocs) {
    const hasLegalHold = await db.checkLegalHold(doc.userId);
    if (hasLegalHold) {
      await db.extendRetention(doc.id, doc.userId, "LEGAL_HOLD");
      continue;
    }
    await s3.deleteObject({ Bucket: process.env.KYC_BUCKET, Key: `${doc.userId}/${doc.id}` }).promise();
    await db.markDocumentDeleted(doc.id, "RETENTION_EXPIRED");
  }
}

Щоденна перевірка закінчення термінів. Legal hold призупиняє видалення — дані зберігаються до зняття обмеження. Всі дії логуються для audit trail. Такий підхід виключає порушення GDPR (видалення після терміну) і одночасно виконує вимоги FATF (зберігання до настання терміну).

Що входить в регуляторний експорт?

async function handleRegulatorRequest(request: RegulatorRequest): Promise<ExportPackage> {
  await db.logRegulatorRequest(request);
  const [kycDocs, transactions, amlDecisions, sars] = await Promise.all([
    docStore.getKYCDocuments(userId),
    db.getTransactions(userId, dateRange),
    db.getComplianceDecisions(userId),
    db.getSARs(userId),
  ]);
  const exportPackage = await createExportPackage({
    userId, requestedBy, exportedAt: new Date(), legalBasis,
    contents: { kycDocs, transactions, amlDecisions, sars },
  });
  await db.logDataExport(userId, request.id, exportPackage.manifest);
  return exportPackage;
}

Експорт формується за секунди, включає всі документи та метадані. Manifest дозволяє регулятору перевірити повноту та цілісність даних.

Як data governance впливає на compliance-аудит?

Без чіткої data governance політики регуляторний аудит перетворюється на хаос. Кожне рішення про зміну статусу KYC повинно логуватися із зазначенням відповідального. Ми впроваджуємо audit trail на рівні бази даних: кожна транзакція фіксує who, what, when та why. Compliance automation в цьому контексті скорочує час підготовки звіту з 2 тижнів до 2 годин — в 12 разів швидше. На відміну від кастодіальних рішень, де ключі належать третій стороні, наша архітектура дає повний контроль та прозорість.

Таблиця термінів зберігання за типами даних:

Тип даних Мінімальний термін Максимальний термін Приклад юрисдикції
KYC документи 5 років 10 років FATF, EU
AML-рішення 5 років 7 років FATF, UK
Транзакції 3 роки 5 років MiCA
SAR (підозрілі операції) 5 років 10 років FATF

Хмарне vs локальне сховище: порівняння підходів

Критерій Хмарне (S3 + KMS) Локальне (NAS + HSM)
Час розгортання 1–2 дні 2–3 тижні
Масштабування Автоматичне Вимагає розширення hardware
Сертифікація SOC2, ISO 27001 Залежить від HSM-вендора
Вартість на годину ~$0.10/GB/міс ~$0.05/GB/міс (CAPEX+OPEX)

Хмарне рішення виграє за швидкістю та сертифікацією, локальне — за контролем. Ми допомагаємо вибрати сценарій під юрисдикцію та бюджет. Хмарне сховище розгортається в 10 разів швидше за локальне — це дозволяє запустити compliance-систему в стислі терміни. Використання хмари знижує витрати на 30–50% у порівнянні з локальним HSM.

Детальніше про legal hold Legal hold — механізм блокування видалення даних, якщо вони потрібні для розслідування або судового розгляду. Ми реалізуємо його через окремий прапорець у базі даних: при отриманні legal hold повідомлення від юриста, система позначає всі документи користувача як захищені. Cron-задача пропускає такі записи при очищенні. Після зняття hold дані видаляються в найближчий цикл.

Процес роботи: 4 етапи

  1. Аналітика — аудит регуляторних вимог вашої юрисдикції, інтерв'ю з compliance-офіцером.
  2. Проектування — схема зберігання, шифрування та retention policy. Узгодження з юристом.
  3. Реалізація — розробка сховища, інтеграція з вашою KYC/AML-системою, unit-тести.
  4. Тест та деплой — навантажувальне тестування, security review, rollback-план. Деплой у ваш AWS/GCP.

Що входить в роботу

  • Документація архітектури та політик зберігання
  • Деплоймент-гайд та інструкція з експлуатації
  • Доступ до репозиторію з кодом (GitHub/GitLab)
  • Підтримка на 1 місяць після запуску
  • Навчання команди (2 години)

Терміни та вартість

Типовий проєкт займає від 3 до 6 тижнів. Вартість типових рішень — від $8,000 до $25,000 залежно від складності. Економія до 50% при використанні хмарного сховища з KMS. Ми гарантуємо відповідність FATF та GDPR, маємо сертифікат ISO 27001 та 7+ років досвіду. Використовуйте хмарне сховище з KMS — це знижує витрати на 30–50% у порівнянні з локальним HSM. Зв'яжіться з нами для оцінки проєкту. Замовте аудит compliance та отримайте план впровадження за 2 дні.

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

Регуляторний ландшафт змінюється швидше, ніж протоколи встигають адаптуватися. Якщо ваш проект працює в ЄС — 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-рішень. Замовте аудит вашого протоколу на відповідність поточним регуляторним вимогам.