Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Overzicht van Hashing | Blokken en Transacties
Introductie tot Blockchain

bookOverzicht van Hashing

Hashing en blok-hashes zijn meerdere keren genoemd, maar het concept zelf is nog niet in detail onderzocht. Het is nu tijd om te begrijpen wat hashing daadwerkelijk is.

Note
Meer Bestuderen

Hashing is een proces dat een invoer neemt en een string van vaste grootte in bytes produceert, meestal weergegeven als een hexadecimaal getal. De uitvoer, bekend als een hash, lijkt willekeurig en verandert volledig bij elke wijziging van de invoer, een eigenschap die bekend staat als het "lawine-effect".

Eigenschappen van hashfuncties

In blockchain worden hashfuncties gebruikt om:

  • Transacties te beveiligen door een unieke vingerafdruk voor elke transactie te creëren;
  • Adressen te genereren uit openbare sleutels;
  • De koppelingen in de blockchain te maken via blok-hashes.

Met dit in gedachten heeft een goede hashfunctie voor blockchain verschillende belangrijke eigenschappen:

Hashing, vooral met een goede hashfunctie, kan worden vergeleken met het maken van een smoothie. Bekijk de volgende illustratie:

Het is inderdaad mogelijk om de oorspronkelijke invoer te achterhalen op basis van een hash, maar dit zou te veel tijd kosten om praktisch te zijn.

Blokhashing

Om de hash van een bepaald blok te verkrijgen, gebruikt Bitcoin de SHA-256 hashfunctie, die een 256-bit (32-byte) hash oplevert. Dit is onderdeel van de SHA-2 familie, ontworpen door de National Security Agency (NSA) en bekend om zijn sterke beveiligingseigenschappen, waardoor het bestand is tegen botsingen, preimage-aanvallen en andere cryptografische kwetsbaarheden.

De hash van een Bitcoin-blok wordt berekend door de gegevens van de blokheader te nemen. Deze gegevens worden twee keer ingevoerd in de SHA-256 hashfunctie in een proces dat dubbele SHA-256 wordt genoemd.

Hier is een afbeelding ter verduidelijking:

De resulterende 256-bits hash moet voldoen aan bepaalde criteria die zijn vastgesteld door het moeilijkheidsdoel van het netwerk. Als de hash niet onder het doel ligt, wordt de nonce aangepast en wordt de hash opnieuw berekend totdat een geldige hash is gevonden. Deze uiteindelijke hash is de unieke identificatie van het blok.

Merkle Root

De Merkle root is een enkele hash die alle transacties in een blok vertegenwoordigt. De berekening begint met de hashes van elke individuele transactie, gebruikmakend van double SHA-256.

Elke transactiehash wordt vervolgens gekoppeld aan een andere, en het paar wordt samen gehasht om een nieuwe hash te produceren. Dit proces van koppelen en hashen gaat laag voor laag door totdat er nog maar één hash overblijft. De uiteindelijke hash is de Merkle root, die de volledige set transacties omvat en hun integriteit waarborgt door ze in één enkele waarde te coderen. Deze hiërarchische structuur staat bekend als een Merkle-boom.

Het volgende voorbeeld illustreert hoe een Merkle-boom wordt gevormd:

Zoals te zien is, bevat ons blok 6 transacties (elk aangeduid als Tx) en wordt via hashing en het koppelen van nieuwe hashes een Merkle root berekend.

Note
Opmerking

Wanneer de meest rechtse hash geen paar heeft, zoals bij Hash56 in ons voorbeeld, wordt deze laatste hash gedupliceerd om een paar te vormen. Deze techniek behoudt de integriteit en efficiëntie van de Merkle-boomstructuur, zelfs bij een oneven aantal transacties of hashes op een bepaald moment.

question mark

Wat is de uitvoergrootte van de SHA-256 hashfunctie die wordt gebruikt in de blockchain van Bitcoin?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain more about how the Merkle tree structure works?

What is the purpose of the nonce in block hashing?

How does double SHA-256 improve security in Bitcoin?

Awesome!

Completion rate improved to 6.25

bookOverzicht van Hashing

Veeg om het menu te tonen

Hashing en blok-hashes zijn meerdere keren genoemd, maar het concept zelf is nog niet in detail onderzocht. Het is nu tijd om te begrijpen wat hashing daadwerkelijk is.

Note
Meer Bestuderen

Hashing is een proces dat een invoer neemt en een string van vaste grootte in bytes produceert, meestal weergegeven als een hexadecimaal getal. De uitvoer, bekend als een hash, lijkt willekeurig en verandert volledig bij elke wijziging van de invoer, een eigenschap die bekend staat als het "lawine-effect".

Eigenschappen van hashfuncties

In blockchain worden hashfuncties gebruikt om:

  • Transacties te beveiligen door een unieke vingerafdruk voor elke transactie te creëren;
  • Adressen te genereren uit openbare sleutels;
  • De koppelingen in de blockchain te maken via blok-hashes.

Met dit in gedachten heeft een goede hashfunctie voor blockchain verschillende belangrijke eigenschappen:

Hashing, vooral met een goede hashfunctie, kan worden vergeleken met het maken van een smoothie. Bekijk de volgende illustratie:

Het is inderdaad mogelijk om de oorspronkelijke invoer te achterhalen op basis van een hash, maar dit zou te veel tijd kosten om praktisch te zijn.

Blokhashing

Om de hash van een bepaald blok te verkrijgen, gebruikt Bitcoin de SHA-256 hashfunctie, die een 256-bit (32-byte) hash oplevert. Dit is onderdeel van de SHA-2 familie, ontworpen door de National Security Agency (NSA) en bekend om zijn sterke beveiligingseigenschappen, waardoor het bestand is tegen botsingen, preimage-aanvallen en andere cryptografische kwetsbaarheden.

De hash van een Bitcoin-blok wordt berekend door de gegevens van de blokheader te nemen. Deze gegevens worden twee keer ingevoerd in de SHA-256 hashfunctie in een proces dat dubbele SHA-256 wordt genoemd.

Hier is een afbeelding ter verduidelijking:

De resulterende 256-bits hash moet voldoen aan bepaalde criteria die zijn vastgesteld door het moeilijkheidsdoel van het netwerk. Als de hash niet onder het doel ligt, wordt de nonce aangepast en wordt de hash opnieuw berekend totdat een geldige hash is gevonden. Deze uiteindelijke hash is de unieke identificatie van het blok.

Merkle Root

De Merkle root is een enkele hash die alle transacties in een blok vertegenwoordigt. De berekening begint met de hashes van elke individuele transactie, gebruikmakend van double SHA-256.

Elke transactiehash wordt vervolgens gekoppeld aan een andere, en het paar wordt samen gehasht om een nieuwe hash te produceren. Dit proces van koppelen en hashen gaat laag voor laag door totdat er nog maar één hash overblijft. De uiteindelijke hash is de Merkle root, die de volledige set transacties omvat en hun integriteit waarborgt door ze in één enkele waarde te coderen. Deze hiërarchische structuur staat bekend als een Merkle-boom.

Het volgende voorbeeld illustreert hoe een Merkle-boom wordt gevormd:

Zoals te zien is, bevat ons blok 6 transacties (elk aangeduid als Tx) en wordt via hashing en het koppelen van nieuwe hashes een Merkle root berekend.

Note
Opmerking

Wanneer de meest rechtse hash geen paar heeft, zoals bij Hash56 in ons voorbeeld, wordt deze laatste hash gedupliceerd om een paar te vormen. Deze techniek behoudt de integriteit en efficiëntie van de Merkle-boomstructuur, zelfs bij een oneven aantal transacties of hashes op een bepaald moment.

question mark

Wat is de uitvoergrootte van de SHA-256 hashfunctie die wordt gebruikt in de blockchain van Bitcoin?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
some-alt