Woordenlijst
Blockchain-infrastructuur

Hash

Een hash is de uitvoer met vaste lengte die ontstaat wanneer gegevens van elke omvang door een cryptografische hashfunctie worden gehaald – een wiskundige eenrichtingsvingerafdruk die de invoer uniek samenvat. Dezelfde invoer levert altijd dezelfde hash op, maar het veranderen van zelfs maar één teken levert een compleet ander resultaat op, en er is geen praktische manier om van een hash terug te redeneren naar de oorspronkelijke gegevens of om twee verschillende invoeren te vinden die dezelfde hash delen.

Blockchains gebruiken hashes overal. Elke transactie heeft een hash die als haar ID dient; elke blokheader bevat de hash van het vorige blok, en dat is wat blokken letterlijk aan elkaar ketent – het aanpassen van een oude transactie zou de hash van het blok veranderen, elke volgende schakel verbreken en manipulatie direct detecteerbaar maken. Merkle trees van hashes laten light clients één enkele transactie verifiëren zonder alles te downloaden, en proof-of-work-mining is een race om een blokhash onder een doelwaarde te vinden. Als je bijvoorbeeld het woord "hello" hasht met SHA-256 (de hashfunctie van Bitcoin), krijg je altijd dezelfde hexadecimale reeks van 64 tekens, terwijl "Hello" een totaal andere oplevert.

Een veelvoorkomende misvatting is dat hashen versleutelen is; versleuteling is met een sleutel om te keren, terwijl hashen is ontworpen om onomkeerbaar te zijn en helemaal geen sleutel kent. Verschillende blockchains gebruiken verschillende functies – Bitcoin gebruikt SHA-256, Ethereum gebruikt Keccak-256 – maar allemaal vertrouwen ze op dezelfde eigenschappen: determinisme, botsingsbestendigheid (collision resistance) en het lawine-effect waardoor uitvoer onvoorspelbaar is.

Gidsen die dit behandelen

Gerelateerde termen