Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Oversigt over Hashing | Blokke og Transaktioner
Quizzes & Challenges
Quizzes
Challenges
/
Introduktion til Blockchain

bookOversigt over Hashing

Hashing og blok-hashes er blevet nævnt flere gange, men selve konceptet er endnu ikke blevet gennemgået i detaljer. Det er nu tid til at forstå, hvad hashing egentlig er.

Note
Studér mere

Hashing er en proces, der tager en input og producerer en streng af fast størrelse af bytes, typisk udtrykt som et hexadecimalt tal. Outputtet, kendt som et hash, fremstår tilfældigt og ændrer sig fuldstændigt ved enhver ændring af inputtet, en egenskab kendt som "avalanche-effekten".

Egenskaber ved hashfunktioner

I blockchain bruges hashfunktioner til:

  • At sikre transaktioner ved at skabe et unikt fingeraftryk for hver enkelt;
  • At generere adresser fra offentlige nøgler;
  • At skabe forbindelserne i blockchainen gennem blok-hashes.

Med dette in mente har en god hashfunktion til blockchain flere vigtige egenskaber:

Hashing, især ved brug af en god hashfunktion, kan sammenlignes med at lave en smoothie. Lad os se på følgende illustration:

Det er faktisk muligt at finde den oprindelige input ud fra en hash, men det ville tage så lang tid, at det ikke er praktisk anvendeligt.

Blok-hashing

For at få hashen af en bestemt blok bruger Bitcoin SHA-256 hashfunktionen, som genererer en 256-bit (32-byte) hash. Det er en del af SHA-2 familien, designet af National Security Agency (NSA) og kendt for sine stærke sikkerhedsegenskaber, hvilket gør den modstandsdygtig over for kollisioner, preimage-angreb og andre kryptografiske sårbarheder.

Hashen af en Bitcoin-blok beregnes ved at tage blokhovedets data. Disse data indtastes i SHA-256 hashfunktionen to gange i en proces kendt som dobbelt SHA-256.

Her er et billede, der tydeliggør processen:

Den resulterende 256-bit hash skal opfylde visse kriterier defineret af netværkets sværhedsgradsmål. Hvis hashen ikke er under målet, justeres noncen, og hashen beregnes igen, indtil en kvalificerende hash findes. Denne endelige hash er blokkens unikke identifikator.

Merkle-rod

Merkle-roden er en enkelt hash, der repræsenterer alle transaktioner inkluderet i en blok. Beregningen starter med hasherne af hver enkelt transaktion ved brug af dobbelt SHA-256.

Hver transaktionshash parres derefter med en anden, og parret hashes sammen for at producere en ny hash. Denne proces med parring og hashing fortsætter lag for lag, indtil kun én hash er tilbage. Den endelige hash er Merkle-roden, som indkapsler hele sættet af transaktioner og sikrer deres integritet ved at kode dem til en enkelt værdi. Denne hierarkiske struktur kaldes et Merkle-træ.

Følgende eksempel illustrerer, hvordan et Merkle-træ dannes:

Som det ses, indeholder vores blok 6 transaktioner (hver mærket som Tx), og via hashing og parring af nye hasher beregnes en Merkle-rod.

Note
Bemærk

Når den højre hash ikke har et par, som med Hash56 i vores eksempel, bliver denne sidste hash duplikeret for at danne et par. Denne teknik opretholder integriteten og effektiviteten af Merkle-træstrukturen, selv med et ulige antal transaktioner eller hashes på et tidspunkt.

question mark

Hvad er outputstørrelsen for SHA-256 hashfunktionen, der bruges i Bitcoins blockchain?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

bookOversigt over Hashing

Stryg for at vise menuen

Hashing og blok-hashes er blevet nævnt flere gange, men selve konceptet er endnu ikke blevet gennemgået i detaljer. Det er nu tid til at forstå, hvad hashing egentlig er.

Note
Studér mere

Hashing er en proces, der tager en input og producerer en streng af fast størrelse af bytes, typisk udtrykt som et hexadecimalt tal. Outputtet, kendt som et hash, fremstår tilfældigt og ændrer sig fuldstændigt ved enhver ændring af inputtet, en egenskab kendt som "avalanche-effekten".

Egenskaber ved hashfunktioner

I blockchain bruges hashfunktioner til:

  • At sikre transaktioner ved at skabe et unikt fingeraftryk for hver enkelt;
  • At generere adresser fra offentlige nøgler;
  • At skabe forbindelserne i blockchainen gennem blok-hashes.

Med dette in mente har en god hashfunktion til blockchain flere vigtige egenskaber:

Hashing, især ved brug af en god hashfunktion, kan sammenlignes med at lave en smoothie. Lad os se på følgende illustration:

Det er faktisk muligt at finde den oprindelige input ud fra en hash, men det ville tage så lang tid, at det ikke er praktisk anvendeligt.

Blok-hashing

For at få hashen af en bestemt blok bruger Bitcoin SHA-256 hashfunktionen, som genererer en 256-bit (32-byte) hash. Det er en del af SHA-2 familien, designet af National Security Agency (NSA) og kendt for sine stærke sikkerhedsegenskaber, hvilket gør den modstandsdygtig over for kollisioner, preimage-angreb og andre kryptografiske sårbarheder.

Hashen af en Bitcoin-blok beregnes ved at tage blokhovedets data. Disse data indtastes i SHA-256 hashfunktionen to gange i en proces kendt som dobbelt SHA-256.

Her er et billede, der tydeliggør processen:

Den resulterende 256-bit hash skal opfylde visse kriterier defineret af netværkets sværhedsgradsmål. Hvis hashen ikke er under målet, justeres noncen, og hashen beregnes igen, indtil en kvalificerende hash findes. Denne endelige hash er blokkens unikke identifikator.

Merkle-rod

Merkle-roden er en enkelt hash, der repræsenterer alle transaktioner inkluderet i en blok. Beregningen starter med hasherne af hver enkelt transaktion ved brug af dobbelt SHA-256.

Hver transaktionshash parres derefter med en anden, og parret hashes sammen for at producere en ny hash. Denne proces med parring og hashing fortsætter lag for lag, indtil kun én hash er tilbage. Den endelige hash er Merkle-roden, som indkapsler hele sættet af transaktioner og sikrer deres integritet ved at kode dem til en enkelt værdi. Denne hierarkiske struktur kaldes et Merkle-træ.

Følgende eksempel illustrerer, hvordan et Merkle-træ dannes:

Som det ses, indeholder vores blok 6 transaktioner (hver mærket som Tx), og via hashing og parring af nye hasher beregnes en Merkle-rod.

Note
Bemærk

Når den højre hash ikke har et par, som med Hash56 i vores eksempel, bliver denne sidste hash duplikeret for at danne et par. Denne teknik opretholder integriteten og effektiviteten af Merkle-træstrukturen, selv med et ulige antal transaktioner eller hashes på et tidspunkt.

question mark

Hvad er outputstørrelsen for SHA-256 hashfunktionen, der bruges i Bitcoins blockchain?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4
some-alt