BIP-32 (Bitcoin Improvement Proposal 32, автор — Питер Уилле, 2012 год) описывает иерархическую детерминированную (HD) структуру кошелька. Из одного главного seed BIP-32 позволяет кошельку выводить сколько угодно дочерних ключей, каждый из которых, в свою очередь, может порождать собственные. В итоге соответствие строго детерминированное: один и тот же seed — одно и то же дерево ключей, всегда и в любом кошельке, который следует стандарту.
Зачем понадобились HD-кошельки
До BIP-32 кошельки Bitcoin создавали каждый приватный ключ независимо и хранили все ключи в файле базы данных (знаменитый wallet.dat). В 2011 году сделать резервную копию кошелька Bitcoin Core значило копировать этот файл после каждого нового адреса. Потеряли файл — потеряли все ключи, созданные после последней копии.
BIP-32 свёл всё к одной резервной копии — главному seed. Любой ключ, который кошелёк создал или создаст в будущем, выводится из него. Мнемоническая фраза, записанная один раз в первый день, остаётся действительной навсегда.
Как устроено дерево
Из главного seed получаются главный расширенный закрытый ключ (xprv) и соответствующий ему расширенный открытый ключ (xpub). Из них кошелёк выводит дочерние ключи по пронумерованным индексам. Путь вроде m/44'/0'/0'/0/5 означает: от главного ключа взять потомка 44' (усиленного), затем потомка 0' (усиленного), затем 0', затем 0, затем индекс 5. Апостроф обозначает усиленную (hardened) деривацию: она не позволяет тому, у кого есть только xpub, вычислить приватные ключи.
Зачем нужен xpub
BIP-32 позволяет поделиться расширенным открытым ключом (xpub), не раскрывая соответствующих приватных ключей. Этим пользуются кошельки «только для просмотра» и инструменты учёта: импортируете xpub на чистое устройство — видите все адреса и балансы, но подписывать ничего не можете. На этом построен режим просмотра в Sparrow Wallet и большинство сервисов учёта (Koinly, CoinTracker), которые читают историю операций, не имея ключей для трат.
Что это значит на практике
Напрямую с путями BIP-32 вы обычно не сталкиваетесь — кошелёк прячет их от вас. Но важно понимать, что из этого следует для совместимости: если вы переходите с Ledger Live на Sparrow или с MetaMask на Rabby, новый кошелёк покажет те же адреса, только если использует тот же путь деривации. Импорт в кошельке обычно с этим справляется, но если после переезда вы вдруг видите нулевой баланс, причина почти всегда в несовпадении путей деривации, а не в потерянном ключе.
Дополнительное чтение: BIP-39, BIP-44, Путь деривации.