Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Översikt av Hashning | Block och Transaktioner
Introduktion till Blockkedja

Översikt av Hashning

Svep för att visa menyn

Hashning och blockhashar har nämnts flera gånger, men själva konceptet har ännu inte undersökts i detalj. Nu är det dags att förstå vad hashning faktiskt är.

Note
Läs mer

Hashning är en process som tar en indata och producerar en sträng av bytes med fast storlek, vanligtvis uttryckt som ett hexadecimalt tal. Utdata, kallad en hash, verkar slumpmässig och förändras helt vid minsta ändring av indata, en egenskap som kallas "avalanche-effekten".

Egenskaper hos hashfunktioner

Inom blockchain används hashfunktioner för att:

  • Säkra transaktioner genom att skapa ett unikt fingeravtryck för varje transaktion;
  • Generera adresser från publika nycklar;
  • Skapa länkar i blockkedjan genom blockhashar.

Med detta i åtanke har en bra hashfunktion för blockchain flera viktiga egenskaper:

Hashning, särskilt med en bra hashfunktion, kan jämföras med att göra en smoothie. Låt oss titta på följande illustration:

Hashningsillustration

Faktum är att det är möjligt att hitta den ursprungliga inmatningen givet en hash, men det skulle ta alldeles för lång tid för att vara praktiskt genomförbart.

Blockhashning

För att få hashvärdet för ett visst block använder Bitcoin hashfunktionen SHA-256, som genererar en 256-bitars (32-byte) hash. Den är en del av SHA-2-familjen, designad av National Security Agency (NSA) och känd för sina starka säkerhetsegenskaper, vilket gör den motståndskraftig mot kollisioner, preimage-attacker och andra kryptografiska sårbarheter.

Hashvärdet för ett Bitcoin-block beräknas genom att ta blockhuvudets data. Denna data matas in i SHA-256 hashfunktionen två gånger i en process som kallas dubbel SHA-256.

Här är en bild för att förtydliga:

Blockhashning

Den resulterande 256-bitars hash måste uppfylla vissa kriterier som definieras av nätverkets svårighetsmål. Om hashen inte är under målet justeras noncen och hashen beräknas om tills en kvalificerande hash hittas. Denna slutliga hash är blockets unika identifierare.

Merkle-root

Merkle-rooten är en enda hash som representerar alla transaktioner som ingår i ett block. Beräkningen börjar med hasharna för varje enskild transaktion, med hjälp av dubbel SHA-256.

Varje transaktionshash pareras med en annan, och paret hashkodas tillsammans för att skapa en ny hash. Denna process med parning och hashning fortsätter lager för lager tills endast en hash återstår. Den slutliga hashen är Merkle-rooten, som kapslar in hela uppsättningen transaktioner och säkerställer deras integritet genom att koda dem till ett enda värde. Denna hierarkiska struktur kallas för ett Merkle-träd.

Följande exempel illustrerar hur ett Merkle-träd bildas:

Merkle-träd

Som du kan se innehåller vårt block 6 transaktioner (var och en märkt som Tx) och genom hashning och ihopparning av nya hashvärden beräknas en Merkle-root.

Note
Notering

När det högra hashvärdet saknar en partner, som med Hash56 i vårt exempel, dupliceras denna sista hash för att skapa ett par. Denna teknik upprätthåller integriteten och effektiviteten i Merkle-trädstrukturen även vid udda antal transaktioner eller hashvärden vid vissa tillfällen.

question mark

Vad är utdata-storleken för hashfunktionen SHA-256 som används i Bitcoins blockkedja?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Översikt av Hashning

Hashning och blockhashar har nämnts flera gånger, men själva konceptet har ännu inte undersökts i detalj. Nu är det dags att förstå vad hashning faktiskt är.

Note
Läs mer

Hashning är en process som tar en indata och producerar en sträng av bytes med fast storlek, vanligtvis uttryckt som ett hexadecimalt tal. Utdata, kallad en hash, verkar slumpmässig och förändras helt vid minsta ändring av indata, en egenskap som kallas "avalanche-effekten".

Egenskaper hos hashfunktioner

Inom blockchain används hashfunktioner för att:

  • Säkra transaktioner genom att skapa ett unikt fingeravtryck för varje transaktion;
  • Generera adresser från publika nycklar;
  • Skapa länkar i blockkedjan genom blockhashar.

Med detta i åtanke har en bra hashfunktion för blockchain flera viktiga egenskaper:

Hashning, särskilt med en bra hashfunktion, kan jämföras med att göra en smoothie. Låt oss titta på följande illustration:

Hashningsillustration

Faktum är att det är möjligt att hitta den ursprungliga inmatningen givet en hash, men det skulle ta alldeles för lång tid för att vara praktiskt genomförbart.

Blockhashning

För att få hashvärdet för ett visst block använder Bitcoin hashfunktionen SHA-256, som genererar en 256-bitars (32-byte) hash. Den är en del av SHA-2-familjen, designad av National Security Agency (NSA) och känd för sina starka säkerhetsegenskaper, vilket gör den motståndskraftig mot kollisioner, preimage-attacker och andra kryptografiska sårbarheter.

Hashvärdet för ett Bitcoin-block beräknas genom att ta blockhuvudets data. Denna data matas in i SHA-256 hashfunktionen två gånger i en process som kallas dubbel SHA-256.

Här är en bild för att förtydliga:

Blockhashning

Den resulterande 256-bitars hash måste uppfylla vissa kriterier som definieras av nätverkets svårighetsmål. Om hashen inte är under målet justeras noncen och hashen beräknas om tills en kvalificerande hash hittas. Denna slutliga hash är blockets unika identifierare.

Merkle-root

Merkle-rooten är en enda hash som representerar alla transaktioner som ingår i ett block. Beräkningen börjar med hasharna för varje enskild transaktion, med hjälp av dubbel SHA-256.

Varje transaktionshash pareras med en annan, och paret hashkodas tillsammans för att skapa en ny hash. Denna process med parning och hashning fortsätter lager för lager tills endast en hash återstår. Den slutliga hashen är Merkle-rooten, som kapslar in hela uppsättningen transaktioner och säkerställer deras integritet genom att koda dem till ett enda värde. Denna hierarkiska struktur kallas för ett Merkle-träd.

Följande exempel illustrerar hur ett Merkle-träd bildas:

Merkle-träd

Som du kan se innehåller vårt block 6 transaktioner (var och en märkt som Tx) och genom hashning och ihopparning av nya hashvärden beräknas en Merkle-root.

Note
Notering

När det högra hashvärdet saknar en partner, som med Hash56 i vårt exempel, dupliceras denna sista hash för att skapa ett par. Denna teknik upprätthåller integriteten och effektiviteten i Merkle-trädstrukturen även vid udda antal transaktioner eller hashvärden vid vissa tillfällen.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
some-alt