BIP85 to specyfikacja aplikacyjna deterministycznego wyprowadzania entropii z prywatnego korzenia BIP 32. Odtwarza potomków bez przekazywania głównego korzenia portfelom docelowym; nie dzieli kopii zapasowej na udziały.
Wejściem jest rozszerzony prywatny korzeń BIP 32, nie dowolny tekst. BIP 39 najpierw koduje entropię we frazę, następnie z frazy i passphrase tworzy seed dla korzenia. BIP85 nie odwraca tego procesu: nie odzyska pierwotnej frazy z korzenia. Tworzy nową entropię oddzieloną według aplikacji. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets] [BIP 39 — Mnemonic code for generating deterministic keys]
Każdy krok wyprowadzania jest hardened. Uzyskany 32-bajtowy klucz prywatny k staje się wiadomością HMAC-SHA512 z kluczem bip-entropy-from-k; wynik ma 64 bajty. Publiczny xpub nie wystarcza. Przekształcenie oddziela wynikową entropię od klucza; nie zaleca jednoczesnego używania tego klucza do podpisów. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets]
Ścieżka m/83696968'/39'/0'/12'/0' wybiera BIP85, aplikację BIP 39, angielski słownik, 12 słów i indeks 0. Indeks 1 tworzy innego potomka. Kod czeskiego słownika wynosi 8', niezależnie od języka strony. Zmiana języka lub liczby słów zmienia ścieżkę, a nie tylko sposób wyświetlania tej samej frazy. [BIP 85 — Deterministic Entropy From BIP32 Keychains]
Dla 12 słów bierze się pierwsze 128 bitów wyniku, dla 24 pierwsze 256; BIP 39 dodaje sumę kontrolną i słowa. Późniejsze utworzenie seed to osobny krok. BIP85 nie określa skryptów, ścieżki adresowej ani historii portfela. Dłuższy wynik nie zwiększa niepewności słabego pierwotnego sekretu. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 39 — Mnemonic code for generating deterministic keys]
Aplikacja XPRV używa m/83696968'/32'/0': pierwsze 32 bajty to chain code, drugie 32 to klucz prywatny, odwrotnie niż przy tworzeniu korzenia BIP 32. Nieprawidłowy skalar wynikowy musi wywołać błąd; użytkownik wybiera kolejny indeks. HEX i hasła mają inne aplikacje oraz reguły formatu. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets]
Przy poprawnej implementacji obliczenie rodzica lub rodzeństwa z potomka jest niewykonalne obliczeniowo. Osoba mająca główny korzeń i kontekst wyprowadzania odtworzy potomków; utrata korzenia zagraża tym bez osobnej kopii. Eksport potomka do podłączonego portfela ogranicza zasięg ewentualnego wycieku, lecz nie naprawia przejętego głównego korzenia. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [COLDCARD — Export Deterministic Entropy (BIP-85)]
Passphrase rodzicielskiej frazy BIP 39 zmienia korzeń wejściowy i wszystkich potomków. Dodatkowa passphrase zastosowana do wyprowadzonej frazy w docelowym portfelu zmienia jego seed; BIP85 jej nie kopiuje. Odtworzenie wymaga dokładnego kontekstu rodzica, aplikacji, formatu, słownika, długości i indeksu oraz ewentualnej docelowej passphrase. [BIP 39 — Mnemonic code for generating deterministic keys] [COLDCARD — Export Deterministic Entropy (BIP-85)]
Dokumentacja COLDCARD opisuje odtworzenie z tym samym rodzicem, formatem i indeksem oraz eksport BIP 39, WIF, XPRV i HEX. Obsługa BIP85 nie oznacza obsługi każdej aplikacji. Przed poleganiem na kopii sprawdź odtworzenie potomka i adresów docelowego portfela; zapisz potrzebne parametry i zweryfikuj daną implementację publicznymi wektorami testowymi. [COLDCARD — Export Deterministic Entropy (BIP-85)] [BIP 85 — Deterministic Entropy From BIP32 Keychains]
Pełniejszy obraz uzyskasz, czytając to hasło razem z HD Wallet, BIP 39, BIP39 passphrase, Derivation Path, Hardware Wallet. Do tego hasła prowadzą również odsyłacze z Duress Wallet.