
Fraza seed, klucz prywatny, xpub: co naprawdę może każde z nich
Portfele kryptowalut dają ci kilka rodzajów materiału wyglądającego na tajny, a nie wszystkie są równie groźne. Niektóre mogą wydać wszystko, co masz. Niektóre mogą tylko patrzeć. Niektóre same z siebie nie mogą ani jednego, ani drugiego.
Większość błędów bezpieczeństwa bierze się z traktowania ich jako wymiennych — strzeżenia niegroźnego ciągu jak skarbu albo wklejania groźnego do strony, która grzecznie o niego poprosiła. Lekarstwem jest dokładna wiedza, co każde z nich potrafi.
Fraza seed: wszystko, na zawsze
Twoja fraza seed — 12 lub 24 słowa — jest korzeniem. Z niej portfel w sposób deterministyczny wyprowadza każdy klucz prywatny, dla każdego łańcucha i każdego konta, z którego kiedykolwiek skorzysta.
To czyni ją najpotężniejszą rzeczą, jaką posiadasz. Każdy, kto ma te słowa, może odtworzyć twój portfel na własnym urządzeniu i wydać każdą monetę, którą on kontroluje — dziś albo za dziesięć lat. Nie ma nad tym hasła, drugiego składnika ani pomocy technicznej, która mogłaby to cofnąć.
Oznacza to też, że seed jest jedynym, czego potrzebujesz do odzyskania. Strać wszystkie urządzenia, zachowaj słowa, a nie straciłeś niczego. To, czego naprawdę potrzebujesz, by przywrócić portfel, sprowadza się do tej jednej kartki — i właśnie dlatego nigdy nie wolno jej wpisywać nigdzie poza samym portfelem.
Zasada: nikt uczciwy nigdy nie prosi o frazę seed. Ani pomoc techniczna, ani narzędzie „synchronizacji”, ani formularz weryfikacyjny.
Klucze prywatne: każdy to jeden zamek
Klucz prywatny jest wyprowadzany z seeda i kontroluje konkretny adres albo, w niektórych schematach, konto. To on faktycznie wytwarza podpisy.
Wyciek pojedynczego klucza prywatnego oznacza utratę tego, co ten klucz kontroluje, niekoniecznie wszystkiego. To węższe niż wyciek seeda, ale dla tych środków wciąż całkowita strata — a ponieważ wiele portfeli pozwala eksportować klucz prywatny dla każdego adresu, nieostrożny eksport to częsty sposób opróżniania pojedynczych adresów.
Prawie nigdy nie powinieneś posługiwać się kluczem prywatnym bezpośrednio. Jeśli narzędzie prosi cię o wklejenie klucza, traktuj to z taką samą podejrzliwością jak prośbę o seed.
Rozszerzony klucz publiczny: widzieć wszystko, nie wydawać nic
Rozszerzony klucz publiczny, czyli xpub, jest wyprowadzany z seeda na poziomie konta. Potrafi wygenerować każdy publiczny adres tego konta — ale żadnego klucza prywatnego.
Xpub nie może więc przesunąć ani jednej monety. Może natomiast widzieć: każdy adres, którego konto użyło lub użyje, a zatem pełne saldo i historię konta. Przekazanie komuś xpuba to otwarcie mu stałego okna na to konto, dlatego ma to znaczenie dla prywatności w łańcuchu, choć dla twoich środków jest niegroźne.
Oto całe rozróżnienie, które warto zapamiętać:
Seed i klucze prywatne mogą wydawać. Xpub może tylko patrzeć.
Narzędzia tylko do odczytu, programy księgowe i trackery portfeli używają xpubów całkiem uczciwie. Rozsądna prośba o xpub nie jest sygnałem alarmowym. Prośba o seed lub klucz prywatny jest nim zawsze.
Gdzie multipodpis zmienia rachunek
Wszystko powyżej opisuje portfel z jednym kluczem. Multipodpis zmienia to, ile wart jest pojedynczy sekret.
W SSP twoje środki są w multipodpisie 2-z-2: jeden klucz w rozszerzeniu przeglądarki, drugi na telefonie, każdy wyprowadzony z własnego seeda. Wydanie wymaga podpisu obu. Pojedynczy wyciekły seed sam nie może więc ruszyć twoich środków — napastnikowi wciąż brakuje klucza drugiego urządzenia. To realna ochrona, którą daje multipodpis dwa-z-dwóch: żaden pojedynczy sekret nie jest kluczem uniwersalnym.
Nie czyni to wyciekłego seeda niegroźnym. Zamienia natychmiastową stratę w ostrzeżenie, na które masz czas zareagować — a właściwą reakcją nadal jest uznanie tego seeda za spalony i przeniesienie środków do nowej konfiguracji.
Z xpubem w multipodpisie jest tak samo. SSP wyprowadza adresy ścieżką BIP-48, m/48'/coin'/account'/script_type'/change/index, a każde urządzenie trzyma xpub drugiej strony, by móc budować wspólne adresy. Te xpuby pozwalają każdej stronie widzieć konto; żaden nie pozwala nikomu wydawać.
Praktyczna ściągawka
Fraza seed. Wydaje wszystko, na zawsze. Przechowuj offline, nie wpisuj nigdzie poza portfelem, nie udostępniaj nikomu z żadnego powodu.
Klucz prywatny. Wydaje to, co kontroluje. Nie eksportuj, chyba że dokładnie wiesz po co; nigdy nie wklejaj do strony.
xpub. Nie wydaje nic, ujawnia wszystko na koncie. Udostępniaj tylko narzędziom, którym powierzyłbyś całą historię.
Adresy. Publiczne z założenia. Udostępniaj swobodnie — tak dostajesz płatności — ale pamiętaj, że ponowne użycie adresu wiąże twoje płatności ze sobą.
Podpisane transakcje i wiadomości. Jednorazowa zgoda na konkretne działanie. Niegroźne po użyciu, groźne tylko wtedy, gdy podpisałeś coś, czego nie przeczytałeś.
Jedyne pytanie, które warto zadać
Za każdym razem, gdy coś prosi o materiał portfela, zapytaj: czy to może wydawać, czy tylko patrzeć?
Jeśli może wydawać, odpowiedź na udostępnienie brzmi nie, a sama prośba mówi ci, z kim masz do czynienia. Jeśli może tylko patrzeć, pytanie brzmi, czy godzisz się, by ta strona widziała wszystko na tym koncie. Niemal każda strata, której dało się uniknąć w samodzielnym przechowywaniu, bierze się ze złej odpowiedzi na to pierwsze pytanie.


