tradingview

Funkcja hashująca

Funkcja hashująca (też: funkcja haszująca, funkcja skrótu, ang. hash function) to algorytm, który zamienia dane dowolnej wielkości – słowo, plik, transakcję, cały blok – w ciąg o stałej długości, zwany hashem lub skrótem. Sam wynik i jego rolę w blockchainie opisuje hasło Hash. Tutaj chodzi o mechanizm: jak działa funkcja, jakie są algorytmy, które z nich są już złamane i gdzie – także poza krypto – od nich zależy Twoje bezpieczeństwo.

Jak to wygląda w praktyce

Funkcja SHA-256, używana w Bitcoinie, zawsze zwraca 256 bitów, zapisywanych jako 64 znaki szesnastkowe. Zobacz, co się dzieje przy minimalnej zmianie danych wejściowych:

Dane wejściowe SHA-256
blogprezesa 6709e4f3552fd20c5925bd2b6cdffb9fc4504d97432bff6971cebcc10a9b10a0
blogprezesb 0ec1fff8622c667f84cb79573cefc5d0be82e4a6f3021796abbc2468d67d780c
Blogprezesa 9ec0f84e43769ded1ef528fcd68bcb17a10cedd1c03dd9c49b3069c77f350e43

Zmiana jednej litery albo wielkości jednej litery daje zupełnie inny wynik. To tzw. efekt lawinowy. Skrót całej książki i skrót jednego słowa mają tę samą długość.

Cechy kryptograficznej funkcji hashującej

Cecha Co oznacza Co by się stało bez niej
Deterministyczność te same dane zawsze dają ten sam skrót nie dałoby się niczego zweryfikować
Jednokierunkowość ze skrótu nie odtworzysz danych z bazy skrótów haseł dałoby się odczytać hasła
Odporność na kolizje nie da się znaleźć dwóch danych o tym samym skrócie można by podmienić plik lub transakcję na inną o tym samym skrócie
Efekt lawinowy drobna zmiana danych zmienia cały skrót z podobieństwa skrótów dałoby się zgadywać dane

Skala liczb pokazuje, dlaczego zgadywanie nie działa. Możliwych wyników SHA-256 jest 2256, czyli liczba 78-cyfrowa. Nawet cała moc obliczeniowa sieci Bitcoin nie zbliża się do przeszukania takiej przestrzeni.

Najważniejsze algorytmy

Algorytm Długość skrótu Zastosowanie i status
MD5 128 bitów złamany – znane kolizje; tylko do prostych sum kontrolnych
SHA-1 160 bitów złamany – praktyczna kolizja pokazana w 2017 roku
SHA-256 256 bitów Bitcoin (kopanie, identyfikatory transakcji, bloki)
RIPEMD-160 160 bitów Bitcoin – w połączeniu z SHA-256 przy tworzeniu części adresów
Keccak-256 256 bitów Ethereum – adresy, identyfikatory, smart kontrakty
bcrypt, Argon2 różna przechowywanie haseł – celowo wolne

Gdzie jeszcze działają funkcje hashujące

W blockchainie funkcje hashujące odpowiadają za kopanie, łączenie bloków i identyfikatory transakcji – to opisuje hasło Hash. Równie ważne są zastosowania, z którymi inwestor styka się poza łańcuchem bloków:

  • Hasła do kont – uczciwy serwis nie przechowuje Twojego hasła, tylko jego skrót z dodatkiem losowej „soli”. Przy logowaniu liczy skrót jeszcze raz i porównuje wyniki.
  • Podpisy cyfrowe – podpisuje się nie cały dokument czy transakcję, tylko ich skrót. Dlatego słaba funkcja hashująca osłabia też podpis.
  • Zapytania do API giełd – bot podpisuje każde zapytanie kodem HMAC, zwykle opartym na SHA-256 i kluczu Secret Key. Giełda liczy to samo po swojej stronie i sprawdza, czy zapytanie nie zostało zmienione po drodze.
  • Sumy kontrolne plików – pozwalają sprawdzić, czy pobrany program jest tym, który opublikował producent.

Praktyczne zastosowanie: weryfikacja pobranego portfela

Producenci portfeli i oprogramowania publikują sumy kontrolne SHA-256 plików instalacyjnych. Po pobraniu możesz policzyć skrót pliku u siebie – w Windows poleceniem certutil -hashfile nazwa_pliku SHA256, w macOS i Linuksie poleceniem shasum -a 256 nazwa_pliku – i porównać go z opublikowanym. Jeśli różni się choćby jeden znak, plik został zmieniony lub uszkodzony i nie wolno go instalować. To prosta ochrona przed podrobionymi aplikacjami portfeli.

Najczęstsze błędy

  • Mylenie hashowania z szyfrowaniem – szyfrowanie da się odwrócić kluczem, hashowania nie.
  • Przekonanie, że krótkie lub popularne hasło jest bezpieczne, bo „jest zahashowane” – takie hasła łamie się słownikami gotowych skrótów.
  • Używanie MD5 lub SHA-1 do celów bezpieczeństwa.
  • Porównywanie tylko kilku pierwszych znaków sumy kontrolnej.

Perspektywa tradera

Trader nie musi liczyć skrótów, ale korzysta z nich codziennie: identyfikator transakcji to dowód wpłaty w sporze z giełdą, a suma kontrolna chroni przed zainstalowaniem fałszywego portfela lub terminala. Warto też rozumieć, że cała wartość Bitcoina opiera się na tym, że SHA-256 pozostaje niezłamana. Ryzyko takie jak przyszłe komputery kwantowe dotyczy przede wszystkim podpisów cyfrowych, a funkcje hashujące uważa się za znacznie bardziej odporne.

Najczęstsze pytania

Czym różni się funkcja hashująca od hasha?

Funkcja hashująca to algorytm, a hash to jego wynik – konkretny skrót danych.

Czy da się odwrócić hash?

Dobrej funkcji kryptograficznej nie da się odwrócić. Można jedynie zgadywać dane wejściowe i porównywać skróty – działa to tylko przy krótkich lub przewidywalnych danych, np. słabych hasłach.

Czy dwa różne pliki mogą mieć ten sam hash?

Teoretycznie tak, bo danych jest nieskończenie wiele, a skrótów skończenie wiele. Dla SHA-256 znalezienie takiej pary jest jednak praktycznie niewykonalne. Dla MD5 i SHA-1 kolizje już znaleziono.

Jakiej funkcji hashującej używa Bitcoin?

Głównie SHA-256, w kopaniu i identyfikatorach transakcji stosowanej dwukrotnie. Przy tworzeniu części adresów używa się też RIPEMD-160. Ethereum korzysta z Keccak-256.

Tekst ma charakter edukacyjny i nie stanowi rekomendacji inwestycyjnej.