Krux — это открытый аппаратный подписант для Bitcoin, который ценят за air-gapped-архитектуру, работу через QR-коды и SD-карту, а также за возможность самостоятельной сборки прошивки. Но когда речь заходит о восстановлении доступа к кошельку, стандартных сценариев «вставьте 12/24 слова» может не хватить. Именно поэтому тема Krux资深用户恢复脚本定制 — то есть индивидуальные скрипты восстановления для продвинутых пользователей — становится всё более востребованной. В этой статье мы разберём, как подойти к такой задаче безопасно, какие инструменты использовать и как не потерять средства в процессе.
Если вы только начинаете или не хотите писать код вручную, на сайте Восстановление криптокошельков (/) собраны пошаговые руководства по BIP39/BIP32, восстановлению MetaMask, Electrum, Ledger и других кошельков. Но для опытных пользователей Krux ниже — практическая база для кастомных сценариев.
Почему стандартного восстановления Krux не хватает
Krux хранит seed-фразу, умеет работать с BIP39-парольной фразой (passphrase), поддерживает PSBT, QR-подпись и резервные копии на SD-карте. Однако на практике встречаются ситуации, где обычный мастер восстановления бессилен:
- Часть слов утеряна или записана с ошибкой. 11 из 12 слов известны, а одно — нет. Или перепутаны буквы, порядок, использован другой язык BIP39.
- Забыта passphrase. Это не то же самое, что PIN. Без passphrase вы получаете другой кошелёк, даже если seed-фраза верна.
- Повреждена или зашифрована резервная копия Krux. JSON/QR-файл может требовать расшифровки ключом, производным от PIN.
- Нестандартный derivation path. Например, использовался BIP86, мультисиг или нестандартный аккаунт.
- Мультисиг-кошелёк. Нужно собрать дескриптор из нескольких xpub и проверить адреса.
- SLIP39 или Shamir-схема. Требуется собрать threshold-доли в правильном порядке.
Во всех этих случаях помогает кастомный скрипт восстановления Krux: он автоматизирует генерацию кандидатов, проверку контрольной суммы BIP39, деривацию ключей и сравнение адресов. Главное — запускать его в полностью офлайн-среде.
Что понадобится для кастомного восстановления
Минимальный набор:
- Изолированный компьютер. Лучше всего — отдельная машина с Tails/Ubuntu Live, без Wi-Fi и Bluetooth, с отключённым сетевым кабелем. В идеале — одноразовая USB-флешка и RAM-only сессия.
- Python 3.10+ и библиотеки.
embit,mnemonic,bip32utils,base58,ecdsa,cryptography. Для расшифровки —pycryptodomeилиcryptography. - btcrecover. Хорошо подходит для восстановления BIP39 seed-фраз, password/passphrase и некоторых форматов кошельков.
- HashCat. Для поддерживаемых форматов паролей кошельков. Не пытайтесь применять его вслепую к Krux: сначала проверьте формат.
- Bitcoin Core / Electrum / Sparrow Wallet. Для watch-only проверки адресов и балансов. Свои seed-фразы на онлайн-машину не вводите.
- SD-картридер и, при необходимости, сам Krux. Для извлечения резервной копии и проверки прошивки.
Ключевое правило: все секреты — только на офлайн-машине. Любое脚本, которое требует интернет, считается потенциально опасным.

Анатомия кастомного скрипта восстановления Krux
Хороший скрипт состоит из пяти независимых блоков. Это позволяет тестировать каждый этап и не терять контроль.
1. Сбор и нормализация данных
Сначала соберите всё, что известно: слова, их позиции, язык BIP39, возможные passphrase, PIN, derivation path, известные адреса, xpub, дату создания кошелька, количество транзакций. Нормализуйте слова: нижний регистр, удаление пробелов, замена похожих символов (0/O, 1/l/I), проверка по официальному wordlist.
2. Генерация кандидатов
Если не хватает одного слова, перебираем 2048 вариантов из словаря BIP39. Если двух — уже 4 194 304 комбинации. Для трёх и более слов нужны эвристики: частота ошибок OCR, замена местами, пропуски, фонетические ошибки, слова из той же начальной буквы. Скрипт должен уметь исключать заведомо неверные варианты и останавливаться по чекпоинтам.
3. Проверка BIP39 checksum
Не все комбинации валидны. BIP39 использует контрольную сумму: для 12 слов — 4 бита, для 24 — 8 бит. Библиотека mnemonic или embit.bip39 позволяет проверить кандидат до деривации. Это ускоряет перебор в разы.
4. Деривация и проверка адресов
После валидной seed-фразы скрипт должен вывести корневой ключ и пройти по возможным путям:
m/44'/0'/0'— legacy;m/49'/0'/0'— P2SH-P2WPKH;m/84'/0'/0'— native SegWit;m/86'/0'/0'— Taproot;- мультисиг-дескрипторы.
Затем сравните первые N адресов с известными вам адресами или xpub. Если есть xpub, проверку можно делать на watch-only кошельке, не раскрывая seed.

5. Расшифровка резервных копий Krux
Krux может хранить зашифрованный mnemonic. Формат зависит от версии прошивки. Обычно ключ выводится из PIN/passphrase через PBKDF2, а данные шифруются AES. Точные параметры — соль, итерации, режим — берите из исходного кода именно вашей версии. Не пытайтесь угадать: ошибка в одном параметре даст мусор. Если PIN забыт, можно организовать офлайн-перебор, но только для собственного бэкапа и только в изолированной среде.
Пример логики скрипта на Python
Ниже — упрощённый псевдокод. Он не претендует на универсальность, но показывает подход.
from embit import bip39
from mnemonic import Mnemonic
import itertools
wordlist = Mnemonic('english').wordlist
known = {0: 'abandon', 1: 'ability', 2: 'able', ...} # пример
unknown_positions = [3, 7]
candidates = []
for words in itertools.product(wordlist, repeat=len(unknown_positions)):
phrase = known.copy()
for pos, word in zip(unknown_positions, words):
phrase[pos] = word
phrase_str = ' '.join(phrase[i] for i in range(12))
if bip39.mnemonic_is_valid(phrase_str):
candidates.append(phrase_str)
for phrase in candidates:
seed = bip39.mnemonic_to_seed(phrase, passphrase='')
# деривация BIP84, сравнение адресов

Для реального перебора добавьте чекпоинты, многопоточность, ограничение памяти и шифрование логов. Не сохраняйте найденную seed-фразу на диск — только в RAM, после чего немедленно перенесите на новый аппаратный кошелёк.
Сценарии定制: от частичной фразы до мультисига
- Частичная seed-фраза. Одно неизвестное слово — минуты. Два — часы. Три и больше — нужны мощные эвристики и GPU.
- Забытая passphrase. Перебор по словарю, правилам, датам, именам. BIP39 passphrase может быть любой строкой, поэтому важны гипотезы.
- Мультисиг. Соберите дескриптор
wsh(sortedmulti(2, xpub1, xpub2, xpub3))и проверьте адреса. Krux может подписывать PSBT, но восстановление дескриптора требует отдельного скрипта. - SLIP39/Shamir. Нужны все доли или threshold. Скрипт должен проверить порядок, контрольные суммы и восстановить мастер-секрет.
- Нестандартный путь. Иногда пользователи создавали несколько аккаунтов. Перебирайте
account,change,indexв разумных пределах.
Оптимизация и безопасность
Скорость. BIP39-валидация дешёвая, деривация дороже. Сначала проверяйте checksum, затем первые адреса. Для больших переборов используйте GPU только там, где это оправдано.
Чекпоинты. Скрипт должен уметь продолжить с последнего кандидата. Иначе при сбое вы потеряете дни работы.
Логи. Не пишите seed-фразу в логи. Логируйте только индексы и хеши кандидатов. После завершения — wipe.
Офлайн. Tails, отключённый интернет, проверка SHA256 скриптов, подписанные коммиты. Не запускайте незнакомый код на машине, где есть доступ к вашим ключам.
Тест на малых суммах. Если вы восстановили кошелёк, сначала отправьте небольшую сумму на новый адрес, проверьте подпись, и только потом переводите всё.
Когда стоит использовать готовые руководства
Кастомный скрипт — мощный инструмент, но он требует опыта: понимания BIP39, BIP32, дескрипторов, PSBT и криптографии. Если вы не уверены в своих силах, начните с проверенных инструкций. На сайте Восстановление криптокошельков (/) есть материалы по Krux, btcrecover, HashCat, Electrum, Ledger и MetaMask — от базовой диагностики до сложных сценариев. Там же описаны меры профилактики:多重备份,分片存储, проверка бэкапов и безопасная работа с passphrase.
Итог
Krux для опытных пользователей — это не только аппаратный подписант, но и открытая платформа для кастомных сценариев восстановления. Если стандартное восстановление не сработало, скрипт помогает перебрать частичную seed-фразу, проверить passphrase, собрать мультисиг-дескриптор или расшифровать резервную копию. Главное — работать офлайн, проверять формат по исходникам Krux и не рисковать средствами на непроверенном коде. Начните с малого: изолируйте среду, соберите данные, протестируйте скрипт на известном кошельке. И только затем переходите к реальному восстановлению.