Klucz prywatny Bitcoin: łatwy do zrozumienia przegląd

17.02.2021
Category: Należy Pamiętać


Klucz prywatny Bitcoin to niewyobrażalnie duża liczba, która jest utrzymywana w tajemnicy i używana do uzyskiwania dostępu do BTC podczas dokonywania transakcji. W tym artykule wyjaśniono, czym są klucze prywatne Bitcoin i w jaki sposób są używane do udzielania dostępu do funduszy. Zawiera również szczegółowe informacje na temat różnic między różnymi formatami kluczy prywatnych, takimi jak szesnastkowy, format importu portfela (WIF) i format importu skompresowanego portfela (skompresowany WIF).

Co to jest klucz prywatny Bitcoin?

Jak wspomniano we wstępie, klucz prywatny Bitcoin to po prostu ogromna liczba. W szczególności jest to liczba 256-bitowa. Bit jest po prostu „cyfrą binarną, co oznacza, że ​​pojedynczy bit to 0 lub 1. Nie ma innych możliwości określenia wartości pojedynczego bitu. Należy również zauważyć, że bit to najmniejsza jednostka danych, którą mogą przetwarzać komputery.

Tak więc, jeśli klucz prywatny Bitcoin jest tylko 256-bitową liczbą, to czy klucz prywatny może być wyrażony jako 256-znakowy ciąg jedynek i zer? Rzeczywiście, może. Oto przykład:

1101101001000110101101010101100111110010000 1101100111 1101001 0101

01011 01 1101100011001 0 0 1 00 1011100 1001011001001010110001011100001

110 1100111 1010 111001011111110000110111111 0 01 10 111 0100 0111011010100 0

010000010010 110000 111001 1 1001110010110000000100111101101100101

To jest przykład klucza prywatnego Bitcoin w formacie binarnym.

Jeśli masz wystarczająco silną wolę i cierpliwość, teoretycznie możesz wygenerować losowy klucz prywatny, rzucając monetą 256 razy i zapisując wynik za każdym razem. Po prostu wybierz, która strona odpowiada której wartości (albo orzeł jest równy 0, a reszka jest równy 1 lub odwrotnie) i odwróć.

W praktyce nie należy stosować tej metody wyboru klucza losowego. Ogólnie rzecz biorąc, ludzie nie są zbyt dobrzy w generowaniu entropii (losowości). Na przykład, być może sposób rzucania monetą nie jest dokładnie taki sam za każdym razem, co prowadzi do wypadania reszek z większą szybkością niż orłów. A może moneta może mieć niewielką fizyczną niedoskonałość, która powoduje, że orły pojawiają się znacznie częściej niż reszki.

Klucz prywatny Bitcoin najlepiej wygenerować za pomocą narzędzia lub programu, który zapewnia wysoki poziom entropii dla maksymalnego bezpieczeństwa. Pamiętaj, że klucze prywatne Bitcoin powinny być zawsze utrzymywane w tajemnicy.

Oczywiście binarny nie jest jedynym formatem, w którym można wyrazić klucze prywatne Bitcoin. W rzeczywistości istnieje kilka innych formatów. Jeden nazywa się dziesiętnym, co oznacza po prostu zapisanie liczby w pełnej formie. Na przykład liczba „trzynaście milionów zapisana dziesiętnie to 13 000 000. Używając prostego narzędzia konwertującego, klucz prywatny Bitcoin w powyższym formacie binarnym można wyrazić w formacie dziesiętnym w następujący sposób:

Jak widać, jest to niesamowicie duża liczba. Mówiąc bardzo prosto, to właśnie napędza siłę zabezpieczeń Bitcoin – niewiarygodnie duże liczby.

Bezpieczeństwo klucza prywatnego Bitcoin

Portfele Bitcoin są trochę jak konta bankowe zablokowane bardzo, bardzo dużymi liczbami jako kodami dostępu. Gdyby ktoś poprawnie odgadł numer twojego klucza prywatnego Bitcoin, miałby dostęp do twojego BTC i mógłby łatwo ukraść twoje fundusze. Jednak ponieważ w grę wchodzą tak gigantyczne liczby, prawdopodobieństwo takiego zdarzenia jest w zasadzie zerowe.

Pomyśl o tym w ten sposób: jeśli każdy człowiek na Ziemi miałby program komputerowy, który pozwoliłby im odgadnąć klucz prywatny Bitcoin 1 miliard razy dziennie na osobę, każdego dnia, przez 100 lat, szanse, że ktokolwiek poprawnie odgadnie twój Numer klucza prywatnego nadal będzie równy 1 na 3512 469 265 893 923 428 170 004. Pozwól temu na chwilę zapaść.

A co z publicznymi kluczami i adresami? Ponieważ są one udostępniane publicznie, czy ktoś nie może odkryć Twojego klucza prywatnego? Cóż, jak się okazuje, nie jest to bardziej prawdopodobne niż ktoś, kto odgadnie Twój prywatny klucz Bitcoin.

Istnieją dwie warstwy zabezpieczeń, które uniemożliwiają atakującemu wykrycie Twojego klucza prywatnego Bitcoin, nawet jeśli zna Twój adres BTC: Kryptografia krzywych eliptycznych (ECC) i kryptograficzne funkcje skrótu.

Część I: Kryptografia krzywych eliptycznychOprogramowanie Bitcoin wykorzystuje zaawansowaną formę kryptografii klucza publicznego zwaną kryptografią krzywych eliptycznych. W szczególności Bitcoin wykorzystuje implementację secp256k1 algorytmu podpisu cyfrowego krzywej eliptycznej (ECDSA). Wydaje się to bardzo złożone i rzeczywiście matematyka stojąca za ECDSA jest niezwykle zaawansowana. Na szczęście tak naprawdę nie musisz rozumieć szczegółów, aby zrozumieć, w jaki sposób ECDSA chroni prywatne klucze Bitcoin.

Jak zauważono na początku artykułu, klucz prywatny Bitcoin to po prostu bardzo duża liczba. Kiedy ta bardzo duża liczba zostanie pomnożona przez z góry określony „punkt generatora na krzywej eliptycznej secp256k1, otrzymamy nowy punkt na tej samej krzywej. Ten nowy punkt to klucz publiczny, który odpowiada danemu kluczowi prywatnemu. Jeden klucz prywatny tworzy dokładnie jeden klucz publiczny.

Zatem z bardzo wysokiego poziomu klucz publiczny to tylko punkt na tej krzywej (y ^ 2 == x ^ 3 + 7). Punkt ma współrzędną x i współrzędną y. Klucz publiczny to po prostu te dwie wartości ustawione względem siebie (z małym prefiksem wskazującym format).

Daje to dwie bardzo ważne korzyści. Po pierwsze, klucz publiczny może być współdzielony z siecią i nadal praktycznie niemożliwe jest odtworzenie klucza prywatnego. Po drugie, klucz prywatny może dostarczać podpisów cyfrowych, dzięki którym sieć może matematycznie udowodnić ze 100% pewnością, że dany klucz prywatny Bitcoin dostarczył podpis, bez konieczności znajomości samego klucza prywatnego. W ten sposób przeprowadzana jest większość transakcji.

Niektórzy badacze zauważyli, że w pewnym momencie w przyszłości teoretyczny atak komputerów kwantowych może umożliwić złamanie kryptografii ECDSA. W celu zwiększenia poziomu bezpieczeństwa – oraz łatwiejszego i bardziej przyjaznego UX – zwykle używamy adresów podczas dokonywania transakcji, a nie kluczy publicznych. To dodaje dodatkową warstwę szyfrowania do klucza publicznego. Dowiedzmy się więcej o tym, czym różni się adres od klucza publicznego.

Część II: Kryptograficzne funkcje skrótuKryptograficzne funkcje skrótu to równania matematyczne używane do tworzenia cyfrowego odcisku palca danych. Posiadają kilka ważnych właściwości, dzięki którym są niezwykle przydatne.

Po pierwsze, kryptograficzne funkcje skrótu są jednokierunkowe, co oznacza, że ​​wejście wchodzi i wychodzi, ale nie ma absolutnie żadnego sposobu, aby określić dane wejściowe z samego wyjścia.

Po drugie, bez względu na to, jakie dane lub jaką długość wprowadzisz, otrzymasz w zamian losowo wyglądający ciąg danych o ustalonej długości i nie oferujący żadnych wskazówek dotyczących danych wejściowych, które go wygenerowały. Jeśli wprowadzisz krótkie wprowadzenie, powiedzmy, dziesięciu słów, uzyskasz 64 znaki wyjściowe. Jeśli wprowadzisz dziesięć tysięcy słów, nadal otrzymasz 64 znaki.

Po trzecie, to samo wejściezawszebędzie dawało takie same wyniki. Jeśli użyjesz tego samego wejścia i tej samej funkcji skrótu dziesięć milionów razy z rzędu, otrzymasz te same dane wyjściowe dziesięć milionów razy.

Po czwarte, prawdopodobieństwo znalezienia dwóch danych wejściowych, które wytwarzają ten sam wynik jest tak niewiarygodnie małe, że można je bezpiecznie założyć jako niemożliwe. Gdy ktoś odkryje dwa wejścia, które dają dokładnie takie same dane wyjściowe, funkcja skrótu jest uznawana za zepsutą i niezabezpieczoną.

Wreszcie, komputery muszą być w stanie wykonać funkcję skrótu bardzo, bardzo szybko. Oznacza to również, że gdy masz tajne dane wejściowe, trywialne jest potwierdzenie, że dane wyjściowe (zwane hashem) są zgodne z wcześniej ogłoszonym publicznym hashem.

Dlatego, aby zapewnić użytkownikom dodatkową warstwę bezpieczeństwa, często używamy adresów Bitcoin zamiast kluczy publicznych. Gdy klucz publiczny jest szyfrowany za pomocą algorytmu Secure Hash Algorithm 256 (SHA-256), a następnie wynikowy skrót jest ponownie szyfrowany za pomocą funkcji RACE Integrity Primitives Evaluation Message Digest 160 (RIPEMD-160), wynik jest znany po prostu jako „klucz publiczny haszysz. Pamiętaj, że funkcji skrótu nie można odwrócić, więc jeśli znasz czyjś skrót klucza publicznego, możesz wysłać mu fundusze, ale nie możesz określić, jaki jest jego klucz publiczny (nie mówiąc już o kluczu prywatnym).

Po uzyskaniu skrótu klucza publicznego do utworzenia adresu potrzeba jeszcze kilku kroków. Aby uzyskać adres, należy dodać bajt wersji (zwykle 0x00 dla protokołu Bitcoin) na początku skrótu klucza publicznego. Ten nowy ciąg jest następnie ponownie haszowany za pomocą SHA-256. Pierwsze cztery bajty (32 bity) tego skrótu (uważanego za sumę kontrolną) są dodawane na koniec poprzedniego skrótu RIPEMD-160, a następnie cały ciąg jest konwertowany z ciągu bajtów na łańcuch zakodowany algorytmem base58. To jest adres.

Adresy Bitcoin zawsze zaczynają się od „1, „3 lub „bc1, dzięki czemu można je łatwo odróżnić od kluczy publicznych i prywatnych.

Możemy myśleć o używaniu adresu jako o skutecznym zabezpieczeniu klucza publicznego, który technicznie można udostępnić publicznie. Jedyną rzeczą, którą absolutnie należy zachować w tajemnicy, jest klucz prywatny Bitcoin. Jeśli jednak dostępna jest dodatkowa warstwa zabezpieczeń, warto używać jej jako zabezpieczenia przed awarią. Ponadto adresy są znacznie krótsze i łatwiejsze w zarządzaniu niż klucze publiczne, dzięki czemu zapewniają lepsze wrażenia użytkownika.

Jak działa klucz prywatny Bitcoin?

Przyjrzyjmy się prostemu przykładowi wykorzystania klucza prywatnego w transakcji.

Załóżmy, że Alicja chce kupić latte w Bob’s Coffee Shop. Cena latte wynosi obecnie 0,0005 BTC. Przed transakcją środki Alicji są bezpieczne w jej portfelu. Alicja musi tylko dostarczyć dwie rzeczy do sieci Bitcoin, aby dokończyć zakup: swój klucz publiczny i podpis cyfrowy z jej prywatnego klucza Bitcoin.

Przypomnijmy, że podpisy cyfrowe są bezpiecznym sposobem publicznej weryfikacji własności klucza prywatnego, bez konieczności ujawniania klucza prywatnego. Podpis cyfrowy można traktować jako jednorazowe hasło generowane dla każdej unikalnej transakcji.

W naszym przykładzie, o ile Alicja jest jedyną osobą, która zna swój prywatny klucz Bitcoin, jest także jedyną osobą, która może utworzyć podpis cyfrowy wymagany do wydania środków z jej portfela. Powiedzmy, że Alice ma 1 BTC w portfelu przed zakupem latte. Alice tworzy unikalny podpis cyfrowy dla 0,0005 BTC potrzebnych do zakupu latte. Transakcja jest transmitowana do sieci Bitcoin i potwierdzana przez węzły Bitcoin. Ten 0,0005 BTC jest teraz dostępny w portfelu należącym do Bob’s Coffee Shop. Nikt inny, w tym Bob’s Coffee Shop, nie może wydać pozostałych 0,9995 BTC w portfelu Alice.

Jeśli Alicja lub ktoś inny spróbuje użyć tego samego podpisu cyfrowego do drugiej transakcji, węzły Bitcoin zawsze ją odrzucą. Druga transakcja wymagałaby nowego, unikalnego podpisu cyfrowego.

Formaty klucza prywatnego Bitcoin

Jak już wspomniano, istnieje wiele formatów, w których można wyrazić ten sam klucz prywatny. Dwa formaty, które omówiliśmy na początku artykułu – dwójkowy i dziesiętny – prawie nigdy nie są używane. Są przydatne do generowania klucza prywatnego Bitcoin, ale większość aplikacji portfeli używa innych formatów. W szczególności portfele zazwyczaj używają formatu szesnastkowego, formatu importu portfela (WIF) i / lub formatu importu skompresowanego portfela (skompresowany WIF).

Przyjrzyjmy się trzem najpopularniejszym formatom kluczy prywatnych.

SzesnastkowySzesnastkowy to zapis, w którym używa się tylko cyfr cyfr 0–9 i liter A – F. Dzięki temu dane wyrażone szesnastkowo są łatwiejsze do odczytania. Klucze prywatne Bitcoin zapisane w formacie binarnym lub dziesiętnym można łatwo przekonwertować na szesnastkowy.

Oto ten sam klucz prywatny Bitcoin, który zapisaliśmy w postaci binarnej i dziesiętnej na początku artykułu, przekonwertowany na szesnastkowy.

WIF i skompresowany WIFFormat importu portfela (WIF) i skompresowany format importu portfela skompresowany (skompresowany WIF) to najczęściej używane formaty kluczy prywatnych Bitcoin. Zapewniają dwie główne zalety w stosunku do wyżej wymienionych formatów. Po pierwsze, są znacznie krótsze. Pomaga to zmniejszyć liczbę błędów kopiowania / wklejania. Po drugie, używają kodu base58Check, aby sprawdzić potencjalne błędy. To sprawia, że ​​formaty WIF są bardzo korzystne z punktu widzenia użytkowników końcowych. Klucze prywatne zakodowane w Base58Check dla WIF zawsze zaczynają się od „5, a skompresowane klucze prywatne WIF zawsze zaczynają się od „K lub „L.

Ważne jest, aby zrozumieć, że skompresowany WIF nie odnosi się do kompresji klucza prywatnego. Klucze prywatne Bitcoin nie są kompresowane ani nieskompresowane. W rzeczywistości można zauważyć, że skompresowany format WIF, jak widać w poniższym przykładzie, jest o jeden bajt dłuższy niż WIF. Nazywa się to „skompresowanym WIF, ponieważ wskazuje oprogramowaniu, aby uzyskać z niego skompresowany klucz publiczny. Podobnie „nieskompresowany plik wif wskazuje oprogramowaniu portfela, aby uzyskać nieskompresowany klucz publiczny.

Oczywiście zarówno klucz prywatny WIF, jak i skompresowany klucz prywatny WIF można łatwo przekonwertować na inny format. W tym sensie zarówno skompresowany klucz publiczny, jak i nieskompresowany klucz publiczny mogą pochodzić z WIF lub skompresowanego WIF. Może to wymagać dodatkowego etapu konwersji na początku.

Korzystając z takiego narzędzia, możesz łatwo przekonwertować klucz prywatny Bitcoin na różne formaty. Używając tego samego adresu powyżej w formatach szesnastkowych, otrzymujemy następujące wyniki:

Klucz prywatny WIF:

Skompresowany klucz prywatny WIF:

Inne formaty kluczy prywatnych BitcoinPodczas gdy WIF i skompresowane WIF są najpopularniejszymi formatami kluczy prywatnych Bitcoin, istnieje kilka innych formatów, które zaczynają zyskiwać na popularności. Dowiedzmy się o nich więcej.

Mini klucz prywatnyPodobnie jak WIF, mini klucze prywatne są również zakodowane w Base58Check, aby zapobiec literówkom i błędom kopiowania / wklejania. Należy pamiętać, że mini klucze prywatne można tworzyć tylko od podstaw, co oznacza, że ​​nie można przekonwertować pełnowymiarowego klucza prywatnego na mini klucz prywatny. Można jednak przekonwertować mini klucz prywatny na pełnowymiarowy klucz prywatny.

Mini klucze prywatne mogą mieć zaledwie 30 znaków. Zaczynają się na „S i wyglądają mniej więcej tak.

BIP38Protokół Bitcoin Improvement Protocol 38 (BIP38) zapewnia sposób szyfrowania klucza prywatnego Bitcoin za pomocą długiego hasła złożonego ze słów czytelnych dla człowieka. Dzięki temu dodatkowemu krokowi szyfrowania możliwe jest bezpieczne udostępnienie zaszyfrowanego klucza prywatnego stronie trzeciej. Bez klucza prywatnego Bitcoin i prawidłowego hasła dostęp do środków przechowywanych w tym portfelu jest niemożliwy.

Na przykład adres i zaszyfrowany klucz prywatny można wydrukować na fizycznym bitcoinie, podczas gdy hasło jest przechowywane w oddzielnej lokalizacji lub zapamiętane. Chociaż inni mogą znać klucz prywatny, fundusze są nadal bezpieczne.

W każdym razie szyfrowanie BIP38 wymaga od właściciela portfela podania zaszyfrowanego klucza prywatnego Bitcoin wraz z dodatkowym hasłem dostępu do portfela BTC i wydawania środków. BIP38 można traktować jako formę uwierzytelniania dwuskładnikowego, w której właściciel portfela ustawia spersonalizowane hasło wielokrotnego użytku. Podobnie jak w przypadku tradycyjnych haseł, powinieneś wybrać frazę trudną do odgadnięcia dla innych.

Klucze prywatne BIP38 zawsze zaczynają się od „6P i wyglądają mniej więcej tak.

Dowiedz się więcej o podstawach Blockchain

Jeśli chcesz dowiedzieć się więcej o technologii blockchain, zapoznaj się z serią Blockchain Fundamentals firmy Komodo. Te posty wyjaśniają szeroką gamę kluczowych tematów związanych z blockchain, od takich rzeczy, jak wydobywanie kryptowalut i handel na marżach, po Proof of Work i Proof of Stake.

Już dziś rozpocznij swoją przygodę z blockchainem z Komodo.

We use cookies to provide you with the best possible experience. By continuing, we will assume that you agree to our cookie policy