Mynter på SHA256. Hva er Bitcoin-krypteringsalgoritmen? Svakheter og styrker ved Bitcoin hashing-algoritmen

SHA 256 hashing-funksjonen dannet grunnlaget for den aller første kryptovalutaen i verden - Bitcoin og mange altcoins. Visste du at den ble skapt lenge før fremkomsten av kryptovalutaer og var ment for helt andre formål? I dag skal vi se på historien til algoritmen, prinsippet for dens drift, aktuelle problemer og hvilke kryptovalutaer som bruker SHA256.

Historie

Navnet på algoritmen SHA 256 er et akronym for Secure Hashing Algorithm. Det var det utvikleren kalte det - US National Security Agency. Algoritmen er en hashing-funksjon. Dette betyr at inngangen er et datavolum av vilkårlig lengde, og utdataene er et sett med tegn med en fast lengde, kalt en hash.

En av nøkkelfunksjonene til hash-hash-funksjoner er irreversibilitet. Vi kan få hashen ved å sende de originale dataene gjennom funksjonen, men når vi kjenner hashen, vil vi ikke kunne få de originale dataene. Takket være denne egenskapen har funksjonen blitt utbredt i ulike tjenester og applikasjoner hvor databeskyttelse er påkrevd. Hver dag bruker vi SHA 256-algoritmen når vi besøker nettsteder på Internett. Den inkluderer et SSL-sikkerhetssertifikat, som kreves for å etablere en sikker tilkobling til nettstedet.


Algoritmen er en del av SHA-2-familien, utviklet på grunnlag av SHA-1, som dukket opp i 1995. Siden oppstarten har sha256 blitt grundig testet for sin styrke ved hjelp av kryptoanalyse. Krypteringsanalyse tester motstanden til hashfunksjoner mot to hovedtyper av angrep:
  • Finne kollisjoner - oppdage identiske hasher med forskjellige inngangsparametere. Suksessraten for dette angrepet kompromitterer sikkerheten til den digitale signaturen ved å bruke den gjeldende algoritmen.
  • Å finne et forhåndsbilde er muligheten til å dekryptere den originale meldingen ved å bruke hashen. Dette angrepet kompromitterer sikkerheten til lagring av autentiseringspassord-hasher.

Analysen ble først testet i 2003, men da ble det ikke funnet noen sårbarheter. Ettersom tiden gikk utviklet datakraften seg. I 2008 ble det funnet kollisjoner for iterasjonene SHA-512 og SHA-256. I september samme år ble det utviklet en metode for å lage kollisjoner for 31 iterasjoner av SHA256 og 27 iterasjoner av SHA-512.

Tydeligvis er tiden inne for å utvikle en ny krypto-resistent funksjon. I 2012 oppfant NSA SHA-3. Gradvis vil den oppdaterte algoritmen fortrenge sine mindre krypto-resistente forgjengere.

Gruvedrift på SHA 256

Amerikansk lov tillater bruk av SHA og lignende hash-funksjoner som en del av andre protokoller og algoritmer i visse føderale ikke-hemmeligener. SHA-2 kan brukes av private og kommersielle organisasjoner.

Det er ingen overraskelse at det ble brukt i kryptovalutaer. Gruvearbeidere samler alle transaksjoner i en blokk og begynner deretter å hashe den. Når en hash-verdi som samsvarer med systemreglene blir funnet, anses blokken som klar til å festes til slutten av blokkjeden. Den nye blokken vil bli funnet av noen som kan beregne hashverdier veldig raskt. Beregningshastigheten avhenger av kraften til utstyret. Tre typer utstyr kan brukes til å utvinne Bitcoin:

  • CPU (sentral prosesseringsenhet);
  • GPU (skjermkort);
  • ASIC (Application Specific Device).

Bitcoin-nettverket er utformet på en slik måte at hver ny blokk må finnes en gang hvert 10. minutt. Antall nettverksdeltakere er i konstant endring, men tiden må holde seg konstant. For å sikre like oppholdstider, justerer systemet beregningsvanskeligheten avhengig av antall gruvearbeidere. Kryptovalutaer har vunnet popularitet den siste tiden, og antallet gruvearbeidere har økt kraftig. For å hindre at blokker ble funnet for raskt, økte også kompleksiteten i beregningene.


Bitcoin begynte å bli utvunnet på prosessorer. Så, når strømmen ble utilstrekkelig, byttet de til skjermkort. Snart klarte ikke skjermkortene lenger. Så ble ASICer oppfunnet – spesielle enheter designet for beregninger ved hjelp av algoritmen sha 256. En ASIC er mye kraftigere og mer energieffektiv enn flere skjermkort.

Driftige gruvearbeidere lager enorme gårder fra ASIC-er. I tillegg til de høye kostnadene for selve utstyret, mottar en slik gård strømregninger på flere titusenvis av dollar hver måned. Nå gir Bitcoin-gruvedrift bare mening på slike industrielle gårder; en hjemmedatamaskin eller til og med en gård med flere skjermkort vil ikke være i stand til å konkurrere med dem, og til og med få tilbake strømmen.

Dette er imidlertid enkelt å beregne. Det finnes kalkulatorer for å beregne lønnsomheten av gruvedrift på sha256. For eksempel https://www.coinwarz.com/miningprofitability/sha-256. Skriv inn hashraten til utstyret ditt (datakraft), energiforbruk og kostnadene i skjemaet, tjenesten vil beregne fortjenesten din.

Altcoins SHA-256

La oss se på listen og listen over kryptovalutaer som fungerer på sha 256.

Bitcoin Cash (BCH)

Skilt fra den 1. august 2017. Blokkstørrelsen i klassisk Bitcoin er 1 MB. Nettverket har vokst så mye at alle transaksjoner ikke lenger kan passe inn i en blokk. Dette førte til dannelsen av køer av transaksjoner og økte gebyrer for å utføre betalinger. Fellesskapet bestemte seg for å introdusere en ny protokoll, ifølge hvilken blokkeringen ble økt til 2 MB, noe informasjon begynte å bli lagret utenfor blokkjeden, og tidsrammen for å beregne kompleksiteten ble redusert fra to uker til en dag.

Namecoin (NMC)

Det er et system for lagring og overføring av navn-verdi-kombinasjoner basert på Bitcoin-teknologi. Dens mest kjente applikasjon er distribusjonssystemet for domenenavn, som er uavhengig av ICANN og derfor umuliggjør tilbaketakelse av domene. Namecoin ble lansert i 2011, den kjører på Bitcoin-gruveprogramvare videresendt til serveren der Namecoin kjører.

DigiByte (DGB)

En kryptovaluta lansert i 2013 med mål om å forbedre ytelsen til Bitcoin og Litecoin. DigiByte-forskjeller:

  • Lav volatilitet oppnås på grunn av det enorme antallet utstedte mynter (opptil 21 milliarder), noe som sikrer lave kostnader og brukervennlighet i beregninger;
  • Raskere transaksjoner ved å doble blokkstørrelsen annethvert år;
  • Lave provisjoner eller ingen provisjoner;
  • Gruveprosessen er delt inn i fem algoritmer som lar deg utvinne mynter uavhengig av hverandre. Du kan bruke ASIC-er for SHA-256 og Scrypt, skjermkort for Groestl og Skein, og en prosessor for Qubit.

SHA 256-algoritmen er den vanligste blant kryptovalutaer. Dette var forårsaket av populariteten og suksessen til Bitcoin, og ønsket til altcoin-utviklere om å lage lignende mynter. Økningen i beregningsmessig kompleksitet fikk gruvearbeidere til å se etter måter å gruve mer effektivt på, noe som resulterte i fremveksten av ASIC-er.


Bitcoin-kryptering er basert på SHA-256, en spesiell algoritme som er en del av programkoden. Dens oppgave er å konvertere inndataene til et spesifikt sett med tegn (i alfabetisk og numerisk representasjon) og beskytte informasjonen. Slike handlinger kalles hashing. Hva er subtilitetene til denne algoritmen? Hvorfor er det nødvendig og hvordan fungerer det? Hva er fordelene og ulempene? Vi vil vurdere disse og en rekke andre punkter i detalj.

Hvilken krypteringsalgoritme har Bitcoin, og hvor brukes den?

Når man diskuterer kryptovaluta, funksjonene i driften og gruvedriften, kommer deltakere i kryptonettverket uunngåelig over en så utbredt definisjon som Bitcoin-krypteringsalgoritmen. Fra dagen BTC ble utviklet og frem til i dag (13. august 2018) har SHA-256 blitt brukt, noe som er nødvendig for å løse følgende problemer i Bitcoin-nettverket:

  1. Dannelse av BTC-adresser (brukes til transaksjoner).
  2. Gruvedrift (bevis på arbeid).
  3. Oppnå den nødvendige grad av sikkerhet og anonymitet.
  4. For digital signatur og dens gjenkjennelse.
SHA-256-algoritmen er relevant ikke bare for Bitcoin, men også for andre mynter, nemlig Bitcoin Cash, Mazacoin, Peercoin, Namecoin og andre kryptovalutaer. I tillegg brukes SHA-2 (grunnlaget for SHA-256) til å lage mange protokoller designet for å beskytte data på Internett, nemlig SSL, TSL og andre.

Bitcoin hashing-algoritmen er nødvendig for å kontrollere informasjon gjennom analyse og rettidig identifisering av unøyaktigheter. Når dataene først er behandlet og konvertert til en hash, er det umulig å få tilbake informasjonen. Hvis du tar en allerede kryptert BTC-fil, gjør beregningene på nytt og sørg for at hash-parametrene er identiske, kan du være sikker på at det ikke er noen endringer i den opprinnelige informasjonen. Hvis dataene er forskjellige, indikerer dette et systemhack.

Bitcoin krypteringsalgoritme - hvordan det fungerer i enkle ord


SHA-2 er basert på rammeverket laget av Merkle og Damgaard. Det særegne ved hash-funksjonen som brukes i kryptografi er den ikke-standardiserte tilnærmingen til dannelsen. De innkommende dataene deles inn i blokker med identisk størrelse, hvoretter de opprettede elementene konverteres til heksadesimale tall. Det er med dem at beregninger i ettertid gjøres. En hash-funksjon brukes på den resulterende verdien, og resultatet av behandlingen er hash-summen som vises i utdataene. Det er et sett med tegn presentert i alfabetisk og numerisk visning. I hovedsak er dette en hash.

Den neste blokken bygges etter prinsippet beskrevet ovenfor. I dette tilfellet startes en ny prosess etter opprettelsen av det forrige elementet. Hvis det gjøres endringer i de opprinnelige dataene, endres hashen. I tilfellet når identiske hashfunksjonsparametere plutselig vises i forskjellige blokker, oppstår en konfliktsituasjon i driften av algoritmen. Når et slikt avvik oppstår, trekkes hele blokkjedekjeden i tvil.

Dermed brukes en hash-funksjon for å lage en digital signatur. Hvis situasjonen diskutert ovenfor oppstår, er det stor sannsynlighet for signaturforfalskning. For å beregne slike feil (kollisjoner) brukes en spesiell teknikk som innebærer å telle opp dataene, noe som øker styrken til hash-funksjonen.

Korrektheten av Bitcoin-kryptering kontrolleres av fire krav:

  1. Når du gjør endringer i innkommende data, forblir hash-beløpet det samme.
  2. Under hashing oppnås en individuell hash-sum (tegnsettet må være unikt).
  3. Nøkkeloppretting ved hjelp av hashing er ekstremt komplisert.
  4. Hashes er irreversible. Dette betyr at arbeid med inndata er tillatt uten mulighet for å utføre omvendt handling.

Hvordan gjelder dette i Bitcoin?

Oppgaven til nodene til kryptovalutanettverket er å finne en i en rekke transaksjoner som passer det på alle måter. Når du evaluerer alternativer, blir den første oppmerksomheten gitt til størrelsen på provisjonen (forresten, av denne grunn fullføres transaksjoner med en større provisjon raskere). Deretter kontrolleres operasjonen, inn- og utdataene studeres, og originaliteten til den digitale signaturen avklares.

Så snart det vurderte arbeidet er fullført, opprettes det neste elementet i Bitcoin-kjeden (blokken) med en viss størrelse (for den aktuelle kryptovalutaen - 1 megabyte). De resulterende nodene består av versjonen, formasjonstiden, to hashes (tidligere blokk og innkommende transaksjoner), samt tilleggsparametere som sikrer unikhet (bits og nonce). I komplekset hashes den opprettede blokken mange ganger, noe som resulterer i dannelsen av en hodehash, som fungerer som en utgang for det "gamle" elementet i kjeden, og som input for det nye.

La oss si at hash-settet inneholder et spesifikt tall "0" (for eksempel er nonce 17). Det er ekstremt vanskelig å velge en slik verdi kun ved å bruke oppregning av verdier. Det er dette aspektet som sikrer påliteligheten til informasjonen i blokkjedenettverket og dens beskyttelse mot hacking. For å lage en hash kreves enorm kraft, uten hvilken det er umulig å finne det nødvendige settet med karakterer. Når dette arbeidet er fullført og parameteren er funnet, sendes den til elementene i kryptonettverket med den nyopprettede blokken og den funnet hashen med 17 "0s". Deretter sjekker alle deltakere i Bitcoin-nettverket hashen, og kombinerer settet med tegn med informasjon fra blokken. Hvis det ikke er noen kollisjon, dukker det opp et nytt element i blokkjedekjeden.

Når dukket Bitcoin-krypteringsalgoritmen opp – en kort historie


Begrepet "SHA" er en forkortelse av tre ord: "Secure Hashing Algorithm". Bitcoin bruker SHA-256, og "basen" til den nevnte hash-funksjonen er SHA-2, som inkluderer mange kryptoalgoritmer (inkludert 256).

Skaperne av SHA-2 er USAs NSA, et spesialbyrå som tar seg av landets nasjonale sikkerhetsspørsmål. Etter å ha utviklet og testet algoritmen, ble den utgitt for publikum i 2002. Den nye SHA-2 inkluderte også den første hash-funksjonen SHA-1 (opprettet 7 år tidligere - i 1995). Siden introduksjonen av SHA-2 har mange varianter av algoritmen blitt utgitt, en av dem ble brukt av Satoshi Nakamoto da han opprettet Bitcoin i 2009.

Målet til utviklerne var å frigjøre en algoritme som ville sikre dannelsen av en spesifikk verdi av en viss lengde fra et tilfeldig sett med tegn. De gjorde det. I fremtiden vil den resulterende parameteren bli brukt til å identifisere (sjekke) informasjon. Det opprinnelige formålet med SHA-2 er å beskytte data på ulike tjenester, og i dag (i 2018) er SHA-256 først og fremst kjent som en algoritme som brukes i myntgruvedrift.

I 2012 ble systemet forbedret og en oppdatert versjon av hash-funksjonen dukket opp - SHA-3. Det antas at den nye utviklingen over tid vil fortrenge de tidligere algoritmene, noe som vil forbedre den allerede høye graden av sikkerhet.

Kjennetegn ved Bitcoin-krypteringsalgoritmen


Essensen av SHA-256 er enkel. Den første meldingen etter å ha lagt til er delt inn i blokker, og hver av dem er på 16 ord. De resulterende elementene går gjennom spesielle sykluser som involverer 64 eller 80 trinn. Ved hver av dem konverteres to ord, og transformasjonsalternativet dannes av de gjenværende ordene. De resulterende parameterne summeres for å danne en hash.

Under driften av algoritmen brukes 6 kommandoer:

  • "xor" - fjerner "ELLER".
  • "shr" - skifter indikatoren med det nødvendige antall biter til høyre med en bestemt frekvens.
  • "råtner" - skifter indikatoren med det nødvendige antall biter til høyre (uten å bruke en spesifikk syklus).
  • "II" - en forbindelse av elementer som er lineære i naturen.
  • "og" - "Og".
  • "+" - sporing.
Protokollegenskaper:
  1. Den øvre grensen for meldingsvarighet er 33 B.
  2. Maksimal hastighetsparameter er 139 MiB/s.
  3. Ordstørrelse - 4 B.
  4. Antall repetisjoner i en syklus er 64.
  5. Størrelsen på blokkelementet er 64 B.
  6. Den totale hash-koden er 32 B.

Bitcoin krypteringsalgoritme i gruvedrift


Når du utfører beregninger innen gruvedrift, bestemmes riktigheten av den resulterende hashkoden av antall nuller på begynnelsen av linjen. For eksempel, hvis denne parameteren er 17, er sannsynligheten for å finne et slikt tall ekstremt lav og er et sted rundt 1:1,4*10 til 20. potens. Det er ikke overraskende at Bitcoin-gruvedrift krever bruk av kraftig utstyr og høye energikostnader. Samtidig er det umulig å optimalisere søket etter den nødvendige hashen, fordi etter å ha mottatt en blokk med informasjon, vises et tilfeldig tall ved utgangen.

Vanskeligheten med å utvinne en virtuell mynt er å finne den nødvendige hasjen og danne neste blokk. For å oppnå dette målet brukes standard oppregning av verdier, noe som krever utstyr med høy ytelse. Som nevnt er søket ikke etter en enkel hash, men etter en verdi med et stort antall "0-er" foran seg.

Utvinning av kryptovaluta ved bruk av SHA-256 er et sett med tiltak rettet mot å løse et spesifikt kryptoproblem. Når det gjelder Bitcoin, brukes følgende utstyr til gruvedrift:

  1. Siden bruken av BTC i 2009, så vel som frem til midten av 2010, var bruken av en sentral prosesseringsenhet (CPU) relevant.
  2. Fram til midten av 2011 brukte gruvearbeidere datamaskiner med skjermkort (GPUer).
  3. Fram til tidlig i 2013 var FGPA-er populære, det samme var GPU-farmer.
  4. I 2014 dukket ASIC-er opp. De formørket eksisterende utstyr i ytelse. Til tross for dette, frem til begynnelsen av 2017, brukte gruvearbeidere GPU-gårder og jobbet i bassenger, men innen utgangen av 2017 og til i dag er det bare -gruvearbeidere som er aktuelle. Bruk av annet utstyr er ulønnsomt.
De nevnte enhetene brukes til å velge hash-funksjonen av interesse og generere en ny. Jo høyere hashrate (datakraft) enheten har, jo raskere blir dataene sortert og jo mindre tid tar det å finne en løsning.

Med økende konkurranse og utgivelsen av mer produktive gruvearbeidere, og økninger, endres parameteren hver 2. uke.

Svakheter og styrker ved Bitcoin hashing-algoritmen


Ovenfor så vi på hva Bitcoin hashing-algoritme er og hva dens funksjoner er. Dette er SHA-256, som regnes som den vanligste algoritmen med et høyt nivå av pålitelighet og et relativt enkelt driftsprinsipp. Den er svært motstandsdyktig mot hacking og lar deg utvinne mynter på hvilket som helst utstyr (avhengig av vanskelighetsparametrene).

Til tross for en rekke positive egenskaper, har Bitcoin hashing-algoritmen en rekke svakheter:

  1. Kontroll av BTC-gruvedeltakere. Det samme prinsippet fungerer her som i aksjeselskaper (JSC), når selskapsdeltakere har et visst antall aksjer. Jo mer makt er konsentrert i hendene på kryptonettverksgruvearbeidere, desto sterkere innvirkning har de på det totale systemet. I tillegg, på grunn av den økende kompleksiteten til gruvedrift i 2018, er det en merkbar tendens til at gruvedrift går fra hendene til private gruvearbeidere til kontrollen av store organisasjoner som er involvert i å lage utstyr for gruvedrift av virtuelle mynter. For å motta Bitcoins må en privat gruvearbeider bruke store summer på å kjøpe ASIC-er, koble seg til en av bassengene og betale for strøm. Hvis du sparer på utstyr, taper produksjonen lønnsomhet.
  2. En konsekvens av situasjonen diskutert ovenfor er det faktum at "løveandelen" av Bitcoins er konsentrert i hendene på eierne av store gruveselskaper. Hvis vi tar i betraktning at ikke all Bitcoin som mottas, selges, blir slike organisasjoner til investorer og myntforvaltere. Som et resultat avtar antallet mynter i omløp. I tillegg lar akkumuleringen av kryptovaluta deg påvirke desentraliseringen, så vel som valutakursen til BTC under handelsprosessen.
  3. På grunn av eksisterende mangler er SHA-256-algoritmen gradvis i ferd med å bli en saga blott, og mer avanserte prosjekter tar sin plass. For eksempel vinner Scrypt, Ethash, Blake-256, Equihash og andre popularitet. Nye algoritmer har bedre beskyttelses- og sikkerhetsnivåer, noe som tvang skaperne av mange kryptovalutaer til å forlate den utdaterte SHA-256 til fordel for mer avanserte teknologier.
  4. Til tross for å korrigere hovedfeilene som ble identifisert av utviklerne, kunne noen sårbarheter ikke fjernes (i 2008 ble det funnet kollisjoner i 22 iterasjoner). Derfor fortsatte utviklingen av SHA, og den andre versjonen ble erstattet av SHA-3.
I 2009 ble jeg tvunget til å bruke SHA-256, fordi på tidspunktet for opprettelsen av kryptovalutaen vedtok statlige myndigheter denne protokollen. På den tiden ble den aktivt brukt for databeskyttelse i noen statlige programmer, og ble også brukt i kommersiell sektor. Det viste seg at protokollen ble laget for å løse visse problemer, men i realiteten er den etterspurt på en helt annen måte.

For klarhet, la oss tabulere de positive og negative egenskapene til Bitcoin-krypteringsalgoritmen.

FordelerFeil
Utbredt (inkludert i kryptovalutasektoren). SHA-protokollen brukes aktivt i hverdagen for å beskytte informasjon.Tap av desentralisering. Makten er konsentrert i hendene på gruveselskapene.
Pålitelig innbruddsbeskyttelse.SHA-iterasjonen har en enkel struktur, noe som har ført til en økning i gruvekompleksitet over tid. Fra og med august 2018 er det kun ASIC-er med høy ytelse som kan brukes til utvinning av Bitcoins.
Praktisk med tanke på myntgruvedrift, allsidighet ved valg av gruveutstyr.Nye algoritmer dukker opp som har en mer avansert struktur.
I den andre versjonen (SHA-2) klarte skaperne å eliminere en rekke mangler som negativt påvirket systemets pålitelighet.Til tross for aktivt arbeid med feil, ble mange mangler ikke fjernet. Ikke overraskende laget utviklerne en ny versjon av SHA-3.
Protokollen er vedtatt på lovgivende nivå i USA.

I dag brukes det nesten ikke i utviklingen av nye kryptovalutaer. Det mest slående eksemplet på en mynt som fortsatt bruker SHA-256 er Bitcoin Cash, en gaffel av Bitcoin som dukket opp i august 2017. Men i situasjonen med denne mynten er bruken av SHA mer en nødvendighet enn et valg av skaperne. Når det gjelder Bitcoin selv, er bruken av denne serieprotokollen på grunn av mangelen på alternativer fra Satoshi Nakamoto.

I dag, i 2018, er det mye snakk om å forbedre denne algoritmen og gjøre endringer i kryptovalutanettverket, men så langt har slike intensjoner ikke funnet fysisk implementering og forblir kun i form av forslag.

Video om kryptografiske funksjoner og algoritmer:

Det siste 2017 var et år med eksplosiv popularitet for kryptovalutaer og den samme raske veksten i hastigheten til den «hoved» kryptovalutaen Bitcoin. Disse omstendighetene drev interessen ikke bare for spekulasjoner og gruvedrift, men også for selve essensen av fenomenet. Flere og flere ønsker å komme til bunns i hvordan det hele fungerer?

Vi åpner en serie materialer der vi vil prøve å forklare i den mest tilgjengelige formen hva som ligger bak disse mystiske akronymene som Scrypt, SHA-256, X11 og andre. La oss starte med den viktigste (men ikke den beste) algoritmen for verden av kryptovalutaer - SHA-256. Det er dette som er grunnlaget for utviklingen av Bitcoin. Men før det, la oss definere nøkkelterminologien - definere betydningen av begrepene "gruvedrift" og "hash".

Hva er gruvedrift?

I motsetning til hva mange tror, ​​er gruvedrift ikke bare og ikke så mye utvinning av kryptografiske sedler i seg selv, men snarere tiltak for å beskytte nettopp denne kryptovalutaen fra uredelige aktiviteter. Det handler ikke bare om forfalskning – enda viktigere er beskyttelse, for eksempel mot gjentatt bruk av de samme myntene av samme person. Inntjening av nye kryptomynter er nært knyttet til deres utslipp og dannes av belønningen for å finne en ny blokk som oppfyller betingelsene for gruvealgoritmen.

Det vil si, for at den neste kryptomynten skal "vises", må du utføre et helt kompleks av komplekse beregninger og finne den veldig ettertraktede "riktige" blokken. Dette er hva entusiaster gjør med utstyret sitt. Ordningen støtter seg selv - for å øke sikkerheten til kryptovalutaen og utstede nye enheter, er gruvedrift nødvendig, og for at det skal være fornuftig å gjøre det, får gruvearbeidere en belønning.

Kort sagt, gruveprogramvaregrupper utførte tidligere beregningsoperasjoner til en enkelt blokk, som deretter transformeres et utrolig antall ganger for å oppdage en spesiell type hash-kode. Å finne en hash-kode som oppfyller kravene til algoritmen blir vanskeligere jo flere deltakere er involvert i prosessen. Den "riktige" hasjen er ekstremt sjelden, og å finne en er beslektet med å vinne i lotto.

Hva er en hasj?

Begrepet "hash", som ikke er klart for alle, ble nevnt ovenfor. Dette er et av de grunnleggende konseptene innen kryptering generelt og i SHA-256-algoritmen spesielt. La oss forklare hva dette betyr og gå over de viktigste relaterte punktene.

Så, hashing er prosessen med å gjøre et innkommende sett med data av en vilkårlig størrelse til en utgående digital streng. Denne transformasjonen utføres i henhold til en forhåndsutviklet algoritme, og den utgående strengen er helt unik, og fungerer som et slags "fingeravtrykk" av den innkommende matrisen. Det er denne strengen som kalles hash-summen, hash-koden eller rett og slett hash. Og transformasjonsalgoritmen er en hash-funksjon.

La oss gi et eksempel. Vi kan "mate" hash-funksjoner, for eksempel teksten til romanen i vers av A. S. Pushkin "Eugene Onegin", og utgangen vil være en heksadesimal kode omtrent som dette:. Selvfølgelig er det umulig å "utfolde" denne koden tilbake og gjøre den om til "Eugene Onegin". Men så snart du endrer et enkelt tegn i diktet, til og med bare legger til ett mellomrom, vil den resulterende hashen bli transformert til det ugjenkjennelige. Volum påvirker heller ikke lengden på hash-koden. Så du kan legge inn ett symbol "a" til funksjonen, og utgangen vil være nøyaktig det samme settet med pseudo-tilfeldige symboler med nøyaktig samme lengde.

La oss nå se nærmere på hvorfor dette er nødvendig og hvilke vanskeligheter som oppstår underveis. Alle som er interessert i emnet vet at gruvedrift av kryptovalutaer ved hjelp av SHA-256-protokollen kan utføres ved hjelp av kraften til en sentral prosessor, et grafikkort eller en spesialisert ASIC-enhet. Faktisk, i forbindelse med Bitcoin, er den første metoden ikke lenger relevant i det hele tatt, og gruvedrift med skjermkort lever sine siste dager. Kompleksiteten i beregningene har økt for betydelig, og halve tiltak er ikke lenger egnet.

I grensesnittet for gruveprogramvare vises prosessene med å konvertere blokker til hash-mengder som en lakonisk linje som "Accepted 0aef59a3b". En blokk kan bestå av tusenvis eller til og med hundretusenvis av lignende linjer, men bare én kan tjene som "signaturen" til blokken, søket etter det er essensen av gruvedrift.

Søket etter riktig hash utføres ved å søke gjennom resultatene for å løse et stort antall problemer. I SHA-256-algoritmen bestemmes "riktigheten" til en hash av antallet nuller i begynnelsen av hash-summen. Sannsynligheten for å finne ut en slik hashkode gjennom beregninger bestemt av algoritmen er ubetydelig – én sjanse i millioner av løsninger. Den nøyaktige sannsynligheten bestemmes av gjeldende vanskelighetsgrad i det desentraliserte systemet til en bestemt kryptovaluta.

Et bemerkelsesverdig faktum. Hver av oss har gjentatte ganger behandlet SHA-256-algoritmen, uten engang å vite det, selv uten hensyn til gruvedrift av kryptovaluta. Vi snakker om SSL-sikkerhetssertifikatet, som beskytter mange nettsteder. Når du besøker et slikt nettsted, samhandler du automatisk med SHA-256, som er det SSL er bygget på.

Funksjoner i SHA-256-protokollen

Først litt historie. Opprinnelig ble SHA-256-krypteringsalgoritmen, eller snarere dens prototype, oppfunnet innenfor veggene til den "uhyggelige" NSA (US National Security Agency) i det nå fjerne 2002. I løpet av et par måneder ble den modifisert og offisielt presentert av National Metrological University på føderalt nivå. To år senere ble den andre, forbedrede versjonen utgitt.

I løpet av de neste tre årene jobbet byrået med å forbedre algoritmen og utstedte til slutt et patent for den andre utgaven. Dette ble gjort under en royaltyfri lisens, som gjorde det mulig å bruke den nyeste teknologien til "fredelige" formål.

Til syvende og sist dannet SHA-256 grunnlaget for etableringen av verdens første kryptovaluta – Bitcoin. I dette tilfellet brukes protokollen to ganger for å øke sikkerheten.

Når du utfører beregninger som en del av gruvedrift i Bitcoin-systemet, er et tegn på egnetheten til den resulterende hashkoden antallet nuller i begynnelsen av linjen. Fra slutten av den 17., begynnelsen av den 18., er antallet nødvendige innledende nuller 17 (+/-). Sannsynligheten for å oppdage en slik kode er omtrent 1 av 1,4*10 20 . Dette er et monstrøst lite tall som trosser forståelsen og kan sammenlignes med sannsynligheten for å finne et sandkorn av en viss form på alle sandstrendene på planeten vår. Dette er grunnen til at utvinning av Bitcoin krever så mye datakraft og så mye elektrisitet.

Det er ingen måte å optimalisere søket etter "riktig" hash. I SHA-256-protokollen produserer hash-funksjonen, som tar en blokk med data, en fullstendig uforutsigbar utgangsverdi. Derfor er iterasjon (repetisjon) etter iterasjon nødvendig til en passende kode er funnet, understreker vi nok en gang - helt tilfeldig.

Nå er vi tvunget til å "laste" leseren litt med kompleks teknisk informasjon, ellers vil historien vår om SHA-256 være ufullstendig. Hvis ingenting er klart i det hele tatt, bare gå videre til neste del av artikkelen.

Protokollen innebærer å bryte informasjon i fragmenter på 512 biter hver (eller 64 byte, som er det samme, siden 1 byte = 8 biter). Deretter skjer kryptografisk "blanding" i henhold til skjemaet som er iboende i algoritmen, og utgangen er en hash-kode på 256 biter i størrelse. Hashing-operasjonen utføres i 64 iterasjoner, noe som er relativt lite, spesielt sammenlignet med de nye kryptografiske algoritmene som har dukket opp.

De viktigste tekniske parametrene til SHA-256 er som følger:

  • Blokkstørrelse: 64 byte;
  • Maksimal meldingslengde: 33 byte;
  • Størrelsen på den resulterende hashkoden: 32 byte;
  • Antall repetisjoner i en runde: 64;
  • Maksimal hastighet: ca 140 MiB/s (mebibyte per sekund).

I sitt arbeid bruker algoritmen den velkjente Merkle-Damgard-teknikken, som går ut på å dele den innledende indikatoren i blokker umiddelbart etter endringer. Blokkene er på sin side delt inn i 16 ord hver.

Datasettet kjøres gjennom en runde på 64 iterasjoner. Hver av dem starter prosessen med å hashe ordene som utgjør blokken. Ordpar behandles av funksjonen, hvoretter resultatene legges sammen, og riktig hash-kode oppnås. Hver neste blokk beregnes basert på verdien av den forrige. Dette er en sømløs prosess - det er umulig å beregne blokker separat fra hverandre.

Evolusjon av SHA-256

For å forstå den kryptografiske verdien av denne algoritmen, la oss se tilbake på historien. De begynte seriøst å teste styrken nesten umiddelbart etter opprettelsen - i 2003. Saken ble håndtert av fagfolk, men det ble ikke funnet noen sårbarheter eller feil.

Fem hele år gikk da indiske eksperter i 2008 fortsatt var i stand til å identifisere kollisjoner i så mange som 22 iterasjoner. Etter flere måneder med hardt arbeid ble en vellykket løsning på problemet foreslått.

I løpet av å analysere driften av den funksjonelle delen av algoritmen, ble dens motstand mot to typer mulige metoder for sikkerhetssvikt testet:

  • gjennom preimage: dette betyr omvendt dekryptering av den opprinnelige meldingen basert kun på hash-strengen;
  • gjennom kollisjonsdeteksjon: dette innebærer sammenfall av utgående data, forutsatt at innkommende meldinger er forskjellige. Det vil si at de innkommende blokkene er forskjellige, men den utgående hashen er den samme - dette skal ikke skje.

Etter at den første versjonen av SHA-256 mislyktes i tester på det andre kriteriet, bestemte utviklerne seg for å lage en ny krypteringsmekanisme basert på radikalt forskjellige prinsipper. Det er det som ble gjort - i 2012 ble en ny generasjonsprotokoll introdusert, fullstendig blottet for de ovenfor beskrevne manglene.

Ulemper med algoritmen

Det faktum at utviklerne klarte å rette opp sine egne feil betyr ikke at de klarte å bringe SHA-256 til perfeksjon. Protokollen ble kvitt åpenbare sårbarheter, men dens "native" mangler forble.

Bruken av SHA-256 som grunnlag for Bitcoin ble mulig, ikke minst på grunn av at amerikansk lovgivning i seg selv var lojal mot denne protokollen. Det var tillatt å brukes til databeskyttelse i noen statlige programmer, og var også tillatt brukt i den kommersielle sfæren.

Det er her skjebnens ironi kommer fra - protokollen ble laget for ett formål, men fant sin bredeste anvendelse i helt andre. Og for de første formålene var det mer enn effektivt og passende. Men for kryptovalutaer viste det seg å være for enkelt. Det er ingen spøk når det i Kina, for eksempel, ikke engang er gårder, men hele "fabrikker" fylt med ASIC-gruvearbeidere.

Hver iterasjon av algoritmen ser ganske primitiv ut - en grunnleggende binær operasjon pluss en 32-bits tillegg. Dette er grunnen til at ASIC-er basert på SHA-256 dukket opp så raskt, og multipliserte med null alle håpene til "hjemme"-gruvearbeidere med bare en prosessor og et par skjermkort.

Tider og forhold endrer seg mye, og SHA-256-protokollen følger selvsikkert i hælene på andre, mer avanserte løsninger. Den samme Scrypt, i prosessen med beregninger, registrerer først 1024 forskjellige hash-strenger, og først etter det utfører den tillegget og oppnår det endelige resultatet. Dette er en uovertruffen mer kompleks ordning med de høyeste nivåene av beskyttelse og sikkerhet for kryptovaluta.

Sammendrag

SHA-256-krypteringsalgoritmen ble ansett som ganske effektiv og pålitelig inntil kryptovaluta-boomen begynte. I dag blir det klart at på bakgrunn av nye løsninger ser det allerede ganske svakt ut. Så mye at dette gjorde det mulig å lage spesielle enheter "skjerpet" strengt for å omgå det. Dette er de samme ASIC-gruvearbeiderne som praktisk talt har ødelagt gruvedrift på sentrale prosessorer og som allerede avslutter gruvedrift på skjermkort.

Det ser ut til at det ikke er noe galt med dette - tross alt sunn konkurranse. Men faktisk sentraliserer bruken av ASIC-er ganske betydelig kryptovalutaen, og nøytraliserer dermed selve ideen. Dette faktum kunne ikke annet enn å presse talentfulle entusiaster til å lage nye, mer avanserte hashing-algoritmer. Og de lot ikke vente på seg.

SHA-256-protokollen opptar for tiden brorparten av kryptovalutamarkedet, men nye alternativer skyver den allerede trygt til side. For eksempel bruker den nest mest populære og "dyre" krypten, Ethereum, Ethash-protokollen, som tidligere ble kalt Dagger. Protokollen er så god at Ethereum fortsatt opprettholder maksimal desentralisering til i dag, og ASIC-gruvearbeidere for gruvedriften eksisterer fortsatt ikke i naturen. Kanskje vil Ethash erstatte den klart utdaterte SHA-256.

En av de første alternative algoritmene var Scrypt, som en av de mest populære altcoinene, Litecoin, er basert på. Dette er en mye mer avansert løsning, som ikke lenger gir ASIC slike ubestridelige fordeler. Imidlertid tvang superprofitt fra gruvedrift kinesiske spesialister til å investere mye krefter i å utvikle teknologiske løsninger for Scrypt, og ASIC-er basert på denne protokollen dukket opp.

Hvis vi vurderer gruvedrift fra perspektivet til en vanlig person som ikke er erfaren i tekniske nyanser, vil han ikke føle noen forskjell mellom Scrypt- og SHA-256-algoritmene. ASIC-er på begge protokollene ser nesten like ut, bruker omtrent samme mengde strøm og har nøyaktig samme viftestøy. En annen ting er kryptovalutakursene som de samme ASIC-ene mine, men det er en helt annen historie.

Vi vil vie følgende materiale innenfor rammen av dette emnet til den nevnte alternative krypteringsprotokollen Scrypt.

SHA 256 er et kryptografisk sett med instruksjoner for utvinning av kryptovalutaer. Med andre ord, den beskytter pålitelig alle transaksjoner på nettverket, og kompliserer utvinningen av elektroniske mynter. Denne forkortelsen står for Secure Hashing Algorithm, som betyr en svært populær og effektiv hashing-metode.

Essensen av SHA 256 er å konvertere informasjon til verdier, tall. Denne kjeden har en fast lengde. Dette betyr at all informasjon du overfører i nettverket vil bli kryptert med spesielle verdier - identifikatorer (ID-er).

Når du foretar transaksjoner, sammenligner SHA 256-algoritmen IDen med de originale dataene, som ikke kan hentes, og gir deretter tilgang til transaksjonen. Denne protokollen brukes nå i utvinning av kryptovalutaer som BTC og BCH.

Utseendehistorie

Hvordan skjedde det at Bitcoin begynte å bruke SHA 256? Det hele startet med at algoritmen ble medlem av SHA-2-familien, som har en hashkjedestørrelse på 224-512 biter.

De ble på sin side opprettet på grunnlag av oldefaren deres - SHA-1, hvis hash var 160 biter lang. Teknologien dukket opp i 1995, og var ment for bruk til sivile formål – det vil si kryptering av vanlig, ikke-statlig viktig informasjon.

SHA-2-familien, som SHA 256 tilhører, ble utviklet av National Security Agency for 16 år siden – våren 2002. På bakgrunn av dette kan vi si at algoritmen er moralsk utdatert. Det er imidlertid fortsatt en av de sterkeste algoritmene for å kryptere transaksjoner på nettverket.

Tekniske parametere for SHA 256

Algoritmen er designet for data delt inn i like deler på 64 byte. SHA 256 sikrer at de samles og kombineres til en enkelt 256-bits kjede. Hovedmetoden for denne metoden er krypteringsoperasjonen, som utføres i en løkke 64 ganger.

Korte kjennetegn ved SHA 256 algoritmiske instruksjoner:

  • 64-bits blokker - fungerer raskest med 32-bits blokker;
  • topplengden til den krypterte informasjonskjeden er 33 byte;
  • meldingssammendrag størrelse - 32 byte;
  • den standardiserte størrelsen på ett ord er 4 byte;
  • krypteringssyklusen i en operasjonsrunde er 64 byte;
  • hastigheten som algoritmen opererer med er 140 Mbit/s.

Det er verdt å merke seg at dette medlemmet av SHA-2-familien er basert på rammeverket beskrevet av Merkle-Damgaard. Dette betyr at før du deler informasjonen i ord, deles dataene inn i blokker. Prosessen styrker kryptering ved å blande dataene.

Selve innsamlingen av informasjon utføres i området fra 64 til 80 repetisjoner. Hver påfølgende løkke konverterer de opprettede blokkene til ord. Det endelige resultatet, nemlig hashen, lages ved å summere alle startverdiene.

Kryptovalutaer med SHA 256-algoritme

Som nevnt tidligere har ikke bare Bitcoin et slikt sett med instruksjoner, men også:

  • peercoin, det særegne er at koden lages basert på køballen, men PoS brukes til å beskytte hele nettverket, og PoW er ansvarlig for distribusjonen av mynter;
  • namecoin er en digital valuta som fungerer som et middel for beskyttelse, konfidensialitet og desentralisering; unobtanium - har ekstremt lav inflasjon; det vil ta minst 300 år å utvinne alle myntene;
  • deutsche eMark er et tysk mikronettverk som brukes til å utveksle eiendeler og penger. Selve prosessen foregår uten mellomledd; betaCoin - fungerer på samme prinsipp som den verdensberømte BitCoin;
  • jouleCoin - også basert på bestefaren Bitcoin, men gir raskere bekreftelse av transaksjoner;
  • steemit er ikke engang en egen krypt, men en hel plattform på blokkjeden. Hovedoppgaven er å belønne interessante publikasjoner.

Litecoin bruker også SHA 256-algoritmen, men ikke i hele systemet, men i en subrutine. For Litecoin-gruvedrift brukes Scrypt-sikkerhetsprotokollen, som øker kompleksiteten i gruvedrift og reduserer tilbakebetalingen av ASIC-er.

Utvinning av kryptovaluta basert på SHA 256-algoritmen

For å utvinne elektroniske mynter som er basert på SHA-2-familien, er det ikke nødvendig å bruke spesialiserte verktøy - ASIC. Både CPU- og GPU-baserte gårder presterer godt i gruvedrift. Sistnevnte er klart overlegen i hastighet til førstnevnte.

Og likevel er ASIC den beste løsningen for gruvedrift av kryptovalutaer. Dens fordeler blir til en viss grad oppveid av dens betydelige pris - omtrent 100 tusen rubler, kraftigere modeller overstiger til og med 500 000. Når kompleksiteten øker, reduseres tilbakebetalingen. Derfor rettferdiggjør ikke utstyret alltid seg selv, selv om det gir en mye høyere gruvehastighet enn gårder på skjermkort og spesielt en CPU.

GPU-gruvedrift anses som mer eller mindre lønnsomt. Generelt vil hele gården koste omtrent $1000-2000, pluss tilleggsutstyr - spesielt kjølesystemer for skjermkort. Det er også verdt å ta hensyn til leie av lokaler, strømbetalinger og lønn til servicepersonell.

Blant skjermkort yter GTX 1080 Ti fra Nvidia godt. Den produserer en hastighet på 1400 vellykkede operasjoner per sekund. AMD ligger litt etter med sine Vega-linjekort – 1200 MH/s. Det finnes også billigere alternativer som Radeon 7970, men hastigheten overstiger ikke 800 MH/s.

SHA 256-algoritmen, selv om den er gammel, brukes fortsatt i Bitcoin, kryptovaluta nr. 1 i verden. Protokollen brukes også i en rekke andre lovende altcoins. SHA256 blir gradvis erstattet av Scrypt, men Bitcoin har ingen planer om å bytte til det. Når det gjelder gruvedrift, er alt enkelt - hvis du har penger, ta ASIC-er med høy hash-rate. Ønsker du en mer økonomisk løsning? Bygg deretter en gård fra AMD- eller Nvidia-skjermkort.

  • Oversettelse

På et tidspunkt ønsket jeg å finne ut hvor raskt det var mulig å utvinne Bitcoins manuelt. Det viste seg at SHA-256 hashing brukes til gruvedrift, og det er ganske enkelt og kan beregnes selv uten datamaskin. Selvfølgelig er prosessen veldig langsom og helt upraktisk. Men etter å ha gått gjennom alle trinnene på papir, kan du ha en god forståelse av detaljene i hvordan algoritmen fungerer.

Én kryptorunde

Gruvedrift

En sentral del av hele Bitcoin-sikkerhetssystemet er gruvedrift. Grunnideen er at gruvearbeidere grupperer Bitcoin-transaksjoner i én blokk, som de deretter hash et uberegnelig antall av for å finne en svært sjelden hashverdi som faller under spesielle forhold. Når en slik verdi blir funnet, anses blokken som utvunnet og går inn i blokkjeden. Hashing i seg selv tjener ingen annen nyttig hensikt enn å øke vanskeligheten med å finne den riktige blokken. Dermed er dette en av garantiene for at ingen alene med et eksisterende sett med ressurser vil være i stand til å ta kontroll over hele systemet. Du kan lese mer om gruvedrift i min siste artikkel.

Den kryptografiske hashing-funksjonen mottar en blokk med data som input og produserer en liten, men uforutsigbar utgang. Den er designet slik at det ikke er noen rask måte å få det resultatet du ønsker, og du må fortsette å søke til du finner riktig verdi. Bitcoin bruker SHA-256 som en slik funksjon. Dessuten, for å øke motstanden, påføres SHA-256 på blokken to ganger og kalles dobbel SHA-256.

I Bitcoin er kriteriet for at en hash skal være gyldig å ha et tilstrekkelig antall innledende nuller. Å finne en slik hash er like vanskelig som å for eksempel finne en bil eller et telefonnummer som slutter på flere nuller. Men selvfølgelig for en hasj er det eksponentielt vanskeligere. For øyeblikket må en gyldig hash inneholde omtrent 17 innledende nuller, som bare tilfredsstilles med 1 av 1,4x10 20 . Hvis vi trekker en analogi, er det vanskeligere å finne en slik verdi enn å finne en spesifikk partikkel blant all sanden på jorden.

Blå blokkerer ikke-lineær shuffle-biter for å gjøre kryptografisk analyse vanskeligere. Dessuten, for enda større pålitelighet, brukes forskjellige miksefunksjoner (hvis du kan finne et matematisk smutthull for raskt å generere gyldige hasher, vil du ta kontroll over hele Bitcoin-gruveprosessen).

Majoritetsfunksjonen (Ma-blokk) opererer bitvis på ordene A, B og C. For hver bitposisjon returnerer den 0 hvis flertallet av inngangsbitene på den posisjonen er null, ellers returnerer den 1.

Blokk Σ0 roterer A med 2 biter, deretter roteres det opprinnelige ordet A med 13 biter, og tilsvarende med 22 biter. De resulterende treskiftede versjonene av A legges til bitvis modulo 2 ( normal xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch implementerer valgfunksjonen. Ved hver bitposisjon kontrolleres en bit fra E, hvis den er lik én, sendes biten fra F fra denne posisjonen ut, ellers en bit fra G. Dermed blandes bitene fra F og G basert på verdien av E.

Σ1 er lik struktur som Σ0, men fungerer med ordet E, og de tilsvarende skiftkonstantene er 6, 11 og 25.

De røde blokkene utfører en 32-bit addisjon, og genererer nye verdier for utgangsordene A og E. Verdien W t genereres basert på inngangsdataene (dette skjer i den delen av algoritmen som mottar og behandler hashdataene Det er utenfor vårt omfang). K t er sin egen konstant for hver runde.

I diagrammet over er det merkbart at kun A og E endres i en kryptografisk runde. De resterende ordene endres ikke, men forskyves ved utgangen - gammel A blir til utgang B, gammel B til ny C, og så videre. Selv om en enkelt runde av algoritmen ikke endrer dataene mye, vil inndatainformasjonen etter 64 runder være fullstendig kryptert.

Vi miner manuelt

I videoen viser jeg hvordan du kan gå gjennom alle trinnene beskrevet med penn og papir. Jeg utførte den første runden med hashing for å gruve blokken. Det tok meg 16 minutter, 45 sekunder.


La meg forklare litt hva som skjer: Jeg skrev ned ordene fra A til H i ​​heksadesimal form, og under hvert laget jeg en oversettelse til binær form. Resultatet av blokk Ma er under ordet C, og verdiene til A etter skiftene og selve utgangen Σ0 er plassert over linjen med A. Velg-funksjonen vises under G, og til slutt de tilsvarende skiftet versjonene av E og verdien etter blokken Σ1 går over linjen med E. I nedre høyre hjørne utført en addisjon, hvis resultat er involvert i beregningen av både den nye A og den nye E (de tre første røde summeringsblokkene). Øverst til høyre regnet jeg ut den nye verdien til A, og i midten er beregningen av den nye verdien til E. Alle disse trinnene ble diskutert ovenfor og kan enkelt spores i diagrammet.

I tillegg til runden som vises i videoen, gjennomførte jeg en til – den siste 64. hashing-runden for en spesifikk Bitcoin-blokk. På bildet er hash-verdien uthevet i gult. Antallet nuller bekrefter at det er en gyldig Bitcoin-hash. Merk at nullene er plassert på slutten av hashen, og ikke i begynnelsen, som jeg skrev tidligere. Årsaken er at Bitcoin ganske enkelt snur bytene mottatt av SHA-256.


Den siste runden av SHA-256, som et resultat av at en vellykket utvunnet Bitcoin-blokk er synlig

Hva betyr alt dette for utformingen av maskinvaregruvearbeidere?

Hvert trinn i SHA-256 ser veldig enkelt ut i digital logikk – enkle bitoperasjoner og 32-bits summer (hvis du noen gang har studert kretsdesign, har du sikkert allerede forestilt deg hvordan dette kan se ut i maskinvare). Derfor implementerer ASIC-er SHA-256 veldig effektivt, og plasserer hundrevis av SHA-256 runde utførelsesenheter parallelt. Bildet nedenfor viser en gruvebrikke som kan beregne 2-3 milliarder hasjer per sekund. Du kan se flere bilder på Zeptobars.


Et silisiumbilde av Bitfury ASIC-brikken, som kan utvinne Bitcoin med 2-3 gigahash per sekund. Bilde fra Zeptobars. (CC BY 3.0)

I motsetning til Bitcoin, Litecoin, Dogecoin og andre lignende alternative -myntsystemer bruker scrypt hashing-algoritmen, som iboende er vanskelig å implementere i maskinvare. Denne algoritmen lagrer 1024 forskjellige hash-verdier i minnet under utførelse, og kombinerer dem ved utgangen for å oppnå det endelige resultatet. Derfor kreves det mye mer minne og kretser for å beregne scrypt-hasher sammenlignet med SHA-256-hasher. Virkningen av å endre hashing-algoritmen er tydelig synlig når man sammenligner den tilsvarende gruvemaskinvaren - versjoner for scrypt (Litecoin og andre) er tusenvis av ganger tregere enn versjoner for SHA-256 (Bitcoin).

Konklusjon

SHA-256 var plutselig så enkel at den til og med kunne beregnes for hånd (den elliptiske kurvealgoritmen som ble brukt til å signere en Bitcoin-transaksjon ville være mye mer smertefull, siden den involverer en haug med multiplikasjoner av 32-byte tall). Å beregne en runde med SHA-256 tok meg 16 minutter, 45 sekunder. Med denne ytelsen vil hashing av en hel Bitcoin-blokk (128 runder) ta 1,49 dager, det vil si at vi får en hashhastighet på 0,67 hashes per dag (faktisk, selvfølgelig, ville prosessen bli raskere med praksis). Til sammenligning produserer den nåværende generasjonen av Bitcoin-gruvearbeidere flere terahashes per sekund, som er omtrent en kvintillion ganger raskere enn meg. Jeg tror det er klart at manuell Bitcoin-gruvedrift ikke er særlig praktisk.

En leser fra reddit spurte om energiforbruket mitt. Siden jeg ikke utøver noen alvorlig fysisk anstrengelse, kan vi anta at stoffskiftet vil være 1500 kilokalorier per dag, da finner vi at manuell hashing krever nesten 10 megajoule per hash. Typisk energiforbruk. for en jerngruvearbeider er 1000 magehash per joule. Dermed er jeg mindre energieffektiv enn et spesialisert jernstykke med 10^16 ganger (10 kvadrillioner). Et annet problem er energikostnaden. En billig strømkilde er smultringer på 23 cent per 200 kilokalorier. Jeg har strømkostnader 15 cent per kilowatt-time, som er 6,7 ganger billigere enn smultringer. Som et resultat er energikostnaden i form av hasj for meg, som menneskelig gruvearbeider, 67 kvadrillioner ganger høyere. Ja, det er klart at jeg ikke får det. Lykke til med manuell Bitcoin-utvinning, og det er ikke engang tatt i betraktning kostnadene for papir og penner!