Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Oversikt over Hashing | Blokker og Transaksjoner
Introduksjon til blokkjede

bookOversikt over Hashing

Hashing og blokkharsjer har blitt nevnt flere ganger, men selve konseptet har ennå ikke blitt grundig gjennomgått. Nå er det på tide å forstå hva hashing faktisk er.

Note
Les mer

Hashing er en prosess som tar en input og produserer en streng med fast størrelse av bytes, vanligvis uttrykt som et heksadesimalt tall. Utdataen, kjent som en hash, fremstår som tilfeldig og endres fullstendig ved enhver endring i inputen, en egenskap kjent som "avalanche-effekten".

Egenskaper ved hash-funksjoner

I blokkjeder brukes hash-funksjoner til:

  • Å sikre transaksjoner ved å lage et unikt fingeravtrykk for hver enkelt;
  • Å generere adresser fra offentlige nøkler;
  • Å lage koblingene i blokkjeden gjennom blokkharsjer.

Med dette i tankene har en god hash-funksjon for blokkjeder flere viktige egenskaper:

Hashing, spesielt ved bruk av en god hashfunksjon, kan sammenlignes med å lage en smoothie. Se på følgende illustrasjon:

Det er faktisk mulig å finne den opprinnelige inputen gitt en hash, men det ville ta så lang tid at det ikke er praktisk gjennomførbart.

Blokk-hashing

For å få hashen til en bestemt blokk, bruker Bitcoin hashfunksjonen SHA-256, som gir en 256-bits (32-byte) hash. Dette er en del av SHA-2-familien utviklet av National Security Agency (NSA) og er kjent for sterke sikkerhetsegenskaper, noe som gjør den motstandsdyktig mot kollisjoner, preimage-angrep og andre kryptografiske sårbarheter.

Hashen til en Bitcoin-blokk beregnes ved å ta data fra blokkhodet. Disse dataene mates inn i SHA-256 hashfunksjonen to ganger i en prosess kjent som dobbel SHA-256.

Her er et bilde for å tydeliggjøre dette:

Den resulterende 256-bits hashen må oppfylle visse kriterier definert av nettverkets vanskelighetsmål. Hvis hashen ikke er under målet, justeres noncen og hashen beregnes på nytt til en kvalifiserende hash er funnet. Denne endelige hashen er blokkens unike identifikator.

Merkle-rot

Merkle-roten er en enkelt hash som representerer alle transaksjoner inkludert i en blokk. Beregningen starter med hashene til hver enkelt transaksjon, ved bruk av dobbel SHA-256.

Hver transaksjonshash parres deretter med en annen, og paret hashes sammen for å produsere en ny hash. Denne prosessen med paring og hashing fortsetter lag for lag til kun én hash gjenstår. Den siste hashen er Merkle-roten, som innkapsler hele settet med transaksjoner og sikrer deres integritet ved å kode dem inn i én enkelt verdi. Denne hierarkiske strukturen kalles et Merkle-tre.

Følgende eksempel illustrerer hvordan et Merkle-tre dannes:

Som du kan se, inneholder blokken vår 6 transaksjoner (hver merket som Tx) og gjennom hashing og paring av nye hasher beregnes en Merkle-rot.

Note
Merk

Når den høyre hashen ikke har en partner, som med Hash56 i vårt eksempel, blir denne siste hashen duplisert for å lage et par. Denne teknikken opprettholder integriteten og effektiviteten til Merkle-tre-strukturen selv med odde antall transaksjoner eller hasher på et tidspunkt.

question mark

Hva er utgangsstørrelsen til SHA-256 hashfunksjonen som brukes i Bitcoins blokkjede?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookOversikt over Hashing

Sveip for å vise menyen

Hashing og blokkharsjer har blitt nevnt flere ganger, men selve konseptet har ennå ikke blitt grundig gjennomgått. Nå er det på tide å forstå hva hashing faktisk er.

Note
Les mer

Hashing er en prosess som tar en input og produserer en streng med fast størrelse av bytes, vanligvis uttrykt som et heksadesimalt tall. Utdataen, kjent som en hash, fremstår som tilfeldig og endres fullstendig ved enhver endring i inputen, en egenskap kjent som "avalanche-effekten".

Egenskaper ved hash-funksjoner

I blokkjeder brukes hash-funksjoner til:

  • Å sikre transaksjoner ved å lage et unikt fingeravtrykk for hver enkelt;
  • Å generere adresser fra offentlige nøkler;
  • Å lage koblingene i blokkjeden gjennom blokkharsjer.

Med dette i tankene har en god hash-funksjon for blokkjeder flere viktige egenskaper:

Hashing, spesielt ved bruk av en god hashfunksjon, kan sammenlignes med å lage en smoothie. Se på følgende illustrasjon:

Det er faktisk mulig å finne den opprinnelige inputen gitt en hash, men det ville ta så lang tid at det ikke er praktisk gjennomførbart.

Blokk-hashing

For å få hashen til en bestemt blokk, bruker Bitcoin hashfunksjonen SHA-256, som gir en 256-bits (32-byte) hash. Dette er en del av SHA-2-familien utviklet av National Security Agency (NSA) og er kjent for sterke sikkerhetsegenskaper, noe som gjør den motstandsdyktig mot kollisjoner, preimage-angrep og andre kryptografiske sårbarheter.

Hashen til en Bitcoin-blokk beregnes ved å ta data fra blokkhodet. Disse dataene mates inn i SHA-256 hashfunksjonen to ganger i en prosess kjent som dobbel SHA-256.

Her er et bilde for å tydeliggjøre dette:

Den resulterende 256-bits hashen må oppfylle visse kriterier definert av nettverkets vanskelighetsmål. Hvis hashen ikke er under målet, justeres noncen og hashen beregnes på nytt til en kvalifiserende hash er funnet. Denne endelige hashen er blokkens unike identifikator.

Merkle-rot

Merkle-roten er en enkelt hash som representerer alle transaksjoner inkludert i en blokk. Beregningen starter med hashene til hver enkelt transaksjon, ved bruk av dobbel SHA-256.

Hver transaksjonshash parres deretter med en annen, og paret hashes sammen for å produsere en ny hash. Denne prosessen med paring og hashing fortsetter lag for lag til kun én hash gjenstår. Den siste hashen er Merkle-roten, som innkapsler hele settet med transaksjoner og sikrer deres integritet ved å kode dem inn i én enkelt verdi. Denne hierarkiske strukturen kalles et Merkle-tre.

Følgende eksempel illustrerer hvordan et Merkle-tre dannes:

Som du kan se, inneholder blokken vår 6 transaksjoner (hver merket som Tx) og gjennom hashing og paring av nye hasher beregnes en Merkle-rot.

Note
Merk

Når den høyre hashen ikke har en partner, som med Hash56 i vårt eksempel, blir denne siste hashen duplisert for å lage et par. Denne teknikken opprettholder integriteten og effektiviteten til Merkle-tre-strukturen selv med odde antall transaksjoner eller hasher på et tidspunkt.

question mark

Hva er utgangsstørrelsen til SHA-256 hashfunksjonen som brukes i Bitcoins blokkjede?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4
some-alt