Hash (skrót kryptograficzny, ang. hash) to wynik działania funkcji hashującej: ciąg bitów o stałej długości, wyliczony z danych o dowolnym rozmiarze. W Bitcoinie używa się SHA-256, która z jednego słowa, całej transakcji czy nagłówka bloku zawsze zwraca 256 bitów, zapisywanych jako 64 znaki szesnastkowe. Hash działa jak odcisk palca danych: ten sam plik zawsze daje ten sam hash, a najmniejsza zmiana daje zupełnie inny wynik. Właściwości samych funkcji (jednokierunkowość, odporność na kolizje) opisuje hasło Funkcja hashująca – tu skupiamy się na tym, do czego hash służy w blockchainie.
Hash nie jest „unikalny” – jest praktycznie nie do podrobienia
Funkcja hashująca mapuje nieskończenie wiele możliwych danych na skończoną liczbę wyników, więc kolizje – dwa różne wejścia z tym samym hashem – muszą istnieć. Chodzi o to, że dla dobrej funkcji nikt nie potrafi ich znaleźć w rozsądnym czasie. Przy 256 bitach liczba możliwych wyników to 2256, czyli liczba 78-cyfrowa. Dlatego w praktyce hash traktuje się jako jednoznaczny identyfikator danych, choć matematycznie nie jest unikalny.
Gdzie hash występuje w blockchainie
| Rodzaj | Z czego jest liczony | Do czego służy |
|---|---|---|
| Hash transakcji (TXID) | dane transakcji | identyfikator, po którym wyszukasz przelew w eksploratorze |
| Merkle root | hashe wszystkich transakcji w bloku, łączone parami | jeden skrót zawartości całego bloku w nagłówku |
| Hash bloku | nagłówek bloku (m.in. hash poprzedniego bloku, Merkle root, czas, nonce) | identyfikator bloku i dowód wykonanej pracy |
| Adres | klucz publiczny (lub skrypt) | krótsza, bezpieczniejsza forma odbiorcy płatności |
Łańcuch hashy
Każdy nagłówek bloku zawiera hash poprzedniego bloku. Jeśli ktoś zmieni jedną transakcję w starym bloku, zmieni się hash tej transakcji, potem Merkle root, potem hash bloku – a wtedy następny blok wskazuje już na nieistniejącego poprzednika. Żeby podmiana przeszła, trzeba przeliczyć ten blok i wszystkie kolejne szybciej niż reszta sieci. Na tym polega niezmienność blockchaina.
Merkle root
Transakcje w bloku są hashowane parami: hash A z hashem B daje hash AB, hash C z D daje CD, a AB z CD daje Merkle root. Przy 4 transakcjach są 3 poziomy obliczeń, przy tysiącach – kilkanaście. Dzięki temu lekki portfel może sprawdzić, że transakcja jest w bloku, pobierając tylko kilkanaście hashy zamiast całego bloku.
Przykład: jak mała zmiana zmienia hash
SHA-256 dla tekstu „abc” zaczyna się od ba7816bf8f01cfea…, a dla „abd” – od a52d159f262b2c6d…. Zmiana jednej litery daje wynik bez żadnego podobieństwa do poprzedniego. Tak samo działa to z transakcją: zmiana kwoty o 1 satoshi zmienia TXID w całości.
Drugi przykład dotyczy kopania. Załóżmy, że sieć wymaga hasha bloku zaczynającego się od 20 zerowych bitów. Szansa, że losowy hash to spełni, wynosi 1 do 220, czyli 1 do 1 048 576. Górnik zmienia więc pole nonce i przelicza hash średnio ponad milion razy, zanim trafi. W prawdziwym Bitcoinie wymagana liczba zer jest dużo większa, a cała sieć liczy ponad trylion (1018) hashy na sekundę – to właśnie hashrate.
Najczęstsze błędy
- Mylenie hasha z szyfrowaniem – hasha nie da się „odszyfrować”, bo nie jest szyfrem.
- Mylenie hasha transakcji z adresem portfela lub kluczem.
- Przekonanie, że hash „zabezpiecza” środki – środki chroni klucz prywatny i podpis cyfrowy, hash zapewnia integralność danych.
- Uznanie transakcji za zaksięgowaną tylko dlatego, że ma TXID – identyfikator istnieje od chwili wysłania, zanim transakcja trafi do bloku.
Perspektywa tradera
Na co dzień hash przydaje się przy przelewach między giełdami i portfelami. Gdy wpłata nie dociera, giełda poprosi Cię o TXID – po nim sprawdzisz w eksploratorze, czy transakcja jest w bloku, ile ma potwierdzeń i na jaki adres poszła. Zachowuj TXID przy większych przelewach. Hashrate, czyli liczba hashy liczonych przez sieć na sekundę, to z kolei jeden z obserwowanych wskaźników kondycji górników: gwałtowny spadek bywa sygnałem problemów z opłacalnością kopania i możliwej sprzedaży monet przez górników.
Najczęstsze pytania
Czym różni się hash od funkcji hashującej?
Funkcja hashująca to algorytm, a hash to jego wynik dla konkretnych danych.
Czy z hasha można odtworzyć dane?
Nie. Można jedynie zgadywać wejścia i porównywać wyniki, co przy dobrych funkcjach i nietrywialnych danych jest praktycznie niewykonalne.
Co to jest TXID?
Hash transakcji, który służy jako jej identyfikator. Wklejasz go w eksploratorze blockchaina, by sprawdzić status przelewu.
Dlaczego hash bloku zaczyna się od zer?
Bo w proof of work hash musi być mniejszy od progu trudności. Zera na początku to efekt tego warunku.
Jaki hash stosuje Ethereum?
Ethereum używa funkcji Keccak-256, bliskiej standardowi SHA-3, a Bitcoin – SHA-256 (w nagłówkach bloków stosowanej dwukrotnie).
Tekst ma charakter edukacyjny i nie stanowi rekomendacji inwestycyjnej.


