Wat is een hash?

|Wat is een hash?

Wat is een hash?

De hash: een specifieke reeks nummers die altijd hetzelfde is voor bepaalde data en de handtekening van de bitcoin vormt. De hash heeft ongeacht de grootte van de input altijd dezelfde lengte. De reeks wordt gegenereerd door het SHA-256 algoritme. Vaak worden de woorden ‘hash functie’ gebruikt: het SHA-256 is zo’n functie. De hash kan eenvoudigweg worden gezien als de output van dit algoritme. Deze zit zo in elkaar dat er wel een hash gevormd kan worden op basis van de data, maar er geen data van de hash herleid kan worden. We noemen de hash daarom een ‘one way function’.

De hash heeft ongeacht de grootte van de input altijd dezelfde lengte

Probeer het zelf!

Via deze link kom je bij een hash calculator terecht. Daar kun je het zelf even testen! Typ je bijvoorbeeld ‘Blockchange.io’ dan wordt de volgende hash gegenereerd:

94438455ff97eb74fb6bb8647008f602b0f1224c12be90ee0d551ad10ed5b818

Ontdek bijvoorbeeld dat de generator hoofdletter-, spatie- en interpunctiegevoelig is en altijd dezelfde reeks weergeeft wanneer je dezelfde data invoert. Om dit te illustreren kun je online naar een willekeurige SHA-256 calculator zoeken en dezelfde tekst invoeren.

Wat is de relatie tussen hash en minen?

Het minen van bitcoins gebeurt door een mathematische puzzel op te lossen. Een dergelijke puzzel bestaat uit enkele delen bekende informatie (bijvoorbeeld transactie-informatie) en een opdracht. De opdracht is in het geval van bitcoin om een hash te vinden die begint met een x-aantal nullen, voor dit voorbeeld gaan we uit van drie nullen. Stel dat de bekende transactie-informatie is: ‘Albert maakt 10 bitcoin over naar Simon.’ Als we deze informatie door het SHA-256 algoritme halen krijgen we de volgende (ingekorte) hash: a43ce36e94fef1d…

Vervolgens voegen we na de transactie-informatie een getal toe, laten we beginnen met een één. De resulterende input wordt dan: ‘Albert maakt 10 bitcoin over naar Simon. 1’. De resulterende (wederom ingekorte) hash is: 5e26acb30149f66…

Daarna verhogen we onze toevoeging steeds met één. Wanneer we bij vier aankomen vinden we onze eerste nul! ‘Albert maakt 10 bitcoin over naar Simon. 4’ resulteert in de hash: 05ce3be1632b6d6…

Pas bij de twintigste poging komen we uit op een hash die start met twee nullen. En veel later vinden we onze derde nul. De ‘miner’ zal al de mogelijkheden af moeten gaan om de puzzel op te lossen en wordt voor deze moeite beloond met: bitcoin. Tenminste, als hij de eerste is die de puzzel oplost. Zo niet, dan begint het spel opnieuw.

Pas bij de twintigste poging komen we uit op een hash die start met twee nullen

Wat is een merkle tree?

Ook de term ‘merkle tree’ komt vaak voorbij als het over hashen gaat. Wat houdt het in? Een merkle tree draagt bij aan de hoge data integriteit binnen de blockchain en werkt als volgt: op het moment dat er meerdere transacties in één blok binnen de blockchain opgeslagen worden volgt een opeenstapeling van hashes die leiden tot een uiteindelijke ‘merkle root’.

Stel bijvoorbeeld dat er vier transacties in één blok gaan. Deze vier bronnen van informatie worden door de hashfunctie omgevormd tot vier hashes. In paren van twee worden dan door een volgende hash functie twee nieuwe hashes gemaakt. In de laatste stap worden deze laatste twee tot één hash gevormd. Eindresultaat: vier transacties zijn samengevat in één hash. Als je dit tekent ziet het proces er als volgt uit:

 

2017-09-16T17:26:57+00:00 augustus, 2017|Categorieën: Achtergrond|Tags: , , , , |