Cold wallet: полное руководство, от клочка бумаги до мультиподписи на Qubes OS

Построение cold wallet, от самого простого до самого надёжного: seed-фраза, аппаратный кошелёк, air-gapped машина, SeedSigner, Qubes OS и мультиподпись.

|

Время чтения: 17 минут(ы)

Cold wallet: полное руководство, от клочка бумаги до мультиподписи на Qubes OS

В 2023 году исследователи Kaspersky разобрали аппаратный кошелёк Trezor, купленный на солидной с виду онлайн-площадке. Устройство было визуально неотличимо от оригинала, включая упаковку, и работало нормально. Оно показывало последовательность слов для переписывания, ровно как настоящее. Вот только эту последовательность не разыграло само устройство: её заранее выбрал злоумышленник, которому оставалось лишь дождаться, когда жертва положит туда свои средства. Полный анализ опубликован в блоге Kaspersky .

Эта история резюмирует всю тему. Жертва купила правильный продукт, правильной марки, с правильными намерениями. Подвело не железо, подвела процедура вокруг него.

Cold wallet не предмет, который покупают. Это процедура, которую применяют, а железо лишь одна её деталь.

Вот пять уровней безопасности, от самого простого до самого требовательного. Каждый пригоден к использованию в том виде, в каком есть. На каждой ступени тот же вопрос: от чего не защищал предыдущий уровень и касается ли этот риск вас на самом деле?

Что такое cold wallet, без жаргона

Криптовалюта не хранится ни в вашем телефоне, ни в вашем компьютере. Она записана в публичном реестре, блокчейне, продублированном на тысячах машин. Этот реестр связывает количество средств с адресом, длинной последовательностью символов, играющей роль публичного номера счёта.

Чтобы переместить эти средства, нужно доказать, что вы их владелец. Это доказательство исходит из секрета, которым владеете только вы: закрытого ключа. Его никогда никуда не отправляют. Им ставят криптографическую подпись на платёжном поручении, и сеть проверяет, что эта подпись действительно соответствует данному адресу.

Вся безопасность, таким образом, держится на единственной точке: кто видел закрытый ключ.

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

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

Cold wallet, буквально холодный кошелёк, переворачивает логику. Закрытый ключ генерируется на устройстве, не подключённом к интернету, и никогда это устройство не покидает. Циркулируют исключительно транзакции на подпись, которые входят, и подписанные транзакции, которые выходят. Злоумышленник, полностью контролирующий ваш подключённый компьютер, видел бы проходящие транзакции, но никогда — ключ, который их подписывает.

Это единственное различие, которое имеет значение. Всё остальное состоит в том, чтобы его обход становился всё труднее.

Hot wallet или cold wallet, разница

Hot wallet, горячий кошелёк, это кошелёк, закрытый ключ которого генерируется или хранится на устройстве с подключением к интернету, что постоянно делает его уязвимым к удалённой атаке. Cold wallet генерирует ключ офлайн и подписывает офлайн, так что закрытый ключ никогда не касается подключённого устройства. Самая частая путаница касается роли операционной системы: телефон с приложением вроде MetaMask остаётся hot wallet, даже на закалённой и безупречно обновлённой системе. Значение имеет не общая защищённость устройства, а наличие сетевого соединения ровно в тот момент, когда ключ служит для подписи. Закалка подключённого устройства снижает вероятность компрометации, но не меняет категории, к которой кошелёк принадлежит.

Чему нас учит дело Coldcard 2026 года

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

В конце июля 2026 года производитель Coinkite раскрыл, что дефект, внесённый в прошивку его Coldcard в марте 2021 года, повлиял на генерацию некоторых seed. Речь шла не о намеренном резервном механизме: ошибка интеграции при переходе на новую криптографическую библиотеку привела к тому, что макрос, который должен был отключать программный запасной генератор, не дал ожидаемого эффекта, и предусмотренный аппаратный генератор фактически обходился в пользу общего, предсказуемого программного генератора платформы. Полученные фразы выглядели совершенно случайными, но их реальная энтропия падала, согласно предварительным оценкам, опубликованным Coinkite, примерно до 40 бит на моделях Mk2 и Mk3 и примерно до 72 бит на Mk4, Mk5 и Q, вместо предусмотренных 128 бит. Технический разбор, опубликованный Coinkite , подробно описывает этот механизм.

Начиная с 30 июля 2026 года, четырьмя волнами, злоумышленники вывели около 1 816 биткоинов, распределённых по более чем 5 200 адресам, согласно анализу TRM Labs . Ни разу им не понадобился доступ к устройствам жертв, ни физический, ни удалённый. Они просто пересчитали закрытые ключи, ставшие достаточно слабыми, чтобы их можно было найти перебором.

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

Это дело не дискредитирует ни железо Coldcard, ни аппаратные кошельки как категорию. Речь о конкретной ошибке, исправленной прошивкой, опубликованной уже на следующий день после первой волны, и переход на новый seed остаётся необходимым, поскольку обновление не чинит уже сгенерированный ключ. Но оно высвечивает предел, который действует для всего последующего: пять ступеней этой статьи объясняют, как защитить ключ, когда он уже существует, и ни одна сама по себе не гарантирует, что он был корректно сгенерирован изначально. В этом и вся ценность открытых решений вроде описанного далее SeedSigner, чей код генерации публичен и проверяем кем угодно, тогда как закрытая прошивка способна скрывать дефект пять лет.

Ступень 1: seed-фраза на бумаге

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

Кошелёк разыгрывает очень большое случайное число, а затем переводит его в список обычных слов, взятых из фиксированного словаря на 2048 слов: seed-фраза, или фраза восстановления. Двенадцать слов соответствуют 128 битам случайности, двадцать четыре слова — 256 битам. Из этой фразы кошелёк математически заново выводит все ваши закрытые ключи и все ваши адреса.

Главное следствие: фраза и есть кошелёк. Если ваше устройство сгорит, вы введёте слова в любой другой совместимый кошелёк и найдёте свои средства в неизменном виде. Если кто-то прочтёт эти слова, больше ему ничего не нужно. Ни вашего устройства, ни PIN-кода.

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

На практике вы записываете слова от руки, по порядку и пронумерованными, на носителе, который не проходит ни через одно устройство. Никогда фото, снимок экрана, текстовый файл, синхронизированный менеджер паролей или письмо самому себе. Всё, что касается онлайн-сервиса, выводит фразу из офлайн-области, и cold wallet перестаёт существовать.

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

Немедленное улучшение стоит недорого: выгравировать фразу на металлической резервной копии, пластине из нержавеющей стали с выбитыми буквами или вставными плитками, самые известные примеры которых — Cryptosteel и Billfodl. Сталь переживёт бытовой пожар и наводнение. Это решает случайное уничтожение, но не кражу.

Ступень 2: серийный аппаратный кошелёк

Ступень 1 предполагает, что вы где-то сгенерировали seed-фразу. Если вы сделали это в мобильном приложении, прежде чем её переписать, ваша фраза существовала на подключённом устройстве, и бумага лишь сохранила уже раскрытый секрет.

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

Этот экран — самое главное, и его часто понимают неправильно. Если вредоносная программа на вашем ПК подменит адрес назначения в момент отправки, экран устройства покажет настоящее назначение — адрес злоумышленника. Это ваша последняя независимая точка проверки. Её нужно читать, каждый раз.

Ориентирами являются Ledger , Trezor и Coldcard , последний специализируется на Bitcoin.

Бдительность к происхождению

Вот мы и вернулись к поддельному кошельку из начала этой статьи.

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

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

От чего эта ступень не защищает. Теперь вы доверяете производителю в том, что касается качества его генератора случайности и целостности его прошивки, то есть встроенного в устройство программного обеспечения. Эта прошивка обычно проприетарна, по крайней мере частично, а значит непроверяема с вашей стороны. Доверие разумное, оправданное для подавляющего большинства людей, но всё же доверие. А seed-фраза остаётся единой точкой отказа.

Ступень 3: выделенный air-gapped компьютер

Если вы не хотите доверять ни одному производителю, остаётся возможность сделать всё самому на обычном железе, с открытым и проаудированным программным обеспечением. Это принцип air-gapped машины, буквально отделённой прослойкой воздуха: компьютера, который никогда не был и никогда не будет подключён к сети.

  1. Возьмите машину, предназначенную исключительно для этого. Старый ноутбук подойдёт, а модель без встроенного беспроводного чипа идеальна.
  2. Переустановите чистую систему, например распространённый дистрибутив Linux, из образа, криптографический отпечаток которого вы проверили.
  3. Обезвредьте сеть на как можно более низком уровне. Физически вынуть карту Wi-Fi, часто маленькую карту, вставленную под крышечкой, лучше, чем отключить её в настройках. Никогда не подключайте кабель Ethernet. Программное отключение может быть отменено программой, отсутствующий компонент не может отменить ничего.
  4. Установите эталонный программный кошелёк, Sparrow или Electrum , перенеся установщик на USB-накопителе и проверив его подпись.
  5. Сгенерируйте seed-фразу на этой машине, офлайн, и сохраните её согласно ступени 1.

Чтобы тратить, поток идёт через стандартный формат — PSBT (Partially Signed Bitcoin Transaction), частично подписанную транзакцию. Это файл, содержащий все подробности транзакции, кроме подписи. На подключённом компьютере вы готовите транзакцию и экспортируете этот файл. Переносите его на офлайн-машину USB-накопителем или QR-кодом, показанным на экране и считанным камерой. Офлайн-машина его подписывает, вы приносите подписанный файл обратно тем же путём, и подключённый компьютер рассылает его в сеть.

Единственный канал между двумя мирами — файл, который вы несёте в руке. Это медленно, и именно в этом суть.

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

Ступень 4: открытый самодельный подписыватель, SeedSigner

SeedSigner доводит логику ступени 3 до её завершения: минимальное устройство, собранное вами, поведение которого проверяемо и которое ничего не сохраняет.

Центральный компонент — Raspberry Pi Zero версии 1.3. Это уточнение не мелочь, это сердце всей конструкции. У Pi Zero 1.3 нет ни Wi-Fi, ни Bluetooth на уровне железа: радиочипов на плате попросту нет. Это не Raspberry Pi 5, не Pi Zero W и не Pi Zero 2, у которых у всех есть беспроводная связь. Официальная документация однозначна: именно версия 1.3 даёт наилучшую гарантию сетевой изоляции.

Разница с программным отключением фундаментальна. Wi-Fi, отключённый в настройке, опирается на обещание программы, которое другая программа может нарушить. Чип, никогда не припаянный к плате, не может быть включён никаким кодом, никакой уязвимостью, никаким подложным обновлением. Вы больше не доверяете конфигурации, вы констатируете физическое отсутствие.

Остальное — три детали: экран WaveShare 1,3 дюйма с разрешением 240 на 240 пикселей с кнопками, модуль камеры, совместимый с Pi Zero, и карта microSD. Меньше 50 долларов компонентов, без всякой пайки.

Вся связь идёт через QR-коды, в обе стороны. Подключённый кошелёк, например Sparrow, показывает PSBT в виде QR-кода, анимированного, если транзакция объёмная. Камера SeedSigner его считывает. Устройство показывает подробности транзакции на своём экране, вы подтверждаете, оно подписывает, а затем само показывает подписанную транзакцию QR-кодом, который вы снимаете веб-камерой подключённого компьютера. Никакого кабеля данных, никакого USB-накопителя, никакой сети. Свет — единственный канал.

Устройство к тому же stateless, без состояния. Оно никогда не хранит ключ постоянно: seed-фраза вводится в начале каждого сеанса, живёт только в оперативной памяти во время использования и исчезает при выключении. На карте microSD только программное обеспечение. Злоумышленник, укравший ваш выключенный SeedSigner, крадёт лишь Raspberry Pi за пятнадцать евро.

Оборотная сторона открытости. Больше нет производителя, которому нужно доверять, но нет и того, кто хоть что-то гарантирует. Прежде чем записать программу на карту microSD, вы должны сами проверить её подлинность. Проект публикует на своей странице релизов GitHub файл образа вместе с манифестом и подписью этого манифеста. Проверка сочетает подпись GPG, доказывающую, что публикация действительно исходит от разработчиков, и контроль отпечатка SHA256, доказывающий, что файл с тех пор не изменяли. Её нужно сделать ещё до монтирования образа, потому что некоторые системы изменяют его при открытии и тем самым срывают проверку. Если она не проходит, прошивку не записывают.

Функциональное ограничение, которое стоит отметить: SeedSigner — проект для Bitcoin, другие цепочки он не покрывает.

Ступень 5: виртуальная машина Vault на Qubes OS

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

Qubes OS предлагает другое: разделение, навязанное архитектурой системы. Qubes разбивает вашу деятельность на отдельные виртуальные машины, называемые qubes, изолированные гипервизором. Мы расположили его относительно других систем в нашем сравнении операционных систем, ориентированных на безопасность .

Vault VM создаётся вообще без сетевого интерфейса. Это не косметическая настройка: у виртуальной машины нет никакой виртуальной сетевой карты, никакого драйвера, никакого стека, нечего включать. У неё физически нет способа отправить пакет, какой бы код в ней ни исполнялся. Именно она хранит seed-фразу и запускает Sparrow офлайн.

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

Передача происходит исключительно файлом, внутренним инструментом qvm-copy. Неподписанный PSBT уходит с подключённой машины в Vault, Vault его подписывает, подписанный файл возвращается тем же механизмом. Никакой общей сети, никакой общей папки, никакого автоматического буфера обмена.

Две вещи делают это лучше простого изолированного ПК. Во-первых, изоляция больше не зависит от вас: на классической air-gapped машине air gap является свойством вашего поведения, он держится, пока никто не подключит кабель. Под Qubes изоляцию навязывает гипервизор, ниже виртуальной машины, вне досягаемости того, что исполняется внутри. Вредоносная программа, получившая в Vault полные права, всё равно не имела бы никакого сетевого железа, которым можно управлять. Во-вторых, обратимость: qubes опираются на шаблоны, и если вы подозреваете компрометацию, вы уничтожаете виртуальную машину и за несколько минут создаёте её заново чистой. На выделенном компьютере то же сомнение требует полной переустановки.

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

Мультиподпись: изменить природу проблемы

Пять предыдущих ступеней улучшают одно и то же — защиту единственного секрета. Мультиподпись ставит другой вопрос: а что, если перестать иметь единственный секрет?

Принцип записан в правилах самой сети. Вместо того чтобы привязывать средства к одному ключу, их привязывают к группе ключей, с порогом. В схеме 2 из 3 существует три ключа, а для траты нужны два. В схеме 3 из 5 существует пять ключей, нужны три. Каждый ключ генерируется независимо, на разном устройстве, в идеале разной природы, и хранится в разном месте: Coldcard у вас дома, SeedSigner у доверенного близкого, ключ в банковской ячейке.

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

Единая точка отказа исчезает сразу в двух направлениях — против потери и против кражи. Ни одна из предыдущих ступеней такого результата не даёт, включая сборку Qubes.

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

Правила, действующие на всех ступенях

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

Распределите резервные копии географически. Две копии одного seed в двух ящиках одного дома — перед лицом пожара или затопления это одна копия. Риск не сводится к краже. Разделите места, помня, что каждая дополнительная копия улучшает вашу устойчивость к потере и ухудшает устойчивость к краже. Это компромисс, а не оптимальная настройка.

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

Будьте сдержанны. Техническая безопасность никак не влияет на социальную инженерию и на целенаправленную физическую кражу. Не упоминайте публично, что владеете криптовалютами: ни в соцсетях, ни в ресторане, ни перед дальними знакомыми. Лучшая сборка в мире не защитит того, о ком известно, что у него есть что взять.

Предусмотрите передачу. Это самый заброшенный пункт, и он необратим. Хорошо защищённый cold wallet сконструирован так, чтобы никто, кроме вас, до него не добрался. В случае смерти или недееспособности это свойство оборачивается против ваших наследников, и средства потеряны окончательно. Есть несколько путей: зашифрованная документация, доверенная надёжному третьему лицу или переданная нотариусу, сборка с мультиподписью, включающая ключ у наследника, или механизм типа dead man switch, высвобождающий информацию при отсутствии признаков жизни. Каждый несёт юридические и налоговые последствия, различающиеся по странам. Задокументируйте техническое намерение, а реализацию дайте оформить юристу.

Что это говорит о подходе Arpokrat

Нить, проходящая сквозь эти пять ступеней, — не растущая изощрённость. Это постепенное сокращение числа участников, которым вы вынуждены доверять, не имея возможности проверить. Биржа требует полного доверия. Аппаратный кошелёк сводит его к одному производителю. SeedSigner заменяет его проверкой, которую вы выполняете сами. Сборка Qubes переносит гарантию с поведения на архитектуру. Мультиподпись отнимает её у каждого элемента, взятого по отдельности.

Такова логика, управляющая проектированием наших продуктов. Гарантия, опирающаяся на обещание, — не гарантия, а обязательство. Структурная гарантия держится даже тогда, когда тот, кто её построил, передумает или получит предписание. Сервис, не хранящий ваших ключей, не может их выдать, каким бы ни было давление: это принцип, лежащий в основе Arpokrat Swap . Вопрос, к слову, становится конкретнее по мере эволюции регуляторной рамки, как показывает наш анализ европейских ограничений на Monero и Zcash, намеченных на 2027 год .

Заключение

Хорошего уровня безопасности вообще не существует. Существует уровень, соразмерный тому, чем вы владеете, и тому, кто мог бы разумно взять вас на прицел.

Несколько сотен евро на аппаратном кошельке, купленном у производителя, с seed, выгравированным на металле и убранным вне вашего жилья, — вполне серьёзная конфигурация. Она уже ставит вас выше подавляющего большинства владельцев криптовалют и защищает от сценариев, которые действительно вызывают потери. Никому для этого не нужна мультиподпись на Qubes. Сложная сборка оправдана, когда сумма сделала бы целенаправленную атаку рентабельной или когда ваше положение притягивает особое внимание.

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