MoneroSwapper MoneroSwapper

Как настроить air-gapped холодный кошелёк Monero

MoneroSwapper · · · 2 min read · 13 views

Как настроить air-gapped холодный кошелёк Monero

Когда в феврале 2024 года Binance убрал Monero из стаканов, а Kraken позже в том же году последовал за ним для клиентов из ЕС и Великобритании под давлением MiCA, тысячи держателей XMR усвоили неприятный урок: оставлять монеты на бирже — значит доверять тому, кто способен делистнуть, заморозить или конфисковать их за одну ночь. Естественной реакцией стал массовый переход к самокастодиальному хранению, и самая параноидальная часть этого исхода пришла к одной идее — держать ключи на устройстве, которое никогда не касалось сети. Air-gapped холодный кошелёк именно так и работает: это машина, подписывающая транзакции Monero в полной изоляции, и даже полностью скомпрометированное интернет-соединение никогда не дотянется до вашего spend-ключа.

Это руководство проведёт вас через сборку такого кошелька с нуля, используя разделение на «горячую» и «холодную» части, которое Monero нативно поддерживает с 2017 года. На выходе у вас будет два кошелька — онлайновый «watch-only», отслеживающий баланс, и офлайновое хранилище с приватными ключами. Если вы при этом ещё и пополняете это хранилище приватно, обмен в XMR через бесlog-сервис вроде MoneroSwapper позволяет избежать биржевого следа, который air-gap и призван скрыть. Разберём всё по шагам.

Почему именно для Monero нужен воздушный зазор

Monero и без того прячет ваш транзакционный граф на уровне протокола. RingCT скрывает суммы, технология stealth-адресов прячет получателя, а кольцевые подписи (которые скоро заменит FCMP++) маскируют настоящего отправителя среди миксеров. Но всё это никак не защищает приватные ключи, лежащие на повседневном ноутбуке, где параллельно крутится браузер, торрент-клиент и сомнительный PDF, открытый на прошлой неделе.

Угроза — это эндпоинт, а не цепочка. Клипбордные хайджекеры, infostealer-малварь вроде Lumma и RedLine, фейковые клоны кошельков выгребли сотни миллионов долларов в крипте за 2024–2025 годы. Air-gap убирает всю поверхность удалённой атаки, потому что у подписывающего устройства попросту нет канала, по которому злоумышленник мог бы добраться.

  • Изоляция ключей: ваш spend-ключ и 25-словная сид-фраза никогда не оказываются на машине с интернетом, поэтому их физически нельзя выгрести удалённой малварью.
  • Подпись с визуальным контролем: вы проверяете адрес получателя и сумму каждой исходящей транзакции на офлайн-устройстве перед подписью, что обнуляет атаки с подменой адреса в буфере обмена.
  • Регуляторная устойчивость: на фоне ускоряющихся делистингов под MiCA и давления FATF travel-rule самокастодиальное хранение — единственный долговечный способ держать XMR, а холодное хранение — его сильнейшая форма.
  • Сохранение fungibility: монеты, которыми вы управляете напрямую, сохраняют взаимозаменяемость Monero — никаких биржевых меток «грязные», тянущихся за ними.

Что понадобится перед стартом

Для air-gapped сборки нужны два устройства и однонаправленный способ переноса файлов между ними. Онлайновая машина общается с сетью Monero; офлайновая — никогда. Если правильно развести эти роли, всё остальное превратится в механику.

Выбор офлайнового устройства

Самый дешёвый надёжный вариант — старый ноутбук с физически выпаянной или отключённой Wi-Fi-картой и неподключённым Ethernet-портом. Подойдёт и Raspberry Pi без сетевой периферии, и выделенная машина, грузящаяся с USB через Tails. Tails по умолчанию амнезиен — он забывает всё при выключении, — поэтому либо подключаете шифрованное persistent-хранилище специально под файлы кошелька, либо каждый раз восстанавливаетесь из сид-фразы.

Что бы вы ни выбрали, правило абсолютное: это устройство больше никогда в жизни не подключается ни к какой сети. В тот момент, когда это произойдёт, air-gap считается сломанным, а ключи — потенциально скомпрометированными.

Программные варианты

Три клиента Monero нормально умеют в холодную подпись. Официальные Monero GUI и CLI идут с полным cold-wallet workflow «из коробки». Feather Wallet — лёгкий community-клиент — добавляет отполированный офлайн-подписывающий интерфейс и прекрасно подходит тем, кто не хочет крутить собственную полную ноду. Все три — открытый исходный код с воспроизводимыми сборками.

ПодходПлюсыМинусы
Самосборный air-gapped ноутбук (GUI/CLI) Полный контроль, нулевые расходы на железо, open source, поддержка полной ноды Ручной перенос файлов, более крутая кривая обучения
Feather Wallet в офлайн-режиме Лёгкий, без полной ноды, дружелюбный UI для холодной подписи Зависит от удалённых нод для онлайновой части (используйте свою или через Tor)
Аппаратный кошелёк (Ledger) Компактный, secure element, простое восстановление Закрытая прошивка, зависимость от вендора, ограниченная поддержка фич XMR
Горячий кошелёк на основном устройстве Мгновенно, удобно для мелких трат Ключи открыты любой малвари на машине — это не холодное хранилище

В оставшейся части руководства я возьму DIY air-gapped подход с официальным клиентом, потому что он наглядно показывает базовую модель, которую все остальные методы лишь абстрагируют. Когда вы поймёте, как устроено разделение hot/cold, работа с аппаратным кошельком — это та же идея, только секреты запечатаны в чипе.

Как на самом деле работает разделение hot/cold

Архитектура холодной подписи Monero разводит способность видеть средства и способность их тратить. Это напрямую отражает два ключа, которые каждый кошелёк Monero выводит из мнемонической фразы: view-ключ, позволяющий софту обнаруживать входящие выходы, принадлежащие вам, и spend-ключ, без которого нельзя авторизовать их отправку.

Онлайновая машина держит watch-only кошелёк, собранный только из вашего адреса и приватного view-ключа. Он сканирует блокчейн, распознаёт выходы на ваших stealth-адресах, показывает баланс — но физически не способен сдвинуть ни одну монету. Офлайновая машина держит полный кошелёк, включая spend-ключ, и только она может сгенерировать валидную подпись.

Если ваш watch-only кошелёк когда-нибудь будет скомпрометирован, атакующий узнает баланс и историю входящих транзакций — но не сможет потратить ни одного piconero, потому что spend-ключ ни разу не покидал air-gapped устройство.

Поэтому траты превращаются в эстафету между двумя машинами. Онлайновый кошелёк составляет неподписанную транзакцию, офлайновый её проверяет и подписывает, а онлайновый отправляет уже подписанный результат в мемпул. Key images — криптографические маркеры, не дающие потратить выход дважды, — вычисляются офлайн и синхронизируются обратно, чтобы watch-only видел, какие выходы уже потрачены. Через зазор не проходит ни одного секрета, только артефакты транзакций.

Пошагово: собираем air-gapped холодный кошелёк

Заложите на первый запуск час. Работайте не спеша — любая ошибка здесь обратима, кроме слитой сид-фразы и сломанного air-gap. Подготовьте чистую USB-флешку (или вебкамеру, способную сканировать QR, на каждом устройстве).

  1. Проверьте бинарники. На онлайновой машине скачайте клиент Monero с getmonero.org, затем сверьте SHA-256 хеши и проверьте GPG-подпись против ключа мейнтейнера. Воспроизводимая сборка означает, что бинарь должен совпадать с тем, что независимо собрали участники сообщества. Никогда этот шаг не пропускайте — забэкдоренный кошелёк отменяет смысл всех остальных шагов.
  2. Создайте кошелёк офлайн. Перенесите проверенный бинарь на air-gapped устройство через USB. Сгенерируйте там новый кошелёк через monero-wallet-cli. Запишите 25-словную сид-фразу на бумагу — никаких фото, никаких текстовых файлов. Этот офлайновый кошелёк держит и spend-, и view-ключ.
  3. Выгрузите view-only данные. На офлайновом кошельке скопируйте основной адрес и командой выведите приватный view-ключ. Этих двух значений достаточно для всей онлайновой части.
  4. Соберите watch-only кошелёк онлайн. На машине с интернетом выберите «Create wallet from keys» (view-only) и введите адрес, приватный view-ключ и restore height, соответствующий моменту создания кошелька. Дайте ему синхронизироваться против вашей собственной ноды или доверенной удалённой ноды через Tor.
  5. Пополните и подтвердите. Отправьте XMR на новый адрес. Watch-only кошелёк увидит входящий выход после подтверждения. Если приобретаете Monero приватно, проводите покупку через no-KYC обмен — тогда транзакция пополнения не несёт идентифицирующей привязки.
  6. Синхронизируйте выходы и key images. Чтобы потратить, выгрузите outputs из watch-only кошелька, отнесите файл на офлайн-устройство, импортируйте, затем выгрузите key images обратно на онлайн-сторону и импортируйте уже там. После этого watch-only видит реальный баланс и понимает, какие выходы доступны для траты.
  7. Составить, подписать, отправить. На онлайновом кошельке создайте неподписанную транзакцию на нужный адрес. Перенесите файл unsigned_monero_tx на офлайн-устройство, сверьте получателя и сумму на экране, подпишите. Принесите получившийся signed_monero_tx обратно и отправьте в сеть.

Для мелких частых трат USB-эстафету можно заменить анимированными QR-кодами — и Feather, и GUI умеют кодировать неподписанные и подписанные транзакции в QR-последовательности, которые сканируются камерой каждого устройства. Так офлайн-машина остаётся вообще без портов наружу.

Практический пример: долгосрочное хранение «как надо»

Возьмём держателя из России, накапливающего XMR как приватный резерв. Он покупает малыми порциями на протяжении нескольких месяцев, каждый раз обменивая BTC или USDT на Monero и отправляя сразу на адрес своего air-gapped холодного кошелька. Онлайновый watch-only кошелёк фиксирует растущий баланс; сид-фраза лежит в огнеупорном сейфе, а стальной бэкап — во второй точке хранения.

Налоговая дисциплина и приватность здесь не противоречат друг другу. ФНС с 2021 года рассматривает криптовалюту как имущество, и самокастодиальное хранение никого не освобождает от декларирования при продаже — однако холодное хранение означает, что у вас нет стороннего кастодиана и биржи, у которой при случае можно запросить полную историю кошелька. Когда держатель в итоге что-то тратит, он подписывает офлайн, отправляет через Tor-роутингованную ноду, а слой распространения Dandelion++ скрывает, какая нода первой ретранслировала транзакцию.

Если бы тот же держатель оставил весь стек на централизованной бирже, один делистинг под давлением MiCA или ограничения по геозоне мог бы вынудить его к fire-sale или вообще заморозить вывод. Air-gap превратил кастодиальное обязательство в приватный суверенный резерв — собственно, в этом весь смысл.

FAQ

Не избыточен ли air-gapped кошелёк для небольших сумм Monero?

Для карманных сумм, которые вы тратите еженедельно, горячий мобильный кошелёк — это нормально и куда удобнее. Air-gapped подход оправдывает свою сложность, когда вы храните такую сумму, потерять которую от малвари будет по-настоящему больно. Многие держат оба варианта параллельно: горячий кошелёк под траты и air-gapped хранилище под сбережения.

Что будет, если офлайн-устройство сломается?

Ничего не потеряете, потому что кошелёк живёт в 25-словной сид-фразе, а не в железе. Восстановите её на любой новой офлайн-машине — и снова получаете полный контроль над spend-ключом. Именно поэтому бэкап сид-фразы важнее самого устройства: берегите слова, железо меняйте свободно.

Можно ли вместо этого использовать аппаратный кошелёк?

Можно. Ledger хранит spend-ключ в secure element и подписывает транзакции так, что ключи не покидают чип, — это похожая цель изоляции с меньшим объёмом ручной работы. Платой за удобство будут закрытая прошивка, зависимость от вендора и исторически более медленная поддержка фич, специфичных для Monero, поэтому продвинутые пользователи часто предпочитают DIY air-gap ради полной прозрачности.

Нужно ли поднимать свою ноду для онлайнового кошелька?

Не строго обязательно, но это самый приватный вариант. Подключение watch-only кошелька к публичной удалённой ноде сливает оператору ноды и активность по view-ключу, и ваш IP, если не пускать трафик через Tor или I2P. Своя нода — или хотя бы доверенная нода за Tor — оставляет эти метаданные у вас.

Изменит ли FCMP++ работу холодных кошельков?

Это обновление заменит кольцевые подписи на Full-Chain Membership Proofs++ с радикально большим anonymity set, а параллельно в roadmap идёт переработка адресов Seraphis и Jamtis. Сама модель hot/cold подписи остаётся прежней — вы будете так же составлять онлайн и подписывать офлайн, — поэтому air-gapped сборка, сделанная сегодня, чисто переедет на новый протокол.

Заключение

Air-gapped холодный кошелёк Monero — это разница между тем, чтобы владеть своей приватностью, и тем, чтобы арендовать её у того, кто держит ваши ключи. Сборка стоит вам одного вечера и старого ноутбука, а взамен вы получаете хранилище, до которого удалённый атакующий просто не дотянется: spend-ключ изолирован, каждая транзакция проверяется перед подписью, ваши XMR защищены от очередной волны делистингов. Добавьте к этому проверенные бинарники, стальной бэкап сид-фразы и ноду через Tor — и у вас будет хранилище, не уступающее ничему, что предлагают кастодианы, без самого кастодиана.

Последний кусок — пополнить кошелёк, не затащив обратно ту слежку, от которой вы только что сбежали. Покупайте Monero через no-log, no-KYC обмен, чтобы монеты приземлились в холодное хранилище с чистой историей — вы можете купить Monero анонимно через MoneroSwapper и отправить прямо на ваш air-gapped адрес. Сначала соберите кошелёк, потом приватно его пополните — и ключи останутся у вас.

Поделиться статьей

Похожие статьи

Анонимный Обмен Monero

Без KYC • Без регистрации • Мгновенный обмен

Обменять сейчас