Криптоплатежі і стейблкоіни: особливості on-chain/off-chain
Повний текст статті
1) Навіщо криптоплатежі платформі
Доступ до глобальних ринків: менше залежностей від класичних PSP, швидкі транскордонні переклади.
Менше тертя: цілодобові розрахунки, передбачувані комісії в ряді мереж.
Стейблкоіни: зниження волатильності проти нативних монет (ETH/BTC).
Ризики: санкції/AML, втрата ключів, фрод в ончейн-світі, технічні форки/затори мереж.
2) Моделі прийому: on-chain vs off-chain
On-chain (нативний прийом в мережі)
Що це таке: платформа або її провайдер генерує адресу/мемо, чекає ончейн-підтвердження і кредитує гаманець гравця.
Плюси: прозорість (блокчейн-слід), незалежність від єдиного кастодіана, контроль правил.
Мінуси: непередбачувані затримки, комісії (газ), складний комплаєнс, ключова безпека.
Off-chain (через кастоді/процесор)
Що це таке: провайдер (VAS Р/біржа/процесор) приймає крипто на своїх гаманцях і видає офчейн-кредит у ваш внутрішній Ledger через API.
Плюси: швидкість (майже миттєво), фіксовані збори, скорочення ончейн-ризиків.
Мінуси: залежність від провайдера, ризики кастоді, KYC/Travel Rule на стороні провайдера, можливі ліміти/» чорні вікна».
Гібрид: дрібні депозити - офчейн, великі/VIP - ончейн безпосередньо в «теплий» гаманець.
3) Стейблкоіни: які і в чому різниця
FIAT-backed (USDT, USDC, EURC): забезпечені резервами емітента, можуть мати функції «blacklist/freeze».
Крипто-заставні (DAI): забезпечені заставою в ончейн-протоколах, ризик деградації колатералю.
Алгоритмічні: висока технологічна/ринкова ризикованість - уникати для основного касового потоку.
Мережі/стандарти: ERC-20 (Ethereum/Arbitrum/OP), TRC-20 (TRON), BEP-20 (BSC), SPL (Solana). Уважно ведіть map токена ↔ мережу ↔ decimals: помилка = втрата коштів.
4) Мережі та їх особливості (коротко)
Ethereum L1: висока безпека, вище газ; EIP-1559 (base fee + priority).
L2 (Arbitrum/OP/BASE): дешевше/швидше, мости і вихід на L1.
TRON: низькі комісії для USDT (TRC-20), енергомодель (bandwidth/energy).
BSC: низький газ, вище ризики валідаторів/ecosystem-quality.
Solana: висока пропускна, «банкролл» на прийом; особливості мемпула і фінальності.
UTXO-мережі (BTC/LN): інша модель адрес і UTXO, окремі провайдери.
5) Кастоді, ключі та безпека
Моделі: self-custody (ваші ключі), кастоді у провайдера, МРС/мультисиг (розподілені ключі).
Градації зберігання: гарячі (оперативні), теплі (лімітні), холодні (сховище/резерви).
Практики: HSM/Vault, білі списки адрес (withdraw), ліміти пер-транзакція/день/ASN, «чотири ока» на великі висновки, тайм-локи, адресні книги.
DR: план на форки/затори, резервні маршрути, бізнес-правила «pause new on-chain».
6) Грошові інваріанти і Ledger
Істина по балансу гравця - внутрішній гаманець (Ledger). Ончейн-прихід → кредит гравцеві після критеріїв фінальності.
Всі write-команди ('wallet. credit/debit/rollback') - ідемпотентні, ключ'X-Idempotency-Key'.
Жорсткий поділ OLTP/OLAP і outbox/CDC для подій'deposit/withdraw/settle'.
7) Флоу депозиту (on-chain)
1. Адресування: видаємо унікальну адресу/мемо (XRP/XLM/TRX tag, ETH nonce-мітка в memo, або HD-деривація/xpub).
2. Моніторинг мемпула/блоків: бачимо вхідний tx → статус'PENDING'.
3. Критерій фінальності: N підтверджень (наприклад, ETH = 12, TRON = 20, SOL = 32; залежить від політики ризику).
4. Кредит в Ledger: `wallet. credit'( ідемпотентно) по хешу транзакції, подія'deposit. succeeded`.
5. Хедж/конверсія (опція): авто-своп стейблкоіна/фіата для зниження волатильності.
6. Reconciliation: щоденна звірка «ланцюг ↔ Ledger ↔ звіт кастоді/процесора».
Уточнення:- Для XRP/XLM/ATOM критичний Destination Tag/Memo - втрата = складне ручне відновлення.
- Для UTXO тримайте пул UTXO; агрегуйте дрібні входи (UTXO consolidation) поза піками газу.
8) Флоу виведення (on-chain)
1. Запит withdraw → RG/AML/KYC перевірки (санк-листи, адреса-ризик, межі velocity).
2. Перевірка адреси: checksum/format, мережа/токен-сумісність, санкції/» чорні списки» емітента (USDT/USDC).
3. Оркестрація газу: розрахунок fee (EIP-1559 maxFee/maxPriority), баланс газової монети.
4. Підпис/МРС → трансляція → статусна машина ('SUBMITTED → CONFIRMED/FAILED').
5. Подія'withdraw. settled'після фінальності; у разі фейлу - компенсації/повтор з тим же idempotency.
Повернення/Refunds: ончейн «чарджбеків» немає - це нова транзакція на адресу повернення, вимагайте у гравця «return address/chain» і підтвердження володіння (message-sign/мікротест).
9) Off-chain флоу через процесор
Create intent → Receive credit webhook від провайдера (підписаний HMAC/EdDSA) →'wallet. credit`.
Ризики/плюси: швидкий UX, провайдер бере на себе мережу/Travel Rule, але ви залежите від його доступності/SLA.
Обов'язково: дедуп по'event _ id '/txid, DLQ, повторна звірка звітів (reconciliation) T + 1.
10) Комплаєнс: KYC/KYT/Travel Rule
KYC/AML: до допуску до on-chain - верифікація особистості/джерела коштів.
KYT (Know Your Transaction): скринінг адрес/tx за ризик-метриками (санкції, міксери, даркнет-маркет, високоризикові сервіси).
Travel Rule (для VASP): обмін даними відправника/одержувача при переказах вище порога між VASP (TRISA/TRUST/аналог).
Blacklist/Freeze в стейблкоїнах: емітент може заморозити активи - враховуйте в ризикових політках.
Резидентність даних: журнали/адреси/PII - по регіонах (EU/UK/BR...), заборона крос-регіонних читань.
11) Волатильність і трежері
Авто-конверсія депозиту в стейбл (або фіат) за правилом «відразу після фінальності».
Натуральний хедж: зберігати в тій валюті, в якій сплачуєте виграші.
Політики лімітів: стелі на залишки нативних монет (газ-буфери окремо), ребаланс за розкладом.
Облік/податки: реалізовані/нереалізовані PnL, курсові різниці, кастомні звіти для аудиту.
12) Спостережуваність, SLO та інциденти
SLO орієнтири (приклад):- `deposit. finality` p95: ETH-L2/TRON/SOL ≤ 5-10 хв; ETH L1 ≤ 15-30 хв (залежить від мережі/навантаження).
- `withdraw. submit→confirm` p95: ≤ 10 хв (по мережі).
- Webhook-доставка p99: ≤ 5 хв.
- «Втрачених/дубльованих кредитів/дебетів» = 0.
Метрики: mempool lag, confirmations ETA, gas spike detector, адрес-риск-скор, webhook-retry storms, orphan/reorg rate.
Інциденти:- Газ-шипка - авто-підвищення fee/відкласти непріоритетні висновки.
- Реорг/форк - очікування доп. підтверджень, перерахунок статусів.
- Стоп мережі/мосту - режим «pause new on-chain», офчейн-кредити заборонені для відповідної мережі.
13) Reconciliation (звірка)
On-chain: блок-сканери/ноди → вітрина «вхідні/вихідні» ↔ Ledger.
Off-chain: звіти провайдера (SFTP/API) ↔ Ledger; класифікація mismatch ('missing _ chain','missing _ platform','amount _ mismatch','timing').
Алерти: aging невірених> N днів, зростання'amount _ mismatch', розбіжність decimals/chain-id.
14) Контракти API (еталонні фрагменти)
Видати адресу депозиту
POST /v1/crypto/deposit-address
{ "player_id":"p_123", "asset":"USDT", "network":"TRON" }
→ 200 { "address":"TXX...9k", "memo": null, "expires_at":"2025-10-30T00:00:00Z" }Ончейн-кредит після фінальності
POST /v1/wallet/credit
Headers: X-Idempotency-Key: chain_tx_<txid>
{
"player_id":"p_123",  "amount":{"amount":100. 00,"currency":"USDT-TRC20"},  "reference":{"txid":"...","network":"TRON","confirmations":25}
}
→ 200 {"status":"credited","entry_id":"w_789"}Webhook від процесора (off-chain)
POST /webhooks/crypto/deposit
X-Signature: eddsa=...
{
"event_id":"uuid",  "asset":"USDC",  "network":"ARB",  "amount_minor":100000000,  "player_ref":"p_123",  "txid":"0x..",  "confirmations":20,  "status":"finalized"
}
POST /v1/crypto/withdraw
Headers: X-Idempotency-Key: wd_001
{
"player_id":"p_123",  "asset":"USDT",  "network":"ETH",  "to_address":"0xAbc...",  "amount_minor":1000000,  "max_fee_wei":"..."
}
→ 202 {"status":"SUBMITTED","withdraw_id":"wd_001"}15) Чек-листи
Платформа/оператор
- Окремі стеки per мережа/регіон; токени/адреси валідуються.
- Ідемпотентність всіх write-операцій;'trace _ id'і'txid'в логах.
- KYT скринінг адрес/tx + Travel Rule для VASP-перекладів.
- Політики фінальності по мережах; SLO-дашборди та алерти.
- Білі списки і «чотири ока» на великі висновки; MPC/HSM.
- Авто-конверсія/хедж; ліміти залишків, ребаланс.
- Щоденна звірка: ланцюг/процесор ↔ Ledger ↔ BI-вітрини.
- DR-план: газ-спайки, форки, down-time мереж/мостів.
Провайдер/кастоді/процесор
- Підписані вебхуки + дедуп по'event _ id'.
- SLA фінальності по мережах; звіти T + 1, цілісність/хеш-підписи.
- Механізми адресного скринінгу/Travel Rule і журнали.
16) Червоні прапори (анти-патерни)
Кредит балансу за мемпулом (без підтверджень).
Прийом USDT без фіксації якої мережі і'decimals'.
Немає перевірки memo/tag для XLM/XRP/BNB - «загублені» депозити.
Висновок із загального гарячого гаманця без білих списків/лімітів.
Webhooks без підпису і вікна валідності → реплеї.
Відсутність КУТ/санк-скринінгу/Travel Rule.
Немає outbox/CDC для подій депозиту/виведення.
Відсутність політики на реорги/доп. див. підтвердження.
Змішання PII/ончейн-журналів всіх регіонів в одному бакеті.
17) Підсумок
Криптоплатежі і стейблкоіни в iGaming працюють надійно тоді, коли грошові інваріанти залишаються залізними: фінальність перед кредитом, ідемпотентні команди, строгий KYT/Travel Rule, захищені ключі і керований ризик мереж. On-chain дає прозорість і самостійність, off-chain - швидкість і простіше UX; на практиці виграє гібрид з правильною оркестрацією, SLO і щоденною звіркою. На такому фундаменті платформа безпечно розширює географію, знижує витрати і залишається комплаєнтною.
