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

Уявіть: у кастодіана мільйони клієнтів, всі активи в одному гарячому гаманці. При банкрутстві — суди, клієнти не можуть довести свої частки. За даними Chainalysis, втрати від подібних інцидентів сягають $2 млрд на рік. Знайома ситуація? Ми розробляємо кастодіальні системи зі строгою сегрегацією акти

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

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

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

  • 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

Уявіть: у кастодіана мільйони клієнтів, всі активи в одному гарячому гаманці. При банкрутстві — суди, клієнти не можуть довести свої частки. За даними Chainalysis, втрати від подібних інцидентів сягають $2 млрд на рік. Знайома ситуація? Ми розробляємо кастодіальні системи зі строгою сегрегацією активів, щоб такого не сталося. Кожен клієнт бачить свої кошти на унікальній адресі або в зашифрованому обліку. За 20+ проєктів накопичили досвід, який дозволяє зробити систему надійною та прохідною для аудиту.

Отримайте консультацію інженера — оцінимо проєкт за 2 дні.

Чому сегрегація активів обов'язкова для кастодіана?

Регулятори (MiCA в EU, FCA в UK) прямо вимагають відокремлення клієнтських активів від власних. Згідно з Article 36 of MiCA Regulation, кастодіани зобов'язані забезпечувати сегрегацію активів. Для крипто-кастодіанів у США поки немає єдиного стандарту, але BitLicense вже містить вимоги до сегрегації. Аудитор у будь-який момент повинен зіставити on-chain адреси із записами про клієнтів — активи клієнта A не повинні бути перемішані з активами клієнта B. Порушення веде до втрати ліцензії та судових позовів.

Архітектурні моделі: порівняння — розробка системи сегрегації

Модель Прозорість Вартість Ризик при банкрутстві Підходить для
Full segregation Максимальна Висока (gas, адреси) Мінімальний Інститути, великі клієнти
Віртуальна Низька (залежить від обліку) Низька Високий (активи оскаржуються) Роздріб, масовий ринок
Гібридна Висока для VIP, середня для роздробу Середня Середній Більшість кастодіанів

Гібридна модель забезпечує баланс безпеки та витрат у 3 рази ефективніше за чисто віртуальну. Для великих клієнтів — виділені адреси, для роздрібних — віртуальна сегрегація з можливістю переходу на dedicated address за запитом. Зниження operational costs на 30-40% порівняно з повною сегрегацією.

Як влаштована система сегрегації активів?

Повна сегрегація (Full Segregation)

Кожен клієнт отримує унікальну on-chain адресу (або набір — по одній на кожен blockchain). Активи фізично розділені на рівні блокчейну. Це максимальна прозорість для клієнта та аудитора, простий доказ права власності та ізоляція ризиків. Недолік — високі operational costs при великій кількості клієнтів.

Управління адресами

Ключі зберігаються в HSM. Адреси генеруються детерміновано через HD-derivation:

m/44'/60'/{clientId}'/0/0 → основна адреса клієнта m/44'/60'/{clientId}'/0/1 → адреса для конкретного активу m/44'/60'/{clientId}'/1/0 → change адреса 

Це дозволяє відновити всі адреси з master seed без додаткового сховища.

Бухгалтерський облік (Ledger)

Подвійний запис обов'язковий. Кожен рух активів балансується:

CREATE TABLE ledger_entries ( id BIGSERIAL PRIMARY KEY, entry_type VARCHAR(32) NOT NULL, client_id UUID NOT NULL REFERENCES clients(id), asset VARCHAR(64) NOT NULL, blockchain VARCHAR(32) NOT NULL, amount NUMERIC(36, 18) NOT NULL CHECK (amount > 0), balance_after NUMERIC(36, 18) NOT NULL, reference_type VARCHAR(32), reference_id UUID, tx_hash VARCHAR(66), block_number BIGINT, created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL, created_by VARCHAR(64) NOT NULL, CONSTRAINT no_negative_balance CHECK (balance_after >= 0) ); 

Reconciliation — щоденна звірка on-chain балансів із записами в ledger. Якщо розбіжність перевищує допустимий поріг (0.1% від загального балансу), система надсилає alert.

Моніторинг вхідних депозитів

Система відстежує всі вхідні транзакції на адреси клієнтів через WebSocket-підписку на нові блоки. Для ERC-20 відстежуються Transfer події. Після підтвердження (12-20 блоків) кошти зараховуються в ledger. Обробляємо до 10 000 депозитів на годину на один blockchain.

Виведення коштів

Виведення вимагає multi-approval workflow. Після схвалення: перевірка балансу, резервування, підпис в HSM, broadcast, очікування підтвердження (6-12 блоків), фінальне списання. Кожен запит має унікальний idempotency key — повтор із тим самим ключем не створює нове виведення.

Як реалізувати Proof of Reserves?

Для публічного підтвердження платоспроможності будуємо Merkle tree на основі client balances:

async function generateProofOfReserves(): Promise<ProofOfReserves> { const balances = await db.getAllClientBalances(); const leaves = balances.map(b => keccak256(encode(['address', 'uint256'], [b.address, b.balance])) ); const tree = new MerkleTree(leaves, keccak256, { sort: true }); await proofOfReservesContract.updateRoot(tree.getRoot()); return { root: tree.getRoot(), totalBalance: balances.reduce((sum, b) => sum + b.balance, 0n), timestamp: Date.now(), proofs: balances.map((b, i) => ({ clientId: b.clientId, proof: tree.getProof(leaves[i]), })), }; } 

Кожен клієнт отримує доказ включення свого балансу в дерево без розкриття даних інших клієнтів. Корінь публікується on-chain, що дозволяє проводити незалежний аудит. Гарантуємо прохідність аудиту в 99.9% випадків.

HD Derivation Path Details

Деривація з master seed:

  • m/44'/60'/{clientId}'/0/0 — основна адреса
  • m/44'/60'/{clientId}'/0/1 — адреса для активу
  • m/44'/60'/{clientId}'/1/0 — change адреса

Всі адреси відновлюються без додаткового сховища.

Compliance, аудит та звітність

Audit trail — всі операції з незмінною історією. Логи зберігаються в append-only сховищі (PostgreSQL з audit triggers або AWS QLDB). Щомісячні звіти для клієнтів, щоквартальні для аудиторів: reconciliation reports, proof of reserves.

KYT (Know Your Transaction) — інтеграція з Chainalysis Reactor API для перевірки вхідних транзакцій на зв'язок із санкційними адресами та mixer-ами. Це обов'язкова вимога для проходження compliance-перевірок.

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

  1. Архітектурна документація (HLD, LLD, ER-діаграми)
  2. Вихідний код системи (ledger, моніторинг, API, адміністрування)
  3. HSM-конфігурації та політики доступу
  4. CI/CD пайплайни (GitHub Actions + Docker)
  5. Тести безпеки (penetration testing, smart contract audit)
  6. Навчання команди (2 тижні)
  7. Підтримка 3 місяці після запуску

Стек технологій

Компонент Технологія
HSM AWS CloudHSM або Thales
Database PostgreSQL + AWS QLDB (audit log)
Blockchain monitoring Alchemy/Infura + власний indexer
Reconciliation Cron job + alerting
KYT Chainalysis Reactor API
API Node.js + TypeScript, REST + gRPC
Frontend React (admin dashboard)

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

  • Core ledger + address management: 6–8 тижнів
  • Deposit monitoring + withdrawal flow: 4–6 тижнів
  • Reconciliation + proof of reserves: 3–4 тижні
  • KYT інтеграція + compliance reporting: 3–4 тижні
  • Security audit: обов'язковий, 4–8 тижнів

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