Forstå Secure Hashing Algorithms (SHA-256)

Secure Hashing Algorithms (SHA-256)

I transaktioner, der involverer kryptovalutaer som bitcoin, tages transaktionerne som input og køres gennem en sikker hashing-algoritme ("SHA"). SHA består af fire SHA-algoritmer:SHA-0, SHA-1, SHA-2 og SHA-3.

SHA-1 er den mest udbredte af de nuværende SHA-hash-funktioner, der bruges i mange applikationer og protokoller, herunder Secure Socket Layer (SSL) sikkerhed.

SHA-2 er den anden mest almindelige, bestående af SHA-224, SHA-256, SHA-384 og SHA-512, afhængigt af antallet af bits i en hashværdi.

For eksempel bruger bitcoin SHA-256, som giver den en hashværdi af en fast længde. Uanset størrelsen eller længden af ​​input, vil output altid have en fast 256-bit længde. Dette er så du ikke behøver at huske inputdataene, som kan være enorme - alt du skal gøre er at huske hashen og holde styr. For mere information om SHA-funktioner, klik venligst her.

Kryptografiske hash-funktioner

Afhængigt af dets kryptografiske karakteristika kan hash-funktioner anvendes på to forskellige måder:adgangskodelagring og dataintegritet.

Opbevaring af adgangskode

I stedet for at gemme adgangskoden ude i det fri, gemmer alle logonprocesser hashværdierne for adgangskoder i selve filen. Adgangskodefilen består af en tabel af par, som er i form af (bruger-id, h(P)).

Processen er afbildet i nedenstående grafik:

I tilfælde af at en ubuden gæst støder på filen, kan de kun se hasherne af adgangskoder, selvom de har fået adgang til selve adgangskoden. De ville ikke være i stand til at logge på ved hjælp af hash, og de kan heller ikke udlede adgangskoden fra hash-værdi, da hash-funktionen besidder egenskaben pre-image modstand.

Dataintegritet

Dette er den mest almindelige anvendelse af hash-funktionerne. Det bruges til at generere kontrolsummer på datafiler, hvilket giver brugeren sikkerhed for, at dataene er nøjagtige.

Forstå Secure Hashing Algorithms (SHA-256)

I grafikken ovenfor kan du se integritetskontrollen, der hjælper brugeren med at opdage eventuelle ændringer, der er foretaget i den originale fil.

Forbeholdet med dataintegritetstjek er, at dette kun er værdifuldt, hvis du mener, at filen faktisk er den originale fil.

Eksempel:En ubuden gæst kommer ind, og i stedet for at ændre fildata, ændrer de hele filen og beregner en helt ny hash, og sender den derefter til modtageren. Hvordan ville du vide det? Det ville du ikke.

Så integritetskontrollen er kun nyttig, hvis brugeren er sikker på originaliteten af filen.

Kryptografiske karakteristika/egenskaber

For at en hashfunktion kan betragtes som et "sikkert" og et effektivt kryptografisk værktøj, skal den have visse karakteristika eller egenskaber.

Deterministisk

Under denne egenskab, uanset hvor mange gange en person går gennem et bestemt input gennem en hash-funktion, vil du altid få det samme resultat. Dette er for at gøre det nemt, når du holder styr på et bestemt input.

Hurtig beregning

Under denne egenskab vil enhver hash-funktion være nødt til at returnere hashen af input hurtigt.

Præ-billedmodstand

Egenskaben "pre-image modstand" betyder, at det burde være beregningsmæssigt svært at vende en hash-funktion.

Eksempel:Hvis en hashfunktion (h) producerede en hashværdi (z), så burde det være en vanskelig proces at finde en hvilken som helst inputværdi (x), der hashes til (z). Linket i kæden er meget svært at finde. Dette sikrer mod enhver potentiel hacker, der kun har en hashværdi og forsøger at finde inputtet (link i kæden).

Anden præ-billede modstand

Denne egenskab betyder, at det burde være svært at finde et andet input med den samme hash.

Eksempel:Hvis en hashfunktion (h) for et input (x) producerer en hashværdi h(x), så burde det være svært at finde nogen anden inputværdi (y), så h(y) =h(x).

Dette beskytter mod enhver trussel, der har en inputværdi og dens hash og ønsker at erstatte en anden værdi h(x) som legitim værdi i stedet for den oprindelige inputværdi.

Kollisionsmodstand

Denne egenskab gør det vanskeligt at finde to forskellige input af enhver længde, der er resultatet af den samme hash.

Eksempel:For en hash-funktion, h, burde det være svært at finde to forskellige output, x og y, hvor hackeren ville være i stand til at sammensætte h(x) =h(y).

Mens hash-funktioner i det væsentlige komprimerer funktioner med en fast hash-længde, er det umuligt for en hash-funktion ikke at have en kollision. Ved at have egenskaben "kollisionsfri" bliver det kun endnu sværere for en angriber at finde to inputværdier med samme hash.

Puslespilsvenlig

For hvert output, "y", hvis "K" er valgt fra en fordeling med "høj min-entropi", er det meget vanskeligt at finde et input "x", således at H(k|x) =Y.

En "høj min-entropi" betyder, at den valgte værdi er så vidt fordelt over en række værdier, at sandsynligheden for at vælge den korrekte værdi er meget usandsynlig.

Husk spillet "vælg et tal mellem 1 og 100?" Det er høj minentropi.

Den | betyder join--med andre ord betyder k|x kx.

Datastruktur

Når vi taler om datastrukturegenskaber, henviser vi til pointere og linkede lister.

Pointere er variabler, der gemmer adressen på en anden variabel i programmering og peger på placeringen af andre variable.

En sammenkædet liste er en sekvens af blokke, der hver indeholder et sæt data, der er knyttet til den næste blok via en markør.

Forstå Secure Hashing Algorithms (SHA-256)

Inde i hver blok vil du se en markør, som indeholder adressen til den næste blok. Den første blok, hvor du ser markøren, kaldes Genesis Block

Forstå Secure Hashing Algorithms (SHA-256)

Merkle-træet

Når vi taler om datastrukturegenskaber, henviser vi til pointere og linkede lister.

Pointere er variabler, der gemmer adressen på en anden variabel i programmering og peger på placeringen af andre variable.

En sammenkædet liste er en sekvens af blokke, der hver indeholder et sæt data, der er knyttet til den næste blok via en markør.

Forstå Secure Hashing Algorithms (SHA-256)

Når du ser på et Merkle-træ, er det bedst at starte helt nederst med bladknuderne (L1, L2, L3, L4). Når du bevæger dig opad, vil du se noder uden blade, der fungerer som hash for værdierne (hash(L1)), (hash(L2)), (hash(L3)) og (hash(L4)) for deres underordnede noder (hash 0-0, 0-1, 1-0, 1-1).

En "barneknude" er de noder, der fødes ind i hashen. For Hash 0 er de underordnede noder Hash 0-0 og Hash 0-1. For Hash 1 er de underordnede noder Hash 1-0 og Hash 1-1.

Forstå Secure Hashing Algorithms (SHA-256)

Flytter du op i diagrammet til det højeste niveau, mærket "Top Hash", er dette rodnoden.

Så du undrer dig over, hvad formålet er med Merkle-træet? At sortere gennem en bestemt blok er ikke en let opgave, men når du bruger et Merkle-træ, vil du spare tid på at lede efter en bestemt transaktion for at afgøre, om den hører hjemme i den pågældende blok eller ej.

Når du ser på en transaktion, vil du være sikker på, at de indeholdte data hører hjemme i de relevante blokke. Ved at bruge Merkle-træet er du i stand til hurtigt at spore dataene ved at følge sporet af hash.

Forstå Secure Hashing Algorithms (SHA-256)

Anvendelse af hashing til minedriftsprocessen

Når en ny blok ankommer, hashes hele indholdet af disse blokke. Hvis hashen er mindre end sværhedsgradsmålet, føjes den derefter til blockchain, så fællesskabet kan anerkende det.

Meget sjældent får man en ny blok klar til at blive tilføjet til kæden, bare sådan. Derfor tilføjes en vilkårlig datastreng til blokkens hash. Når den er tilføjet, hashes strengen igen og sammenlignes med sværhedsgraden.

Hvis det er højere end sværhedsgraden, ændres nonce, og det fortsætter med at gentage igen og igen, indtil kravene til sværhedsgraden er opfyldt. Først når disse krav er opfyldt, føjes blokken endelig til blockchainen.

Hash-frekvensen

Hash-hastigheden beskriver, hvor hurtigt hash-operationer tager under mineprocessen.

En høj hash-rate betyder, at der er flere parter involveret i mineprocessen, hvilket sikrer en problemfri drift. Men hvis en hash-rate er for høj, øges sværhedsgraden.

Hvis hashhastigheden bliver for langsom, reduceres sværhedsgraden. Ideen er altid at sikre, at systemet kører problemfrit, så det er vigtigt at sørge for alle midler til nøjagtige hash-operationer.

Så for at opsummere:

Når du modtager en blok af data, kombineres hashen af indholdet af denne blok med en nonce eller tilfældig streng af data.

Den nye streng af data (hash + nonce) hashes derefter igen sammenlignet med sværhedsgraden. Afhængigt af om den opfylder kravene, bliver den nye streng enten hashed igen eller tilføjet til blockchain.

Når det er føjet til blockchain, informeres fællesskabet

Minearbejdere, der er ansvarlige for denne proces, belønnes med bitcoins.


Fondsoplysninger
  1. Fondsoplysninger
  2. Offentlig investeringsfond
  3. Private investeringsfonde
  4. Hedgefond
  5. Investeringsfond
  6. Indeksfond