Hash je otisk dat. Zadáte-li jakýkoli vstup do hašovací funkce, dostanete zpět řetězec znaků s pevnou délkou. Stejný vstup vždy vygeneruje stejný hash. Změnou jednoho znaku ve vstupu se hash změní úplně. Tato vlastnost dělá hash užitečným pro ověřování. Můžete ověřit, zda soubor nebyl změněn, porovnáním jeho hashe se známou platnou hodnotou. Bitcoin používá SHA-256. Ethereum používá Keccak-256. Každý blok obsahuje hash předchozího bloku, který propojuje řetězec.
Haše jsou jednosměrné. Nelze se vrátit zpět od haše k původnímu vstupu. Proto se používají pro hesla a důkazy. Těžaři soutěží v nalezení haše pod určitým cílem. Změní nonce, hašují záhlaví bloku a kontrolují výsledek. Proces je ve velkém měřítku založen na hádání a kontrole. Nalezení platného haše dokazuje, že práce byla provedena. Jeho ověření nevyžaduje téměř žádné úsilí. Tato asymetrie je základem důkazu práce (proof-of-work). Hašovací funkce se také používají ke generování adres peněženek a ověřování integrity transakcí.
Vlastnosti hašovací funkce
- Deterministický – stejný vstup vždy dává stejný výstup
- Rychlý výpočet – ověření je levné
- Odolné vůči preimage – nelze obrátit hash
- Lavinový efekt – malá změna vstupu, zcela odlišný výstup
Hash není šifrování. Je to jednosměrný datový proces. Neexistuje žádný klíč ani způsob, jak ho dešifrovat.
Comments
No comments yet. Be the first to share a thought.
Leave a comment