К содержимому

Выплаты и казначейство

Горячий и холодный кошельки: как криптопроцессинг хранит средства и как вести своё казначейство

Зачем криптопроцессингу горячий и холодный кошельки, как их разделяет CryptoLike, кто подписывает переводы, что если горячий кошелёк пуст, и как вести казначейство.

Главное

  • Горячий кошелёк подписывает переводы автоматически и оплачивает выплаты; ключи холодного хранятся офлайн, и в нём лежит то, что выплатам сейчас не нужно.
  • В CryptoLike платежи приходят на депозитные адреса, собираются в горячий кошелёк, а излишек сверх лимита горячего кошелька для актива, если лимит задан, уходит в холодное хранение только после подтверждения оператора кодом 2FA.
  • Ключи есть только в отдельном сервисе подписи со своими правилами; из холодного кошелька он не подписывает никогда.
  • Ваш баланс — запись в леджере; сверка регулярно сравнивает его с блокчейнами.
  • Для своего казначейства: держите на CryptoLike рабочий остаток для выплат, а остальное выводите на свой холодный кошелёк выплатой на адрес из белого списка.

Ключи горячего кошелька хранятся в системе, подключённой к сети, поэтому он подписывает выплаты автоматически. Ключи холодного кошелька хранятся офлайн, и ничто в сети не может сдвинуть его средства. Криптопроцессингу нужны оба: в горячем — столько, чтобы платить без задержек, остальное — там, куда не дотянется взломанный сервер. Разбираем, как CryptoLike делит средства между ними, кто может их перемещать, что вы видите, когда горячий кошелёк пустеет, и как применить ту же идею к собственному казначейству.

Горячий и холодный кошелёк: сравнение

Горячий кошелёк платит уязвимостью за скорость: программа может подписать перевод его ключами в любой момент — это нужно для автоматических выплат, и этим же воспользовался бы злоумышленник, получивший доступ к системе. Холодный кошелёк платит скоростью за изоляцию: его ключи никогда не касаются машин в сети, поэтому расход из него требует людей и времени. Любой кастодиальный сервис ищет баланс между ними.

Параметр Горячий кошелёк Холодный кошелёк
Где ключи В онлайн-системе, которая подписывает автоматически Офлайн, вне любых систем в сети
Для чего Выплаты и ежедневные переводы Средства, которые выплатам сейчас не нужны
Скорость расхода Как только пройдены проверки Часы и больше: ручная процедура с несколькими людьми
Главный риск Взлом онлайн-системы Потеря офлайн-ключей, медленный доступ
Сколько в нём До лимита, если он задан для актива Всё, что выше лимита

В CryptoLike горячий кошелёк — это набор адресов в каждой сети, а холодный — адрес для каждой монеты, ключей от которого у платформы в онлайне нет. Короткие определения — в глоссарии: горячий кошелёк и холодный кошелёк.

Куда попадают платежи ваших клиентов

Каждый платёж CryptoLike принимает на собственный депозитный адрес: он отдельный у каждого платежа и каждого статического адреса, и индекс адреса никогда не используется повторно. После подтверждения платежа и зачисления на ваш баланс платформа собирает средства с депозитных адресов в горячий кошелёк, из которого идут выплаты. На ваш баланс сбор средств не влияет: баланс — это запись в леджере, а не содержимое одного адреса.

  1. Депозитный адрес. Клиент платит; перевод зачисляется после подтверждений актива.
  2. Сбор средств. Платформа пачками переводит средства с депозитных адресов в горячий кошелёк и сама платит комиссии сети. В TRON для этого нужны энергия и bandwidth, их платформа оплачивает в TRX со своего кошелька для газа — см. энергия и bandwidth в TRON.
  3. Горячий кошелёк. Из него идут ваши выплаты и другие исходящие переводы платформы.
  4. Холодное хранение. Сюда после подтверждения уходит излишек сверх лимита горячего кошелька.

Это кастодиальная модель: кошельками и ключами управляет CryptoLike, а вы распоряжаетесь деньгами через выплаты. Запускать ноды, хранить ключи и управлять адресами вам не нужно.

Кто может подписать перевод и по каким правилам

Приватные ключи CryptoLike есть только внутри отдельного сервиса подписи. В API, кабинете и основной базе данных хранятся адреса и публичные ключи, но не приватные ключи. Запрос на подпись приходит по TLS со взаимной аутентификацией (mTLS) от фиксированного списка внутренних сервисов, и сервис подписи проверяет его по своим правилам, прежде чем подписать.

  • Выплата подписывается, только если она в обработке и на вашем балансе в леджере есть соответствующая блокировка суммы. Запрос на что-то другое отклоняется.
  • Сбор средств идёт только на адреса из списка разрешённых. Добавить адрес в этот список могут только два разных администратора, каждый подтверждает добавление отдельным одноразовым кодом; удалить адрес может один администратор.
  • Нет заданного лимита — нет подписи. Сверх лимитов на транзакцию или на день запрос ждёт в ручной очереди, пока его не одобрит оператор; неверные коды ведут к блокировке.
  • Холодный кошелёк — только для наблюдения. Сервис подписи видит его баланс, но ключа для подписи из него у него нет.

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

Как излишек попадает в холодное хранение

Платформа может задать лимит горячего кошелька для каждого актива. Задача по расписанию проверяет горячие балансы, и когда актив с лимитом его превышает, предлагает перевести излишек в холодное хранение. Сам по себе перевод не происходит: каждое предложение оператор подтверждает свежим кодом 2FA, а неподтверждённое предложение истекает, и ничего не переводится.

Правило От чего защищает
Не больше одного открытого предложения на актив От двух переводов одного и того же излишка
Нет предложений, пока курсу больше 5 минут От применения долларового лимита к неверной цене
Холодный адрес должен быть в списке сервиса подписи От перевода на адрес, который никто не утверждал
Новый холодный адрес утверждают два разных администратора От перенаправления холодного хранения одним человеком
Записи о предложениях нельзя изменить От переписывания того, кто что одобрил

Сам перевод по-прежнему подписывает сервис подписи, поэтому крупная сумма может попасть и в его ручную очередь и потребовать там второго подтверждения. Обратный перевод из холодного хранения — офлайн-процедура с участием нескольких людей и физическим доступом; запросом к платформе её не запустить.

Что вы видите, когда в горячем кошельке не хватает средств

Если горячий кошелёк актива не покрывает выплату, CryptoLike не отклоняет её, а держит в ожидании. Выплата остаётся в статусе pending, а кабинет показывает: «Обрабатывается. Сумма заблокирована до отправки выплаты; её ещё можно отменить.». Операторы получают уведомление с размером нехватки и очередью, пополняют горячий кошелёк из холодного хранения и возобновляют выплату.

Что это значит на практике:

  • Крупная выплата может идти дольше мелкой. Выплата больше остатка горячего кошелька ждёт пополнения из холодного хранения, а это ручная процедура.
  • Пока выплата ждёт, ничего не теряется. Сумма остаётся заблокированной на балансе, и выплата подписывается, только когда её можно провести целиком.
  • Это можно учесть заранее. Перед необычно крупной выплатой предупредите поддержку или разбейте её на несколько выплат во времени.

Изменения статуса выплаты приходят вебхуками withdrawal.*; статусы и их значение — в справочнике API.

Как ваш баланс сверяется с блокчейнами

Баланс в CryptoLike ведётся в леджере с двойной записью: каждое изменение — проводка с дебетом и кредитом, записи нельзя изменить или удалить, а баланс не может уйти в минус. Задача сверки регулярно сравнивает, сколько лежит на депозитных и горячих адресах платформы в блокчейнах, с тем, сколько там должно быть по леджеру, и поднимает тревогу при любом расхождении.

Благодаря леджеру и реорганизация блоков обрабатывается чисто: если подтверждённый перевод исчез из цепочки, зачисление сторнируется отдельной проводкой, и вы получаете invoice.reverted или deposit.reverted. У каждого движения есть ID транзакции, который можно проверить.

Как вести своё казначейство поверх CryptoLike

То же разделение работает и для вашего бизнеса: держите на CryptoLike столько, сколько нужно для выплат, а остальное выводите на кошелёк под вашим контролем. CryptoLike даёт инструменты, которые затрудняют злоупотребление таким переводом; регламент определяете вы.

  1. Определите рабочий остаток по каждому активу. Столько, чтобы хватало на обычную неделю выплат и возвратов. Всё сверх — ваш излишек.
  2. Внесите адрес своего холодного кошелька в белый список. Включите белый список адресов: выплаты пойдут только на добавленные вами адреса, а новый адрес станет доступен через 24 часа после добавления с 2FA.
  3. Задайте порог второго подтверждения. Выплаты из кабинета или Telegram-бота выше выбранной суммы по активу будут ждать второго владельца или администратора — не того, кто их создал; на выплаты через API порог не действует. См. второе подтверждение.
  4. Выводите излишек по расписанию. Например, раз в неделю — выплата из кабинета на холодный адрес из белого списка с подтверждением 2FA. Сначала смотрите оценку: в ней комиссия платформы, комиссия сети и итоговое списание.
  5. Давайте API-ключам минимум прав. Ключу магазина нужны create_invoice и read; право withdraw — только системе, которая делает выплаты, и этот ключ стоит ограничить IP-адресами ваших серверов: выплаты через API идут без кода 2FA.

Пошагово эти настройки разобраны в гайде белый список адресов и второе подтверждение выплат, а выплаты многим получателям сразу — в гайде массовые выплаты в USDT.

Вопросы и ответы

Ключи от моего баланса хранит CryptoLike?

Да. CryptoLike — кастодиальный сервис: платежи приходят на адреса, которыми управляет платформа, а ключи хранятся в отдельном сервисе подписи, который подписывает только запросы, прошедшие его проверки. Ваш баланс — запись в леджере. Куда уходят деньги, решаете вы через выплаты: для выплат из кабинета и Telegram нужен свежий код 2FA, для выплат через API — ключ с правом withdraw, а белый список включается по желанию.

Может ли CryptoLike сам перевести средства в холодное хранение?

Нет. Когда горячий баланс превышает лимит актива, система только предлагает перевод. Каждое предложение оператор подтверждает свежим кодом 2FA, а неподтверждённое истекает, и ничего не переводится. Холодный адрес меняется только двумя разными администраторами.

Почему выплата долго показывает «Обрабатывается»?

Выплата ждёт подписи и отправки. Обычно долгое ожидание значит, что горячий кошелёк этого актива нужно пополнить из холодного хранения, чтобы провести полную сумму. Сумма всё это время заблокирована на балансе, а выплату можно отменить, пока она в статусе pending.

Как часто баланс сверяется с блокчейном?

Автоматически, по расписанию. Задача сверки сравнивает балансы депозитных и горячих адресов платформы в каждом блокчейне с леджером и поднимает тревогу при любом расхождении. Сам леджер работает только на добавление: записи нельзя изменить или удалить.

Стоит ли держать всю криптовалюту на CryptoLike?

Это ваше решение. Распространённый порядок — держать рабочий остаток для выплат и возвратов, а излишек регулярно выводить на кошелёк под своим контролем выплатой на адрес из белого списка, со вторым подтверждением выше заданного вами порога.

Термины на странице

Читать дальше

Начните с тестового платежа

Создайте аккаунт, попросите у поддержки доступ к тестовой среде и посмотрите, как платёж проходит путь от pending до paid в тестовой сети.