Bitcoin.com

Czym są klucze prywatne?

Klucz prywatny to tajny numer, który pozwala zarządzać Twoimi kryptowalutami. Dowiedz się, jaki związek mają klucze prywatne z frazami seedowymi i adresami oraz jakie informacje można bezpiecznie udostępniać.

Ostatnia aktualizacja
Opublikowano
Czas czytania4 min read
Autor
Neil Author
Neill Velardo
Crypto content specialist since 2017; reviews iGaming platforms firsthand
Zweryfikował
Graham Stone Author Image
Graham Stone
Journalism graduate covering Bitcoin and crypto since 2017
What are Private Keys?

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.

FormatPrzykładDługośćGdzie to widać
Surowe dane szesnastkowe0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D64 znakiNarzędzia programistyczne, ekrany eksportu kluczy
WIF (nieskompresowany)5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ51 znaków, zaczyna się od cyfry 5Starsze portfele papierowe, import danych ze starszych wersji
WIF (skompresowany)KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP9861752 znaki, zaczyna się na literę K lub LStandardowy eksport za pomocą jednego przycisku
Sieć testowa WIFZaczyna się na 9 lub cod 51 do 52 znakówWyłącznie do celów programistycznych i testowych
zaszyfrowane zgodnie ze standardem BIP-38Zaczyna się od 6P58 znakówPortfele 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.

  1. 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.
  2. 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.
  3. 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ść.
  4. 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:

StandardowyPrefiks ścieżkiTyp adresuPrefiks adresu
BIP-44m/44'/0'/0'Legacy (P2PKH)1
BIP-49m/49'/0'/0'SegWit zagnieżdżony (P2SH)3
BIP-84m/84'/0'/0'Natywny SegWit (P2WPKH)bc1q
BIP-86m/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ć.

PrzedmiotCzym to jestNa podstawieCzy można wydać?Ujawnia historię?
Fraza odzyskiwania12 lub 24 słowa kodujące entropię głównąGenerowanie losoweTak, wszystkoTak, wszystko
Nasiona podstawoweWartość 512-bitowaTo wyrażenie oraz dowolne hasłoTak, wszystkoTak, wszystko
Rozszerzony klucz prywatny (xprv)Klucz prywatny oraz kod łańcuchaNasionoTak, cała ta gałąźTak, cała ta gałąź
Klucz prywatny256-bitowy klucz tajnyDrzewo, czyli generacja autonomicznaTak, wyłącznie środki własneTylko swój własny adres
Rozszerzony klucz publiczny (xpub)Klucz publiczny oraz kod łańcuchaxprvNieTak, cała ta gałąź
Klucz publicznyPunkt krzywej, 33 lub 65 bajtówKlucz prywatnyNieTylko swój własny adres
Adres portfelaKlucz publiczny z hashowaniem i kodowaniemKlucz publicznyNieTylko swój własny adres
Identyfikator transakcjiHash identyfikujący jedną transakcjęSama transakcjaNieTylko 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ć?

PozycjaUdostępnić?Co ktoś zyskuje
Fraza odzyskiwaniaNigdyPełna kontrola nad każdym portfelem i generowanym przez niego adresem. Nieodwracalne
Klucz prywatnyNigdyPełna kontrola nad środkami znajdującymi się pod adresem tego klucza
Rozszerzony klucz prywatny (xprv)NigdyPełna kontrola nad całym oddziałem
Rozszerzony klucz publiczny (xpub)UnikajPełny wgląd w salda i historię transakcji na wielu adresach. Brak możliwości wydawania środków
Klucz publicznyBezpieczne pod względem technicznym, rzadko potrzebneMożliwość weryfikacji podpisów oraz powiązania danego klucza z jego adresem
Adres portfelaTak, za darmoMożliwość wysyłania środków na ten adres oraz wgląd w historię tego adresu
Identyfikator transakcjiTak, w razie potrzebyMoż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.

TerminCo chroniPodróżujesz z portfelem?Jeśli to zgubisz
Kod PIN aplikacji lub dane biometryczneDostęp do aplikacji na jednym urządzeniuNieZainstaluj ponownie i przywróć system przy użyciu hasła
Hasło do wydatkówAutoryzacja w aplikacjiNiePrzywróć dane na podstawie frazy lub kopii zapasowej
Hasło szyfrujące kopię zapasowąZaszyfrowany plik kopii zapasowejNie, chroni ten plikZaszyfrowana kopia zapasowa jest bezużyteczna
Hasło BIP-39 (25. słowo)Nic. Zmienia się tylko to, który portfel generuje twoja frazaTak, z punktu widzenia kryptografiiNie 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.

MetodaJak to działaObrona
Phishing i fałszywa pomoc technicznaOsoba 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 zatwierdzeniaProśba o podpisanie dokumentu powoduje uszczuplenie środków, zamiast przynosić korzyści, jak twierdzi stronaPrzeczytaj, co podpisujesz, i cofnij nieaktualne zgody
Przejęcie zawartości schowkaZłośliwe oprogramowanie zastępuje skopiowany adres adresem należącym do atakującegoPo wklejeniu sprawdź cały ciąg znaków i zweryfikuj go na ekranie urządzenia
Oprogramowanie złośliwe typu infostealerWyszukuje na urządzeniu pliki portfela, zdjęcia nasion oraz ciągi kluczyNigdy nie rób zdjęć ani nie wpisuj fraz na urządzeniach podłączonych do Internetu
Kopie zapasowe synchronizowane w chmurzeZdjęcie zawierające frazę synchronizuje się automatycznie i zostaje ujawnione w wyniku włamania na kontoNie 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ż posiadaInstaluj wyłącznie oprogramowanie od oficjalnego wydawcy
Sfałszowane portfele sprzętoweUrządzenie sprzedawane z fabrycznie zainstalowaną frazą atakującegoKupuj bezpośrednio od producenta, zawsze twórz własne frazy
Przymus fizycznyBezpośrednie zagrożenie dla znanego posiadaczaDyskrecja 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:

  1. 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.
  2. 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.
  3. Cofnij wszystkie aktywne autoryzacje tokenów powiązane ze starymi adresami, co uniemożliwia późniejsze pobieranie aktywów na podstawie umów.
  4. 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.

Najczęściej zadawane pytania

Czy fraza nasienna to to samo co klucz prywatny?
Nie. Fraza seedowa znajduje się wyżej niż klucze prywatne w strukturze portfela. Zgodnie ze standardami BIP-39 i BIP-32 fraza ta generuje seed główny, a seed główny generuje całe drzewo kluczy prywatnych. Każdy, kto posiada tę frazę, kontroluje wszystkie klucze w tym drzewie, podczas gdy pojedynczy klucz prywatny kontroluje jedynie środki zablokowane przypisane do jego własnego klucza publicznego. W praktyce osoba posiadająca Twoją frazę ma taką samą władzę, jak osoba posiadająca jednocześnie wszystkie Twoje klucze.
Czy dwie osoby mogą mieć ten sam klucz prywatny?
Teoretycznie jest to możliwe, ale w praktyce tak się nie stanie. Istnieje około 1,16 × 10^77 prawidłowych kluczy prywatnych. Portfele korzystają z kryptograficznie bezpiecznych generatorów losowości, a prawdopodobieństwo kolizji dwóch niezależnie wygenerowanych kluczy jest o wiele rzadsze niż prawdopodobieństwo wystąpienia wszystkich innych zagrożeń, na jakie można się natknąć, łącznie wziętych. Nigdy nie zaobserwowano kolizji i nie jest to problem, który warto uwzględniać w planach.
Czy ktoś może odgadnąć mój klucz prywatny na podstawie mojego klucza publicznego lub adresu?
Nie istnieje żadna praktyczna metoda. Wyprowadzenie klucza publicznego z klucza prywatnego polega na szybkim mnożeniu na krzywej eliptycznej, a odwrócenie tego procesu oznacza rozwiązanie problemu logarytmu dyskretnego na krzywej eliptycznej, który od dziesięcioleci opiera się atakom zarówno akademickim, jak i komercyjnym. Adresy stanowią dodatkową warstwę haszowania. Komputery kwantowe stanowią jedyną teoretyczną drogę, a obecnie nie istnieje żadna maszyna, która byłaby choćby w najmniejszym stopniu zdolna do tego zadania.
Jak długa jest długa klucza prywatnego Bitcoina?
256 bitów, co odpowiada 32 bajtom. W postaci surowego zapisu szesnastkowego ma to 64 znaki. W formacie importu portfela jest to 51 znaków zaczynających się od cyfry 5 lub 52 znaki zaczynające się od litery K lub L w przypadku wersji skompresowanej. W przypadku frazy odzyskiwania zgodnej ze standardem BIP-39 równoważny poziom bezpieczeństwa wyraża się jako 12 słów dla 128 bitów entropii lub 24 słowa dla 256 bitów.
Czy kolejność słów w mojej frazie nasiennej ma znaczenie?
Tak, całkowicie. Każda pozycja słowa odpowiada konkretnej grupie jedenastu bitów. Zmiana kolejności słów powoduje powstanie innych bitów, co z kolei prowadzi do powstania innego klucza początkowego i innego portfela. Ostatnie słowo zawiera również sumę kontrolną, więc zmieniona kolejność frazy zostanie zazwyczaj od razu odrzucona, zamiast po cichu utworzyć pusty portfel.
Gdzie jest przechowywany mój klucz prywatny?
W portfelu z samodzielnym przechowywaniem klucze są generowane na żądanie na podstawie nasion przechowywanych na Twoim urządzeniu, a same nasiona są przechowywane w bezpiecznej pamięci urządzenia. W przypadku portfela sprzętowego materiał klucza pozostaje wewnątrz elementu zabezpieczającego i nigdy go nie opuszcza, a urządzenie podpisuje transakcje wewnętrznie. W przypadku konta powierniczego platforma przechowuje klucze, a użytkownik posiada jedynie dane logowania. Klucze nigdy nie są przechowywane w łańcuchu bloków, który rejestruje jedynie transakcje i związane z nimi adresy.
Czy udostępnianie mojego identyfikatora xpub jest bezpieczne?
Traktuj to jako informację prywatną. Klucz xpub nie pozwala na dokonywanie żadnych wydatków, więc udostępnienie go nie spowoduje bezpośredniej kradzieży twoich środków. Pozwala on jednak odbiorcy na wygenerowanie i monitorowanie wszystkich adresów w tej gałęzi twojego portfela, co na bieżąco zapewnia mu wgląd w całe saldo oraz historię transakcji. Udostępniaj go wyłącznie oprogramowaniu lub osobom, którym zdecydowałeś się powierzyć taki wgląd, i nigdy w odpowiedzi na nieproszoną prośbę.
Czy identyfikator transakcji stanowi informację wrażliwą?
Nie. Identyfikator transakcji identyfikuje jedną transakcję w łańcuchu bloków i nie daje żadnej kontroli nad żadnym portfelem. Podawanie go w celu potwierdzenia płatności lub sprawdzenia potwierdzenia jest rutynową praktyką. Pozwala to jednak każdemu sprawdzić adresy i kwoty w tej transakcji, więc jedyną kwestią, którą należy wziąć pod uwagę, jest prywatność.
Czy narzędzia do odnajdywania lub odzyskiwania klucza prywatnego są w ogóle skuteczne?
Narzędzia, które rzekomo pozwalają odnaleźć lub odgadnąć metodą brute force utracony klucz prywatny, nie działają, ponieważ przeszukanie przestrzeni kluczy o długości 256 bitów jest obliczeniowo niemożliwe. Produkty reklamujące tę funkcję to zazwyczaj złośliwe oprogramowanie lub oszustwa polegające na wyłudzaniu opłat z góry. Legalne techniczne metody odzyskiwania danych istnieją w przypadku wąskich problemów, takich jak wydobycie danych z uszkodzonego sprzętu lub uzupełnienie frazy o jedno lub dwa brakujące słowa, a usługi te nigdy nie proszą o podanie pełnej frazy odzyskiwania.
Co się stanie, jeśli zgubię klucz prywatny, ale nadal mam frazę odzyskiwania?
Nic nie jest utracone. Ta fraza pozwala odtworzyć każdy klucz prywatny, jaki kiedykolwiek został wygenerowany w Twoim portfelu, więc przywrócenie jej w dowolnym kompatybilnym portfelu przywraca dostęp. Działa to wyłącznie w jedną stronę: klucz prywatny nie pozwala odtworzyć frazy ani uzyskać dostępu do żadnego innego klucza w portfelu.

Zacznij bezpiecznie inwestować dzięki portfelowi Bitcoin.com

Do tej pory utworzono ponad 85 mln portfeli. Wszystko, czego potrzebujesz, aby bezpiecznie kupować, sprzedawać, wymieniać i inwestować swoje bitcoiny oraz kryptowaluty.

A screenshot of the Bitcoin.com Wallet app

Zeskanuj kod, aby pobrać portfel Bitcoin.com

Zeskanuj ten kod QR za pomocą urządzenia mobilnego, a zostaniesz automatycznie przekierowany na odpowiednią stronę sklepu.