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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска 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. Мы строим системы, которые решают эту проблему на уровне архитектуры: шифрование каждого документа уникальным ключом, автоматизированная retention, и регуляторный экспорт за секунды. Как указано в FATF Recommendation 11, срок хранения KYC-документов составляет минимум 5 лет.

Какие регуляторные требования нужно учитывать?

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

Архитектура хранилища для 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 месяцев — стандарт безопасности.

Как настроить 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 часов. В отличие от кастодиальных решений, где ключи принадлежат третьей стороне, наша архитектура даёт полный контроль и прозрачность.

Таблица сроков хранения по типам данных:

Тип данных Минимальный срок Максимальный срок Пример юрисдикции
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 недель. Стоимость рассчитывается индивидуально — зависит от количества типов данных, необходимой отказоустойчивости и требований локального регулятора. Используйте облачное хранилище с KMS — это снижает затраты на 30–50% по сравнению с локальным HSM. Мы поможем найти баланс между compliance и бюджетом.

Оцените свой проект — свяжитесь с нами. Закажите аудит compliance и получите план внедрения за 2 дня.

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

Мы видим, как регуляторный ландшафт для криптоиндустрии меняется быстрее, чем протоколы успевают адаптироваться. Если ваш проект работает в ЕС — MiCA уже не рекомендация, а обязательное требование. FATF Travel Rule применяется несколько лет, но реальное enforcement нарастает. Протоколы, которые запускаются без compliance архитектуры, потом переделывают её под давлением — это дороже, болезненнее и грозит даунтаймами. Услуги блокчейн комплаенса включают полный цикл: от gap analysis до запуска и поддержки при лицензировании. Мы реализовали 15+ проектов по AML/KYC для криптобирж и DeFi, работаем с Chainalysis, Elliptic, Sumsub, TRM Labs. Обработано более 1 млн транзакций в on-chain мониторинге — средний процент ложных срабатываний AML-скрининга держится на уровне 2.3%.

Почему 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-тикетов обеспечен.

Детали реализации TRISA handshake

Пример 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.

Как выбрать 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

Markets in Crypto-Assets Regulation (EU 2023/1114) — ссылка на Wikipedia — требует от 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 (обзор в перспективе) Наблюдаем, готовим архитектуру

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

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

  1. Gap analysis — аудит текущей архитектуры и data flow (1–2 недели).
  2. Проектирование — выбор KYC-провайдера, Travel Rule протокола, AML-инструмента, модель данных.
  3. Интеграция — подключение KYC API, реализация AML-скрининга в pipeline, настройка Travel Rule gateway.
  4. Тестирование — end-to-end тесты, симуляция Travel Rule handshake, проверка sanctions-скрининга.
  5. Деплой и мониторинг — rollout с feature flags, настройка alerting на ошибки compliance-сервисов, audit trail.
  6. Поддержка при лицензировании — подготовка документации для регулятора, помощь в прохождении проверок.

Что включает услуга блокчейн комплаенса?

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

Ориентиры по срокам

  • 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-решений. Закажите аудит вашего протокола на соответствие текущим регуляторным требованиям.