En hash er et fingeraftryk af data. Hvis du indsætter et hvilket som helst input i en hashfunktion, får du en streng af tegn med fast længde tilbage. Det samme input producerer altid det samme hash. Ændr ét tegn i inputtet, og hashen ændres fuldstændigt. Denne egenskab gør hash nyttige til verifikation. Du kan kontrollere, at en fil ikke er blevet ændret ved at sammenligne dens hash med en kendt god værdi. Bitcoin bruger SHA-256. Ethereum bruger Keccak-256. Hver blok indeholder hashen fra den forrige blok, som forbinder kæden.
Hashes er ensrettede. Du kan ikke arbejde baglæns fra en hash til det oprindelige input. Derfor bruges de til adgangskoder og proofs. Minere konkurrerer om at finde en hash under et bestemt mål. De ændrer en nonce, hasher blokheaderen og kontrollerer resultatet. Processen er gæt-og-tjek i massiv skala. At finde en gyldig hash beviser, at der blev udført arbejde. Det kræver næsten ingen indsats at verificere den. Denne asymmetri er grundlaget for proof-of-work. Hash-funktioner bruges også til at generere wallet-adresser og verificere transaktionsintegritet.
Egenskaber for hashfunktionen
- Deterministisk - samme input giver altid samme output
- Hurtig at beregne — verifikation er billig
- Preimage-resistent — kan ikke vende hashen
- Lavineeffekt - lille ændring i input, helt anderledes output
En hash er ikke kryptering. Det er en envejsdigerering. Der er ingen nøgle og ingen måde at dekryptere.
Comments
No comments yet. Be the first to share a thought.
Leave a comment