Ciąg słów, które otrzymujesz zakładając portfel są omawianą w tym artykule frazą seed, choć mogą być nazywane przez daną aplikację inaczej np. frazą odzyskiwania, czy zapasową.
Służy ona do odzyskania każdego wygenerowanego przez nas portfela. Jeśli zapomnimy hasło, lub pin do portfela sprzętowego to właśnie ta fraza zapasowa pozwoli nam odzyskać do niego dostęp. Fraza seed nie jest przypisana do jednej konkretnej kryptowaluty i może odzyskać nam portfel, w którym posiadamy wiele różnych aktywów, np. sprzętowy Ledger.
Jak działa fraza seed?
Na frazę seed składa się zazwyczaj od 12 do 24 słów. Najczęściej spotyka się 12 i 24-wyrazowe frazy. Te słowa są losowo wybierane z puli 2048 prostych angielskich słów (np. „angry”) ze standardu BIP39 i służą reprezentacji liczb (istnieje też możliwość wykorzystania słów z innych języków, ale nie są polecane, ani szeroko wspierane). Każde słowo odpowiada jakiejś liczbie, która następnie jest zamieniana na „klucz główny”, z którego są uzyskiwane klucze prywatne.
Fraza seed to nie klucz prywatny danego adresu!
Większość portfeli jest kompatybilna z trzema standardami o nazwach BIP32, BIP39 i BIP44.
Standard BIP32 odpowiada za generowanie portfela HD (Hierarchical Deterministic). Dzięki tego typu portfelom, z pojedynczego klucza głównego można generować niemal nieskończoną liczbę kluczy prywatnych i publicznych, które mogą zostać odzyskane jedną frazą.
Generacja kluczy w portfelu HD
Standardy BIP39 i 44 odpowiadają za listę słów, którą zapisujemy, a także za transformację tych słów do 512-bitowego SEED, który jest używany do wygenerowania portfela HD.
grafika: learn me a bitcoin
Każdy portfel kompatybilny z BIP32/39/44 wygeneruje od 12 do 24 słów, z których zostanie wygenerowany 512-bitowy seed. Oczywiście wszystko dzieje się z wykorzystaniem funkcji matematycznych.
Dzięki tym standardom możemy wygenerować jedną frazę seed, która odzyska wiele naszych kluczy prywatnych w różnych sieciach. Właśnie tak działają portfele sprzętowe, w których możemy przechowywać różne kryptowaluty. Co więcej, nikt nie może stwierdzić, że klucze naszego Bitcoina, Ethereum i Dogecoina zostały wygenerowane z tej samej frazy seed.
Generacja frazy i jej bezpieczeństwo
Fraza generuje losowe 12 słów (lub więcej), które należy zapisać w podanej kolejności. Słowa składają się z co najmniej 3 znaków. W przypadku 12 słów ilość możliwości wynosi 12^2048, czyli 2^132 co oznacza bezpieczeństwo 132 bitów. Jednak nie wszystkie dane w sekwencji są losowe co sprawia, że bezpieczeństwo wynosi 128 bitów. Jest to zdecydowanie wystarczająco, aby czuć się bezpiecznie, o ile nikt po prostu nie zna naszej frazy.
Co ciekawe lista 2048 słów nie składa się z losowych wyrazów. Każde słowo można rozpoznać już po 4 znakach, ponieważ zawsze piąty znak będzie wyjątkowy. Oznacza to, że nie ma słów „angel” i „angelica”, ponieważ piąta litera w obu przypadkach jest taka sama. Jest to szczególnie przydatne zapisując naszą frazę np. na metalowych płytkach, które pozwalają na zapis tylko 4 pierwszych znaków (więcej jest niepotrzebne).
Lista wszystkich angielskich słów jest dostępna tutaj.
Zabezpieczenia frazy seed
Odgadnięcie naszej frazy i atak typu Brute Force jest na ten moment niemożliwy, a w przyszłości, mimo że teoretycznie możliwy, to całkowicie nieefektywny (koszty przewyższą potencjalny zysk).
Jednak o ile nasze bezpieczeństwo jest niezagrożone poprzez ataki Brute Force, czyli po prostu zgadywanie naszej frazy, aż do skutku, tak jest możliwość, że hakerzy wykradną nasze frazy w całości z naszego komputera. Fraza jest generowana na naszym sprzęcie i jeśli zapiszemy ją w notatniku na pulpicie, raczej nie możemy czuć się całkowicie bezpiecznie...
Nigdy, z nikim i pod żadnym pozorem nie dziel się swoją frazą seed ani kluczami prywatnymi!
Frazy powinny być generowane całkowicie offline tak jak dzieje się to w przypadku portfeli sprzętowych. Co więcej, transakcje również powinny być tak podpisywane w celu zapewnienia maksymalnego bezpieczeństwa.
Jeśli chodzi o zapisanie naszej frazy seed najlepiej zrobić to na kartce papieru lub specjalnie przygotowanych kapsułach i metalowych płytkach, które można zakupić. Jeśli nie chcesz ponosić dodatkowych kosztów, kartka papieru jest jak najbardziej wystarczająca. Wszystko zależy od tego ile kryptowalut posiadasz i jak bardzo chcesz je zabezpieczyć.
Pamiętaj też, że portfele takie jak MetaMask, czyli „hot wallets” przechowują twoje klucze na komputerze. Jeśli jest on podłączony do sieci i ktoś w jakiś sposób otrzyma dostęp do sprzętu, lub sam ściągniesz wirusa, możesz mieć problem. Jedyną twoją ochroną w takim wypadku są hasła, które znacznie łatwiej złamać.
Z tego względu, jeśli posiadasz kryptowaluty o sporej wartości, zdecydowanie warto zaopatrzyć się w portfel sprzętowy, który jest najbezpieczniejszą formą przechowywania aktywów. Taki sprzęt może zająć się również komunikacją z DApps , bezpośrednio, lub poprzez połączenie go z MetaMask, lub innymi portfelami przeglądarkowymi.
Jak zabezpieczyć i przechowywać swoją frazę seed?
1. Zapisanie na kartce - Kartka papieru lub specjalnie przygotowane przez portfele sprzętowe kartoniki są wystarczającym zabezpieczeniem. Należy pamiętać, aby zapisać słowa w podanej kolejności i skupić się na ich poprawnym zapisie. Choć 4 pierwsze znaki są najważniejsze i wystarczą, aby odzyskać portfel, zapisz całość.
2. Kopia na pamięci przenośnej - PenDirve również nadaje się na zapis naszych fraz seed. Najlepiej wygenerować je na komputerze niepodłączonym do sieci lub smartfonie w trybie samolotowym, a następnie również na takim komputerze zapisać je w pliku tekstowym i przenieść na PenDrive.
3. Specjalne metalowe płytki i kapsuły - Jest to najbezpieczniejszy sposób na przechowanie fraz zapasowych. Metalowe płytki pozwalające w łatwy sposób umieścić 4 pierwsze litery każdego słowa (lub 3 jeśli wyraz ma 3 znaki) w odpowiedniej kolejności. Takie płytki są ognioodporne i ciężko je zniszczyć. Jedną z firm oferujących takie rozwiązania jest np. Cryptosteel.com.
Podsumowanie
Fraza seed jest absolutnie kluczowa i pozwala nam odzyskać dostęp do naszych kryptowalut. W razie jej wycieku jedyną opcją jest natychmiastowe przesłanie wszystkiego na inne portfele, wygenerowane z wykorzystaniem odmiennej frazy.
Wszystkie te informacje o standardach, czy wykorzystywanych słowach stanowią jedynie ciekawostkę. Najważniejsze w tym wszystkim jest zrozumienie, jak ważne jest odpowiednie zabezpieczenie naszej frazy/fraz (można mieć więcej) i dbanie o to by nie wyciekła.
Mimo ciekawych właściwości fraza seed nie przez wszystkich jest uważana za rozwiązanie optymalne. W innych sieciach, takich jak np. Ethereum, opracowywane są alternatywne możliwości odzyskiwania kont, które znane są pod nazwą "Abstrakcja Konta".