Kovanice na SHA256. Šta je Bitcoin algoritam šifriranja? Slabosti i prednosti algoritma za heširanje Bitcoina

Funkcija heširanja SHA 256 činila je osnovu prve kriptovalute na svijetu - Bitcoina i mnogih altcoina. Jeste li znali da je nastala mnogo prije pojave kriptovaluta i bila je namijenjena za potpuno druge svrhe? Danas ćemo pogledati povijest algoritma, princip njegovog rada, trenutne probleme i koje kriptovalute koriste SHA256.

Priča

Naziv algoritma SHA 256 je akronim za Secure Hashing Algoritam. Tako ga je programer nazvao - Američka agencija za nacionalnu sigurnost. Algoritam je funkcija heširanja. To znači da je njegov ulaz količina podataka proizvoljne dužine, a izlaz je skup karaktera fiksne dužine, koji se naziva heš.

Jedna od ključnih karakteristika heš funkcija je nepovratnost. Heš možemo dobiti propuštanjem originalnih podataka kroz funkciju, ali znajući heš, nećemo moći dobiti originalne podatke. Zahvaljujući ovom svojstvu, funkcija je postala široko rasprostranjena u raznim servisima i aplikacijama gdje je potrebna zaštita podataka. Svaki dan koristimo SHA 256 algoritam kada posjećujemo stranice na Internetu. Uključuje SSL sigurnosni certifikat, koji je neophodan za uspostavljanje bezbedne veze sa sajtom.


Algoritam je dio SHA-2 porodice, razvijene na bazi SHA-1, koji se pojavio 1995. godine. Od svog početka, sha256 je opsežno testiran na svoju snagu pomoću kriptoanalize. Kriptoanaliza testira otpornost hash funkcija na dvije glavne vrste napada:
  • Pronalaženje kolizija - otkrivanje identičnih hashova sa različitim ulaznim parametrima. Stopa uspješnosti ovog napada ugrožava sigurnost digitalnog potpisa koji koristi trenutni algoritam.
  • Pronalaženje predslike je mogućnost dešifriranja originalne poruke koristeći njen hash. Ovaj napad ugrožava sigurnost pohranjivanja heševa lozinke za autentifikaciju.

Analiza je prvi put testirana 2003. godine, ali tada nisu pronađene ranjivosti. Kako je vrijeme prolazilo, računarska snaga se razvijala. Godine 2008. pronađene su kolizije za iteracije SHA-512 i SHA-256. U septembru iste godine razvijena je metoda za stvaranje kolizija za 31 iteraciju SHA256 i 27 iteracija SHA-512.

Očigledno je došlo vrijeme za razvoj nove funkcije otporne na kriptovalute. 2012. godine NSA je izmislila SHA-3. Postepeno, ažurirani algoritam će zamijeniti svoje prethodnike manje otporne na kriptovalute.

Rudarstvo na SHA 256

Američki zakon dozvoljava korištenje SHA i sličnih hash funkcija kao dijela drugih protokola i algoritama u određenim federalnim aplikacijama za sigurnost informacija koje nisu tajne. SHA-2 mogu koristiti privatne i komercijalne organizacije.

Nije iznenađujuće da se koristio u kriptovalutama. Rudari prikupljaju sve transakcije u blok, a zatim ga počinju heširati. Kada se pronađe heš vrijednost koja odgovara sistemskim pravilima, blok se smatra spremnim za priključivanje na kraj blockchaina. Novi blok će pronaći neko ko može vrlo brzo izračunati hash vrijednosti. Brzina proračuna ovisi o snazi ​​opreme. Za rudarenje Bitcoina mogu se koristiti tri vrste opreme:

  • CPU (centralna procesorska jedinica);
  • GPU (video kartice);
  • ASIC (Application Specific Device).

Bitcoin mreža je dizajnirana na takav način da se svaki novi blok mora pronaći svakih 10 minuta. Broj učesnika mreže se stalno mijenja, ali vrijeme mora ostati konstantno. Kako bi osigurao jednaka vremena boravka, sistem prilagođava poteškoću računanja ovisno o broju rudara. Kriptovalute su nedavno postale popularne, a broj rudara se dramatično povećao. Kako bi se spriječilo prebrzo pronalaženje blokova, složenost proračuna je također povećana.


Bitcoin je počeo da se rudari na procesorima. Zatim, kada im je snaga postala nedovoljna, prešli su na video kartice. Ubrzo se video kartice više nisu mogle nositi. Tada su izmišljeni ASIC-i - posebni uređaji dizajnirani za proračune koristeći algoritam sha 256. Jedan ASIC je mnogo moćniji i energetski efikasniji od nekoliko video kartica.

Preduzetni rudari stvaraju ogromne farme od ASIC-a. Pored visoke cijene same opreme, takva farma svakog mjeseca dobiva račune za struju od nekoliko desetina hiljada dolara. Sada rudarenje Bitcoina ima smisla samo na takvim industrijskim farmama; kućni računar ili čak farma sa nekoliko video kartica neće moći da se takmiče s njima, pa čak ni da povrate struju.

Međutim, ovo je lako izračunati. Postoje kalkulatori za izračunavanje profitabilnosti rudarenja na sha256. Na primjer, https://www.coinwarz.com/miningprofitability/sha-256. Unesite hashrate vaše opreme (računarske snage), potrošnju energije i njenu cijenu u obrazac, servis će izračunati vaš profit.

Altcoins SHA-256

Pogledajmo listu i listu kriptovaluta koje rade na sha 256.

Bitcoin Cash (BCH)

Odvojen od nje 1. avgusta 2017. Veličina bloka u klasičnom Bitcoinu je 1 MB. Mreža je toliko narasla da sve transakcije više ne mogu stati u blok. To je dovelo do formiranja redova transakcija i povećanja naknada za plaćanje. Zajednica je odlučila uvesti novi protokol, prema kojem je blok povećan na 2 MB, neke informacije su počele da se pohranjuju izvan blockchaina, a vremenski okvir za ponovno izračunavanje složenosti smanjen je sa dvije sedmice na dan.

Namecoin (NMC)

To je sistem za pohranjivanje i prijenos kombinacija ime-vrijednost baziran na Bitcoin tehnologiji. Njegova najpoznatija aplikacija je sistem distribucije imena domena, koji je nezavisan od ICANN-a i stoga onemogućava povrat domena. Namecoin je lansiran 2011. godine, radi na softveru za rudarenje Bitcoina koji se prosljeđuje na server na kojem radi Namecoin.

DigiByte (DGB)

Kriptovaluta lansirana 2013. godine s ciljem poboljšanja performansi Bitcoina i Litecoina. DigiByte razlike:

  • Niska volatilnost se postiže zahvaljujući ogromnom broju izdanih kovanica (do 21 milijardu), što osigurava njihovu nisku cijenu i jednostavnost korištenja u proračunima;
  • Brže transakcije udvostručavanjem veličine bloka svake dvije godine;
  • Niske provizije ili nikakve provizije;
  • Proces rudarenja podijeljen je u pet algoritama koji vam omogućavaju da rudarite novčiće nezavisno jedan od drugog. Možete koristiti ASIC za SHA-256 i Scrypt, video kartice za Groestl i Skein i procesor za Qubit.

SHA 256 algoritam je najčešći među kriptovalutama. To je uzrokovano popularnošću i uspjehom Bitcoina, te željom programera altcoina da kreiraju slične novčiće. Povećanje računske složenosti podstaklo je rudare da traže načine za efikasnije rudarenje, što je rezultiralo pojavom ASIC-ova.


Bitcoin enkripcija je bazirana na SHA-256, posebnom algoritmu koji je dio programskog koda. Njegov zadatak je da konvertuje ulazne podatke u određeni skup znakova (u alfabetskom i numeričkom prikazu) i zaštiti informacije. Takve radnje se nazivaju heširanjem. Koje su suptilnosti ovog algoritma? Zašto je to potrebno i kako funkcioniše? Koje su prednosti i nedostaci? Detaljno ćemo razmotriti ove i niz drugih tačaka.

Koji algoritam šifriranja ima Bitcoin i gdje se koristi?

Kada se raspravlja o kriptovaluti, karakteristikama njenog rada i rudarenja, učesnici kripto mreže neminovno nailaze na tako raširenu definiciju kao što je algoritam za šifrovanje Bitcoin. Od dana kada je BTC razvijen do danas (13.08.2018.) koristi se SHA-256, koji je neophodan za rješavanje sljedećih problema u Bitcoin mreži:

  1. Formiranje BTC adresa (koriste se za transakcije).
  2. Rudarstvo (dokaz o radu).
  3. Postizanje potrebnog stepena sigurnosti i anonimnosti.
  4. Za digitalni potpis i njegovo prepoznavanje.
SHA-256 algoritam je relevantan ne samo za Bitcoin, već i za druge kovanice, odnosno Bitcoin Cash, Mazacoin, Peercoin, Namecoin i druge kriptovalute. Osim toga, SHA-2 (osnova SHA-256) se koristi za kreiranje mnogih protokola dizajniranih za zaštitu podataka na Internetu, naime SSL, TSL i drugi.

Algoritam za heširanje bitkoina je neophodan za kontrolu informacija kroz njihovu analizu i pravovremenu identifikaciju netačnosti. Nakon što su podaci obrađeni i pretvoreni u heš, nemoguće je povratiti informacije. Ako uzmete već šifriranu BTC datoteku, ponovite proračune i uvjerite se da su heš parametri identični, možete biti sigurni da nema promjena u originalnim informacijama. Ako se podaci razlikuju, to ukazuje na hakiranje sistema.

Bitcoin enkripcijski algoritam - kako radi jednostavnim riječima


SHA-2 je zasnovan na okviru koji su kreirali Merkle i Damgaard. Posebnost hash funkcije koja se koristi u kriptografiji je nestandardni pristup njenom formiranju. Dolazni podaci se dijele na blokove identične veličine, nakon čega se kreirani elementi pretvaraju u heksadecimalne brojeve. S njima se naknadno vrše proračuni. Haš funkcija se primjenjuje na rezultirajuću vrijednost, a rezultat obrade je hash zbroj koji se pojavljuje u izlazu. To je skup znakova prikazanih na alfabetskom i numeričkom displeju. U suštini, ovo je heš.

Sljedeći blok je izgrađen prema gore opisanom principu. U ovom slučaju, novi proces se pokreće nakon kreiranja prethodnog elementa. Ako se izvrše promjene u originalnim podacima, hash se mijenja. U slučaju kada se u različitim blokovima iznenada pojave identični parametri hash funkcije, dolazi do konfliktne situacije u radu algoritma. Kada dođe do takvog odstupanja, cijeli lanac blockchaina se dovodi u pitanje.

Dakle, hash funkcija se koristi za kreiranje digitalnog potpisa. Ako se dogodi gore opisana situacija, postoji velika vjerovatnoća krivotvorenja potpisa. Za izračunavanje takvih kvarova (sudara) koristi se posebna tehnika koja uključuje nabrajanje podataka, što povećava snagu hash funkcije.

Ispravnost Bitcoin enkripcije kontroliraju četiri zahtjeva:

  1. Kada unesete promjene u dolazne podatke, heš količina ostaje ista.
  2. Tokom heširanja dobija se pojedinačni heš suma (skup znakova mora biti jedinstven).
  3. Kreiranje ključa pomoću heširanja je izuzetno komplikovano.
  4. Haševi su nepovratni. To znači da je rad sa ulaznim podacima dozvoljen bez mogućnosti izvođenja obrnute radnje.

Kako se ovo primjenjuje na Bitcoin?

Zadatak čvorova mreže kriptovaluta je da u brojnim transakcijama pronađu onu koja joj u svakom pogledu odgovara. Prilikom procene opcija, početna pažnja se poklanja veličini provizije (usput, iz tog razloga se transakcije sa većom provizijom završavaju brže). Zatim se provjerava rad, proučavaju se ulazni i izlazni podaci i razjašnjava originalnost digitalnog potpisa.

Čim se razmatrani posao završi, kreira se sljedeći element Bitcoin lanca (blok) određene veličine (za predmetnu kriptovalutu - 1 megabajt). Rezultirajući čvorovi se sastoje od verzije, vremena formiranja, dva heša (prošli blok i dolazne transakcije), kao i dodatnih parametara koji osiguravaju jedinstvenost (bitovi i nonce). U kompleksu, kreirani blok se hešira mnogo puta, što rezultira formiranjem heša glave, koji djeluje kao izlaz za "stari" element lanca i kao ulaz za novi.

Recimo da heš skup sadrži određeni broj “0” (na primjer, nonce je 17). Izuzetno je teško odabrati takvu vrijednost koristeći samo nabrajanje vrijednosti. Upravo ovaj aspekt osigurava pouzdanost informacija u blockchain mreži i njihovu zaštitu od hakovanja. Za kreiranje heša potrebna je ogromna snaga bez koje je nemoguće pronaći potreban skup znakova. Kada se ovaj posao završi i parametar se pronađe, on se šalje elementima kripto mreže sa novokreiranim blokom i pronađenim hashom sa 17 “0s”. Zatim svi učesnici u Bitcoin mreži provjeravaju hash, kombinirajući skup znakova s ​​informacijama iz bloka. Ako nema kolizije, pojavljuje se novi element u lancu blokova.

Kada se pojavio algoritam Bitcoin enkripcije - kratka istorija


Izraz "SHA" je skraćenica od tri riječi: "Algoritam sigurnog heširanja". Bitcoin koristi SHA-256, a “baza” spomenute hash funkcije je SHA-2, koja uključuje mnoge kripto algoritme (uključujući 256).

Kreatori SHA-2 su američka NSA, specijalna agencija koja se bavi pitanjima nacionalne sigurnosti zemlje. Nakon razvoja i testiranja algoritma, pušten je u javnost 2002. godine. Novi SHA-2 je uključivao i prvu hash funkciju SHA-1 (nastalu 7 godina ranije - 1995.). Od uvođenja SHA-2, objavljene su mnoge varijante algoritma, od kojih je jednu koristio Satoshi Nakamoto prilikom kreiranja Bitcoina 2009. godine.

Cilj programera bio je da puste algoritam koji bi osigurao formiranje specifične vrijednosti određene dužine iz slučajnog skupa znakova. Oni su to uradili. U budućnosti će se rezultirajući parametar koristiti za identifikaciju (provjeru) informacija. Prvobitna namjena SHA-2 je zaštita podataka na različitim servisima, a danas (2018. godine) SHA-256 je poznat prvenstveno kao algoritam koji se koristi u rudarenju novčića.

2012. godine sistem je poboljšan i pojavila se ažurirana verzija hash funkcije - SHA-3. Vjeruje se da će s vremenom novi razvoj istisnuti dosadašnje algoritme, što će poboljšati ionako visok stepen sigurnosti.

Karakteristike algoritma za šifrovanje Bitcoin


Suština SHA-256 je jednostavna. Početna poruka nakon dodavanja podijeljena je na blokove, a svaki od njih ima 16 riječi. Rezultirajući elementi prolaze kroz posebne cikluse koji uključuju 64 ili 80 faza. Na svakoj od njih se pretvaraju dvije riječi, a opcija transformacije se formira od preostalih riječi. Rezultirajući parametri se zbrajaju kako bi se formirao hash.

Tokom rada algoritma koristi se 6 komandi:

  • "xor" - uklanja "OR".
  • “shr” - pomiče indikator za potreban broj bitova udesno sa određenom frekvencijom.
  • "trune" - pomiče indikator za potreban broj bitova udesno (bez korištenja određenog ciklusa).
  • “II” - veza elemenata koji su po prirodi linearni.
  • “i” - “I”.
  • “+” - praćenje.
Karakteristike protokola:
  1. Gornja granica trajanja poruke je 33 B.
  2. Parametar maksimalne brzine je 139 MiB/s.
  3. Veličina riječi - 4 B.
  4. Broj ponavljanja u ciklusu je 64.
  5. Veličina blok elementa je 64 B.
  6. Ukupan hash kod je 32 B.

Bitcoin enkripcijski algoritam u rudarstvu


Prilikom izvođenja proračuna unutar rudarenja, ispravnost rezultirajućeg hash koda određena je brojem nula na početku reda. Na primjer, ako je ovaj parametar 17, vjerovatnoća pronalaženja takvog broja je izuzetno niska i iznosi negdje oko 1:1,4*10 na 20. stepen. Nije iznenađujuće da rudarenje Bitcoin-a zahtijeva korištenje moćne opreme i visoke troškove energije. U isto vrijeme, optimizacija traženja potrebnog hash-a je nemoguća, jer se nakon primanja bloka informacija na izlazu pojavljuje slučajni broj.

Teškoća rudarenja virtuelnog novčića je pronaći potreban hash i formirati sljedeći blok. Da bi se postigao ovaj cilj, koristi se standardno nabrajanje vrijednosti za koje je potrebna oprema visokih performansi. Kao što je spomenuto, pretraga nije jednostavnog hash-a, već vrijednosti s velikim brojem "0" ispred sebe.

Rudarstvo kriptovaluta korištenjem SHA-256 je skup mjera usmjerenih na rješavanje specifičnog kripto problema. U slučaju Bitcoina, za rudarenje se koristi sljedeća oprema:

  1. Od pojave BTC-a 2009. godine, kao i do sredine 2010. godine, upotreba centralne procesorske jedinice (CPU) bila je relevantna.
  2. Do sredine 2011. rudari su koristili računare sa video karticama (GPU).
  3. Do početka 2013. godine, FGPA su bili popularni, kao i GPU farme.
  4. 2014. godine pojavili su se ASIC-ovi. Zamračili su postojeću opremu u performansama. Unatoč tome, do početka 2017. rudari su koristili GPU farme i radili u bazenima, ali do kraja 2017. i do danas relevantni su samo -rudari. Upotreba druge opreme je neisplativa.
Navedeni uređaji služe za odabir željene hash funkcije i generiranje nove. Što je veći hashrate (računarska snaga) uređaja, to se podaci brže sortiraju i manje je vremena potrebno da se pronađe rješenje.

Sa sve većom konkurencijom i oslobađanjem produktivnijih rudara, i povećava, čiji se parametar mijenja svake 2 tjedna.

Slabosti i prednosti algoritma za heširanje Bitcoina


Iznad smo pogledali šta je algoritam za heširanje Bitcoina i koje su njegove karakteristike. Ovo je SHA-256, koji se smatra najčešćim algoritmom sa visokim nivoom pouzdanosti i relativno jednostavnim principom rada. Vrlo je otporan na hakiranje i omogućava rudarenje kovanica na bilo kojoj opremi (ovisno o parametrima težine).

Uprkos brojnim pozitivnim kvalitetama, algoritam za heširanje Bitcoina ima niz slabosti:

  1. Kontrola od strane učesnika u rudarenju BTC-a. Ovdje funkcioniše isti princip kao i u akcionarskim društvima (DD), kada učesnici kompanije imaju određeni broj akcija. Što je više snage koncentrisano u rukama rudara kripto mreže, to je jači njihov utjecaj na cjelokupni sistem. Osim toga, zbog rastuće složenosti rudarenja u 2018. godini, primjetna je tendencija da rudarenje pređe iz ruku privatnih rudara u kontrolu velikih organizacija koje se bave kreiranjem opreme za rudarenje virtualnih kovanica. Da bi primio bitcoine, privatni rudar mora potrošiti velike sume na kupovinu ASIC-a, povezati se na jedan od pulova i platiti struju. Ako uštedite na opremi, proizvodnja gubi profitabilnost.
  2. Posljedica situacije o kojoj smo gore govorili je činjenica da je „lavlji“ udio Bitcoina koncentrisan u rukama vlasnika velikih rudarskih kompanija. Ako uzmemo u obzir da se ne prodaju svi primljeni bitcoini, takve organizacije se pretvaraju u investitore i čuvare kovanica. Kao rezultat toga, broj kovanica u opticaju se smanjuje. Osim toga, akumulacija kriptovalute omogućava vam da utičete na decentralizaciju, kao i na kurs BTC-a tokom procesa trgovanja.
  3. Zbog postojećih nedostataka, SHA-256 algoritam postepeno postaje prošlost, a njegovo mjesto zauzimaju napredniji projekti. Na primjer, Scrypt, Ethash, Blake-256, Equihash i drugi postaju sve popularniji. Novi algoritmi imaju bolji nivo zaštite i sigurnosti, što je natjeralo kreatore mnogih kriptovaluta da napuste zastarjeli SHA-256 u korist naprednijih tehnologija.
  4. Uprkos ispravljanju glavnih grešaka koje su identifikovali programeri, neke ranjivosti nisu mogle biti uklonjene (u 2008. pronađene su kolizije za 22 iteracije). Zbog toga je nastavljen razvoj SHA, a druga verzija je zamijenjena SHA-3.
Godine 2009. bio sam primoran da koristim SHA-256, jer su u vrijeme stvaranja kriptovalute državne vlade usvojile ovaj protokol. U to vrijeme se aktivno koristio za zaštitu podataka u nekim državnim programima, a koristio se iu komercijalnom sektoru. Ispostavilo se da je protokol kreiran za rješavanje određenih problema, ali u stvarnosti je tražen na potpuno drugačiji način.

Radi jasnoće, hajde da tabelarno prikažemo pozitivne i negativne karakteristike Bitcoin algoritma za šifrovanje.

PrednostiNedostaci
Široko rasprostranjen (uključujući i sektor kriptovaluta). SHA protokol se aktivno koristi u svakodnevnom životu za zaštitu informacija.Gubitak decentralizacije. Moć je koncentrisana u rukama rudarskih kompanija.
Pouzdana zaštita od provale.SHA iteracija ima jednostavnu strukturu, što je dovelo do povećanja složenosti rudarenja tokom vremena. Od avgusta 2018. samo ASIC-ovi sa visokim performansama mogu se koristiti za rudarenje Bitcoina.
Pogodnost u smislu rudarenja novčića, raznovrsnost u odabiru rudarske opreme.Pojavljuju se novi algoritmi koji imaju napredniju strukturu.
U drugoj verziji (SHA-2), kreatori su uspjeli otkloniti niz nedostataka koji su negativno utjecali na pouzdanost sistema.Unatoč aktivnom radu na greškama, mnogi nedostaci nisu uklonjeni. Nije iznenađujuće što su programeri kreirali novu verziju SHA-3.
Protokol je usvojen na zakonodavnom nivou u Sjedinjenim Državama.

Danas se gotovo i ne koristi u razvoju novih kriptovaluta. Najupečatljiviji primjer novčića koji još uvijek koristi SHA-256 je Bitcoin Cash, viljuška Bitcoina koja se pojavila u avgustu 2017. Ali u situaciji sa ovim novčićem, upotreba SHA je više neophodna nego izbor kreatora. Što se tiče samog Bitcoina, upotreba protokola ove serije je zbog nedostatka alternativa od Satoshija Nakamotoa.

Danas, 2018. godine, mnogo se govori o poboljšanju ovog algoritma i uvođenju promjena u mrežu kriptovaluta, ali do sada takve namjere nisu našle fizičku implementaciju i ostale su samo u obliku prijedloga.

Video o kriptografskim funkcijama i algoritmima:

Protekla 2017. godina bila je godina eksplozivne popularnosti kriptovaluta i istog brzog rasta stope „glavne“ kriptovalute Bitcoin. Ove okolnosti su podstakle interesovanje ne samo za špekulacije i rudarstvo, već i za samu suštinu fenomena. Sve više ljudi želi saznati kako sve to funkcionira?

Otvaramo seriju materijala u kojima ćemo pokušati na što pristupačniji način objasniti šta se krije iza ovih misterioznih akronima poput Scrypt, SHA-256, X11 i drugih. Počnimo s najvažnijim (ali ne i najboljim) algoritmom za svijet kriptovaluta - SHA-256. To je osnova za razvoj Bitcoina. Ali prije toga, hajde da definišemo ključnu terminologiju – definišemo značenje pojmova „mining“ i „hash“.

Šta je rudarenje?

Suprotno uvriježenom mišljenju, rudarenje nije samo i ne toliko vađenje samih kriptografskih novčanica, već prije mjere zaštite ove kriptovalute od prijevarnih aktivnosti. Ne radi se samo o krivotvorenju – još važnija je zaštita, na primjer, od ponovljene upotrebe istih kovanica od strane iste osobe. Zarada od novih kripto kovanica usko je povezana s njihovom emisijom i formira se od nagrade za pronalaženje novog bloka koji ispunjava uslove algoritma rudarenja.

Odnosno, da bi se sljedeći kripto novčić „pojavio“, potrebno je izvršiti čitav kompleks složenih proračuna i pronaći taj vrlo željeni „ispravan“ blok. To je ono što entuzijasti rade sa svojom opremom. Shema podržava sama sebe - kako bi se povećala sigurnost kriptovalute i izdale nove jedinice, rudarenje je neophodno, a da bi to imalo smisla raditi rudari dobijaju nagradu.

Ukratko, grupe softvera za rudarenje su prethodno izvodile računske operacije u jedan blok, koji se zatim transformiše nevjerovatan broj puta kako bi se otkrila posebna vrsta hash koda. Pronalaženje hash koda koji bi zadovoljio zahtjeve algoritma postaje teže što je više učesnika uključeno u proces. “Tačan” heš je izuzetno rijedak, a njegovo pronalaženje je slično dobitku na lutriji.

Šta je heš?

Izraz "haš", koji nije svima jasan, spomenut je gore. Ovo je jedan od osnovnih koncepata u šifriranju općenito, a posebno u SHA-256 algoritmu. Hajde da objasnimo šta to znači i pređimo na najvažnije povezane tačke.

Dakle, heširanje je proces pretvaranja dolaznog skupa podataka proizvoljne veličine u odlazni digitalni niz. Ova transformacija se provodi prema unaprijed razvijenom algoritmu, a izlazni niz je potpuno jedinstven i služi kao neka vrsta „otiska prsta“ dolaznog niza. Taj niz se naziva hash suma, hash code, ili jednostavno hash. A algoritam transformacije je hash funkcija.

Dajemo primjer. Možemo "hraniti" heš funkcije, recimo, tekstom romana u stihu A. S. Puškina "Eugene Onegin", a izlaz će biti heksadecimalni kod otprilike ovako:. Naravno, nemoguće je "razmotati" ovaj kod i pretvoriti ga u "Eugene Onegin". Ali čim promijenite jedan lik u pjesmi, čak i samo dodate jedan razmak, rezultirajući heš će se transformirati do neprepoznatljivosti. Volumen takođe ne utiče na dužinu heš koda. Dakle, možete unijeti jedan simbol “a” u funkciju, a izlaz će biti potpuno isti skup pseudo-slučajnih simbola potpuno iste dužine.

Pogledajmo sada pobliže zašto je to potrebno i koje poteškoće nastaju na tom putu. Svima koji su zainteresirani za ovu temu poznato je da se rudarenje kriptovaluta pomoću SHA-256 protokola može obaviti uz pomoć snage centralnog procesora, grafičke kartice ili specijaliziranog ASIC uređaja. Zapravo, u kontekstu Bitcoina, prva metoda više uopće nije relevantna, a rudarenje video karticama živi svoje posljednje dane. Složenost proračuna se previše povećala, a polumjere više nisu prikladne.

U interfejsu softvera za rudarenje, procesi pretvaranja blokova u heš iznose prikazani su kao lakonski red poput „Prihvaćeno 0aef59a3b“. Blok se može sastojati od hiljada ili čak stotina hiljada sličnih linija, ali samo jedan može poslužiti kao "potpis" bloka, čija je potraga suština rudarenja.

Potraga za ispravnim hashom provodi se jednostavnim pretraživanjem rezultata rješavanja velikog broja problema. U SHA-256 algoritmu, "ispravnost" heša je određena brojem nula na početku sume heša. Vjerovatnoća pronalaženja takvog hash koda putem proračuna određenih algoritmom je zanemarljiva - jedna šansa u milionima rješenja. Tačna vjerovatnoća je određena trenutnim nivoom težine u decentralizovanom sistemu određene kriptovalute.

Izvanredna činjenica. Svako od nas se više puta bavio algoritmom SHA-256, a da to nije ni znao, čak i bez obzira na rudarenje kriptovaluta. Riječ je o SSL sigurnosnom certifikatu koji štiti mnoge web stranice. Kada posjetite takvu stranicu, automatski stupate u interakciju sa SHA-256, na čemu je izgrađen SSL.

Karakteristike SHA-256 protokola

Prvo, malo istorije. U početku je algoritam za šifrovanje SHA-256, odnosno njegov prototip, izmišljen unutar zidova “zlokobne” NSA (Američke nacionalne sigurnosne agencije) u sada već dalekoj 2002. godini. U roku od nekoliko mjeseci modificiran je i zvanično predstavljen od strane Nacionalnog metrološkog univerziteta na saveznom nivou. Dvije godine kasnije objavljena je druga, poboljšana verzija.

Tokom naredne tri godine, Agencija je radila na poboljšanju algoritma i na kraju izdala patent za njegovo drugo izdanje. Ovo je urađeno pod Royalty-free licencom, što je omogućilo korištenje najnovije tehnologije u "mirne" svrhe.

Na kraju, SHA-256 je formirao osnovu za stvaranje prve kriptovalute na svijetu - Bitcoin. U ovom slučaju, protokol se koristi dva puta radi povećanja sigurnosti.

Prilikom izvođenja proračuna u sklopu rudarenja u Bitcoin sistemu, znak podobnosti rezultirajućeg hash koda je broj nula na početku reda. Od kraja 17., početkom 18. broj potrebnih vodećih nula je 17 (+/-). Vjerovatnoća otkrivanja takvog koda je približno 1 u 1,4*10 20 . Ovo je monstruozno mali broj koji prkosi razumijevanju i uporediv je s vjerovatnoćom da se nađe zrno pijeska određenog oblika na svim pješčanim plažama naše planete. Zbog toga je za rudarenje Bitcoina potrebno toliko računarske snage i toliko struje.

Ne postoji način da se optimizira pretraga za "ispravnim" hashom. U SHA-256 protokolu, hash funkcija, uzimajući blok podataka, proizvodi potpuno nepredvidivu izlaznu vrijednost. Stoga je potrebna iteracija (ponavljanje) nakon iteracije dok se ne pronađe odgovarajući kod, još jednom naglašavamo - potpuno nasumično.

Sada smo primorani čitaoca malo "natovariti" složenim tehničkim informacijama, inače će naša priča o SHA-256 biti nepotpuna. Ako vam ništa nije jasno, samo prijeđite na sljedeći odjeljak članka.

Protokol uključuje razbijanje informacija na fragmente od 512 bita svaki (ili 64 bajta, što je isto, jer je 1 bajt = 8 bita). Zatim se kriptografsko „miješanje“ događa prema šemi svojstvenoj algoritmu, a izlaz je hash kod veličine 256 bita. Operacija heširanja se izvodi u 64 iteracije, što je relativno malo, posebno u odnosu na nove kriptografske algoritme koji su se pojavili.

Glavni tehnički parametri SHA-256 su sljedeći:

  • Veličina bloka: 64 bajta;
  • Maksimalna dužina poruke: 33 bajta;
  • Veličina rezultirajućeg hash koda: 32 bajta;
  • Broj ponavljanja u jednoj rundi: 64;
  • Maksimalna brzina: oko 140 MiB/s (mebibajta u sekundi).

U svom radu algoritam koristi poznatu Merkle-Damgard tehniku, koja uključuje podjelu početnog indikatora na blokove odmah nakon unošenja promjena. Blokovi su, pak, podijeljeni u po 16 riječi.

Skup podataka prolazi kroz krug od 64 iteracije. Svaki od njih započinje proces heširanja riječi koje čine blok. Parove riječi obrađuje funkcija, nakon čega se rezultati zbrajaju i dobiva se ispravan hash kod. Svaki sljedeći blok se izračunava na osnovu vrijednosti prethodnog. Ovo je besprijekoran proces - nemoguće je izračunati blokove odvojeno jedan od drugog.

Evolucija SHA-256

Da bismo razumjeli kriptografsku vrijednost ovog algoritma, osvrnimo se na istoriju. Počeli su ozbiljno testirati njegovu snagu gotovo odmah nakon stvaranja - 2003. godine. Stvar su obrađivali profesionalci, ali nisu pronađene ranjivosti ili greške.

Prošlo je punih pet godina kada su 2008. indijski stručnjaci još uvijek uspjeli identificirati kolizije za čak 22 iteracije. Nakon nekoliko mjeseci mukotrpnog rada, predloženo je uspješno rješenje problema.

U toku analize rada funkcionalnog dijela algoritma testirana je njegova otpornost na dvije vrste mogućih metoda sigurnosnog kvara:

  • kroz preimage: ovo znači obrnuto dešifriranje originalne poruke zasnovano samo na hash nizu;
  • kroz detekciju kolizije: ovo implicira podudarnost odlaznih podataka, pod uslovom da su dolazne poruke različite. Odnosno, dolazni blokovi su različiti, ali odlazni heš je isti - to se ne bi trebalo dogoditi.

Nakon što je prva verzija SHA-256 pala na testovima po drugom kriteriju, programeri su odlučili kreirati novi mehanizam šifriranja zasnovan na radikalno drugačijim principima. To je i učinjeno - 2012. godine uveden je protokol nove generacije, potpuno lišen gore opisanih nedostataka.

Nedostaci algoritma

Činjenica da su programeri uspeli da isprave sopstvene greške ne znači da su uspeli da dovedu SHA-256 do savršenstva. Protokol je otklonio očigledne ranjivosti, ali su ostali njegovi „prirodni“ nedostaci.

Upotreba SHA-256 kao osnove Bitcoina postala je moguća, ne samo zbog činjenice da je samo američko zakonodavstvo bilo lojalno ovom protokolu. Dozvoljeno je da se koristi za zaštitu podataka u nekim vladinim programima, a takođe je bilo dozvoljeno da se koristi u komercijalnoj sferi.

Otuda dolazi ironija sudbine – protokol je kreiran za jednu svrhu, ali je svoju najširu primjenu našao u potpuno drugim. I za te prve svrhe bilo je više nego efikasno i prikladno. Ali za kriptovalute se pokazalo previše jednostavnim. Nije šala kada u Kini, na primjer, ne postoje čak ni farme, već čitave "tvornice" ispunjene ASIC rudarima.

Svaka iteracija algoritma izgleda prilično primitivno - osnovna binarna operacija plus 32-bitni dodatak. Zbog toga su se ASIC bazirani na SHA-256 pojavili tako brzo, pomnoživši sa nulom sve nade „kućnih“ rudara sa samo procesorom i par video kartica.

Vremena i uslovi se umnogome menjaju, a SHA-256 protokol samouvereno prati druga, naprednija rešenja. Isti Scrypt u procesu proračuna prvo bilježi 1024 različita hash niza, a tek nakon toga vrši sabiranje i dobiva konačni rezultat. Ovo je neuporedivo složenija šema s najvišim nivoima zaštite i sigurnosti kriptovaluta.

Sažetak

SHA-256 algoritam šifriranja smatran je prilično učinkovitim i pouzdanim sve dok nije počeo bum kriptovaluta. Danas postaje jasno da u pozadini novih rješenja već izgleda prilično slabo. Toliko da je to omogućilo stvaranje posebnih uređaja "naoštrenih" striktno da ga zaobiđu. To su isti ASIC rudari koji su praktično uništili rudarenje na centralnim procesorima i već završavaju rudarenje na video karticama.

Čini se da u tome nema ništa loše – ipak zdrava konkurencija. Ali u stvari, upotreba ASIC-a prilično značajno centralizira kriptovalutu, neutralizirajući samu njenu ideju. Ova činjenica nije mogla a da ne potakne talentovane entuzijaste da kreiraju nove, naprednije algoritme za heširanje. I nisu dugo čekali.

SHA-256 protokol trenutno zauzima lavovski dio tržišta kriptovaluta, ali nove alternative ga već samouvjereno guraju u stranu. Na primjer, druga najpopularnija i "skuplja" kripta, Ethereum, koristi Ethash protokol, koji se ranije zvao Dagger. Protokol je toliko dobar da Ethereum i danas održava maksimalnu decentralizaciju, a ASIC rudari za njegovo rudarenje još uvijek ne postoje u prirodi. Možda će Ethash zamijeniti očigledno zastarjeli SHA-256.

Jedan od prvih alternativnih algoritama bio je Scrypt, na kojem je baziran jedan od najpopularnijih altcoina, Litecoin. Ovo je mnogo naprednije rješenje, koje više ne daje ASIC-u tako neosporne prednosti. Međutim, super-profit od rudarenja primorao je kineske stručnjake da ulože mnogo truda u razvoj tehnoloških rješenja za Scrypt, a ASIC bazirani na ovom protokolu su se ipak pojavili.

Ako rudarenje razmatramo iz perspektive običnog čovjeka koji nije iskusan u tehničkim nijansama, onda neće osjetiti nikakvu razliku između Scrypt i SHA-256 algoritama. ASIC-ovi na oba protokola izgledaju gotovo isto, troše približno istu količinu električne energije i imaju potpuno istu buku ventilatora. Druga stvar su kursevi kriptovaluta koje ti isti ASIC kopaju, ali to je sasvim druga priča.

Sljedeći materijal u okviru ove teme posvetit ćemo spomenutom alternativnom protokolu šifriranja Scrypt.

SHA 256 je kriptografski skup instrukcija za rudarenje kriptovaluta. Drugim riječima, pouzdano štiti sve transakcije na mreži i komplikuje vađenje elektronskih kovanica. Ova skraćenica je skraćenica od Secure Hashing Algorithm, što znači veoma popularan i efikasan metod heširanja.

Suština SHA 256 je pretvaranje informacija u vrijednosti, brojeve. Ovaj lanac ima fiksnu dužinu. To znači da će sve informacije koje prenosite unutar mreže biti šifrirane posebnim vrijednostima - identifikatorima (ID-ovima).

Prilikom obavljanja transakcija, SHA 256 algoritam upoređuje ID sa originalnim podacima, koji se ne mogu preuzeti, a zatim omogućava pristup transakciji. Ovaj protokol se sada koristi u rudarenju kriptovaluta kao što su BTC i BCH.

Istorija izgleda

Kako se dogodilo da je Bitcoin počeo koristiti SHA 256? Sve je počelo tako što je algoritam postao član SHA-2 porodice, koja ima veličinu lanca heširanja od 224-512 bita.

Oni su, pak, stvoreni na osnovu njihovog pradjeda - SHA-1, čiji je hash bio dugačak 160 bita. Tehnologija se pojavila 1995. godine, a bila je namijenjena za upotrebu u civilne svrhe – odnosno šifriranje običnih, državno važnih informacija.

Porodicu SHA-2, kojoj pripada SHA 256, razvila je Agencija za nacionalnu sigurnost prije 16 godina - u proljeće 2002. Na osnovu toga možemo reći da je algoritam moralno zastario. Međutim, to je i dalje jedan od najjačih algoritama za šifriranje transakcija na mreži.

Tehnički parametri SHA 256

Algoritam je dizajniran za podatke podijeljene na jednake dijelove od 64 bajta. SHA 256 osigurava da se oni prikupljaju i kombinuju u jedan 256-bitni lanac. Glavna metoda za ovu metodu je operacija šifriranja, koja se izvodi u petlji 64 puta.

Kratke karakteristike SHA 256 algoritamskih instrukcija:

  • 64-bitni blokovi - radi najbrže sa 32-bitnim blokovima;
  • maksimalna dužina šifrovanog lanca informacija je 33 bajta;
  • veličina sažetka poruke - 32 bajta;
  • standardizirana veličina jedne riječi je 4 bajta;
  • ciklus enkripcije u jednoj rundi operacije je 64 bajta;
  • brzina kojom algoritam radi je 140 Mbit/s.

Vrijedi napomenuti da je ovaj član porodice SHA-2 zasnovan na okviru koji je opisao Merkle-Damgaard. To znači da se prije podjele informacija u riječi podaci dijele na blokove. Proces jača enkripciju miješanjem podataka.

Samo prikupljanje informacija provodi se u rasponu od 64 do 80 ponavljanja. Svaka naredna petlja pretvara kreirane blokove u riječi. Konačni rezultat, odnosno hash, kreira se zbrajanjem svih početnih vrijednosti.

Kriptovalute sa SHA 256 algoritmom

Kao što je ranije spomenuto, ne samo da Bitcoin ima takav skup uputstava, već i:

  • peercoin, čija je posebnost u tome što se kod kreira na temelju bilješke lopte, ali se PoS koristi za zaštitu cijele mreže, a PoW je odgovoran za distribuciju novčića;
  • namecoin je digitalna valuta koja djeluje kao sredstvo zaštite, povjerljivosti i decentralizacije; unobtanium - ima izuzetno nisku inflaciju; trebat će najmanje 300 godina da se iskopaju svi novčići;
  • deutsche eMark je njemačka mikromreža koja se koristi za razmjenu imovine i novca. Sam proces se odvija bez posrednika; betaCoin - radi na istom principu kao i svjetski poznati BitCoin;
  • jouleCoin - takođe baziran na dedinom Bitcoinu, ali omogućava bržu potvrdu transakcija;
  • steemit nije čak ni zasebna kripta, već cijela platforma na blockchainu. Njegov glavni zadatak je da nagrađuje zanimljive publikacije.

Litecoin također koristi SHA 256 algoritam, ali ne u cijelom sistemu, već u potprogramu. Za rudarenje Litecoina koristi se sigurnosni protokol Scrypt, koji povećava složenost rudarenja i smanjuje isplativost ASIC-a.

Rudarstvo kriptovaluta bazirano na SHA 256 algoritmu

Za rudarenje elektronskih kovanica koje su bazirane na SHA-2 porodici, nije potrebno koristiti specijalizovane alate - ASIC. Farme zasnovane na CPU-u i GPU-u dobro rade u rudarenju. Potonji je očito bolji u brzini od prvog.

A ipak je ASIC najbolje rješenje za rudarenje kriptovaluta. Njegove prednosti su u određenoj mjeri nadoknađene značajnom cijenom - oko 100 hiljada rubalja, snažniji modeli čak prelaze 500 000. Kako se složenost povećava, isplativost se smanjuje. Stoga se oprema ne opravdava uvijek, iako pruža mnogo veću brzinu rudarenja od farmi na video karticama i, posebno, CPU-u.

GPU rudarenje se smatra manje-više profitabilnim. Općenito, cijela farma će koštati otprilike 1000-2000 dolara, plus dodatna oprema - posebno sistemi hlađenja za video kartice. Također je vrijedno uzeti u obzir iznajmljivanje prostorija, plaćanje električne energije i plaće uslužnog osoblja.

Među video karticama, GTX 1080 Ti iz Nvidia radi dobro. Proizvodi brzinu od 1400 uspješnih operacija u sekundi. AMD malo zaostaje sa Vega linijskim karticama - 1200 MH/s. Postoje i jeftinije opcije poput Radeon 7970, ali njegova brzina ne prelazi 800 MH/s.

SHA 256 algoritam, iako star, još uvijek se koristi u Bitcoinu, kriptovaluti broj 1 na svijetu. Protokol se također koristi u nizu drugih obećavajućih altcoina. SHA256 postepeno zamjenjuje Scrypt, ali Bitcoin ne planira da se prebaci na njega. Što se tiče rudarenja, sve je jednostavno - ako imate novca, uzmite ASIC-ove sa visokim hash rateom. Želite ekonomičnije rješenje? Zatim napravite farmu od AMD ili Nvidia video kartica.

  • Prevod

U jednom trenutku sam poželio da shvatim koliko je brzo moguće ručno rudariti Bitcoine. Ispostavilo se da se SHA-256 heširanje koristi za rudarenje, a prilično je jednostavno i može se izračunati čak i bez kompjutera. Naravno, proces je vrlo spor i potpuno nepraktičan. Ali nakon što prođete kroz sve korake na papiru, možete dobro razumjeti detalje o tome kako algoritam funkcionira.

Jedna kripto runda

Rudarstvo

Ključni dio cjelokupnog Bitcoin sigurnosnog sistema je rudarenje. Osnovna ideja je da rudari grupišu Bitcoin transakcije u jedan blok, kojeg zatim heširaju neopisiv broj kako bi pronašli vrlo rijetku vrijednost heša koja potpada pod posebne uslove. Kada se pronađe takva vrijednost, blok se smatra miniranim i ulazi u lanac blokova. Samo heširanje nema nikakvu korisnu svrhu osim što povećava poteškoće u pronalaženju ispravnog bloka. Dakle, ovo je jedna od garancija da niko sam sa bilo kojim postojećim skupom resursa neće moći preuzeti kontrolu nad cijelim sistemom. Više o rudarstvu možete pročitati u mom posljednjem članku.

Funkcija kriptografskog heširanja prima blok podataka kao ulaz i proizvodi mali, ali nepredvidiv izlaz. Dizajniran je tako da ne postoji brz način da dobijete željeni rezultat i morate nastaviti da tražite dok ne pronađete pravu vrijednost. Bitcoin koristi SHA-256 kao takvu funkciju. Štaviše, da bi se povećala otpornost, SHA-256 se primjenjuje na blok dva puta i naziva se dvostruki SHA-256.

U Bitcoin-u, kriterijum da heš bude validan je da ima dovoljan broj vodećih nula. Pronalaženje takvog heša jednako je teško kao, na primjer, pronalaženje automobila ili telefonskog broja koji završava na nekoliko nula. Ali naravno za heš je to eksponencijalno teže. Trenutno, važeći hash mora sadržavati približno 17 vodećih nula, što je samo 1 u 1.4x10 20 zadovoljeno. Ako povučemo analogiju, onda je pronalaženje takve vrijednosti teže nego pronaći određenu česticu među svim pijeskom na Zemlji.

Plava blokira bitove nelinearnog miješanja kako bi otežala kriptografsku analizu. Štoviše, za još veću pouzdanost, koriste se različite funkcije miješanja (ako možete pronaći matematičku rupu za brzo generiranje valjanih heševa, preuzet ćete kontrolu nad cijelim procesom rudarenja Bitcoina).

Funkcija većine (Ma blok) radi po bitovima na riječima A, B i C. Za svaku poziciju bita, vraća 0 ako je većina ulaznih bitova na toj poziciji nula, u suprotnom vraća 1.

Blok Σ0 rotira A za 2 bita, zatim se originalna riječ A rotira za 13 bita, i slično za 22 bita. Rezultirajuće tri pomaknute verzije A se dodaju po bitu po modulu 2 ( normalan xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch implementira funkciju odabira. Na svakoj poziciji bita provjerava se bit iz E, ako je jednak jedan, onda se izlazi bit iz F sa ove pozicije, inače bit iz G. Dakle, bitovi iz F i G se miješaju na osnovu vrijednosti od E.

Σ1 je po strukturi sličan Σ0, ali radi sa riječju E, a odgovarajuće konstante pomaka su 6, 11 i 25.

Crveni blokovi izvode 32-bitno sabiranje, generišući nove vrijednosti za izlazne riječi A i E. Vrijednost W t se generira na osnovu ulaznih podataka (ovo se događa u dijelu algoritma koji prima i obrađuje raspršene podatke To je izvan naših okvira). K t je vlastita konstanta za svaki krug.

Na gornjem dijagramu je primjetno da se samo A i E mijenjaju u jednoj kriptografskoj rundi. Preostale riječi se ne mijenjaju, već se pomiču na izlazu - staro A se pretvara u izlaz B, staro B u novo C, itd. Iako jedna runda algoritma ne mijenja mnogo podatke, nakon 64 runde, ulazne informacije će biti potpuno šifrirane.

Rudujemo ručno

U videu pokazujem kako možete proći kroz sve opisane korake pomoću olovke i papira. Izveo sam prvu rundu heširanja kako bih rudario blok. Trebalo mi je 16 minuta, 45 sekundi.


Dozvolite mi da malo objasnim šta se dešava: riječi od A do H zapisao sam u heksadecimalnom obliku, a ispod svake sam napravio prijevod u binarni oblik. Rezultat bloka Ma je ​​ispod riječi C, a vrijednosti A nakon pomaka i sam izlaz Σ0 pojavljuju se iznad linije sa A. Ispod G se pojavljuje funkcija odabira i na kraju odgovarajuće pomaknute verzije E i vrijednost nakon bloka Σ1 ide iznad linije sa E. U donjem desnom uglu izvršeno je sabiranje čiji rezultat je uključen u izračunavanje i novog A i novog E (prva tri crvena bloka sumiranja). U gornjem desnom uglu sam izračunao novu vrednost A, a u sredini je izračunavanje nove vrednosti E. Svi ovi koraci su diskutovani iznad i mogu se lako pratiti na dijagramu.

Pored runde prikazane u videu, sproveo sam još jednu - poslednju 64. rundu heširanja za određeni Bitcoin blok. Na fotografiji je heš vrijednost označena žutom bojom. Broj nula potvrđuje da je to ispravan Bitcoin heš. Imajte na umu da se nule nalaze na kraju heša, a ne na početku, kao što sam ranije napisao. Razlog je taj što Bitcoin jednostavno okreće bajtove koje je primio SHA-256.


Posljednji krug SHA-256, kao rezultat kojeg je vidljiv uspješno minirani Bitcoin blok

Šta sve ovo znači za dizajn hardverskih rudara?

Svaki korak u SHA-256 izgleda vrlo jednostavno u digitalnoj logici - jednostavne bitne operacije i 32-bitni zbroji (ako ste ikada proučavali dizajn kola, vjerovatno ste već zamislili kako bi ovo moglo izgledati u hardveru). Stoga, ASIC-ovi implementiraju SHA-256 vrlo efikasno, postavljajući stotine SHA-256 okruglih izvršnih jedinica paralelno. Fotografija ispod prikazuje čip za rudarenje koji može izračunati 2-3 milijarde heša u sekundi. Više fotografija možete vidjeti na Zeptobars.


Silikonski snimak Bitfury ASIC čipa, koji može rudariti Bitcoin brzinom od 2-3 gigaheša u sekundi. Slika sa Zeptobarsa. (CC BY 3.0)

Za razliku od Bitcoina, Litecoin, Dogecoin i drugi slični alternativni sistemi koriste algoritam heširanja scrypt, koji je inherentno teško implementirati u hardveru. Ovaj algoritam pohranjuje 1024 različite hash vrijednosti u memoriju tokom izvršavanja i kombinuje ih na izlazu kako bi se dobio konačni rezultat. Stoga je potrebno mnogo više memorije i kola za izračunavanje heševa skripta u poređenju sa SHA-256 hešovima. Uticaj promjene algoritma heširanja jasno je vidljiv kada se uporedi odgovarajući hardver za rudarenje - verzije za scrypt (Litecoin i drugi) su hiljadama puta sporije od verzija za SHA-256 (Bitcoin).

Zaključak

SHA-256 je odjednom bio toliko jednostavan da se mogao izračunati čak i ručno (algoritam eliptičke krive koji se koristi za potpisivanje Bitcoin transakcije bio bi mnogo bolniji, jer uključuje gomilu množenja brojeva od 32 bajta). Izračunavanje jedne runde SHA-256 trajalo mi je 16 minuta i 45 sekundi. Sa ovim performansama, heširanje cijelog Bitcoin bloka (128 rundi) će trajati 1,49 dana, odnosno dobijamo stopu heširanja od 0,67 heširanja dnevno (u stvari, naravno, proces bi se ubrzao s vježbom). Poređenja radi, trenutna generacija Bitcoin rudara proizvodi nekoliko terahaša u sekundi, što je oko kvintilion puta brže od mene. Mislim da je jasno da ručno rudarenje Bitcoina nije baš praktično.

Čitalac sa reddit-a me je pitao za moju potrošnju energije. Pošto ne ulažem nikakav ozbiljan fizički napor, možemo pretpostaviti da će brzina metabolizma biti 1500 kilokalorija dnevno, onda nalazimo da ručno heširanje zahtijeva skoro 10 megadžula po hashu. Tipična potrošnja energije za rudara gvožđa je 1000 magehaša po džulu. Dakle, ja sam manje energetski efikasan od specijalizovanog komada gvožđa za 10^16 puta (10 kvadriliona). Drugi problem je cena energije. Jeftin izvor energije su krofne na 23 centi na 200 kilokalorija.Ja imam struju 15 centi po kilovat-satu, što je 6,7 puta jeftinije od krofni.Kao rezultat toga, trošak energije u smislu heša za mene, kao čovjeka rudara, je 67 kvadriliona puta veći. Da, jasno je da ga neću dobiti. Sretno sa ručnim rudarenjem Bitcoina, a to čak ni ne uzimajući u obzir cijenu papira i olovaka!