BIP85 to sposób na powtarzalne tworzenie nowych sekretów dla portfeli z głównego sekretu jednego portfela. Telefon może dostać własną Seed Phrase, czyli słowa odzyskiwania, zamiast słów chroniących główne oszczędności. Ten sam sekret początkowy i te same ustawienia zawsze dają ten sam wynik. To właśnie wyprowadzanie deterministyczne. BIP85 nie przesyła bitcoinów, nie dzieli kopii na części i nie zastępuje utraconej głównej kopii.
Anna bezpiecznie przechowuje główną kopię i chce osobnego portfela do drobnych płatności. Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. BIP85 może utworzyć inną frazę odzyskiwania; tylko ją Anna zaimportuje do telefonu. Klucz prywatny to tajna wartość liczbowa, której portfel używa do utworzenia podpisu cyfrowego zatwierdzającego wydanie środków. Technicznie początkiem jest rozszerzony prywatny korzeń BIP 32, początek drzewa kluczy. Mógł powstać ze słów BIP 39: słowa z ewentualną passphrase najpierw tworzą seed, tajne dane wejściowe do obliczenia korzenia. To nazwy różnych etapów, a nie tej samej rzeczy. BIP85 oblicza z korzenia nowy tajny materiał; nie potrafi odwrócić procesu i odzyskać pierwotnych słów. [1] [2] [3] [5]
Anna musi też zapisać wybrane parametry. Derivation Path to dokładny zapis kolejnych kroków. Przykład m/83696968'/39'/0'/12'/0' wybiera BIP85, zastosowanie BIP 39, angielską listę, 12 słów i indeks 0. Zastosowanie oznacza tu określony sposób przetwarzania wyniku, nie konkretną aplikację w telefonie. Indeks 1 tworzy innego potomka, czyli inną frazę pochodną; nie jest numerem adresu płatniczego w telefonie. Czeska lista ma kod 8', niezależnie od języka tej strony. Zmiana listy lub liczby słów zmienia ścieżkę i wynik. Nie jest tłumaczeniem tych samych słów odzyskiwania. [1]
Materiał pośredni nazywa się entropią: tutaj są to dane obliczone z tajnej podstawy, których nie powinno dać się przewidzieć bez jej znajomości. Dla 12 słów używa się pierwszych 128 bitów wyniku, dla 24 słów pierwszych 256 bitów. BIP 39 dodaje sumę kontrolną, pomagającą wykryć część błędów zapisu, i zamienia dane na słowa. Z nich powstają później seed i klucze nowego portfela. Sam BIP85 nie określa typu adresów, ich ścieżki ani sposobu szukania dawnych płatności. Dłuższy wynik nie uratuje też łatwego do odgadnięcia sekretu początkowego: wyprowadzanie nie dodaje nowej, niezależnej losowości. [1] [3]
Passphrase to opcjonalny dodatkowy sekret używany ze słowami BIP 39. Nie jest PIN-em urządzenia ani hasłem do otwarcia aplikacji. Jeśli Anna użyła jej z główną frazą, potrzebuje jej także do odtworzenia tego samego korzenia wejściowego BIP85. Inna passphrase rodzica tworzy innych potomków. Drugą, osobną passphrase można zastosować dopiero do słów pochodnych w telefonie. Zmienia seed portfela docelowego, a nie już utworzone słowa. BIP85 nie wykonuje kopii tej docelowej passphrase. Odtworzenie słów bez niej nie oznacza więc odtworzenia pierwotnego portfela. [3] [4]
Przy poprawnej konstrukcji i dostatecznie silnym sekrecie początkowym obliczenie głównego korzenia lub sekretów innych portfeli pochodnych z jednej frazy pochodnej jest praktycznie niewykonalne. Wyciek słów z telefonu sam w sobie nie ujawnia zatem głównej kopii. Odwrotny kierunek jednak działa: kto zdobędzie główny prywatny korzeń i potrzebne parametry, odtworzy potomków. Ewentualna dodatkowa docelowa passphrase pozostaje osobnym sekretem. Utrata głównej podstawy zagraża potomkom bez własnej użytecznej kopii. BIP85 skupia więc część odpowiedzialności w jednym miejscu. Nie naprawia przejętego głównego korzenia, a eksport potomka nie zabezpiecza zainfekowanego telefonu. [1] [4]
Wszystkie kroki są hardened, czyli wymagają prywatnej części klucza rodzica. Sam xpub, rozszerzony klucz publiczny służący do wyprowadzania kluczy publicznych, nie wystarcza. Uzyskany klucz prywatny k ma 32 bajty. BIP85 przetwarza go następnie przez HMAC-SHA512, obliczenie kryptograficzne przyjmujące wiadomość i klucz. Wiadomością jest k, a kluczem stały tekst bip-entropy-from-k; wynik ma 64 bajty. Tajność zapewnia więc prywatne wejście k, a nie ten publicznie znany tekst. Przekształcenie oddziela wynikowy materiał od wyprowadzonego klucza. Nie zaleca jednoczesnego używania tego klucza pośredniego do podpisywania płatności. [1] [2]
Zastosowanie XPRV tworzy nowy rozszerzony klucz prywatny. W przykładzie m/83696968'/32'/0' pierwsze 32 bajty stanowią chain code, dodatkowe dane do dalszego wyprowadzania, a drugie 32 bajty klucz prywatny. To odwrotna kolejność niż przy zwykłym tworzeniu korzenia BIP 32. Jeśli otrzymana liczba nie jest poprawnym kluczem, program musi zgłosić błąd, a użytkownik wybrać następny indeks; nie wolno po cichu zaakceptować takiej wartości. HEX zapisuje dane znakami szesnastkowymi, WIF to format klucza prywatnego, a inne zastosowania tworzą hasła. Każde ma własne reguły. Podobnie wyglądające ciągi nie dowodzą identycznej zawartości ani zgodności. [1] [2]
Dokumentacja COLDCARD opisuje wyprowadzanie i eksport BIP 39, WIF, XPRV oraz HEX. Obsługa BIP85 nie oznacza, że każda wersja urządzenia obsługuje wszystkie zastosowania. Zapisz format, listę słów, długość i indeks oraz informację, z którego głównego portfela zaczynasz; ewentualne passphrase chroń jako odrębne sekrety. Zanim oprzesz się na tej procedurze, sprawdź, czy odtwarza te same słowa pochodne i odpowiadające im adresy docelowego portfela. Publiczne wektory testowe, czyli znane wejścia z oczekiwanymi wynikami, pomagają sprawdzić program, nie twoją prywatną kopię. BIP85 może ułatwić zarządzanie, lecz dodatkowa złożoność ma sens tylko wtedy, gdy rozumiesz własną procedurę odzyskiwania. [4] [1]
Pełniejszy obraz uzyskasz, czytając to hasło razem z HD Wallet, BIP 39, BIP39 passphrase, Derivation Path, Hardware Wallet, Seed Phrase. Do tego hasła prowadzą również odsyłacze z Duress Wallet.