Baza wiedzy
Portfele HD wyjaśnione: jak BIP32 zamienia jedną frazę w drzewo kluczy
Portfel HD (hierarchiczny deterministyczny) wyprowadza każdy klucz z jednej frazy przez BIP32. Ten przewodnik wyjaśnia mechanizm: klucze główne, kody łańcucha, hartowane wyprowadzanie i poziomy purpose stojące za BIP44/49/84/86.
Krótka odpowiedź
Portfel HD wyprowadza nieograniczoną liczbę kluczy z jednej frazy przez BIP32, zorganizowanych w drzewo kluczy nadrzędnych i podrzędnych. Jedna fraza przywraca każde konto, ale tylko wtedy, gdy ścieżka derywacji się zgadza — błędna ścieżka pokazuje puste saldo, mimo że środki istnieją.

Hierarchiczny deterministyczny (HD) portfel wyprowadza nieograniczoną liczbę kluczy z jednej frazy. Zrozumienie mechanizmu ma znaczenie dla odzyskiwania: wyjaśnia, dlaczego jedna fraza może wytworzyć wiele pozornie poprawnych portfeli i dlaczego ścieżka derywacji oraz indeks konta decydują o tym, które adresy trzymają Państwa monety.
Klucz główny
BIP32 zaczyna się od danych binarnych (seed), zwykle wyprowadzonych z frazy BIP39. Dane te są przetwarzane przez HMAC-SHA512 ze stałym kluczem („Bitcoin seed”), co daje 64 bajty: pierwsze 32 stają się głównym kluczem prywatnym, ostatnie 32 głównym kodem łańcucha. Oba są potrzebne do wyprowadzania kluczy potomnych — dlatego klucz rozszerzony zawiera klucz plus kod łańcucha.
Klucze potomne i kody łańcucha
Każdy klucz potomny jest wyprowadzany deterministycznie z klucza nadrzędnego:
- Wyprowadzanie normalne: HMAC-SHA512 z publicznego klucza rodzica, kodu łańcucha rodzica i indeksu. Każdy z xpubów (rozszerzonych kluczy publicznych) może wyprowadzać klucze potomne — to umożliwia działanie portfeli watch-only.
- Wyprowadzanie hartowane (apostrof, np. m/44'): HMAC-SHA512 z prywatnego klucza rodzica, kodu łańcucha i indeksu. Może je wykonać tylko ktoś posiadający klucz prywatny, a gałąź jest izolowana od publicznego klucza rodzica.
Kod łańcucha to 32-bajtowa wartość używana przy wyprowadzaniu kluczy. Wchodzi w skład zarówno rozszerzonych kluczy prywatnych, jak i rozszerzonych kluczy publicznych: każdy klucz rozszerzony łączy klucz z jego kodem łańcucha.
Poziomy celu (BIP43, BIP44, BIP49, BIP84, BIP86)
BIP43 zarezerwował pierwszy poziom drzewa dla celu (purpose). Typowe cele to:
- BIP44 — m/44'/coin'/account'/change/index — adresy legacy (1...)
- BIP49 — m/49'/coin'/account'/change/index — SegWit zagnieżdżony w P2SH (3...)
- BIP84 — m/84'/coin'/account'/change/index — natywny SegWit (bc1q...)
- BIP86 — m/86'/coin'/account'/change/index — Taproot (bc1p...)
Poniżej celu (purpose) znajdują się typ monety (0' Bitcoin, 60' Ethereum itd.), konto, gałąź zmiany (0 = odbiorcza, 1 = reszta) i wreszcie indeks adresu. Każdy poziom to gałąź w drzewie; ta sama fraza pod dwoma różnymi celami tworzy dwa całkowicie różne zestawy adresów.
Deterministyczne a niedeterministyczne
- Portfele HD: jedna fraza, jedno drzewo, do przywrócenia wszędzie z właściwą ścieżką.
- Portfele nie-HD (wczesny Bitcoin Core, MultiBit Classic): klucze generowane do pliku puli kluczy; bez tego pliku (lub jego kopii) fraza ich nie odbuduje. Dlatego stare pliki portfeli mają znaczenie.
Co to oznacza dla odzyskiwania
- Poprawna fraza to tylko połowa odpowiedzi: ścieżka derywacji i indeks konta decydują o tym, które adresy są sprawdzane.
- Błędna ścieżka lub konto tworzy pozornie poprawne, ale puste adresy — nie błąd.
- xpub pozwala oprogramowaniu wyprowadzać publiczne klucze potomne i ich adresy w swojej gałęzi przez wyprowadzanie normalne, ale nie pozwala odtworzyć kluczy prywatnych. Zawiera metadane węzła, nie pełną ścieżkę derywacji; do jej ustalenia potrzebne są osobne informacje.
- Limity przerwy i adresy reszty to praktyczne konsekwencje tej struktury drzewa: portfele skanują ograniczony zakres nieużywanych adresów.
Odniesienie do ścieżek wymienia praktyczne ustawienia; ta strona wyjaśnia mechanizm, który za nimi stoi.
Czy wypróbowali Państwo opisane kroki i nadal nie mają dostępu?
Pierwsza ocena jest bezpłatna i nie wymaga poufnych danych: prosimy opisać, co jeszcze pozostało, a dowiedzą się Państwo, czy odzyskanie jest realne. Opłata jest należna tylko wtedy, gdy odzyskanie się powiedzie.