tradingview

Hash

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.

Zaktualizowano: