Hasz to odcisk palca danych. Wprowadź dowolne dane wejściowe do funkcji haszującej, a otrzymasz ciąg znaków o stałej długości. Te same dane wejściowe zawsze generują ten sam hasz. Zmień jeden znak w danych wejściowych, a hasz ulegnie całkowitej zmianie. Ta właściwość sprawia, że hasze są przydatne do weryfikacji. Możesz sprawdzić, czy plik nie został zmieniony, porównując jego hasz ze znaną, poprawną wartością. Bitcoin używa SHA-256. Ethereum używa Keccak-256. Każdy blok zawiera hasz poprzedniego bloku, który łączy łańcuch.
Hasze są jednokierunkowe. Nie można cofnąć się od hasza do pierwotnego wejścia. Dlatego są używane do haseł i dowodów. Górnicy rywalizują o znalezienie hasza poniżej określonego celu. Zmieniają nonce, haszują nagłówek bloku i sprawdzają wynik. Proces ten odbywa się na masową skalę i polega na zgadywaniu i sprawdzaniu. Znalezienie prawidłowego hasza dowodzi, że praca została wykonana. Weryfikacja jest praktycznie bezproblemowa. Ta asymetria stanowi podstawę proof-of-work. Funkcje haszujące są również wykorzystywane do generowania adresów portfeli i weryfikacji integralności transakcji.
Właściwości funkcji skrótu
- Deterministyczny — ten sam sygnał wejściowy zawsze daje ten sam wynik
- Szybkie obliczenia — weryfikacja jest tania
- Odporny na preobraz — nie można odwrócić skrótu
- Efekt lawinowy – niewielka zmiana na wejściu, zupełnie inny wynik
Hasz to nie szyfrowanie. To skrót jednokierunkowy. Nie ma klucza ani sposobu na odszyfrowanie.
Comments
No comments yet. Be the first to share a thought.
Leave a comment