Шляхи деривації гаманців: просте пояснення
Шлях деривації вказує гаманцю, які адреси створювати з вашої сид-фрази. Дізнайтеся, як працюють шляхи на кшталт m/44'/60'/0'/0/0 і як знайти «зниклий» баланс.
Шлях деривації — це короткий код, наприклад m/44'/60'/0'/0/0, який точно вказує гаманцю, який приватний ключ і яку адресу генерувати з вашої сид-фрази. Одна й та сама сид-фраза може дати мільярди різних адрес, а шлях вибирає одну з них. Тому два гаманці з однаковим сидом, але різними шляхами покажуть різні адреси й баланси.
Саме тому люди іноді відновлюють сид-фразу в новому гаманці й бачать порожній баланс, хоча їхні кошти в повній безпеці в блокчейні. Розуміння шляхів деривації перетворює цей лячний момент на питання налаштувань. Воно також допомагає складати кращі нотатки до резервної копії.
Як HD-гаманці перетворюють один сид на безліч адрес
Старі гаманці генерували випадкові, не пов’язані між собою ключі, і для кожного потрібна була окрема резервна копія. Ієрархічні детерміновані гаманці розв’язали цю проблему. Вони описані в BIP32 і виводять кожен ключ з одного майстер-сиду в деревоподібній структурі. BIP39 стандартизував перетворення цього сиду на список із 12 або 24 слів — ту саму сид-фразу, яку ви зберігаєте.
Оскільки деривація детермінована, той самий сид і той самий шлях завжди дають той самий ключ. Саме тому достатньо однієї резервної копії. Це також означає, що гаманець, який переглядає іншу гілку дерева, просто не побачить ваших коштів. Докладніше читайте в статті Мультичейн-гаманці.
Як читати шлях деривації
BIP44 визначив спільну структуру. Візьмімо шлях першого акаунта Ethereum, m/44'/60'/0'/0/0:
| Рівень | Значення | Зміст |
|---|---|---|
| m | master | Кореневий ключ, виведений з вашого сиду |
| purpose | 44' | Який стандарт використовується (тут BIP44) |
| coin type | 60' | Який блокчейн: 0 для Bitcoin, 60 для Ethereum, згідно з реєстром SLIP-44 |
| account | 0' | Дає змогу мати окремі акаунти під одним сидом |
| change | 0 | 0 для адрес отримання, 1 для адрес решти (переважно Bitcoin) |
| address index | 0 | Конкретна адреса: 0, 1, 2 і так далі |
Апостроф означає посилену деривацію — функцію безпеки, яка не дозволяє використати витеклий дочірній ключ для обчислення пов’язаних ключів. Деякі інструменти замість нього пишуть «h».
Поширені шляхи, які ви побачите
Типи адрес Bitcoin
Bitcoin використовує різні номери purpose для різних форматів адрес:
- m/44'/0'/0' – застарілі (legacy) адреси, що починаються з 1
- m/49'/0'/0' – вкладені SegWit-адреси, що починаються з 3
- m/84'/0'/0' – нативні SegWit-адреси, що починаються з bc1q
- m/86'/0'/0' – Taproot-адреси, що починаються з bc1p
Якщо ви відновили сид і не бачите біткоїнів, перевірте, чи сканує гаманець правильний тип адреси.
Ethereum та EVM-мережі
Більшість EVM-гаманців використовують m/44'/60'/0'/0/x і збільшують останнє число для кожного нового акаунта. Деякі програми-гаманці історично збільшували інший рівень, наприклад m/44'/60'/x'/0/0, тому після зміни гаманця акаунти після першого можуть здаватися «зниклими». Оскільки EVM-мережі мають спільний формат адрес, той самий шлях дає ту саму адресу в Ethereum та інших EVM-мережах. Читайте, чому гаманець показує різні адреси в різних мережах.
Solana та інші мережі
Гаманці Solana зазвичай використовують шляхи на основі coin type 501, але різні гаманці з часом застосовували різні варіанти. Тому багато гаманців під час імпорту пропонують вибрати шлях.
Як знайти зниклий баланс після відновлення
- 1Не панікуйте й нічого не переказуйте. Ваші кошти перебувають у блокчейні, а не в застосунку.
- 2Перевірте адресу. Порівняйте першу адресу відновленого гаманця зі старою транзакцією або збереженою адресою. Якщо вони різняться, справа в шляху чи типі адреси.
- 3Пошукайте налаштування шляху. У багатьох гаманцях є розділ «Додатково», «Власний шлях» або «Імпорт» зі списком поширених шляхів.
- 4Спробуйте налаштування за замовчуванням початкового гаманця. У документації гаманця зазвичай вказано, який шлях він використовує.
- 5Перевірте, чи була парольна фраза. Якщо ви використовували необов’язкову парольну фразу («25-те слово»), інша або відсутня парольна фраза теж дає зовсім інший гаманець. Див. пояснення парольних фраз.
- 6Шукайте глибше в дереві. Якщо ви використовували багато адрес, збільште в гаманці gap limit або додайте акаунти вручну.
Ніколи не вставляйте сид-фразу на сайт, який пропонує «знайти ваш шлях». Легітимні інструменти відновлення працюють офлайн, а багато сайтів-«path finder» — це фішингові сторінки.
Чому гаманці не сканують усі шляхи поспіль
Ви можете запитати, чому гаманці просто не перевіряють автоматично всі можливі шляхи. Дерево фактично нескінченне, а кожна перевірка потребує запитів адрес у блокчейні. Це повільно й може розкрити сервісу, що виконує запити, які адреси належать вам. Тому гаманці сканують обмежений набір шляхів за замовчуванням і зупиняються після певної кількості невикористаних адрес поспіль — це називається gap limit.
Такий підхід розумний з погляду приватності та продуктивності, але означає, що нестандартні конфігурації під час відновлення потребують трохи вашої допомоги.
Що записати в нотатки до резервної копії
Окрім надійно захищеної сид-фрази, корисно окремо й у безпечному місці зберігати:
- Яку програму-гаманець чи апаратний гаманець ви використовували і приблизно коли
- Шлях деривації або тип адреси, якщо ви змінювали значення за замовчуванням
- Чи існує парольна фраза (але не саму парольну фразу поруч із сидом)
- Одну публічну адресу отримання, щоб можна було переконатися, що відновлення пройшло правильно
Сама по собі ця інформація не секретна, але може заощадити години під час відновлення. Увесь процес описано в нашому посібнику про те, як працює відновлення гаманця.
Підсумок
Шлях деривації — це карта, що веде від вашої сид-фрази до конкретної адреси. Коли відновлений гаманець нічого не показує, причина майже завжди в іншому шляху, типі адреси чи парольній фразі, а не у втраті коштів. Пам’ятайте, який гаманець і які налаштування ви використовували, збережіть публічну адресу для звірки та скористайтеся розширеними параметрами імпорту гаманця, перш ніж припускати найгірше.
Поширені запитання
Чому відновлений гаманець показує нульовий баланс?
Найчастіше причина в тому, що новий гаманець використовує інший шлях деривації або тип адреси, ніж початковий, тож генерує інші адреси з тієї самої сид-фрази. З’ясуйте, який шлях використовував початковий гаманець, і виберіть його в розширених налаштуваннях або налаштуваннях імпорту нового гаманця.
Чи є шлях деривації секретом?
Ні. Шляхи деривації — це стандартні публічні домовленості, і вони не дають доступу до ваших коштів. У таємниці треба зберігати лише сид-фразу та парольну фразу (passphrase), якщо вона є. Корисно записати шлях і програму гаманця, якою ви користувалися, разом із резервною копією, але не поруч із чимось, що розкриває сид.
Що означає апостроф у шляху деривації?
Апостроф, який іноді записують як h, позначає рівень посиленої (hardened) деривації. Посилені ключі дають додаткову властивість безпеки: той, хто дізнався дочірній приватний ключ і розширений публічний ключ батьківського рівня, не зможе з їхньою допомогою обчислити інші ключі на цьому рівні.
Чи потрібно знати шлях деривації, щоб відновити гаманець?
Часто підходить значення за замовчуванням, але не завжди. Якщо ви користувалися менш поширеним гаманцем, старою версією або нестандартними налаштуваннями, нотатка з назвою гаманця та шляхом допоможе вам чи вашим спадкоємцям відновити кошти в майбутньому. Зберігайте цю нотатку окремо від резервної копії сид-фрази.
