Спецификация интеграции системы платежей в криптовалюте
Для повышения гибкости платежей и глобальной доступности для пользователей мы планируем интегрировать функциональность нативных платежей в криптовалюте на нашем сайте. Система должна поддерживать прием активов и мониторинг транзакций через основные блокчейн-сети, с прямыми подключениями к нативным RPC-узлам каждой цепи (без сторонних агрегаторов), обеспечивая безопасность, контроль и соответствие децентрализованным принципам.
Целевые блокчейн-сети
Должны поддерживаться следующие блокчейны и их соответствующие нативные активы и стандарты токенов:
- Bitcoin (BTC): Нативные переводы Bitcoin
- Ethereum (ERC-20): Поддержка USDT, USDC и других токенов ERC-20
- BNB Smart Chain (BEP-20): Поддержка BUSD, USDT-BSC и других токенов BEP-20
- TRON (TRC-20): Поддержка USDT-TRC20 и других токенов TRC-20
- Solana (SPL): Поддержка USDC, USDT и других токенов стандарта SPL
- TON (The Open Network): Поддержка нативных монет TON и токенов стандарта Jetton
Основные функциональные требования
1. Генерация и управление адресами кошельков
- Динамическая генерация уникальных адресов для депозитов в криптовалюте для каждого пользователя (изолированные кошельки или производные адреса)
- Единая система управления адресами для нескольких цепей
2. Мониторинг и подтверждение транзакций в реальном времени
- Опрашивать или подписываться на данные блоков через нативные RPC-узлы для каждой цепи
- Обнаруживать входящие транзакции (как нативные переводы монет, так и токенов)
- Проверять легитимность транзакции (например, количество подтверждений, сумма, адрес получателя)
3. Автоматизированная агрегация средств (смыв холодного кошелька)
- Автоматически перемещать средства на основной/холодный кошелек, когда баланс пользователя превышает предопределенный порог
- Обрабатывать комиссии за газ/энергию во время перемещения (с автоматическим пополнением при необходимости)
- Поддерживать управление комиссиями между цепями (например, энергия/пропускная способность на BSC/Tron)
4. Функциональность вывода средств
- Обеспечить возможность вывода средств с основного кошелька на внешние адреса как для нативных монет, так и для токенов
- Предоставить отслеживание статуса транзакций и ведение журнала в базе данных
5. Безопасность и контроль рисков
- Приватные ключи должны храниться оффлайн; никогда не должны быть раскрыты в коде приложения или переменных окружения
- Использовать MPC-кошельки, HSM или устройства аппаратной подписи для критических операций
- Реализовать рабочие процессы одобрения для крупных выводов средств
6. Синхронизация данных и сверка
- Сохранять записи транзакций в блокчейне в локальной базе данных
- Предоставить API для запросов статуса транзакций
- Поддерживать конвертацию фиатной стоимости с использованием API обменных курсов
7. Архитектура высокой доступности
- Интегрировать очереди сообщений (например, Redis + BullMQ) для асинхронной обработки и механизмов повторной попытки
Технические требования к реализации
- Подключаться напрямую к **публичным или самостоятельно размещенным полным узлам RPC** для каждой цепи. Избегать зависимости от сторонних шлюзов (например, Alchemy, Infura, TronGrid), чтобы обеспечить операционную автономию.
- Использовать официально рекомендованные SDK для каждой цепи:
- Bitcoin**: `bitcoinjs-lib` + самостоятельно размещенный `bitcoind` узел
- Ethereum/BSC: `ethers.js` или `web3.js`
- Tron: `tronweb`
- Solana: `@ solana/web3.js`
- TON: `ton`, `ton-core`
Будущая расширяемость
- Разработать модульную архитектуру для легкого добавления новых блокчейнов (например, Polygon, Avalanche)
- Предоставить внутренние админские API для ручного смыва, проверки баланса, одобрения выводов и т.д.
Эта система будет служить основным компонентом нашей финансовой инфраструктуры и должна соответствовать высоким стандартам **безопасности, надежности и наблюдаемости**, чтобы обеспечить безопасность активов пользователей и непрерывность бизнеса.