Hva er en...
Hash?
En hash er som et digitalt fingeravtrykk - et unikt "fingeravtrykk" for data som brukes overalt i bitcoin-systemet. Akkurat som menneskers fingeravtrykk er unike, er hasher unike for dataen de representerer.
Hvordan fungerer hashing?
Hashing er en matematisk prosess som tar inn data av hvilken som helst størrelse og produserer en streng med fast lengde. Bitcoin bruker blant annet en algoritme kalt SHA-256, som alltid produserer en 64-bokstavs hash.
For eksempel:
- "Hei verden" blir til:
36c9e89e1dc1a207c088ec4725519216e92b6e9fc23b998f3d7430d524de312e
- "Hei verden!" (med utropstegn) blir til en helt annen hash:
9cac5f05bacd1309042bb4f5527b6755c982e230da43a946cc0d76feb9504447
Viktige egenskaper
Deterministisk - Samme input gir alltid samme hash
Irreversibel - Du kan ikke regne ut originalen fra hashen
Følsom for endringer - Den minste endring i input gir en helt annen hash
Fast lengde - Uansett hvor stort inputtet er, blir hashen alltid like stor
Hvor brukes hasher i bitcoin?
Blokk-hasher - Hver blokk har en unik hash som identifiserer den
Transaksjon-hasher - Hver transaksjon har en hash som fungerer som en "kvittering"
Merkle-rot - En hash av alle transaksjonene i en blokk
Proof-of-work - Graverne må finne hasher som begynne med mange nuller
Hasher som identifikatorer
Hasher brukes som unike ID-er i bitcoin-systemet. I stedet for å si "transaksjon nummer 12345", sier vi "transaksjonen med hash abc123...".
Dette er sikrere enn vanlige nummer, fordi hashen også beviser at innholdet ikke er endret.
Hashkjeder
Bitcoin bygger hasher oppå hverandre for å lage en sikker kjede. Hver blokk inneholder hashen til forrige blokk, som skaper en ubrytelig lenke tilbake til den første blokken.
Hvis noen prøver å endre en gammel transaksjon, vil hashen endre seg, og det vil være åpenbart for alle at noe er galt.
Mining og hasher
Når gravere prøver å lage en ny blokk, leter de etter en spesiell hash som oppfyller visse krav. For eksempel må hashen begynne med mange nuller.
Dette krever billioner av forsøk, som er det som gjør bitcoin-nettverket sikkert - det krever enorme mengder datakraft å jukse.
Verifisering
En av de kraftigste egenskapene til hasher er at de lar deg verifisere data uten å stole på andre. Hvis noen gir deg data og en hash, kan du selv regne ut hashen til dataen og sammenligne.
Stemmer hashene overens? Da vet du at dataen ikke er endret.
Hash i hverdagen
Du møter faktisk hasher i hverdagen uten å tenke over det:
- Når du laster ned filer kan nettsiden gi deg en hash for å verifisere at nedlastingen var vellykket
- Passord lagres ofte som hasher i stedet for klartekst
- Digitale signaturer bruker hasher
Kollisjoner
Teoretisk sett kan to forskjellige inputs gi samme hash (kalt en "kollisjon"), men sjansen er så liten at det aldri har skjedd med SHA-256. Sjansen er omtrent som å vinne i lotto flere millioner ganger på rad!