Ö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.
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 blockkedjan används hashfunktioner för att:
- Skydda 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 blockkedjan flera viktiga egenskaper:
Hashning, särskilt med en bra hashfunktion, kan jämföras med att göra en smoothie. Följande illustration visar detta:
Det är faktiskt möjligt att hitta den ursprungliga inmatningen utifrån en hash, men det skulle ta alldeles för lång tid för att vara praktiskt användbart.
Blockhashning
För att erhålla hashen för ett visst block använder Bitcoin hashfunktionen SHA-256, som genererar en 256-bitars (32-byte) hash. Den ingår i SHA-2-familjen, utvecklad av National Security Agency (NSA) och är känd för sina starka säkerhetsegenskaper, vilket gör den motståndskraftig mot kollisioner, preimage-attacker och andra kryptografiska sårbarheter.
Hashen 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:
Den resulterande 256-bitars hashen måste uppfylla vissa kriterier som definieras av nätverkets svårighetsmål. Om hashen inte är under målvärdet 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 enskild hash som representerar alla transaktioner som ingår i ett block. Beräkningen börjar med hasharna för varje enskild transaktion, med användning av dubbel SHA-256.
Varje transaktionshash pareras sedan med en annan, och paret hashas tillsammans för att producera en ny hash. Denna process med parning och hashing 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:
Som du kan se innehåller vårt block 6 transaktioner (var och en märkt som Tx) och genom hashing och parning av nya hashar beräknas en Merkle-root.
När den högra hashen saknar en parter, som med Hash56 i vårt exempel, dupliceras denna sista hash för att skapa ett par. Denna teknik bevarar integriteten och effektiviteten i Merkle-trädstrukturen även vid udda antal transaktioner eller hashar vid vissa tillfällen.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Ö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.
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 blockkedjan används hashfunktioner för att:
- Skydda 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 blockkedjan flera viktiga egenskaper:
Hashning, särskilt med en bra hashfunktion, kan jämföras med att göra en smoothie. Följande illustration visar detta:
Det är faktiskt möjligt att hitta den ursprungliga inmatningen utifrån en hash, men det skulle ta alldeles för lång tid för att vara praktiskt användbart.
Blockhashning
För att erhålla hashen för ett visst block använder Bitcoin hashfunktionen SHA-256, som genererar en 256-bitars (32-byte) hash. Den ingår i SHA-2-familjen, utvecklad av National Security Agency (NSA) och är känd för sina starka säkerhetsegenskaper, vilket gör den motståndskraftig mot kollisioner, preimage-attacker och andra kryptografiska sårbarheter.
Hashen 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:
Den resulterande 256-bitars hashen måste uppfylla vissa kriterier som definieras av nätverkets svårighetsmål. Om hashen inte är under målvärdet 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 enskild hash som representerar alla transaktioner som ingår i ett block. Beräkningen börjar med hasharna för varje enskild transaktion, med användning av dubbel SHA-256.
Varje transaktionshash pareras sedan med en annan, och paret hashas tillsammans för att producera en ny hash. Denna process med parning och hashing 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:
Som du kan se innehåller vårt block 6 transaktioner (var och en märkt som Tx) och genom hashing och parning av nya hashar beräknas en Merkle-root.
När den högra hashen saknar en parter, som med Hash56 i vårt exempel, dupliceras denna sista hash för att skapa ett par. Denna teknik bevarar integriteten och effektiviteten i Merkle-trädstrukturen även vid udda antal transaktioner eller hashar vid vissa tillfällen.
Tack för dina kommentarer!