Een **hash** is een fundamenteel onderdeel van de beveiliging en integriteit van het Bitcoin netwerk. Het is het resultaat van een cryptografische functie die een willekeurige hoeveelheid data omzet in een unieke reeks tekens van een vaste lengte. In het geval van Bitcoin wordt hiervoor het SHA-256 algoritme gebruikt. Je kunt een hash zien als een digitale vingerafdruk van een stukje informatie; als er ook maar één bit aan de data verandert, zal de resulterende hash compleet anders zijn [1].
Hashing speelt een cruciale rol in het proces van bitcoin mining. Miners strijden tegen elkaar om een geldige hash te vinden voor een nieuw blok. Dit doen ze door de data van het blok, gecombineerd met een willekeurig getal (de nonce), herhaaldelijk door het SHA-256 algoritme te halen. Alleen een hash die voldoet aan de huidige moeilijkheidsgraad van het netwerk wordt geaccepteerd. Dit proces kost enorme hoeveelheden rekenkracht en energie, wat het netwerk beschermt tegen aanvallen [2].
Omdat het onmogelijk is om te voorspellen wat de uitkomst van een hashfunctie zal zijn zonder deze daadwerkelijk uit te voeren, moeten miners miljarden pogingen per seconde doen. Dit is de basis van het Proof of Work systeem [3].
De kracht van hashing ligt in het feit dat het een eenrichtingsverkeer is. Het is heel eenvoudig om de hash van een stuk data te berekenen, maar het is wiskundig onmogelijk om de originele data te achterhalen op basis van de hash alleen. Bovendien verbindt hashing alle blokken in de blockchain met elkaar. Elk blok bevat de hash van het voorgaande blok, waardoor er een onveranderlijke keten ontstaat. Als iemand een transactie in een oud blok zou willen aanpassen, zouden alle daaropvolgende hashes ongeldig worden [4].
SHA-256 staat voor Secure Hash Algorithm 256-bit. Het is een cryptografische hashfunctie die is ontworpen door de NSA en wordt beschouwd als een van de veiligste algoritmen ter wereld. Bitcoin gebruikt dit algoritme voor zowel het minen van nieuwe blokken als voor het creëren van bitcoin adressen.
Met de huidige technologie is het onmogelijk om een SHA-256 hash te ‘kraken’ of terug te draaien. De enige manier om een specifieke hash te vinden is door middel van brute force: het blijven proberen van verschillende inputs totdat je de juiste uitkomst krijgt. De enorme rekenkracht van het Bitcoin netwerk maakt het praktisch onmogelijk voor een kwaadwillende partij om dit proces te manipuleren.
Hashing is de onzichtbare lijm die het Bitcoin netwerk bij elkaar houdt. Het zorgt voor de veiligheid van transacties, de eerlijkheid van het mining-proces en de onveranderlijkheid van de blockchain. Zonder de unieke eigenschappen van cryptografische hashes zou een gedecentraliseerd en betrouwbaar geldsysteem zoals Bitcoin niet kunnen bestaan. Het begrijpen van hashing is dan ook essentieel voor iedereen die de technische genialiteit achter Bitcoin wil doorgronden.
[1] Andreas M. Antonopoulos. (2017). Mastering Bitcoin: Programming the Open Blockchain.
[2] Bitcoin.org. (n.d.). Vocabulary – Hash. Retrieved from https://bitcoin.org/en/vocabulary#hash
[3] NIST. (2015). Secure Hash Standard (SHS).
[4] Khan Academy. (n.d.). Cryptographic hash functions.
"*" indicates required fields