Jednym z wynalazków Satoshi Nakamoto, które miały na celu tchnięcie życia w Bitcoina, jest kodowanie Base58, rodzaj funkcji kryptograficznej zaprojektowanej specjalnie dla Bitcoin którego główną funkcją jest przekształcanie bajtów powstałych w wyniku syntezy danych reprezentowanych przez ciąg bajtów (do których zastosowano określony proces kryptograficzny w celu przekształcenia danych wyjściowych do standardowego formatu w obrębie sieci) w coś, co jest łatwe do odczytania i weryfikacji.
Funkcja ta może nie tylko kodować informacje, ale także je dekodować i wykonywać suma kontrolna tego samego. W rzeczywistości wszystkie te funkcje są łatwo identyfikowalne w kodzie źródłowym Bitcoina. Po pierwsze, definicje wszystkich tych funkcji są dostępne w nagłówku (nagłówek definicji funkcji i makr w C/C++), base58.h, dostępnym w następujący link.

Chociaż kod funkcji można przejrzeć i zweryfikować, sprawdzając plik base58.cpp, dostępne pod tym innym linkiemTe dwie części sprawiają, że Base58 działa w Bitcoinie.
Funkcja ułatwiająca korzystanie z Bitcoina
Zasadniczo Base58 robi coś, co ułatwia korzystanie z Bitcoina: przekształca dane źródłowe adresu do formatu czytelnego i zrozumiałego dla nas. Na przykład coś tak prostego jak ta funkcja pozwala nam zredukować duże ilości danych, takie jak klucz. ECDSA, w coś znacznie bardziej przejrzystego i czytelnego, na przykład adres Bitcoin składający się z 20 znaków (w standardowej lub starszej wersji tych adresów, zaczynającej się od 1 lub 3).
Jak więc działa cały ten proces? Cóż, jest on dość prosty i można go podzielić na następujące kroki:
- Najpierw zbierane są dane dotyczące wersji/aplikacji wraz z odpowiadającymi im danymi klucza publicznego dla naszych kryptowalut. Dane te są przetwarzane w bajtach.
- Następnie obliczany jest skrót SHA-256 wszystkich połączonych danych. Oto nasz pierwszy skrót SHA-256.
- Poprzedni wynik jest przyjmowany jako wartość nowej rundy SHA-256, a na tej podstawie otrzymujemy skrót SHA-256 poprzedniego skrótu.
- Po obliczeniu drugiego skrótu bierzemy pierwsze cztery bajty będące jego wynikiem.
- Teraz łączymy dane z drugiego skrótu SHA-256 (krok 3) i dołączamy je do zestawu danych z kroku 1.
- Powyższa konkatenacja będzie traktowana jako zbiór bajtów w formacie big-endian (format obliczeniowego przechowywania i przetwarzania danych). W tym momencie rozpoczyna się konwersja danych do Base58, z użyciem specjalnego alfabetu (zdefiniowanego na poniższym rysunku). Podczas tego procesu zwracana jest uwaga na normalizację wyniku, aby nie zawierał zer Base58 na początku ciągu (w takim przypadku są one reprezentowane wartością „1”).
- Na koniec proces kończy się połączeniem wszystkich „1” uzyskanych w poprzednim kroku, co pozwala uzyskać ostateczną wartość w systemie Base58.

Używany w adresach i innych danych kryptograficznych w Bitcoinie i poza nim
Wykorzystanie Base58 można zaobserwować w różnych aspektach Bitcoina. Na przykład, jest ono wykorzystywane w kodowaniu adresów Bitcoin, ponieważ są one przetwarzane przez funkcję Base58 w celu przekształcenia ich w znane adresy Bitcoin. Jest również wykorzystywane w kluczach prywatnych w formacie WIF. Nie jest ono jednak stosowane tylko w Bitcoinie; inne kryptowaluty również korzystają z tej funkcji. Na przykład instrumenty pochodne Bitcoina, takie jak Litecoin o dogecoin W swoim oprogramowaniu stosują Base58, podobnie jak inne kryptowaluty i waluty cyfrowe, takie jak Ripple, myślnik, Eliksir, a nawet Międzyplanetarny system plików (IPFS) W swoim oprogramowaniu wykorzystuje również Base58.
To wyraźnie pokazuje ogromną użyteczność tej funkcji, która zyskała popularność nie tylko w świecie kryptowalut, ale także w różnych przestrzeniach poświęconych oferowaniu zdecentralizowanych technologii. Dzieło Satoshi Nakamoto zostało tu uwzględnione nie tylko ze względu na jego niezwykłą funkcjonalność, ale także jako hołd i przypomnienie wszystkiego, co zostało osiągnięte od czasu, gdy ujawnił swoje dzieło światu.
Autor


