Горячий и холодный кошелёк компании: схема хранения криптовалюты
Компании, которая держит криптовалюту, нужен не один кошелёк, а схема из нескольких уровней: горячий кошелёк с небольшим остатком для ежедневных выплат, тёплый с мультиподписью для пополнения и холодный для основного запаса, ключи от которого не касаются интернета. Чем больше денег, тем меньше доля на горячем уровне и тем больше людей нужно для вывода.
Три уровня хранения
| Уровень | Для чего | Как устроен | Сколько держать |
|---|---|---|---|
| Горячий | Автоматические выплаты, возвраты, газ | Ключ на сервере или в HSM/KMS, лимиты на сумму и частоту | Объём выплат на часы или день |
| Тёплый | Пополнение горячего, плановые платежи | Мультиподпись, подписанты на отдельных устройствах | Объём на неделю |
| Холодный | Основной запас | Аппаратные ключи или MPC без онлайн-доступа, мультиподпись, физическое разнесение | Всё остальное |
Логика простая: на каждом уровне держат столько, сколько не жалко потерять при взломе этого уровня. Горячий кошелёк взламывают чаще всего, потому что его ключ должен быть доступен программе.
Правила для горячего кошелька
- Ключ хранится в аппаратном модуле или облачном KMS, а не в файле конфигурации и не в переменной окружения на общем сервере.
- Сервис подписи — отдельный процесс с минимумом зависимостей и узким API: «выплатить сумму на адрес из разрешённого списка».
- Лимиты на одну транзакцию, на час и на сутки зашиты в сервис подписи, а не только в админку.
- Новые адреса получателей проходят задержку или ручное подтверждение.
- Все исходящие операции попадают в журнал и в мониторинг с алертом на необычное.
- Пополнение — только с тёплого уровня, по расписанию или по порогу, а не «вручную когда нужно».
Тёплый уровень: мультиподпись
Тёплый кошелёк должен требовать нескольких подписей. В EVM-сетях стандарт для этого — смарт-аккаунт Safe с порогом подписей, например 2 из 3 или 3 из 5, подробно в статье о мультиподписи Safe. В TON есть свой контракт мультиподписи. Подписанты — разные люди, у каждого своё аппаратное устройство, и ни у кого нет полного набора.
Холодный уровень
Холодное хранение — это не «флешка в сейфе». Это процесс: ключи созданы на устройствах без доступа к сети, резервные копии разнесены по разным местам, а для вывода нужно собрать несколько человек. Часть компаний вместо самостоятельного хранения пользуется кастодиальными сервисами с MPC; тогда нужно проверить, кто реально может вывести средства и при каких условиях.
| Решение | Плюсы | Минусы |
|---|---|---|
| Аппаратные кошельки + мультиподпись | Полный контроль, понятная схема | Нужна дисциплина хранения и резервных копий |
| MPC-кастодиан | Удобные политики, нет одного ключа | Зависимость от провайдера и его юрисдикции |
| Биржевой счёт | Быстрая конвертация | Средства принадлежат бирже, риск заморозки и взлома биржи |
Роли и процесс
- Назначьте владельцев уровней: кто отвечает за горячий сервис, кто подписывает на тёплом, кто хранит холодные ключи.
- Запишите политику: лимиты, пороги пополнения, кто утверждает новых получателей, как проходят крупные выводы.
- Разделите обязанности: инициатор операции и подписанты — разные люди.
- Проверяйте адрес получателя по второму каналу: звонок, заранее согласованный список, а не адрес из письма.
- Раз в квартал проводите учебное восстановление: достаньте резервную копию и восстановите доступ на тестовом кошельке.
- Раз в квартал пересматривайте подписантов: ушедший сотрудник — немедленная замена ключа.
Пароли и доступы к самим сервисам — админкам, облаку, почте подписантов — защищают так же строго. Сформулировать требования поможет генератор политики паролей.
Что делать, если ключ скомпрометирован
- Остановите сервис подписи горячего кошелька.
- Переведите остаток на новый адрес, если это ещё возможно и безопасно.
- Отзовите все разрешения, выданные скомпрометированным адресом контрактам.
- Если украдены стейблкоины, сразу обратитесь к эмитенту: Tether и Circle могут заморозить адрес получателя.
- Сохраните журналы и хэши транзакций, сообщите партнёрам и биржам адреса злоумышленника.
- Разберите причину и только потом поднимайте новый горячий кошелёк.
Полный порядок — в статье план реагирования на крипто-инцидент. Если инцидент уже идёт, есть экстренная помощь.
Как считать лимиты
Лимит горячего кошелька — не круглое число «на глаз». Посчитайте средний и пиковый объём выплат за час и за день, время, за которое тёплый уровень может пополнить горячий, и допустимую потерю при взломе.
| Параметр | Как определить | Пример условный |
|---|---|---|
| Средние выплаты в час | По истории операций | 1 000 USDT |
| Пиковые выплаты в час | По максимуму за квартал | 4 000 USDT |
| Время пополнения | Сколько собираются подписанты тёплого уровня | 3 часа |
| Остаток на горячем | Пик × время пополнения с запасом | около 12 000–15 000 USDT |
| Порог автовывода | Выше этого всё уходит на тёплый уровень | 20 000 USDT |
Цифры в таблице — учебные. Главная мысль: остаток на горячем уровне зависит от того, как быстро вы умеете его пополнять. Ускорьте пополнение — и сможете держать меньше.
Разрешения контрактам
Горячий кошелёк часто взаимодействует с контрактами и выдаёт им разрешения на списание токенов. Бессрочное разрешение на неограниченную сумму опасно: если контракт взломают, с кошелька спишут всё. Выдавайте разрешения на нужную сумму и регулярно отзывайте неиспользуемые.
Типичные ошибки схемы хранения
| Ошибка | К чему приводит | Как исправить |
|---|---|---|
| Сид-фраза в облачных заметках | Утечка при взломе почты или облака | Только офлайн-носители, разнесённые по местам |
| Один человек знает всё | Риск потери доступа и злоупотребления | Разделение ролей и мультиподпись |
| Горячий ключ в переменной окружения веб-сервера | Утечка при любой уязвимости сайта | Отдельный сервис подписи, HSM или KMS |
| Никто не проверял восстановление | Резервная копия не работает в нужный момент | Учебное восстановление раз в квартал |
| Нет журнала операций | Невозможно разобрать инцидент | Журнал всех подписей и выводов |
Почти все крупные потери начинаются не со взлома криптографии, а с одной из этих ошибок. Схема из трёх уровней работает, только если её соблюдают каждый день.
Учёт и закон
Для российской компании криптовалюта — имущество, а не средство платежа внутри страны. Если она приходит по внешнеторговому договору, нужны валютный контроль и учёт, подробнее — в разборе 282-ФЗ для ВЭД. Техническую схему хранения, мультиподпись и мониторинг мы проектируем в рамках услуги мультиподпись и казначейство; защиту серверов, где живёт горячий кошелёк, — в рамках защиты сервера.
Вопросы и ответы
Сколько держать на горячем кошельке?
Столько, сколько нужно на выплаты за несколько часов или день. Излишки автоматически уводите на тёплый уровень. Точный объём зависит от потока выплат и того, насколько быстро вы можете пополнить кошелёк.
Чем холодный кошелёк отличается от горячего?
Ключ горячего кошелька доступен программе и интернету, поэтому он удобен и уязвим. Ключ холодного не касается сети, а для вывода нужно несколько человек и физический доступ к устройствам.
Можно ли хранить корпоративную криптовалюту на бирже?
Можно для оборотной части, но средства на биржевом счёте принадлежат бирже и зависят от её безопасности и решений. Основной запас лучше держать на своём холодном уровне или у кастодиана с понятными гарантиями.
Что такое MPC-кошелёк?
Схема, где ключ никогда не существует целиком: подпись создаётся совместно несколькими участниками. Это снижает риск кражи одного ключа, но нужно понимать, кто из участников и на каких условиях может вывести средства.