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

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

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

Звітність ламається не на формі подання, а раніше — там, де операція з облікової системи перетворюється на рядок звіту. Клієнт заводиться в одному сервісі, торгує в другому, виводить кошти через партнера, і в кожного свої ідентифікатори. Збір даних для звітності починається з ручного зіставлення цих записів за поштою та телефоном.

Окремий розрив — між транзакціями в мережі та позачейновими рухами: фіатне введення і виведення, перекази між рахунками клієнта, операції зі зберігання активів.

Рекомендації FATF і локальні вимоги регулятора вимагають простежуваності операцій — наскрізної лінії від платежу до адреси і назад. Поки зв'язку між банківською випискою та записом у реєстрі немає, аналітик відновлює її за часом і сумою, і звіт стає приблизним.

Третє місце — момент оцінки та аудит-слід. Курс беруть з різних джерел і на різний час, суми розходяться на частки відсотка, і підсумок звірки не сходиться.

Нерідко з'ясовується, що журнали доступу до даних клієнта не пишуться або ротуються: відновити, хто і коли правив запис, уже неможливо.

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

Що дає єдиний контур звітності та звірки операцій

Звітність збирається з різних місць: ядро біржі, кастодіальний модуль, зовнішні гаманці клієнтів, файли вивантажень від банків-партнерів.

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

Єдиний контур даних прибирає цей розрив. Події з блокчейну і з внутрішніх систем нормалізуються в одну транзакційну модель, де запис розпізнається парою «хеш транзакції + внутрішній номер операції».

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

Далі вмикається автоматизація звітності: регламентні формування за розкладом, єдині шаблони під кожного регулятора і контроль якості даних на вході.

Правила повноти, унікальності та посилальної цілісності відсікають биті записи до потрапляння у звіт, а ризик-скоринг адрес через Chainalysis позначає джерела коштів до формування проводки, а не після.

Частка розходжень падає з десятків відсотків до часток відсотка, підготовка періоду вкладається в години.

Окремо закривається клас відмов на вивантаженні. Ідемпотентний прогін не задвоює проводки при повторному запуску, перебудова ланцюга і відсутній курс на момент операції обробляються правилом, а не аварійним сценарієм.

Будь-який період відтворюється з журналу подій — під час розбору запиту регулятора видно, які дані і за яким правилом потрапили у звіт.

Варіанти побудови системи: ручний збір, автоматика, гібрид

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

Регуляторна звітність — це не одна форма, а набір зрізів за клієнтами, операціями та залишками з різними строками, форматами і рівнями деталізації. Звідси чотири реалістичні схеми, між якими обирають на старті.

Варіант Коли підходить Обмеження
Ручний збір звітності Операцій небагато, подання разове, вивантаження вже робляться вручну Кожна звірка — години роботи; розходження у вивантаженні видно лише під час подання; немає версій і сліду змін
Автоматизований контур Обсяг операцій стабільний, джерела даних локалізовані, правила мапінгу описані Потребує формалізованої моделі даних і правил трансформації; зміна формату звітності — доопрацювання контуру
Гібридна схема Основний масив збирається автоматично, спірні операції розбираються вручну Потрібна черга винятків і регламент розбору — без них ручний хвіст розростається
Аутсорс підготовки звітності Немає своєї команди під звітність, строки разові або нерегулярні Відповідальність за достовірність залишається на вас; правила роботи з даними і доступами потрібно узгодити заздалегідь

Практичне правило: автоматизують те, що повторюється від періоду до періоду, а ручний розбір залишають для винятків — операцій з нестандартним контрагентом, дробленням сум або неповними реквізитами.

Гібридна схема майже завжди виявляється робочою на перехідному етапі: контур збирає і звіряє основний масив, а інженер бачить лише ті записи, які не пройшли правила. Далі залишається вирішити, скільки винятків припустимо тримати в ручному режимі, — це й визначає, куди рухатися.

Етапи впровадження: від аудиту даних до передачі контуру

Звітність сходиться не тоді, коли готовий генератор форм, а коли описані й звірені всі дані, з яких вона збирається. Нижче — етапи впровадження, які ми проходимо на кожному проєкті: від розбору джерел до передачі контуру.

  1. Аудит джерел даних. Інвентаризуємо все, що бере участь у розрахунку: вузли мережі, вивантаження торгових майданчиків, внутрішній облік, кастодіальні гаманці. На виході — реєстр джерел із власником, повнотою та затримкою надходження.
  2. Схема потоків даних. Простежуємо шлях операції до рядка звіту: де нормалізуються адреси та довідники, як зіставляються записи в мережі та у внутрішньому обліку, де розходяться курси й комісії.
  3. Модель даних і правила агрегації. Версіонуємо довідники, ведемо незмінний журнал операцій і закладаємо перерахунок за минулі періоди — інакше правка методики перетворюється на ручну звірку.
  4. Налаштування звіту. Прив'язуємо показники до полів форми регулятора, додаємо автоперевірки на повноту та звірку підсумків з обліковими системами до вивантаження.
  5. Тестовий прогін звіту. Прогоняємо на історичних періодах і звіряємо з раніше поданими формами; розходження розбираємо до причини. Критерій приймання — сходження на кількох періодах поспіль.
  6. Регламент і моніторинг. Розклад формування, оповіщення про неповні дані, журнал запусків і ролі — щоб подання не залежало від однієї людини.
  7. Передача системи. Передаємо контур із документацією, доступами та навчанням команди, розбираємо типові інциденти і супроводжуємо перші періоди подання.

На виході — відтворюваний процес: звіт збирається за регламентом, а нові вимоги лягають в описану схему, а не в переписування з нуля.

Комплект документації та регламентів для підготовки до перевірки

Перевіряльник дивиться не на код, а на процес: першим ділом він запитує, як формується звіт, хто має доступ до даних і чим підтверджується їхня повнота.

Тому за підсумками проєкту у замовника залишається не лише робоча система, а й пов'язаний з нею комплект документів — за ним систему експлуатують, передають новій команді та захищають на перевірці.

  • Документація системи — склад компонентів, схема розгортання, зовнішні залежності, точки відмови та порядок відновлення після збою.
  • Схема потоків даних — шлях запису від джерела угоди до вітрини звітності: де дані нормалізуються, на якому кроці потрапляють у незмінний журнал і як унеможливлюється повторний облік.
  • Опис правил розрахунку — зіставлення полів вихідних подій із показниками звіту: обробка часткових виконань, дублів, розходжень за курсом і часом операції.
  • Регламент підготовки звітності — календар закриття періоду, хто підтверджує повноту зрізу, у який момент формується вивантаження і як діяти при розходженні звірки.
  • Політики доступу — ролі, розмежування прав на рівні записів і полів, порядок надання та відкликання доступів, журналювання дій адміністраторів.
  • Інструкції для команди — як підняти локальний контур, прогнати звірку на тестових наборах, підключити нового постачальника даних і відкотити версію правил.
  • Модель даних і довідники — сутності, типи операцій, статуси, коди валют і зв'язок із реєстром контрагентів.
  • Журнал версій правил — з якої дати діє кожна редакція, щоб відновити стан звіту на будь-який минулий період.

Комплект версіонується разом із системою: при зміні правил оновлюється відповідний розділ, тому на момент перевірки документи описують рівно той стан, який працює на контурі.

Кейс: розходження у звірці операцій скоротили втричі

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

Регуляторну звітність збирали вручну — вивантаження з торгового ядра, з гаманців і з мереж зводили в таблиці, звірку операцій робили за журналами. До першої версії звіту минало дев'ять робочих днів, а правки після перевірки розтягували строк ще на тиждень.

Що змінили

Розвели три незалежні джерела: торгове ядро, кастодіальні гаманці та дані самої мережі. Кожну операцію нормалізували до єдиного вигляду і зіставляли за посиланням на транзакцію, адресами та сумою з допуском на округлення.

Окремі правила завели для внутрішніх переказів і комісій, щоб вони не потрапляли у звіт як рух клієнтських коштів. Для скринінгу адрес підключили Chainalysis — ризик-ознаки потрапляють у ту саму звірку, а не живуть окремим файлом.

Результат у цифрах

Метрика До Після
Строк збірки звіту до першої версії 9 робочих днів 2 робочих дні
Записи, що не сходяться при звірці 6,3% 2,1%
Рядки з ручною правкою 68% 12%
Розбір одного розходження 30–40 хвилин 5–7 хвилин

Решта 2,1% — не «шум», а конкретний клас випадків: курсові різниці на момент зарахування та перекази між власними рахунками. Після двох закритих періодів правки стосувалися лише правил класифікації, нова ручна праця не з'являлася.

Звіт став відтворюваним: однакові вивантаження дають однаковий результат, а слід звірки зберігається разом із версією звіту.

Чим відрізняється регулярний звіт від разового вивантаження на запит

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

Різниця підходів проявляється не в обсязі даних, а в тому, чи вміє система відновити стан на довільну дату.

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

Такий контур дозволяє ловити неповні записи та незакриті клієнтські досьє до дедлайну, а не після нього.

Звіт на запит перевіряє глибину зберігання історії. Якщо дані про транзакції та клієнтські перевірки лежать лише в операційному сховищі з коротким строком життя, відновити картину за минулий період нічим.

Потрібен архів, з якого разове вивантаження збирається детерміновано, з журналом доступу і трасуванням від рядка звіту до вихідного запису.

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

По суті, регулярне подання — контракт за формою і строками, разове — перевірка того, що незмінний журнал подій ведеться від самого початку.

Технічні сумніви: дані, доступи, перевірюваність

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

Які доступи до наших систем вам знадобляться і хто ними керує?

Тільки читання і тільки на контурах із розрахунковими даними. Права видаються персонально інженеру, а не «команді», описані матрицею ролей і відкликаються за один крок — у журналі видно, хто і до чого мав доступ. Ключі не переїжджають у наші середовища: робота йде у вашому контурі або на знеособленій копії.

Що робити, якщо вихідні дані неповні або розходяться між системами?

До розрахунку профілюємо вивантаження: частка порожніх полів, дублікати за ключем, розходження сум між торговим і обліковим контуром, биті часові мітки.

Правила зіставлення та пріоритет джерел узгоджуємо заздалегідь, кожне коригування залишає слід — інакше звіт формально сходиться, а даних за ним немає.

Як довести перевірюваність записів зовнішньому аудитору?

Кожне агреговане значення розкладається до первинних записів. Зберігаємо версію правил розрахунку, контрольну суму вхідного набору і журнал змін — повторний перерахунок на тому самому наборі дає той самий результат. Розходження видно на конкретному кроці, а не «десь у звітності».

Обговоримо задачу: що потрібно для оцінки та плану робіт

Строки впровадження системи регуляторної звітності визначає не обсяг коду, а стан даних і кількість зовнішніх джерел. Тому оцінка проєкту починається з розбору вашої поточної схеми: де лежать журнали операцій, як позначені клієнти, які форми вже збираються вручну. Чим менше розривів у цих місцях, тим коротший шлях до першої коректно поданої звітності.

Щоб обговорити задачу предметно і повернутися з планом робіт, а не з широким діапазоном, нам потрібен від вас такий зріз:

  • Перелік звітів і вимог регулятора: форми, склад полів, періодичність і граничні строки подання.
  • Джерела даних: біржові журнали, записи кастодіана, транзакції в мережах, внутрішня облікова система.
  • Схема ідентифікації клієнтів і зв'язка «гаманець — рахунок — клієнт» за кожною юрисдикцією.
  • Правила зіставлення полів: як внутрішні статуси операцій лягають у поля звітних форм.
  • Поточний процес: що готується вручну, де ведеться звірка, хто підписує і подає документи.
  • Доступи та обмеження: тестові контури, випробувальні середовища регулятора, політика зберігання персональних даних.
  • Контрольні точки: за якими звітами підтверджуємо коректність до промислового запуску.

За цим набором збираємо план робіт з етапами, черговістю та строками впровадження — без прихованих залежностей і перезбирання строків на середині.

Перший практичний крок — звірка історичних даних на обмеженому періоді: вона показує реальну трудомісткість точніше за будь-яку прикидку «на око». Опишіть задачу — повернемося з оцінкою та планом робіт.

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141