- Главная
- / BIP39 по-русски
- / Путь деривации: что значит m/44'/0'/0'/0/0
Путь деривации: что значит m/44'/0'/0'/0/0
Путь деривации (derivation path) — это адрес ключа в дереве, которое кошелёк строит из сид-фразы. Запись m/44'/0'/0'/0/0 перечисляет шаги от главного ключа до конкретного приватного ключа и его адреса. Сама фраза путь не хранит: одни и те же 12 или 24 слова по разным путям дают разные адреса, поэтому восстановленный кошелёк иногда показывает ноль. Ниже — что означает каждое число, какие пути используют Bitcoin, Ethereum и другие сети и как увидеть их на тестовой фразе.
Из чего состоит путь m/44'/0'/0'/0/0
Слова мнемонической фразы (обычно из английского списка BIP39: русского в стандарте нет, но на сайте есть словарь списка с переводом) по BIP39 превращаются в 512-битный сид. Из сида по BIP32 получается главный ключ m, и каждый следующий шаг пути выводит дочерний ключ. Значение уровней задаёт BIP44:
| Уровень | В примере | Что означает |
|---|---|---|
m | m | главный ключ, полученный из сида |
purpose' | 44' | схема дерева: номер BIP, по которому оно построено (BIP43) |
coin_type' | 0' | монета по реестру SLIP-44: 0 — Bitcoin, 60 — Ethereum |
account' | 0' | номер аккаунта (счёта) внутри кошелька, с нуля |
change | 0 | 0 — адреса для получения, 1 — адреса для сдачи |
address_index | 0 | номер адреса: 0, 1, 2… |
Значит, m/44'/0'/0'/0/0 — первый адрес получения первого аккаунта Bitcoin, m/44'/0'/0'/0/1 — второй, m/44'/0'/0'/1/0 — первый адрес сдачи, а m/44'/0'/1'/0/0 — первый адрес второго аккаунта. Как слова превращаются в сид, рассказано в статье что такое сид-фраза.
Что значит апостроф
Апостроф отмечает усиленный (hardened) шаг: к номеру прибавляется 2³¹, так что 44' — это индекс 0x8000002C. В программах вместо апострофа пишут h или H: 44h.
Обычные шаги можно вычислить из расширенного публичного ключа родителя (xpub): так кошелёк «только для просмотра» строит адреса, не зная приватных ключей. Но BIP32 предупреждает: xpub вместе с любым приватным ключом из обычной ветки под ним раскрывает приватный ключ родителя. Поэтому уровни до аккаунта включительно усиленные — утечка ключей одного аккаунта не затрагивает главный ключ и другие аккаунты, — а change и index обычные, чтобы по xpub аккаунта можно было получать адреса.
Bitcoin: BIP44, BIP49, BIP84 и BIP86
В Bitcoin номер purpose задаёт тип адреса. Ниже — первые адреса для публичной тестовой фразы abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about без парольной фразы. Это официальные тестовые векторы SLIP-132 и BIP86; не отправляйте на эти адреса деньги.
| Стандарт | Путь | Тип адреса | Начало | Первый адрес |
|---|---|---|---|---|
| BIP44 | m/44'/0'/0'/0/0 | Legacy (P2PKH) | 1… | 1LqBGSKuX5yYUonjxT5qGfpUsXKYYWeabA |
| BIP49 | m/49'/0'/0'/0/0 | вложенный SegWit (P2WPKH в P2SH) | 3… | 37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf |
| BIP84 | m/84'/0'/0'/0/0 | нативный SegWit (P2WPKH) | bc1q… | bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu |
| BIP86 | m/86'/0'/0'/0/0 | Taproot (P2TR) | bc1p… | bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr |
BIP49, BIP84 и BIP86 намеренно несовместимы с BIP44: кошелёк, который не поддерживает нужный стандарт, такие аккаунты просто не обнаружит. Если старые адреса начинаются с bc1q, а новый кошелёк ищет только по BIP44, баланс будет нулевым.
Ethereum: MetaMask и Ledger считают аккаунты по-разному
Тип монеты Ethereum — 60, но какой номер увеличивать для следующего аккаунта, приложения решают по-своему. MetaMask выводит все аккаунты из ветки m/44'/60'/0'/0 и меняет последнее число. Ledger Wallet (до 2025 года — Ledger Live) меняет номер аккаунта: m/44'/60'/x'/0/0. Старое приложение Ledger для Chrome выводило единственный адрес m/44'/60'/0'/0, а MyEtherWallet и MyCrypto перебирали для Ledger адреса m/44'/60'/0'/x; в MetaMask при подключении Ledger этот путь называется Legacy (MEW/MyCrypto). Адреса для той же тестовой фразы:
| Аккаунт | MetaMask | Ledger Wallet |
|---|---|---|
| первый | m/44'/60'/0'/0/0: 0x9858EfFD232B4033E47d90003D41EC34EcaEda94 | тот же путь и адрес |
| второй | m/44'/60'/0'/0/1: 0x6Fac4D18c912343BF86fa7049364Dd4E424Ab9C0 | m/44'/60'/1'/0/0: 0x78839F6054d7ed13918bAe0473BA31b1Ca9D7265 |
MetaMask при импорте фразы поддерживает только свой стандартный путь, поэтому второй и следующие аккаунты Ledger в нём не появятся.
Сети на ed25519: только усиленные шаги
Solana, TON, Stellar и некоторые другие сети используют кривую ed25519 и деривацию SLIP-10. Для ed25519 она допускает только усиленные шаги, поэтому апостроф стоит у каждого числа, а вычислить дочерние ключи по публичному ключу родителя нельзя. Кроме того, главный ключ для ed25519 вычисляется по SLIP-10 с другой константой, чем в BIP32 («ed25519 seed» вместо «Bitcoin seed»), так что одинаковый на вид путь даёт в этих сетях другие ключи. В Solana встречаются варианты m/44'/501'/0'/0' и m/44'/501'/0', а консольная утилита solana-keygen по умолчанию выводит ключ по базовому пути m/44'/501'; Phantom при импорте проверяет по 20 адресов на каждом из трёх поддерживаемых путей. Классическая 24-словная фраза TON путей не использует вовсе: ключ из неё вычисляется по собственной схеме TON.
Таблица распространённых путей
| Сеть, приложение | Тип монеты | Путь первого ключа | Следующий аккаунт или адрес |
|---|---|---|---|
| Bitcoin, BIP84 | 0 | m/84'/0'/0'/0/0 | m/84'/0'/0'/0/1 |
| Ethereum, MetaMask | 60 | m/44'/60'/0'/0/0 | m/44'/60'/0'/0/1 |
| Ethereum, Ledger Wallet | 60 | m/44'/60'/0'/0/0 | m/44'/60'/1'/0/0 |
| Ethereum, Legacy (MEW/MyCrypto) | 60 | m/44'/60'/0'/0 | m/44'/60'/0'/1 |
| TRON, библиотека TronWeb | 195 | m/44'/195'/0'/0/0 | зависит от кошелька |
| Solana | 501 | m/44'/501'/0'/0' | m/44'/501'/1'/0' |
| TON, фраза из 12 слов | 607 | m/44'/607'/0' | m/44'/607'/1' |
| Stellar (SEP-0005) | 148 | m/44'/148'/0' | m/44'/148'/1' |
Тип монеты 1 зарезервирован за тестовыми сетями всех монет. TRON устроен как Ethereum (та же кривая secp256k1), но из-за другого типа монеты ключи у него свои, а адреса записываются в Base58 и начинаются с T.
xpub, ypub и zpub
Расширенный публичный ключ аккаунта позволяет вычислить все его адреса без приватных ключей: его импортируют в кошельки «только для просмотра». По BIP32 он записывается с префиксом xpub, но тип адресов в нём не указан, поэтому реестр SLIP-132 закрепил для Bitcoin отдельные байты версии:
| Префикс | Байты версии | Тип адресов | Стандарт |
|---|---|---|---|
| xpub | 0x0488b21e | P2PKH или P2SH (1…, 3…) | BIP44 |
| ypub | 0x049d7cb2 | P2WPKH в P2SH (3…) | BIP49 |
| zpub | 0x04b24746 | P2WPKH (bc1q…) | BIP84 |
| Ypub, Zpub | 0x0295b43f, 0x02aa7ed3 | мультиподпись: P2WSH в P2SH и P2WSH | — |
В тестовой сети им соответствуют tpub, upub и vpub. Для Taproot отдельного префикса нет: BIP86 использует обычный xpub. Отличаются только байты версии, сам ключ тот же: для тестовой фразы конвертер на этом сайте показывает ключ аккаунта BIP84 как xpub6CatWdiZ…, а кошелёк с поддержкой SLIP-132 покажет его как zpub6rFR7y4Q…. Однозначно путь и тип адреса фиксирует дескриптор (BIP380), например wpkh([отпечаток/84h/0h/0h]xpub…/0/*). Не публикуйте xpub: по нему видны все адреса и весь баланс аккаунта.
Почему восстановленный кошелёк показывает ноль
Если фраза принята, а баланс нулевой, кошелёк почти наверняка смотрит не в ту ветку дерева:
- Тип адреса. Адреса на bc1q обычно означают BIP84, на bc1p — BIP86, на 3 — BIP49. Выберите тот же тип при импорте.
- Аккаунт. По BIP44 кошелёк ищет аккаунты по порядку и останавливается на первом без транзакций, а в Ethereum номер аккаунта стоит на разных уровнях пути.
- Сеть. Адрес Ethereum одинаков во всех EVM-сетях, но балансы у них свои; у TRON и Solana собственные ветки дерева.
- Лимит в 20 адресов. По BIP44 поиск прекращается после 20 неиспользованных адресов подряд (gap limit), и более дальние адреса кошелёк сам не найдёт.
- Парольная фраза. Другая парольная фраза — другой сид и другое дерево целиком; подробнее — в статье парольная фраза BIP39.
Порядок восстановления описан в статье как восстановить кошелёк по сид-фразе. Если кошелёк не принимает саму фразу, дело не в пути: см. статью неверная сид-фраза.
Как посмотреть пути в конвертере
Конвертер сид-фразы в приватный ключ вычисляет ключи в браузере и показывает путь каждого адреса. Используйте только публичную тестовую фразу: настоящую сид-фразу не вводите ни на этом, ни на каком-либо другом сайте.
- Вставьте тестовую фразу (все 12 слов приведены выше) в поле «Мнемоническая фраза BIP39», парольную фразу не указывайте.
- По умолчанию выбраны Bitcoin и вкладка BIP44: в строке «Полный путь» будет
m/44'/0'/0'/0, а в первой строке таблицы адресов —m/44'/0'/0'/0/0и адрес 1LqBGSKuX5yYUonjxT5qGfpUsXKYYWeabA. - Переключите вкладки BIP49, BIP84 и BIP86: меняется только purpose, а первые адреса становятся 37Vuc…, bc1qcr8… и Taproot-адрес bc1p5cyx…
- Нажмите ETH: путь станет
m/44'/60'/0'/0, а вторая строка таблицы — второй аккаунт MetaMask. - Впишите 1 в поле «Аккаунт»: первая строка покажет
m/44'/60'/1'/0/0, второй аккаунт Ledger Wallet. Список «Внешние / внутренние (сдача)» переключает change между 0 и 1. - На вкладке BIP32 путь задаётся вручную: если он заканчивается обычным числом, конвертер подставляет вместо него номер строки, так что
m/44'/60'/0'/0покажет адреса пути Legacy.
Сети на ed25519 конвертер не показывает: их пути (Solana, Aptos, Sui, Polkadot) приведены на странице генератора приватных ключей. Кнопки быстрого выбора над списком монет сразу выставляют самые частые сочетания: Bitcoin BIP84, BIP86 и BIP44, Ethereum, TRON, Litecoin и Dogecoin.
Частые вопросы
Где узнать путь деривации своего кошелька?
В документации или настройках кошелька: Ledger Wallet, например, показывает путь в расширенных параметрах счёта. Если записей нет, ориентируйтесь на старый адрес: по его началу определяется стандарт Bitcoin, а для Ethereum проверьте варианты MetaMask, Ledger и Legacy.
Можно ли потерять средства, выбрав не тот путь?
Нет. Выбор пути ничего не меняет в блокчейне: кошелёк просто показывает другие, пустые адреса, а средства остаются на прежних. Вернитесь к правильному пути, и баланс появится. Риск возникает, только если принимать платежи на адреса нестандартного пути, а потом его забыть.
Нужно ли записывать путь деривации?
Путь не секретен и сам по себе доступа к средствам не даёт, поэтому его можно записать рядом с резервной копией вместе с названием кошелька, типом адреса и номерами аккаунтов. При стандартных настройках это не обязательно, при нестандартных сэкономит время при восстановлении.
Чем путь деривации отличается от парольной фразы?
Путь выбирает ветку внутри одного дерева ключей, а парольная фраза меняет сам сид и даёт совершенно другое дерево. Путь можно не скрывать, а парольную фразу нужно беречь так же, как сид-фразу.