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

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

Зачем понадобилась иерархия

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

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

От фразы к дереву ключей

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

Схема к материалу «Как работают иерархические детерминированные кошельки»
Схема к материалу «Как работают иерархические детерминированные кошельки»

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

Откуда берётся начальное число

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

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

Структура пути: назначение, сеть, счёт, адрес

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

Уровень пути За что отвечает Пример
Назначение версия стандарта деривации 44 для базового стандарта
Тип сети какая сеть используется 0 для Bitcoin, 60 для Ethereum
Счёт раздельные группы средств внутри кошелька 0, 1, 2 и далее
Направление получение или сдача 0 — внешний, 1 — внутренний
Индекс адреса порядковый номер 0, 1, 2 и далее

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

Жёсткая и обычная деривация

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

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

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

Наблюдательные кошельки и публичные ключи

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

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

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

Восстановление и предел поиска адресов

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

Проверка адреса. Кошелёк запрашивает у сети, была ли активность по данному адресу.

Продвижение индекса. При обнаружении активности проверка продолжается со следующим номером.

Остановка. После заданного числа подряд пустых адресов поиск прекращается.

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

Совместимость между приложениями

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

Практическое следствие для активных пользователей

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

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

Один кошелёк — несколько сетей

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

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

Частые вопросы

Можно ли восстановить кошелёк, зная только один дочерний ключ

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

Что случится, если сгенерировать тысячу адресов подряд без использования

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

Отличаются ли адреса разных сетей одного кошелька по виду

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

Безопасно ли передавать расширенный публичный ключ сервису мониторинга

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

Нужно ли создавать резервную копию для каждого нового счёта внутри кошелька

Нет, одна резервная копия фразы восстанавливает все счета и все сети сразу, поскольку все они выводятся из одного и того же мастер-ключа по стандартному пути деривации.

Коротко

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

Разборы устройства кошельков — в канале Cryptium.

Автор: Иван Григорьев. Cryptium.ru. Обновлено 2026-09-05.