Wyobraź sobie, że każdy plik, hasło albo cały blok transakcji można zamienić na krótki, z pozoru losowy ciąg znaków, czyli coś w rodzaju cyfrowego odcisku palca. Dokładnie to robią funkcje skrótu, po angielsku hash. To jeden z fundamentów, na których opiera się świat blockchaina, choć samo pojęcie brzmi abstrakcyjnie. Poniżej tłumaczymy, czym są, jak działają i po co są w kryptowalutach.
Czym jest funkcja skrótu
Funkcja skrótu przyjmuje dowolne dane wejściowe (pojedyncze słowo, zdjęcie albo listę tysięcy transakcji) i przelicza je na ciąg znaków o stałej długości. Popularny algorytm SHA-256, używany w Bitcoinie, zawsze zwraca wynik o rozmiarze 256 bitów, niezależnie od tego, czy na wejściu podano jedną literę czy gigabajty danych. Ten wynik nazywamy skrótem albo hashem.
Dobra kryptograficzna funkcja skrótu ma kilka charakterystycznych cech:
- Determinizm: te same dane wejściowe zawsze dają identyczny wynik.
- Efekt lawiny: zmiana choćby jednego znaku na wejściu zmienia niemal cały skrót.
- Jednokierunkowość: mając sam skrót, nie da się w praktyce odtworzyć danych wejściowych.
- Odporność na kolizje: znalezienie dwóch różnych wejść o tym samym skrócie jest obliczeniowo bardzo trudne.
Po co to blockchainowi
W blockchainie skróty spajają dane w łańcuch. Każdy blok zawiera skrót poprzedniego bloku, więc bloki są ze sobą powiązane w ustaloną kolejność. Gdyby ktoś próbował zmienić jedną starą transakcję, skrót tego bloku by się zmienił, a przez efekt lawiny rozjechałyby się skróty we wszystkich kolejnych blokach. Manipulacja natychmiast rzuca się w oczy.
Skróty odgrywają też rolę w kopaniu Bitcoina. Górnicy szukają takiego wariantu bloku, którego skrót spełnia zadany warunek. Znalezienie rozwiązania wymaga ogromnej liczby prób, ale sprawdzenie cudzego wyniku zajmuje ułamek sekundy. Ta asymetria (trudno wyliczyć, łatwo zweryfikować) jest dokładnie tym, czego potrzebuje sieć bez centralnego zarządcy.
Skrót działa jak cyfrowa pieczęć: nie ukrywa treści, ale pozwala każdemu sprawdzić, czy ktokolwiek jej nie ruszył.
Skrót to nie szyfrowanie
Częste nieporozumienie to mylenie skrótu z szyfrowaniem. Szyfrowanie jest odwracalne, całe jego zadanie polega na tym, by posiadacz klucza mógł odczytać wiadomość z powrotem. Skrót jest jednokierunkowy i celowo nieodwracalny. Nie służy do przechowywania sekretów, lecz do potwierdzania, że dane są nienaruszone. Dlatego serwisy zamiast Twojego hasła przechowują zwykle jego skrót.
Funkcje skrótu to cichy bohater blockchaina. Nie widać ich w interfejsie portfela, a mimo to bez nich nie działałoby ani łączenie bloków, ani weryfikacja transakcji, ani cyfrowe podpisy. Gdy następnym razem zobaczysz długi ciąg znaków opisany jako hash, będziesz już wiedzieć, co się za nim kryje.