A klucz prywatny jest tajną liczbą o długości 256 bitów, która potwierdza, że jesteś właścicielem określonej ilości kryptowaluty, i uprawnia cię do jej wydatkowania. Twój portfel wykorzystuje tę liczbę do generowania podpisu cyfrowego przy każdej wysyłanej przez ciebie transakcji, a sieć weryfikuje ten podpis przed zaakceptowaniem płatności.
Kto posiada klucz prywatny, ten dysponuje środkami. Nie ma tu żadnego konta, logowania, weryfikacji tożsamości ani działu obsługi klienta, który miałby uprawnienia do obejścia zasad matematycznych.
Większość ludzi nigdy ich nie widzi. Nowoczesne portfele ukrywają klucze prywatne za frazą odtwarzającą i generują ich tysiące w tle, co sprawiło, że pięć odrębnych elementów – klucze prywatne, frazy seed, klucze publiczne, adresy portfeli oraz rozszerzone klucze publiczne – zaczęto traktować tak, jakby były tym samym. Nie są one jednak tym samym, a różnice między nimi decydują o tym, które z nich można przekazać nieznajomemu.
Najważniejsze wnioski
- Klucz prywatny to losowo wygenerowana liczba o długości 256 bitów. Wszystkie pozostałe elementy portfela, w tym klucze publiczne i adresy Bitcoin, są z niego wyprowadzane.
- Wyprowadzanie klucza przebiega w jedną stronę. Klucz publiczny można uzyskać z klucza prywatnego w ciągu milisekund, a nie istnieje żadna praktyczna metoda pozwalająca na odwrócenie tego obliczenia.
- Fraza odzyskiwania znajduje się o jeden poziom wyżej niż klucze prywatne. Zgodnie ze standardami BIP-39 i BIP-32 dwanaście lub dwadzieścia cztery słowa generują nasienie główne, z którego można utworzyć praktycznie nieograniczone drzewo kluczy prywatnych.
- Klucz prywatny, hasło do portfela i fraza dostępowa BIP-39 to trzy różne rzeczy, których utrata wiąże się z trzema różnymi konsekwencjami.
- Rozszerzony klucz publiczny (xpub) nie pozwala na wydawanie środków, ale ujawnia wszystkie adresy w gałęzi portfela, dlatego należy go traktować jako klucz prywatny.
- Bitcoin nigdy nie został złamany przez kogoś, kto odgadł klucz prywatny. Każda poważna kradzież, której źródłem były materiały klucza, wynikała ze słabego generowania liczb losowych, złośliwego oprogramowania lub oszukania danej osoby.
- Dane firmy Chainalysis wskazują, że udział przypadków włamania do portfeli prywatnych wzrósł z 7,3% całkowitej wartości skradzionych kryptowalut w 2022 r. do 44% w 2024 r., co sprawia, że głównym źródłem strat jest brak bezpieczeństwa kluczy prywatnych, a nie awarie protokołów.
- Narzędzia i usługi reklamujące się jako umożliwiające odnalezienie lub odzyskanie utraconego klucza prywatnego są – z nielicznymi wyjątkami technicznymi – albo oszustwem, albo złośliwym oprogramowaniem.
Czym jest klucz prywatny?
Klucz prywatny to liczba. Nie jest to hasło, plik ani certyfikat. Jest to liczba o długości 256 bitów, co odpowiada 32 bajtom danych.
W zapisie dziesiętnym klucz prywatny bitcoina może być dowolną liczbą całkowitą od 1 do wartości nieco mniejszej niż:
115 792 089 237 316,195 423 570 985 008 687 907 852 837 564 279 074 904 382 605 163 141 518,161 494 337
Ta górna granica odpowiada rzędowi krzywej eliptycznej secp256k1 – konkretnej krzywej wykorzystywanej przez Bitcoin, zdefiniowanej w Specyfikacja SEC 2 opracowana przez Grupę ds. Standardów Efektywnej Kryptografii. Klucze spoza tego zakresu są nieprawidłowe, a oprogramowanie portfela to sprawdza, choć prawdopodobieństwo przypadkowego wygenerowania klucza spoza tego zakresu jest na tyle małe, że można je pominąć.
Wszystkie formaty, które widzisz w portfelach, to po prostu różne sposoby przedstawiania tej jednej liczby. Format szesnastkowy, format importu do portfela oraz fraza składająca się z dwunastu słów to różne sposoby przedstawienia tej samej wartości.
Z faktu, że klucz prywatny jest jedynie liczbą, wynikają dwie konsekwencje.
Po pierwsze, nikt ich nie wydaje. Nie ma żadnego rejestru, nie trzeba składać wniosku ani uzyskiwać zgody. Utworzenie konta Bitcoin polega na wybraniu dużej liczby losowej, dlatego każdy, kto ma urządzenie, może je założyć z dowolnego miejsca. To właśnie ta cecha sprawia, że Bitcoin bez konieczności uzyskania zezwolenia.
Po drugie, sama liczba stanowi aktywo. Bitcoin jest instrumentem na okaziciela. Posiadanie klucza oznacza posiadanie wartości, tak samo jak posiadanie banknotu oznacza posiadanie pieniędzy. Skopiowanie klucza prywatnego nie oznacza skopiowania monet – oznacza to stworzenie drugiej osoby, która może je wydać.
Jak wygląda klucz prywatny?
Oto przykładowy klucz prywatny przedstawiony w formatach, w jakich może go wyświetlać portfel. Ten konkretny klucz jest publikowany w dokumentacji Bitcoin oraz bibliotekach kodu od ponad dziesięciu lat i służy tutaj wyłącznie jako przykład. Nigdy nie wysyłaj środków na żaden adres wygenerowany na jego podstawie.
| Format | Przykład | Długość | Gdzie to widać |
|---|---|---|---|
| Surowe dane szesnastkowe | 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D | 64 znaki | Narzędzia programistyczne, ekrany eksportu kluczy |
| WIF (nieskompresowany) | 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ | 51 znaków, zaczyna się od cyfry 5 | Starsze portfele papierowe, import danych ze starszych wersji |
| WIF (skompresowany) | KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP98617 | 52 znaki, zaczyna się na literę K lub L | Standardowy eksport za pomocą jednego przycisku |
| Sieć testowa WIF | Zaczyna się na 9 lub c | od 51 do 52 znaków | Wyłącznie do celów programistycznych i testowych |
| zaszyfrowane zgodnie ze standardem BIP-38 | Zaczyna się od 6P | 58 znaków | Portfele papierowe chronione hasłem |
Format importu portfela nie jest odrębnym kluczem. Jest to ta sama 256-bitowa liczba zakodowana w formacie Base58Check, z trzema dodatkowymi elementami: bajtem prefiksu sieciowego (0x80 dla sieci głównej, 0xEF dla sieci testowej), opcjonalny bajt flagi kompresji oraz czterobajtowa suma kontrolna wygenerowana na podstawie podwójnego skrótu SHA-256.
Ta suma kontrolna stanowi praktyczny powód istnienia WIF. Wystarczy pomylić się przy wpisywaniu jednego znaku w surowym kluczu szesnastkowym, a otrzymasz inny, całkowicie prawidłowy klucz, który kontroluje pusty portfel. Jeśli pomylisz się przy wpisywaniu jednego znaku w ciągu WIF, suma kontrolna nie będzie się zgadzać, więc oprogramowanie odrzuci go i poinformuje cię, że coś jest nie tak. Kodowanie Base58 eliminuje również cztery znaki, które najczęściej mylone są na pierwszy rzut oka: zero, wielką literę O, wielką literę I oraz małą literę l.
Klucz zaczynający się od 6P nie pozwoli na import środków bez podania hasła. Zdarza się, że ludzie znajdują stary portfel papierowy, próbują go „wyczyścić” i dochodzą do wniosku, że środki zniknęły, podczas gdy w rzeczywistości klucz jest po prostu zaszyfrowany.
Jak generowane są klucze prywatne
Portfel żąda od systemu operacyjnego danych losowych, pobiera z nich 256 bitów i sprawdza, czy uzyskana liczba mieści się w dopuszczalnym zakresie. To cały proces.
Wszystko zależy od jakości losowości. Kryptograficznie bezpieczny generator liczb pseudolosowych czerpie dane z nieprzewidywalnych źródeł fizycznych, takich jak wahania częstotliwości sprzętowej, szum termiczny oraz czasy przerwań. Portfel sprzętowy zazwyczaj posiada wbudowany w swój element zabezpieczający dedykowany generator prawdziwych liczb losowych.
To właśnie rozmiar przestrzeni liczbowej sprawia, że to działa. Przy 256 bitach istnieje około 1,16 × 10^77 możliwych kluczy – liczba, której nie da się porównać z niczym w świecie fizycznym. Prawdopodobieństwo, że dwa portfele niezależnie od siebie wygenerują ten sam klucz, nie jest zerowe w sensie matematycznym, ale jest na tyle niższe od każdego innego ryzyka, z jakim masz do czynienia, że nigdy nie trzeba go brać pod uwagę.
Ochrona ta obowiązuje tylko wtedy, gdy losowość jest rzeczywista. Gdy generator liczb losowych ulegnie awarii, przestrzeń kluczy zmniejsza się z 2^256 do liczby, jaką generator faktycznie jest w stanie wygenerować, a każdy klucz, jaki kiedykolwiek wygenerował, staje się dostępny metodą brute force. Jest to przyczyna niepowodzeń stojąca za praktycznie każdym nagłówkiem dotyczącym „złamanych” portfeli Bitcoinowych i została szczegółowo omówiona w dalszej części artykułu.
W rezultacie dwie praktyki pozostają naprawdę niebezpieczne.
- Portfele mózgowe: Wygenerowanie klucza poprzez zaszyfrowanie zapamiętanej frazy hasłowej. Atakujący przygotowali z wyprzedzeniem ogromne słowniki zaszyfrowanych fraz, zawierające całe książki i teksty piosenek, i automatycznie przeszukują uzyskane w ten sposób adresy. Każda fraza hasłowa, którą człowiek jest w stanie zapamiętać, jest frazą, którą maszyna może odgadnąć.
- Domowa losowość: Prawidłowo przeprowadzone rzuty kostką są bezpieczne, ale prawie wszystko inne, co ludzie robią na własną rękę – w tym znaczniki czasu, chaotyczne naciskanie klawiszy oraz funkcje losowe w językach programowania ogólnego przeznaczenia – już nie jest.
Niech zajmie się tym portfel. Generowanie kluczy to jedna z niewielu dziedzin, w których standardowe narzędzia są zdecydowanie lepsze niż cokolwiek, co sam byś stworzył.
Czym jest fraza nasienna?
Frazę nasienną, zwaną również frazą odzyskiwania lub frazą mnemoniczną, stanowi lista dwunastu lub dwudziestu czterech zwykłych słów, która koduje główny sekret całego portfela. W strukturze portfela znajduje się ona o jeden poziom wyżej niż klucze prywatne, dlatego przywrócenie tej frazy powoduje odtworzenie wszystkich adresów, z których kiedykolwiek korzystałeś, a nie tylko jednego.
Standard, na którym się opiera, to BIP-39, opublikowany w 2013 roku i obecnie stosowany niemal powszechnie w sieci Bitcoin oraz innych łańcuchach bloków. Mechanizm ten wyjaśnia kilka zjawisk, które w przeciwnym razie wyglądałyby na błędy.
- Portfel generuje 128 bitów entropii dla frazy składającej się z dwunastu słów lub 256 bitów dla frazy składającej się z dwudziestu czterech słów.
- Dodaje sumę kontrolną – cztery bity dla dwunastu słów i osiem bitów dla dwudziestu czterech – pobraną z funkcji skrótu SHA-256 tej entropii.
- Połączone bity są dzielone na grupy po jedenaście. Każda grupa jedenastu bitów wskazuje jedno słowo ze stałej listy zawierającej 2 048 słów. Jedenaście bitów daje dokładnie 2 048 możliwości, dlatego właśnie lista słów ma taką długość.
- Powstałe w ten sposób słowa, w kolejności, tworzą twoje wyrażenie.
Lista angielskich słów została celowo opracowana z myślą o pisaniu odręcznym. Żadne dwa słowa nie mają takich samych czterech pierwszych liter, więc wystarczy zapisać tylko pierwsze cztery znaki każdego słowa, aby odtworzyć frazę, a w przypadku błędnego odczytania słowa istnieje większe prawdopodobieństwo, że nie uda się go odczytać, niż że zostanie ono po cichu zastąpione innym poprawnym słowem.
Następnie fraza przechodzi przez funkcję rozciągania klucza o nazwie PBKDF2, wykorzystującą algorytm HMAC-SHA512 w 2 048 iteracjach, w celu wygenerowania 512-bitowego klucza głównego. Solą dla tej funkcji jest ciąg znaków „mnemonic” oraz opcjonalne hasło podane przez użytkownika – właśnie ten szczegół sprawia, że funkcja hasła jest tak potężna, a jednocześnie tak łatwa do nadużycia.
Błędne słowo prawie zawsze nie przechodzi kontroli sumy kontrolnej, więc portfel od razu odrzuca frazę, zamiast po cichu otworzyć inną. W rzadkich przypadkach, gdy pomyłka mimo wszystko przejdzie kontrolę, otrzymasz zupełnie inny, pusty portfel. Kolejność słów ma znaczenie z tego samego powodu, ponieważ każda pozycja odpowiada konkretnej grupie bitów.
Jedna fraza nasienna, wiele kluczy prywatnych
Główne źródło danych zasila BIP-32, czyli standard hierarchicznego portfela deterministycznego. Siew generuje główny klucz prywatny oraz główny kod łańcucha, a na podstawie tej pary portfel może wygenerować klucze podrzędne, a z każdego klucza podrzędnego – kolejne klucze podrzędne, bez żadnych ograniczeń.
Cały łańcuch wygląda następująco:
Fraza odzyskiwania → klucz główny → rozszerzony klucz prywatny → poszczególne klucze prywatne → klucze publiczne → adresy
Każdy krok wykonywany po wprowadzeniu frazy jest deterministyczny. Ta sama fraza wprowadzona do dowolnego kompatybilnego portfela, w dowolnym miejscu, spowoduje odtworzenie identycznego drzewa kluczy. Nic nie jest przechowywane na serwerze, a żadne informacje dotyczące Twojego portfela nie istnieją nigdzie indziej poza wynikiem obliczeń opartych na tych słowach.
Właśnie dlatego w przypadku utraty klucza pojedynczy klucz prywatny i fraza odzyskiwania nie są równoważne. Klucz prywatny zapewnia kontrolę wyłącznie nad środkami przypisanymi do danego klucza publicznego i niczym więcej. Fraza odzyskiwania zapewnia natomiast kontrolę nad wszystkim, co kiedykolwiek zostało wygenerowane przez portfel, oraz nad wszystkim, co kiedykolwiek zostanie wygenerowane.
Czym jest ścieżka wyprowadzenia
Ponieważ jedno ziarno może wydać drzewo o nieograniczonych rozmiarach, portfele muszą stosować uzgodnioną konwencję określającą, na którą gałąź należy zwrócić uwagę. BIP-44 określono strukturę, zapisaną w postaci ścieżki:
m / „cel” / „rodzaj monety” / „konto” / „reszta” / „indeks adresu”
W późniejszych propozycjach każdemu typowi adresu przypisano numer przeznaczenia:
| Standardowy | Prefiks ścieżki | Typ adresu | Prefiks adresu |
|---|---|---|---|
| BIP-44 | m/44'/0'/0' | Legacy (P2PKH) | 1 |
| BIP-49 | m/49'/0'/0' | SegWit zagnieżdżony (P2SH) | 3 |
| BIP-84 | m/84'/0'/0' | Natywny SegWit (P2WPKH) | bc1q |
| BIP-86 | m/86'/0'/0' | Taproot (P2TR) | bc1p |
Ten typ_monety Wartość tego pola wynosi 0 dla Bitcoina i 60 dla Ethereum – w ten sposób jedno hasło pozwala zarządzać aktywami w wielu łańcuchach.
W praktyce oznacza to, że dwa portfele mogą odczytać tę samą poprawną frazę, a mimo to wyświetlać różne salda, jeśli domyślnie korzystają z różnych ścieżek. Przywrócenie dwunastowyrazowej frazy w nowej aplikacji i brak jakichkolwiek danych wynika znacznie częściej z niezgodności ścieżek niż z kradzieży, a zdiagnozowanie i naprawienie tego Wystarczy tylko ustawić oprogramowanie na właściwą gałąź.
Czym jest klucz publiczny?
Klucz publiczny to punkt na krzywej secp256k1, obliczony poprzez pomnożenie stałego punktu generatora tej krzywej przez klucz prywatny użytkownika. Operację tę zapisuje się jako K = k × G, gdzie k oznacza klucz prywatny użytkownika.
Mnożenie na krzywej eliptycznej jest funkcją typu „trapdoor”. Obliczenie wartości K na podstawie k zajmuje mikrosekundy. Odtworzenie wartości k na podstawie K wymagałoby rozwiązania problemu logarytmu dyskretnego na krzywej eliptycznej, dla którego – pomimo dziesięcioleci badań naukowych – nie znana jest żadna skuteczna metoda.
Klucze publiczne występują w dwóch formatach:
- Skompresowane, 33 bajty, zaczynające się od 02 lub 03. Jest to współczesne ustawienie domyślne, w którym zapisywana jest wyłącznie współrzędna x oraz bajt wskazujący, która z dwóch możliwych wartości y ma zastosowanie.
- Nieskompresowane, 65 bajtów, zaczynających się od 04. Format ten przechowuje obie współrzędne w pełnej postaci i występuje głównie w starszych portfelach oraz w starszych zestawach kluczy.
Zadaniem klucza publicznego jest weryfikacja. Kiedy portfel podpisuje transakcję, sieć wykorzystuje klucz publiczny do potwierdzenia, że podpis mógł zostać wygenerowany wyłącznie przez odpowiadający mu klucz prywatny, nie poznając przy tym w żaden sposób tego klucza prywatnego. Bitcoin wykorzystuje algorytm ECDSA w większości przypadków rodzaje transakcji oraz podpisy Schnorra, wprowadzone w BIP-340, bo Korzeń główny wydaje.
Klucz publiczny nie jest adresem. Adres jest jego dalszym przekształceniem – poddanym funkcji skrótu, a następnie zakodowanym w formaty, które można wkleić do portfela.
Czym jest klucz publiczny rozszerzony?
Standard BIP-32 definiuje dwa klucze rozszerzone na każdym poziomie drzewa portfela.
An rozszerzony klucz prywatny, wyświetlane jako ciąg znaków zaczynający się od xprv, zawiera klucz prywatny oraz kod łańcucha. Razem pozwalają one na wygenerowanie każdego klucza prywatnego znajdującego się poniżej. Plik xprv na poziomie konta jest funkcjonalnie równoważny frazie odzyskiwania dla tego konta i należy go chronić w ten sam sposób.
An rozszerzony klucz publiczny, począwszy od xpub, zawiera klucz publiczny oraz ten sam kod łańcucha. Może on wygenerować każdy klucz publiczny i każdy adres znajdujący się poniżej niego, ale nie jest w stanie wygenerować ani jednego podpisu.
To połączenie sprawia, że xpubs są naprawdę przydatne. Sprzedawcy generują nowy adres dla każdego klienta na podstawie xpub przechowywanego na serwerze internetowym, który nie ma żadnej możliwości wydawania środków w sieci. Narzędzia do śledzenia portfela i portfele tylko do obserwacji monitorują salda w ten sam sposób. Księgowi uzgadniają historię transakcji bez dotykania środków.
To sprawia również, że stają się one przedmiotem inwigilacji. Jeśli przekażesz komuś swój xpub, osoba ta będzie mogła wyliczyć wszystkie adresy w tej gałęzi – zarówno przeszłe, jak i przyszłe – oraz wyszukać je wszystkie w przeglądarka bloków, a także przeglądać pełny stan konta i historię transakcji bez ograniczeń czasowych. Nie mogą niczego zabrać. Mogą wszystko obserwować.
Istnieje poważniejszy przypadek awarii, który zaskakuje nawet doświadczonych użytkowników. W przypadku derywacji nieuzbrojonej połączenie klucza xpub z dowolnym pojedynczym kluczem prywatnym potomnym z tej gałęzi jest matematycznie wystarczające do odtworzenia nadrzędnego rozszerzonego klucza prywatnego, a tym samym każdego klucza w tej gałęzi. Derywacja uzbrojona, oznaczona apostrofem w ścieżkach takich jak m/84'/0'/0', zostało stworzone właśnie po to, by temu zapobiec, dlatego też elementy ścieżki na poziomie konta są z zasady zabezpieczone.
Możesz również natknąć się na ypub, zpub, oraz vpub. Kodują one te same informacje, ale mają różne prefiksy wersji, które wskazują portfelowi, jaki typ adresu ma wygenerować, a pomylenie ich powoduje wystąpienie opisanego wcześniej objawu „pustego portfela”.
Jak to wszystko się ze sobą wiąże
Każdy obiekt w portfelu zajmuje stałą pozycję w jednym łańcuchu, a jego pozycja określa, jakie działania może wykonać.
| Przedmiot | Czym to jest | Na podstawie | Czy można wydać? | Ujawnia historię? |
|---|---|---|---|---|
| Fraza odzyskiwania | 12 lub 24 słowa kodujące entropię główną | Generowanie losowe | Tak, wszystko | Tak, wszystko |
| Nasiona podstawowe | Wartość 512-bitowa | To wyrażenie oraz dowolne hasło | Tak, wszystko | Tak, wszystko |
| Rozszerzony klucz prywatny (xprv) | Klucz prywatny oraz kod łańcucha | Nasiono | Tak, cała ta gałąź | Tak, cała ta gałąź |
| Klucz prywatny | 256-bitowy klucz tajny | Drzewo, czyli generacja autonomiczna | Tak, wyłącznie środki własne | Tylko swój własny adres |
| Rozszerzony klucz publiczny (xpub) | Klucz publiczny oraz kod łańcucha | xprv | Nie | Tak, cała ta gałąź |
| Klucz publiczny | Punkt krzywej, 33 lub 65 bajtów | Klucz prywatny | Nie | Tylko swój własny adres |
| Adres portfela | Klucz publiczny z hashowaniem i kodowaniem | Klucz publiczny | Nie | Tylko swój własny adres |
| Identyfikator transakcji | Hash identyfikujący jedną transakcję | Sama transakcja | Nie | Tylko ta transakcja |
Przejrzyj tabelę, a model bezpieczeństwa sprowadza się do jednej zasady. Wszystko, co pozwala odtworzyć klucz prywatny, musi pozostać tajemnicą. Wszystko, co można uzyskać wyłącznie na podstawie klucza prywatnego, jest zabezpieczone przed kradzieżą, choć może to wiązać się z utratą prywatności.
Co można bezpiecznie udostępniać?
| Pozycja | Udostępnić? | Co ktoś zyskuje |
|---|---|---|
| Fraza odzyskiwania | Nigdy | Pełna kontrola nad każdym portfelem i generowanym przez niego adresem. Nieodwracalne |
| Klucz prywatny | Nigdy | Pełna kontrola nad środkami znajdującymi się pod adresem tego klucza |
| Rozszerzony klucz prywatny (xprv) | Nigdy | Pełna kontrola nad całym oddziałem |
| Rozszerzony klucz publiczny (xpub) | Unikaj | Pełny wgląd w salda i historię transakcji na wielu adresach. Brak możliwości wydawania środków |
| Klucz publiczny | Bezpieczne pod względem technicznym, rzadko potrzebne | Możliwość weryfikacji podpisów oraz powiązania danego klucza z jego adresem |
| Adres portfela | Tak, za darmo | Możliwość wysyłania środków na ten adres oraz wgląd w historię tego adresu |
| Identyfikator transakcji | Tak, w razie potrzeby | Możliwość wyszukania jednej transakcji wraz z zawartymi w niej adresami i kwotami |
Na uwagę zasługują dwa wpisy.
Identyfikator transakcji nie wiąże się z utratą żadnej kontroli, więc udostępnianie go w celu potwierdzenia płatności lub uzyskania potwierdzenia jest czymś normalnym i bezpiecznym. Ujawnia on jednak adresy i kwoty wszystkim, którzy go sprawdzą, co stanowi raczej kwestię prywatności niż bezpieczeństwa.
Plik xpub jest elementem, z którym najczęściej postępuje się nieprawidłowo, ponieważ słowo „public” w jego nazwie sugeruje, że należy on do tej samej kategorii co adres odbiorcy. Pracownicy pomocy technicznej, narzędzia podatkowe i aplikacje do zarządzania portfelem mają uzasadnione powody, by o niego poprosić. Nie ma ich jednak nikt, kto prosi o niego w niechcianej wiadomości.
Czym hasła, kody PIN i frazy haseł różnią się od kluczy
Cztery terminy są używane w sposób nieprecyzyjny, a konsekwencje ich pomylenia nie są symetryczne.
| Termin | Co chroni | Podróżujesz z portfelem? | Jeśli to zgubisz |
|---|---|---|---|
| Kod PIN aplikacji lub dane biometryczne | Dostęp do aplikacji na jednym urządzeniu | Nie | Zainstaluj ponownie i przywróć system przy użyciu hasła |
| Hasło do wydatków | Autoryzacja w aplikacji | Nie | Przywróć dane na podstawie frazy lub kopii zapasowej |
| Hasło szyfrujące kopię zapasową | Zaszyfrowany plik kopii zapasowej | Nie, chroni ten plik | Zaszyfrowana kopia zapasowa jest bezużyteczna |
| Hasło BIP-39 (25. słowo) | Nic. Zmienia się tylko to, który portfel generuje twoja fraza | Tak, z punktu widzenia kryptografii | Nie ma możliwości dostępu do tych środków – sytuacja ta ma charakter trwały |
Pierwsze trzy to mechanizmy kontroli dostępu. Znajdują się one na urządzeniu lub w pliku, można je zresetować poprzez przywrócenie danych z kopii zapasowej, a osoba atakująca, która zdobędzie jeden z nich bez posiadania frazy, nie zyska nic w łańcuchu bloków.
Hasło BIP-39 należy do zupełnie innej kategorii. Podczas konwersji frazy na seed uwzględniana jest sól PBKDF2, więc jej dodanie powoduje utworzenie zupełnie innego portfela na podstawie tych samych dwunastu słów, z innymi kluczami i innymi adresami. Nie pojawia się komunikat o błędzie w przypadku podania nieprawidłowego hasła, ponieważ każde hasło generuje portfel poprawny z technicznego punktu widzenia. Jeśli wprowadzisz nieprawidłowe hasło, zobaczysz puste saldo i nie otrzymasz żadnego wyjaśnienia.
Właśnie dlatego zjawisko to określa się czasem mianem „wiarygodnego zaprzeczenia”: to samo wyrażenie może odnosić się zarówno do fałszywego portfela bez hasła, jak i do prawdziwego portfela ukrytego za nim. To również powód, dla którego więcej osób traci środki z powodu haseł, niż takich, które są przez nie chronione.
W Portfel Bitcoin.com, każdy indywidualny portfel kryptowalutowy w aplikacji otrzymuje własną, odrębną frazę odzyskiwania składającą się z dwunastu słów, więc użytkownik posiadający portfele Bitcoin, Ethereum i Polygon musi zapisać trzy takie frazy. Opcjonalna funkcja tworzenia kopii zapasowej w chmurze szyfruje wszystkie te informacje odzyskiwania w jeden plik przechowywany na Twoim koncie Google Drive lub iCloud, który można odszyfrować za pomocą wybranego przez Ciebie hasła głównego. Bitcoin.com nie przechowuje ani hasła głównego, ani fraz odzyskiwania, więc odzyskanie danych bez jednej z nich nie jest możliwe dla nikogo, w tym dla nas.
Niektóre interfejsy portfeli używają terminu „passphrase” w odniesieniu do dwunastowyrazowej frazy odzyskiwania. W innych kręgach branżowych termin „passphrase” oznacza dodatkowe słowo zgodnie ze standardem BIP-39. Przed wpisaniem czegokolwiek w polu oznaczonym tym terminem sprawdź, które z tych znaczeń ma na myśli dana aplikacja.
W jaki sposób dochodzi do kradzieży kluczy prywatnych
Ataki na materiały klucze w przeważającej większości są wymierzone w ludzi i urządzenia, a nie w samą kryptografię.
Skala tej zmiany jest mierzalna. Firma Chainalysis ustaliła, że według danych, w 2022 r. włamania do portfeli prywatnych stanowiły 7,3% całkowitej wartości skradzionych kryptowalut, a do 2024 r. odsetek ten wzrósł do 44%. W 2025 r. udział ten wyniósłby około 37%, gdyby pojedynczy incydent związany z platformą Bybit nie zafałszował rocznego wyniku. Bezpieczeństwo kluczy indywidualnych jest obecnie głównym źródłem utraty kryptowalut.
| Metoda | Jak to działa | Obrona |
|---|---|---|
| Phishing i fałszywa pomoc techniczna | Osoba podszywająca się pod kogoś prosi o podanie hasła w celu „weryfikacji”, „przeniesienia” lub „rozwiązania” problemu | Żadna legalna usługa nigdy nie wymaga podania hasła ani klucza |
| Złośliwe zatwierdzenia | Prośba o podpisanie dokumentu powoduje uszczuplenie środków, zamiast przynosić korzyści, jak twierdzi strona | Przeczytaj, co podpisujesz, i cofnij nieaktualne zgody |
| Przejęcie zawartości schowka | Złośliwe oprogramowanie zastępuje skopiowany adres adresem należącym do atakującego | Po wklejeniu sprawdź cały ciąg znaków i zweryfikuj go na ekranie urządzenia |
| Oprogramowanie złośliwe typu infostealer | Wyszukuje na urządzeniu pliki portfela, zdjęcia nasion oraz ciągi kluczy | Nigdy nie rób zdjęć ani nie wpisuj fraz na urządzeniach podłączonych do Internetu |
| Kopie zapasowe synchronizowane w chmurze | Zdjęcie zawierające frazę synchronizuje się automatycznie i zostaje ujawnione w wyniku włamania na konto | Nie należy umieszczać materiałów do przywracania na żadnym urządzeniu, które się synchronizuje |
| Fałszywe aplikacje typu „portfel” | Fałszywa aplikacja dostępna w sklepie lub w reklamie generuje klucze, które napastnik już posiada | Instaluj wyłącznie oprogramowanie od oficjalnego wydawcy |
| Sfałszowane portfele sprzętowe | Urządzenie sprzedawane z fabrycznie zainstalowaną frazą atakującego | Kupuj bezpośrednio od producenta, zawsze twórz własne frazy |
| Przymus fizyczny | Bezpośrednie zagrożenie dla znanego posiadacza | Dyskrecja w kwestii posiadanych aktywów, portfele-przynęty chronione hasłem |
Wspólnym mianownikiem jest to, że żadna z tych metod nie łamie klucza. Gromadzą go, a następnie szerszy kontekst oszustw opiera się na przekonywaniu ludzi, by to oddali.
Czy klucz prywatny można złamać?
Nie na zgadywanie.
Załóżmy, że dysponujesz sprzętem zdolnym do testowania jednego biliona kluczy na sekundę i uruchamiasz równolegle jeden bilion takich maszyn. Daje to 10^24 przetestowanych kluczy na sekundę. Przy 1,16 × 10^77 możliwych kluczy wyczerpanie tej przestrzeni zajęłoby rzędu 10^45 lat. Wiek wszechświata wynosi w przybliżeniu 1,4 × 10^10 lat. Dodanie większej liczby maszyn nie zmieni znacząco wyniku, ponieważ przestrzeń rośnie wykładniczo wraz z długością klucza, podczas gdy moc obliczeniowa sprzętu rośnie liniowo.
Każda rzeczywista kradzież przypisywana „złamanym” kluczom była w rzeczywistości wynikiem niedostatecznej entropii, ponieważ oprogramowanie portfela od początku nie wykorzystywało pełnej przestrzeni kluczy.
Najbardziej oczywistym udokumentowanym przypadkiem jest Smutek mleczny, skatalogowane jako CVE-2023-39910. Wersje programu Libbitcoin Explorer od 3.0.0 do 3.6.0 generowały nasiona portfeli przy użyciu generatora liczb pseudolosowych Mersenne Twister, którego nasieniem było 32 bity czasu systemowego. Spowodowało to zmniejszenie efektywnej przestrzeni kluczy z 2^256 do 2^32, czyli około 4,3 miliarda możliwości, które sprzęt konsumencki może wyczerpać w ciągu kilku dni. Atakujący postąpili właśnie w ten sposób, a główna skoordynowana akcja wyczyszczenia dotkniętych portfeli miała miejsce 12 lipca 2023 r. pełne ujawnienie informacji przez badaczy opisuje to odkrycie oraz powiązaną z nim lukę w rozszerzeniu przeglądarki służącym jako portfel, oznaczoną jako CVE-2023-31290, której przyczyna leżała w tym samym źródle.
Nazwa pochodzi od dwóch pierwszych słów pierwszego zdania, jakie wygenerował uszkodzony generator. Każdy z dotkniętych tym problemem portfeli został zbudowany w oparciu o nie do złamania kryptografię, a każdy z nich został opróżniony.
Obliczenia kwantowe stanowią jedyną teoretyczną drogę dostępu do samego klucza prywatnego, ponieważ algorytm Shora mógłby w zasadzie rozwiązać problem logarytmu dyskretnego, który zabezpiecza klucze publiczne. Nie istnieje żadna maszyna zdolna do tego zadania, szacunki dotyczące wymaganych zasobów wciąż ulegają zmianom, a Krajowy Instytut Standardów i Technologii ustanowiła standardowe schematy podpisów zastępczych, zalecając jednocześnie, aby organizacje zakończyły migrację do 2035 roku. Bitcoin nie wdrożył jeszcze takiego schematu, a propozycje dotyczące sposobu jego wdrożenia przechodzą obecnie proces ulepszania. Wobec każdego klasycznego komputera, który istnieje lub ma powstać w przyszłości, prawidłowo wygenerowany klucz prywatny jest bezpieczny.
Dlaczego narzędzia do odzyskiwania klucza prywatnego nie działają
Spróbuj poszukać zagubionego klucza, a natrafisz na oprogramowanie obiecujące skanowanie, odzyskiwanie lub łamanie kluczy prywatnych metodą brute force, często w połączeniu z bazami danych, które rzekomo zawierają listę kluczy wraz z saldem.
Powyższe obliczenia rozstrzygają tę kwestię. Oprogramowanie, które potrafiłoby odnaleźć zasobiony klucz prywatny poprzez przeszukiwanie, doprowadziłoby do upadku Bitcoina, a Bitcoin stałby się bezwartościowy, a nie przedmiotem reklamy. Żaden sprzedawany produkt nie posiada takiej zdolności.
Działanie tych produktów można podzielić na kilka kategorii:
- Dostarczanie złośliwego oprogramowania: Pobrane narzędzie skanuje urządzenie w poszukiwaniu istniejących plików portfela, zdjęć fraz seedowych oraz danych rozszerzeń przeglądarki, a następnie je wykradza.
- Zbieranie fraz: Formularz internetowy zachęca do wpisania fragmentu lub całej frazy „w celu jej sprawdzenia”, a środki są przekazywane w ciągu kilku minut.
- Oszustwa związane z przedpłatami: Firma pobiera opłatę z góry za rozpoczęcie odzyskiwania danych, sporządza raporty z postępów prac oraz zwraca się o uiszczenie kolejnych opłat z tytułu honorariów, podatków lub kosztów odblokowania.
- Teatr: Skaner działa na widoku przez wiele godzin, generując losowe klucze i nie znajdując niczego, ponieważ to wszystko, co potrafi.
Istnieje wąska kategoria uzasadnionych technicznie metod odzyskiwania danych. Pobieranie danych z fizycznie uszkodzonego portfela sprzętowego, odtworzenie frazy, w której brakuje jednego lub dwóch słów, a suma kontrolna ogranicza zakres wyszukiwania, czy też złamanie hasła szyfrującego metodą brute force, którego strukturę częściowo pamiętasz – to wszystko są rzeczywiste problemy inżynieryjne, dla których istnieją realne rozwiązania. Usługi te dokładnie opisują, co mogą, a czego nie mogą zrobić, i nigdy nie proszą o podanie pełnej frazy.
Każdy, kto skontaktuje się z tobą jako pierwszy, oferując odzyskanie środków, które już straciłeś, prowadzi drugie oszustwo wymierzone w ofiary pierwszego.
Jeśli Twoje klucze lub fraza odzyskiwania zostaną ujawnione
Ujawnienie oznacza, że portfel został trwale przejęty. Zmiana kodu PIN lub ponowna instalacja aplikacji nic nie da, ponieważ osoba atakująca może odtworzyć portfel na swoim urządzeniu wyłącznie na podstawie frazy.
Cztery kroki, w kolejności:
- Utwórz nowy portfel na urządzeniu, na którym nie ma jeszcze żadnych danych. Jeśli oryginalne urządzenie może zawierać złośliwe oprogramowanie, nie należy z niego korzystać. Przed kontynuowaniem należy zapisać nową frazę w trybie offline.
- Proszę natychmiast przelać środki. Wszystko należy wysyłać na adres z nowego portfela. Zautomatyzowane boty monitorują zaatakowane adresy i potrafią przejąć wpływające środki w ciągu kilku sekund od ich otrzymania.
- Cofnij wszystkie aktywne autoryzacje tokenów powiązane ze starymi adresami, co uniemożliwia późniejsze pobieranie aktywów na podstawie umów.
- Całkowicie zrezygnuj z używania tego starego wyrażenia. Nigdy nie uda się przywrócić mu bezpieczeństwa. Nie używaj go ponownie i nie pozostawiaj po sobie śladów, które pewnego dnia mógłbyś próbować odzyskać.
Jeśli kwota jest na tyle duża, że bot automatyczny zdążyłby wykonać przelew przed tobą, chłodnia to idealne miejsce na wszystko, co uda ci się uratować.
Uwaga dotycząca kwestii przechowywania. Jeśli kupiłeś kryptowaluty na giełdzie i nigdy ich nie wypłaciłeś, nie posiadasz żadnego klucza prywatnego. Klucz ten znajduje się w posiadaniu platformy; Twoje dane logowania stanowią poświadczenie dostępu do jej systemu, a nie do łańcucha bloków, a włamanie na konto jest problemem związanym z obsługą techniczną, a nie problemem kryptograficznym. Kompromisy między przechowywanie własnych kluczy i powierzenie ich platformie zastanów się, w której z tych sytuacji mógłbyś się kiedykolwiek znaleźć.
Wnioski
Klucz prywatny to bardzo duża liczba losowa, a wszystkie pozostałe elementy portfela są albo od niego wyprowadzone, albo służą do jego ochrony. Klucze publiczne i adresy znajdują się poniżej klucza prywatnego i można je udostępniać. Frazy odzyskiwania oraz rozszerzone klucze prywatne znajdują się powyżej niego i kontrolują wszystko, co znajduje się poniżej. Rozszerzone klucze publiczne zajmują pozycję środkową – są nieszkodliwe dla salda, ale stanowią zagrożenie dla prywatności.
Sama kryptografia sprawdza się od 2009 roku. Problem leży w sposobie obsługi: wadliwe generatory liczb losowych, frazy sfotografowane na telefonach, które synchronizują się z chmurą, oraz osoby namawiane do wpisywania dwunastu słów w formularzu. Świadomość tego, jaki przedmiot trzymasz w ręku i do jakiej kategorii należy, pozwala zapobiec większości tych problemów. W przypadku kwot, na utratę których nie możesz sobie pozwolić, rozwiązania oparte na wielu podpisach oraz Podział klucza MPC wyeliminować pojedynczy punkt awarii, który powstaje w wyniku użycia tego wyrażenia, co stanowi główny powód, dla którego należy rozważyć kwestie bezpieczeństwa przy wybór portfela.






