Funkcja skrótu
Funkcja skrótu, po angielsku hash function, to algorytm zamieniający dane wejściowe na krótki wynik o stałej długości, nazywany hashem albo skrótem.
Czym jest funkcja skrótu
Funkcja skrótu przyjmuje dane dowolnej długości i zwraca wynik o stałej długości. Ten wynik nazywa się hashem albo skrótem.
Ten sam input zawsze daje ten sam hash. Nawet minimalna zmiana danych wejściowych powinna dać zupełnie inny wynik.
Dobra kryptograficzna funkcja skrótu działa jednokierunkowo: łatwo policzyć hash z danych, ale praktycznie nie da się odtworzyć danych z samego hasha.
Gdzie używa się hashy
- Bloki
- Hash bloku pozwala powiązać blok z poprzednim i wykryć zmianę historii.
- Transakcje
- Hash transakcji działa jako jej identyfikator w explorerach i portfelach.
- Merkle tree
- Drzewa Merkle używają hashy do sprawdzania, czy dane należą do większego zbioru.
- Proof of work
- Minerzy szukają hasha spełniającego reguły trudności.
- Podpisy
- Podpisy często obejmują hash danych, a nie surowe dane w pełnej formie.
Hash to nie szyfrowanie
Szyfrowanie zakłada możliwość odszyfrowania danych przy użyciu klucza. Hashowanie nie działa w ten sposób.
Hash jest skrótem obliczonym z danych. Nie istnieje normalny proces „odszyfrowania” hasha do oryginalnego inputu.
Dlatego hashe są użyteczne do wykrywania zmian i identyfikowania danych, a nie do ukrywania informacji w taki sam sposób jak szyfrowanie.
Najczęstsze błędne założenia
- Hasha nie da się po prostu odszyfrować.
- Nie każda funkcja skrótu nadaje się do zastosowań kryptograficznych.
- Hash identyfikuje dane, ale nie mówi, czy dane są prawdziwe w sensie ekonomicznym albo prawnym.
- Podobne dane wejściowe nie dają podobnych hashy w dobrej funkcji kryptograficznej.
Hash pomaga wykryć manipulację
Jeśli ktoś zmieni dane transakcji albo bloku, hash też się zmieni. Dzięki temu blockchain może tanio wykrywać naruszenie historii.
