Jak podpisy cyfrowe i haszowanie chronią Twoje transakcje

Podpisy cyfrowe i haszowanie

Podpisy cyfrowe i kryptograficzne funkcje skrótu stanowią tajny sos, który sprawia, że ​​kryptowaluta działa. Można powiedzieć, że włożyli krypto do waluty. Twój podpis cyfrowy potwierdza, że ​​masz klucz prywatny, który potwierdza własność zasobów opisanych w transakcji. Funkcja skrótu definiuje i zabezpiecza transakcję.

Kryptografia – czy chcesz poznać sekret?

Podpisy cyfrowe i funkcje skrótu funkcjonują w kryptografii, więc czym jest kryptografia? Kryptografia definiuje sztukę i naukę kodowania i dekodowania wiadomości w celu zachowania prywatności między komunikatorami.

Salad Days of Cryptography

W różnych okresach na przestrzeni lat dominują różne formy kryptografii. W czasach Juliusza Cezara wystarczyło obracanie alfabetu. Dlatego kryptolodzy nazywają to „szyfrem Cezara”. Zamiast słowa „kot”, zaszyfrowana wiadomość może po prostu obrócić wszystkie litery o jeden krok w lewo, więc słowo „kot” oznacza „dbu”. W filmie 2001: Odyseja kosmiczna, obróć litery „HAL” w ten sam sposób i co otrzymasz?

W miarę upływu czasu systemy kryptograficzne psują się, ponieważ kryptoanalitycy rozwiązują każdy dany system.

Kryptografia klucza publicznego

obraz podpisów cyfrowych

Obecnie dominuje kryptografia asymetryczna, znana również jako szyfrowanie klucza publicznego / klucza prywatnego lub po prostu kryptografia klucza publicznego. Klucze publiczne i klucze prywatne to po prostu liczby.

Termin asymetryczny odróżnia go od kryptografii symetrycznej. W kryptografii symetrycznej ten sam klucz służy zarówno do szyfrowania, jak i odszyfrowywania wiadomości. W konsekwencji klucz musi pozostać ukryty. Stwarza to problem z dystrybucją kluczy – jak bezpiecznie przesłać klucz do odbiorcy, a także zaszyfrowaną wiadomość?

Kryptografia klucza publicznego rozwiązuje ten problem, publikując klucz publiczny, którego każdy może użyć do zaszyfrowania wiadomości, a użytkownik zachowuje dla siebie klucz prywatny do odszyfrowania wiadomości. Działa to dzięki magii jednokierunkowych funkcji matematycznych. Funkcje jednokierunkowe obliczają łatwo i łatwo, ale są odporne na inżynierię wsteczną.

Przykład kryptografii klucza publicznego

Aby zilustrować na bardzo prostym przykładzie, pomnóż dwie liczby pierwsze: pierwsza1 * pierwsza2 = wynik. Mając wystarczająco duże liczby, każdy może spojrzeć na wynik, ale określenie, które dwie liczby pierwsze zostały użyte do uzyskania tego wyniku, nastręcza wielką trudność. Wynik reprezentuje klucz publiczny, a prime1 i prime2 reprezentują klucz prywatny.


Kryptografia asymetryczna psuje się, gdy hakerzy wykorzystują przeciwko niej wystarczającą moc obliczeniową. Jednak hakerzy potrzebują superkomputerów, aby osiągnąć to w rozsądnych ramach czasowych. Szyfrowanie będzie musiało ewoluować, gdy komputery kwantowe staną się normą.

Podpisy cyfrowe

Utworzony przez klucz prywatny podpis cyfrowy reprezentuje klucz prywatny i tym samym pokazuje, że użytkownik wylogował się z danej transakcji.

Możesz myśleć o podpisie cyfrowym jako o wariacji zaszyfrowanej wiadomości. Tak jak kryptografia klucza publicznego tworzy zaszyfrowaną wiadomość, klucz prywatny również tworzy podpis cyfrowy. Za pomocą klucza publicznego możesz szybko zweryfikować, czy podpis cyfrowy został utworzony przy użyciu klucza prywatnego. Potraktuj to jak układankę. Układanka może być bardzo trudna do rozwiązania, ale po poprawnym rozwiązaniu można ją szybko sprawdzić.

Biesiada w Hash House

Hasz kryptograficzny jest wynikiem funkcji matematycznej, która mapuje dane o dowolnym rozmiarze na ciąg bitów o stałej wielkości, znany jako wartość skrótu lub po prostu skrót. Podane dane wejściowe zawsze skutkują tym samym hashem. W konsekwencji, jeśli wiadomość nie jest zgodna z powiązaną z nią wartością skrótu, wiesz, że wiadomość została zmodyfikowana. Dwie różne wiadomości nigdy nie powinny tworzyć tej samej wartości skrótu. Jeśli tak, oznacza to kolizję, a funkcja skrótu, która utworzyła tę wartość, jest fatalnie wadliwa.

Prosty przykład haszowania

Aby to zilustrować, załóżmy, że chcemy haszować prosty ciąg „ABCDE” jako dane wejściowe.

Stwórzmy prosty algorytm haszujący. Najpierw tłumaczymy litery na liczby: A = 1, B = 2, C = 3, D = 4, E = 5. Nasza wynikowa wartość skrótu musi być jedną cyfrą. Metoda elementarna po prostu dodaje wszystkie cyfry do siebie: 1 + 2 + 3 + 4 + 5 = 15. To daje dwucyfrową liczbę, więc nasz algorytm kontynuuje rekurencyjne dodawanie każdej cyfry tej liczby: 1 + 5 = 6. To sprawia, że 6 nasza wartość skrótu, a 6 reprezentuje „ABCDE” jako skrót.

Jeśli otrzymasz „ABCDE” jako wiadomość reprezentowaną przez 6 jako skrót, masz zaufanie, że wiadomość jest poprawna. Jeśli jednak otrzymałeś wiadomość „ABCXE” reprezentowaną przez skrót 6, oznacza to, że istnieje niezgodność, wyraźnie z powodu manipulowania wiadomością.

Oczywiście nasz prosty algorytm haszujący zawodzi na wielu poziomach. Po pierwsze, ciąg „EDCBA” lub dowolna ich kombinacja tworzy ten sam skrót co „ABCDE”, tworząc w ten sposób kolizje. Złożona matematyka rozwiązuje te problemy. Algorytm haszujący najczęściej używany w kryptowalutach nosi nazwę SHA-256 (skrót oznacza Secure Hash Algorithm). W algorytmie SHA-256 ustalony rozmiar wartości skrótu wynosi 256 bitów.

Podpisy cyfrowe i haszowanie w kryptowalutach

Ok, więc jak właściwie używamy podpisów cyfrowych i haszowania w kryptowalutach?

Spójrzmy na transakcję Bitcoin, aby zobaczyć technologię w akcji.

Transakcja Bitcoin dzieli się na dwie części: 1) sekcję wejściową i 2) sekcję wyjściową.

Sekcja wejściowa zawiera klucz publiczny nadawcy, informacje pokazujące, że nadawca posiada wystarczającą liczbę Bitcoinów, aby pokryć transakcję, oraz inne przydatne informacje. Klucz prywatny nadawcy tworzy podpis cyfrowy służący do podpisania tej transakcji. Ten podpis cyfrowy trafia do sekcji wejściowej transakcji.

Sekcja danych wyjściowych zawiera adres portfela odbiorcy i indeks, ponieważ istnieje więcej niż jedno wyjście (różne wyniki trafią do odbiorcy, nadawcy i górnika).

Haszowanie ma na celu ochronę integralności transakcji. Dane takie jak płatnik, odbiorca i zapłacona kwota wymagają haszowania w celu ochrony przed złośliwymi podmiotami zmieniającymi te informacje. Połączenie klucza kryptograficznego i tych parametrów wejściowych w celu przesłania funkcji skrótu tworzy identyfikator transakcji. Teraz wiemy z pewnością kryptograficzną, że nadawca faktycznie ma uprawnienia do dokonania płatności i że szczegóły transakcji są prawidłowe i nie zostały naruszone.

Mucha w maślance

Znany problem z transakcjami Bitcoin powstał z czymś o nazwie plastyczność transakcji.

Elastyczność transakcji występuje, ponieważ Bitcoin hasza różne pola w transakcji. Podczas przetwarzania transakcji niektóre z tych pól mogą się zmieniać w pozornie marginalny i nieistotny sposób. Ale ponieważ się zmieniają, zmienia się wartość skrótu, powodując zmianę identyfikatora transakcji.

Aby to sobie wyobrazić, pomyśl o polu zawierającym liczbę całkowitą 123, ale podczas przetwarzania system rozszerza to na 0123. Obie stanowią tę samą liczbę i patrząc na nie, wiemy, że są takie same, ale funkcja skrótu widzi je jako różne, a następnie tworzy różne wartości skrótu dla każdego. To dziwactwo stwarza możliwości gry dla złych aktorów w systemie.

SegWit na ratunek

Technologia Segregated Witness (SegWit) rozwiązała ten problem. SegWit tworzy strukturę oddzielną od bloku (posegregowaną). Ta oddzielna struktura zawiera informacje wymagane do określenia ważności transakcji (poświadcza ważność transakcji), ale nie zawiera samych danych transakcji. Oddzielenie danych transakcji w ten sposób wyeliminowało możliwość plastyczności.

Końcowe myśli

Kryptografia ewoluuje wraz z rozwojem technologii. Komputery w przyszłości z pewnością przełamią dzisiejszą kryptografię. Ale w obecnym świecie, w którym żyjemy, podpisy cyfrowe i kryptograficzne skróty zapewniają wystarczające zabezpieczenia, aby zapewnić bezpieczeństwo i integralność naszych transakcji.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map