Monede pe SHA256. Ce este algoritmul de criptare Bitcoin? Punctele slabe și punctele forte ale algoritmului de hashing Bitcoin

Funcția de hashing SHA 256 a stat la baza primei criptomonede din lume - Bitcoin și multe altcoins. Știați că a fost creat cu mult înainte de apariția criptomonedelor și a fost destinat unor scopuri complet diferite? Astăzi ne vom uita la istoria algoritmului, principiul funcționării acestuia, problemele actuale și ce criptomonede folosesc SHA256.

Poveste

Numele algoritmului SHA 256 este un acronim pentru Secure Hashing Algorithm. Așa a numit-o dezvoltatorul - Agenția de Securitate Națională a SUA. Algoritmul este o funcție de hashing. Aceasta înseamnă că intrarea sa este un volum de date de lungime arbitrară, iar rezultatul este un set de caractere de lungime fixă, numit hash.

Una dintre caracteristicile cheie ale funcțiilor de hash hash este ireversibilitatea. Putem obține hash-ul trecând datele originale prin funcție, dar cunoscând hash-ul, nu vom putea obține datele originale. Datorită acestei proprietăți, funcția a devenit larg răspândită în diverse servicii și aplicații în care este necesară protecția datelor. În fiecare zi folosim algoritmul SHA 256 când vizităm site-uri de pe Internet. Include un certificat de securitate SSL, care este necesar pentru a stabili o conexiune sigură la site.


Algoritmul face parte din familia SHA-2, dezvoltată pe baza SHA-1, care a apărut în 1995. De la începuturile sale, sha256 a fost testat pe larg pentru rezistența sa folosind criptoanaliza. Criptanaliza testează rezistența funcțiilor hash la două tipuri principale de atacuri:
  • Găsirea coliziunilor - detectarea hash-urilor identice cu diferiți parametri de intrare. Rata de succes a acestui atac compromite securitatea semnăturii digitale folosind algoritmul actual.
  • Găsirea unei imagini prealabile este abilitatea de a decripta mesajul original folosind hash-ul său. Acest atac compromite securitatea stocării hash-urilor parolelor de autentificare.

Analiza a fost testată pentru prima dată în 2003, dar atunci nu au fost găsite vulnerabilități. Odată cu trecerea timpului, puterea de calcul s-a dezvoltat. În 2008, au fost găsite coliziuni pentru iterațiile SHA-512 și SHA-256. În septembrie același an, a fost dezvoltată o metodă de creare a coliziunilor pentru 31 de iterații ale lui SHA256 și 27 de iterații ale lui SHA-512.

Evident, a sosit momentul să dezvoltăm o nouă funcție criptorezistentă. În 2012, NSA a inventat SHA-3. Treptat, algoritmul actualizat va înlocui predecesorii săi mai puțin rezistenți la criptografie.

Exploatare pe SHA 256

Legea SUA permite utilizarea SHA și a funcțiilor hash similare ca parte a altor protocoale și algoritmi în anumite aplicații federale de securitate a informațiilor non-secrete. SHA-2 poate fi folosit de organizații private și comerciale.

Nu este de mirare că a fost folosit în criptomonede. Minerii colectează toate tranzacțiile într-un bloc și apoi încep să-l hashing. Când este găsită o valoare hash care se potrivește cu regulile sistemului, blocul este considerat gata pentru a fi atașat la sfârșitul blockchain-ului. Noul bloc va fi găsit de cineva care poate calcula valorile hash foarte rapid. Viteza de calcul depinde de puterea echipamentului. Trei tipuri de echipamente pot fi folosite pentru a extrage Bitcoin:

  • CPU (unitate centrală de procesare);
  • GPU (placi video);
  • ASIC (Application Specific Device).

Rețeaua Bitcoin este concepută în așa fel încât fiecare bloc nou trebuie găsit o dată la 10 minute. Numărul de participanți la rețea este în continuă schimbare, dar timpul trebuie să rămână constant. Pentru a asigura timpi de rezidență egali, sistemul ajustează dificultatea de calcul în funcție de numărul de mineri. Criptomonedele au câștigat popularitate în ultima perioadă, iar numărul de mineri a crescut foarte mult. Pentru a preveni găsirea prea rapidă a blocurilor, a crescut și complexitatea calculelor.


Bitcoin a început să fie extras pe procesoare. Apoi, când puterea lor a devenit insuficientă, au trecut la plăcile video. În curând plăcile video nu au mai putut face față. Apoi au fost inventate ASIC-urile - dispozitive speciale concepute pentru calcule folosind algoritmul sha 256. Un ASIC este mult mai puternic și mai eficient din punct de vedere energetic decât mai multe plăci video.

Minerii întreprinzători creează ferme uriașe din ASIC. Pe lângă costul ridicat al echipamentului în sine, o astfel de fermă primește în fiecare lună facturi de energie electrică de câteva zeci de mii de dolari. Acum mineritul Bitcoin are sens numai în astfel de ferme industriale; un computer de acasă sau chiar o fermă cu mai multe plăci video nu va putea concura cu ele și nici măcar să recupereze electricitatea.

Cu toate acestea, acest lucru este ușor de calculat. Există calculatoare pentru a calcula profitabilitatea mineritului pe sha256. De exemplu, https://www.coinwarz.com/miningprofitability/sha-256. Introduceți hashrate-ul echipamentului dvs. (puterea de calcul), consumul de energie și costul acestuia în formular, serviciul vă va calcula profitul.

Altcoins SHA-256

Să ne uităm la lista și lista de criptomonede care funcționează pe sha 256.

Bitcoin Cash (BCH)

Separat de acesta la 1 august 2017. Dimensiunea blocului în Bitcoin clasic este de 1 MB. Rețeaua a crescut atât de mult încât toate tranzacțiile nu se mai pot încadra într-un bloc. Acest lucru a dus la formarea de cozi de tranzacții și la o creștere a taxelor pentru efectuarea plăților. Comunitatea a decis să introducă un nou protocol, conform căruia blocul a fost mărit la 2 MB, unele informații au început să fie stocate în afara blockchain-ului, iar intervalul de timp pentru recalcularea complexității a fost redus de la două săptămâni la o zi.

Namecoin (NMC)

Este un sistem de stocare și transmitere a combinațiilor nume-valoare bazat pe tehnologia Bitcoin. Cea mai faimoasă aplicație a sa este sistemul de distribuție a numelor de domeniu, care este independent de ICANN și, prin urmare, face imposibilă repunerea în posesie a domeniului. Namecoin a fost lansat în 2011, rulează pe software-ul de minerit Bitcoin transmis către serverul pe care rulează Namecoin.

DigiByte (DGB)

O criptomonedă lansată în 2013 cu scopul de a îmbunătăți performanța Bitcoin și Litecoin. Diferențele DigiByte:

  • Volatilitatea scăzută se realizează datorită numărului mare de monede emise (până la 21 de miliarde), ceea ce asigură costul redus al acestora și ușurința de utilizare în calcule;
  • Tranzacții mai rapide prin dublarea dimensiunii blocului la fiecare doi ani;
  • Comisioane mici sau fără comisioane;
  • Procesul de extragere este împărțit în cinci algoritmi care vă permit să extrageți monede independent unul de celălalt. Puteți folosi ASIC-uri pentru SHA-256 și Scrypt, plăci video pentru Groestl și Skein și un procesor pentru Qubit.

Algoritmul SHA 256 este cel mai comun dintre criptomonede. Acest lucru a fost cauzat de popularitatea și succesul Bitcoin și de dorința dezvoltatorilor de altcoin de a crea monede similare. Creșterea complexității computaționale i-a determinat pe mineri să caute modalități de a extrage mai eficient, ceea ce a dus la apariția ASIC-urilor.


Criptarea Bitcoin se bazează pe SHA-256, un algoritm special care face parte din codul programului. Sarcina sa este de a converti datele de intrare într-un set specific de caractere (în reprezentare alfabetică și numerică) și de a proteja informațiile. Astfel de acțiuni se numesc hashing. Care sunt subtilitățile acestui algoritm? De ce este nevoie și cum funcționează? Care sunt avantajele și dezavantajele? Vom lua în considerare acestea și o serie de alte puncte în detaliu.

Ce algoritm de criptare are Bitcoin și unde este folosit?

Când discutăm despre criptomonedă, despre caracteristicile funcționării și extragerii acesteia, participanții la rețeaua cripto în mod inevitabil dau peste o definiție atât de răspândită precum algoritmul de criptare Bitcoin. Din ziua în care a fost dezvoltat BTC și până astăzi (13 august 2018), a fost folosit SHA-256, care este necesar pentru a rezolva următoarele probleme în rețeaua Bitcoin:

  1. Formarea adreselor BTC (utilizate pentru tranzacții).
  2. Exploatare (dovada muncii).
  3. Atingerea gradului necesar de securitate și anonimat.
  4. Pentru semnătura digitală și recunoașterea acesteia.
Algoritmul SHA-256 este relevant nu numai pentru Bitcoin, ci și pentru alte monede, și anume Bitcoin Cash, Mazacoin, Peercoin, Namecoin și alte criptomonede. În plus, SHA-2 (baza lui SHA-256) este folosit pentru a crea multe protocoale menite să protejeze datele de pe Internet, și anume SSL, TSL și altele.

Algoritmul de hashing Bitcoin este necesar pentru a controla informațiile prin analiza și identificarea în timp util a inexactităților. Odată ce datele au fost procesate și convertite într-un hash, este imposibil să obțineți informațiile înapoi. Dacă luați un fișier BTC deja criptat, faceți din nou calculele și asigurați-vă că parametrii hash sunt identici, puteți fi sigur că nu există modificări la informațiile originale. Dacă datele diferă, aceasta indică un hack de sistem.

Algoritm de criptare Bitcoin - cum funcționează în cuvinte simple


SHA-2 se bazează pe cadrul creat de Merkle și Damgaard. Particularitatea funcției hash utilizată în criptografie este abordarea non-standard a formării acesteia. Datele primite sunt împărțite în blocuri de dimensiuni identice, după care elementele create sunt convertite în numere hexazecimale. Cu ei se fac calculele ulterior. O funcție hash este aplicată valorii rezultate, iar rezultatul procesării este suma hash care apare în rezultat. Este un set de caractere prezentate în afișaj alfabetic și numeric. În esență, acesta este un haș.

Următorul bloc este construit după principiul descris mai sus. În acest caz, un nou proces este lansat după crearea elementului anterior. Dacă se fac modificări la datele originale, hash-ul se modifică. În cazul în care parametrii funcției hash identici apar brusc în blocuri diferite, apare o situație de conflict în funcționarea algoritmului. Când apare o astfel de discrepanță, întregul lanț blockchain este pus sub semnul întrebării.

Astfel, o funcție hash este utilizată pentru a crea o semnătură digitală. Dacă apare situația discutată mai sus, există o mare probabilitate de falsificare a semnăturii. Pentru a calcula astfel de defecțiuni (coliziuni), se folosește o tehnică specială care implică enumerarea datelor, ceea ce mărește puterea funcției hash.

Corectitudinea criptării Bitcoin este controlată de patru cerințe:

  1. Când modificați datele primite, cantitatea de hash rămâne aceeași.
  2. În timpul hashingului, se obține o sumă hash individuală (setul de caractere trebuie să fie unic).
  3. Crearea cheilor folosind hashing este extrem de complicată.
  4. Hashe-urile sunt ireversibile. Aceasta înseamnă că lucrul cu datele de intrare este permisă fără posibilitatea de a efectua acțiuni inverse.

Cum se aplică acest lucru în Bitcoin?

Sarcina nodurilor rețelei de criptomonede este să găsească unul în numeroase tranzacții care să i se potrivească din toate punctele de vedere. La evaluarea opțiunilor, atenția inițială este acordată mărimii comisionului (apropo, din acest motiv, tranzacțiile cu un comision mai mare sunt finalizate mai repede). În continuare, se verifică operațiunea, se studiază datele de intrare și de ieșire și se clarifică originalitatea semnăturii digitale.

Imediat ce lucrarea avută în vedere este finalizată, următorul element al lanțului (blocul) Bitcoin este creat cu o anumită dimensiune (pentru criptomoneda în cauză - 1 megaoctet). Nodurile rezultate constau din versiunea, timpul de formare, două hash-uri (bloc trecut și tranzacții primite), precum și parametri suplimentari care asigură unicitatea (biți și nonce). În complex, blocul creat este hash de mai multe ori, rezultând formarea unui hash cap, care acționează ca o ieșire pentru elementul „vechi” al lanțului și ca o intrare pentru cel nou.

Să presupunem că setul hash conține un anumit număr „0” (de exemplu, nonce este 17). Este extrem de dificil să selectați o astfel de valoare folosind doar enumerarea valorilor. Acesta este aspectul care asigură fiabilitatea informațiilor din rețeaua blockchain și protecția acesteia de hacking. Pentru a crea un hash, este necesară o putere enormă, fără de care este imposibil să găsiți setul necesar de caractere. Odată ce această lucrare este finalizată și parametrul este găsit, acesta este trimis la elementele rețelei cripto cu blocul nou creat și hash-ul găsit cu 17 „0s”. În continuare, toți participanții din rețeaua Bitcoin verifică hash-ul, combinând setul de caractere cu informațiile din bloc. Dacă nu există nicio coliziune, apare un nou element în lanțul blockchain.

Când a apărut algoritmul de criptare Bitcoin - un scurt istoric


Termenul „SHA” este o abreviere a trei cuvinte: „Secure Hashing Algorithm”. Bitcoin folosește SHA-256, iar „baza” funcției hash menționate este SHA-2, care include mulți algoritmi cripto (inclusiv 256).

Creatorii SHA-2 sunt NSA al Statelor Unite, o agenție specială care se ocupă de problemele de securitate națională ale țării. După dezvoltarea și testarea algoritmului, acesta a fost lansat publicului în 2002. Noul SHA-2 a inclus și prima funcție hash SHA-1 (creată cu 7 ani mai devreme - în 1995). De la introducerea lui SHA-2, au fost lansate multe variante ale algoritmului, dintre care una a fost folosită de Satoshi Nakamoto la crearea Bitcoin în 2009.

Scopul dezvoltatorilor a fost să lanseze un algoritm care să asigure formarea unei valori specifice de o anumită lungime dintr-un set aleatoriu de caractere. Au reusit. În viitor, parametrul rezultat va fi utilizat pentru a identifica (verifica) informațiile. Scopul inițial al SHA-2 este de a proteja datele pe diverse servicii, iar astăzi (în 2018) SHA-256 este cunoscut în primul rând ca un algoritm utilizat în minerit de monede.

În 2012, sistemul a fost îmbunătățit și a apărut o versiune actualizată a funcției hash - SHA-3. Se crede că, în timp, noua dezvoltare va înlocui algoritmii anteriori, ceea ce va îmbunătăți gradul de securitate deja ridicat.

Caracteristicile algoritmului de criptare Bitcoin


Esența lui SHA-256 este simplă. Mesajul inițial după adăugarea este împărțit în blocuri, iar fiecare dintre ele are 16 cuvinte. Elementele rezultate trec prin cicluri speciale care implică 64 sau 80 de etape. La fiecare dintre ele sunt convertite două cuvinte, iar opțiunea de transformare este formată din cuvintele rămase. Parametrii rezultați sunt însumați pentru a forma un hash.

În timpul funcționării algoritmului, sunt utilizate 6 comenzi:

  • „xor” - elimină „OR”.
  • „shr” - mută indicatorul cu numărul necesar de biți la dreapta cu o anumită frecvență.
  • „putrezește” - mută indicatorul cu numărul necesar de biți la dreapta (fără a utiliza un ciclu specific).
  • „II” - o conexiune de elemente care sunt de natură liniară.
  • "si si".
  • „+” - urmărire.
Caracteristicile protocolului:
  1. Limita superioară pentru durata mesajului este de 33 B.
  2. Parametrul de viteză maximă este de 139 MiB/s.
  3. Dimensiunea cuvântului - 4 B.
  4. Numărul de repetări într-un ciclu este de 64.
  5. Dimensiunea elementului bloc este de 64 B.
  6. Codul hash total este 32 B.

Algoritm de criptare Bitcoin în minerit


Când se efectuează calcule în minerit, corectitudinea codului hash rezultat este determinată de numărul de zerouri de la începutul liniei. De exemplu, dacă acest parametru este 17, probabilitatea de a găsi un astfel de număr este extrem de mică și este undeva în jurul valorii de 1:1,4*10 până la a 20-a putere. Nu este surprinzător faptul că mineritul Bitcoin necesită utilizarea de echipamente puternice și costuri mari de energie. În același timp, optimizarea căutării pentru hash-ul necesar este imposibilă, deoarece după primirea unui bloc de informații, la ieșire apare un număr aleatoriu.

Dificultatea extragerii unei monede virtuale este de a găsi hash-ul necesar și de a forma următorul bloc. Pentru a atinge acest obiectiv, se utilizează enumerarea standard a valorilor, care necesită echipamente de înaltă performanță. După cum am menționat, căutarea nu este pentru un simplu hash, ci pentru o valoare cu un număr mare de „0” în față.

Exploatarea criptomonedelor folosind SHA-256 este un set de măsuri care vizează rezolvarea unei anumite probleme de criptomonedă. În cazul Bitcoin, următoarele echipamente sunt folosite pentru minerit:

  1. De la apariția BTC în 2009, precum și până la jumătatea anului 2010, utilizarea unei unități centrale de procesare (CPU) a fost relevantă.
  2. Până la jumătatea anului 2011, minerii foloseau computere cu plăci video (GPU).
  3. Până la începutul lui 2013, FGPA-urile au fost populare, la fel și fermele GPU.
  4. În 2014, au apărut ASIC-urile. Au eclipsat echipamentele existente în performanță. În ciuda acestui fapt, până la începutul anului 2017, minerii au folosit fermele GPU și au lucrat în bazine, dar până la sfârșitul lui 2017 și până în prezent, doar -minerii sunt relevanți. Utilizarea altor echipamente este neprofitabilă.
Dispozitivele menționate sunt folosite pentru a selecta funcția hash de interes și pentru a genera una nouă. Cu cât este mai mare hashrate (puterea de calcul) a dispozitivului, cu atât datele sunt sortate mai rapid și cu atât este mai puțin timp pentru a găsi o soluție.

Odată cu creșterea concurenței și eliberarea de mineri mai productivi, și crește, parametrul căruia se schimbă la fiecare 2 săptămâni.

Punctele slabe și punctele forte ale algoritmului de hashing Bitcoin


Mai sus ne-am uitat la ce este algoritmul de hashing Bitcoin și care sunt caracteristicile acestuia. Acesta este SHA-256, care este considerat cel mai comun algoritm cu un nivel ridicat de fiabilitate și un principiu de funcționare relativ simplu. Este foarte rezistent la hacking și vă permite să extrageți monede pe orice echipament (în funcție de parametrii de dificultate).

În ciuda unui număr de calități pozitive, algoritmul de hashing Bitcoin are o serie de puncte slabe:

  1. Control de către participanții la minerit BTC. Același principiu funcționează aici ca și în societățile pe acțiuni (SA), când participanții la companie dețin un anumit număr de acțiuni. Cu cât puterea este concentrată în mâinile minerii de rețele criptografice, cu atât este mai puternic impactul acestora asupra întregului sistem. În plus, datorită complexității tot mai mari a mineritului în 2018, există o tendință vizibilă ca mineritul să treacă din mâinile minerilor privați la controlul marilor organizații implicate în crearea de echipamente pentru extragerea monedelor virtuale. Pentru a primi Bitcoins, un miner privat trebuie să cheltuiască sume mari pentru achiziționarea de ASIC, să se conecteze la unul dintre pool-uri și să plătească pentru electricitate. Dacă zgârciți cu echipamente, producția își pierde profitabilitatea.
  2. O consecință a situației discutate mai sus este faptul că partea „leului” a Bitcoins este concentrată în mâinile proprietarilor marilor companii miniere. Dacă ținem cont de faptul că nu tot Bitcoinul primit se pune în vânzare, astfel de organizații se transformă în investitori și custozi de monede. Ca urmare, numărul de monede în circulație scade. În plus, acumularea de criptomonede vă permite să influențați descentralizarea, precum și cursul de schimb al BTC în timpul procesului de tranzacționare.
  3. Din cauza deficiențelor existente, algoritmul SHA-256 devine treptat un lucru din trecut, iar proiecte mai avansate îi iau locul. De exemplu, Scrypt, Ethash, Blake-256, Equihash și alții câștigă popularitate. Noii algoritmi au niveluri mai bune de protecție și securitate, ceea ce i-a forțat pe creatorii multor criptomonede să abandoneze SHA-256 învechit în favoarea unor tehnologii mai avansate.
  4. În ciuda corectării principalelor erori identificate de dezvoltatori, unele vulnerabilități nu au putut fi înlăturate (în 2008, s-au găsit coliziuni pentru 22 de iterații). De aceea, dezvoltarea SHA a continuat, iar cea de-a doua versiune a fost înlocuită cu SHA-3.
În 2009, am fost obligat să folosesc SHA-256, deoarece la momentul creării criptomonedei, guvernele statelor au adoptat acest protocol. La acea vreme, era folosit în mod activ pentru protecția datelor în unele programe guvernamentale și era folosit și în sectorul comercial. S-a dovedit că protocolul a fost creat pentru a rezolva anumite probleme, dar în realitate este solicitat într-un mod complet diferit.

Pentru claritate, să tabulăm caracteristicile pozitive și negative ale algoritmului de criptare Bitcoin.

AvantajeDefecte
Răspândit (inclusiv în sectorul criptomonedei). Protocolul SHA este utilizat în mod activ în viața de zi cu zi pentru a proteja informațiile.Pierderea descentralizării. Puterea este concentrată în mâinile companiilor miniere.
Protecție sigură împotriva efracției.Iterația SHA are o structură simplă, ceea ce a dus la o creștere a complexității mineritului în timp. Începând cu august 2018, numai ASIC-urile cu performanță ridicată pot fi folosite pentru extragerea Bitcoins.
Comoditate în ceea ce privește extragerea monedelor, versatilitate în alegerea echipamentelor miniere.Apar algoritmi noi care au o structură mai avansată.
În a doua versiune (SHA-2), creatorii au reușit să elimine o serie de deficiențe care au afectat negativ fiabilitatea sistemului.În ciuda lucrului activ la bug-uri, multe deficiențe nu au fost eliminate. Nu este surprinzător, dezvoltatorii au creat o nouă versiune a SHA-3.
Protocolul a fost adoptat la nivel legislativ în Statele Unite.

Astăzi aproape că nu este folosit în dezvoltarea de noi criptomonede. Cel mai izbitor exemplu de monedă care încă folosește SHA-256 este Bitcoin Cash, o furcă de Bitcoin care a apărut în august 2017. Dar în situația cu această monedă, utilizarea SHA este mai mult o necesitate decât o alegere a creatorilor. În ceea ce privește Bitcoin în sine, utilizarea acestui protocol de serie se datorează lipsei de alternative de la Satoshi Nakamoto.

Astăzi, în 2018, se vorbește mult despre îmbunătățirea acestui algoritm și efectuarea de modificări în rețeaua de criptomonede, dar până acum astfel de intenții nu au găsit implementare fizică și rămân doar sub formă de propuneri.

Videoclip despre funcții criptografice și algoritmi:

Ultimul 2017 a fost un an de popularitate explozivă a criptomonedelor și aceeași creștere rapidă a ratei criptomonedei „principale” Bitcoin. Aceste circumstanțe au alimentat interesul nu numai pentru speculații și minerit, ci și pentru însăși esența fenomenului. Din ce în ce mai mulți oameni doresc să ajungă la fundul cum funcționează totul?

Deschidem o serie de materiale în care vom încerca să explicăm în cea mai accesibilă formă ce se află în spatele acestor acronime misterioase precum Scrypt, SHA-256, X11 și altele. Să începem cu cel mai important (dar nu cel mai bun) algoritm pentru lumea criptomonedelor - SHA-256. Aceasta este baza pentru dezvoltarea Bitcoin. Dar înainte de asta, să definim terminologia cheie - definiți semnificația termenilor „minerit” și „hash”.

Ce este mineritul?

Contrar credinței populare, mineritul nu este doar și nu atât extragerea bancnotelor criptografice în sine, ci mai degrabă măsuri pentru a proteja această criptomonedă de activitățile frauduloase. Nu este vorba doar de contrafacere - și mai importantă este protecția, de exemplu, împotriva utilizării repetate a acelorași monede de către aceeași persoană. Câștigurile noilor criptomonede sunt strâns legate de emisia lor și se formează din recompensa pentru găsirea unui nou bloc care îndeplinește condițiile algoritmului de mining.

Adică, pentru ca următoarea monedă cripto să „apare”, trebuie să efectuați un întreg complex de calcule complexe și să găsiți acel bloc „corect” foarte râvnit. Asta fac entuziaștii cu echipamentul lor. Schema se susține singură - pentru a crește securitatea criptomonedei și a emite noi unități, mineritul este necesar, iar pentru ca acesta să aibă sens să o facă, minerii primesc o recompensă.

Pe scurt, grupurile de software de minerit au efectuat anterior operațiuni de calcul într-un singur bloc, care este apoi transformat de un număr incredibil de ori pentru a descoperi un tip special de cod hash. Găsirea unui cod hash care să îndeplinească cerințele algoritmului devine mai dificilă cu cât mai mulți participanți sunt implicați în proces. Hash-ul „corect” este extrem de rar, iar găsirea unuia este asemănător cu câștigarea la loterie.

Ce este un hash?

Termenul „haș”, care nu este clar pentru toată lumea, a fost menționat mai sus. Acesta este unul dintre conceptele fundamentale în criptare în general și în algoritmul SHA-256 în special. Să explicăm ce înseamnă acest lucru și să trecem peste cele mai importante puncte conexe.

Deci, hashing este procesul de transformare a unui set de date de intrare de o dimensiune arbitrară într-un șir digital de ieșire. Această transformare este efectuată conform unui algoritm pre-dezvoltat, iar șirul de ieșire este complet unic și servește ca un fel de „amprentă” a matricei de intrare. Acest șir este numit suma hash, cod hash sau pur și simplu hash. Iar algoritmul de transformare este o funcție hash.

Să dăm un exemplu. Putem „alimenta” funcții hash, de exemplu, textul romanului în versuri de A. S. Pușkin „Eugene Onegin”, iar rezultatul va fi un cod hexazecimal aproximativ ca acesta:. Desigur, este imposibil să „desfășori” acest cod înapoi și să-l transformi în „Eugene Onegin”. Dar de îndată ce schimbați un singur caracter din poezie, chiar și adăugați doar un spațiu, hashul rezultat va fi transformat dincolo de recunoaștere. De asemenea, volumul nu afectează lungimea codului hash. Deci, puteți introduce un simbol „a” în funcție, iar rezultatul va fi exact același set de simboluri pseudo-aleatoare de exact aceeași lungime.

Acum să aruncăm o privire mai atentă la motivul pentru care este necesar acest lucru și la ce dificultăți apar pe parcurs. Oricine este interesat de subiect știe că extragerea criptomonedelor folosind protocolul SHA-256 poate fi efectuată folosind puterea unui procesor central, a unei plăci grafice sau a unui dispozitiv ASIC specializat. De fapt, în contextul Bitcoin, prima metodă nu mai este deloc relevantă, iar mineritul cu plăci video își trăiește ultimele zile. Complexitatea calculelor a crescut prea semnificativ, iar jumătățile de măsură nu mai sunt potrivite.

În interfața software-ului pentru minerit, procesele de conversie a blocurilor în cantități hash sunt afișate ca o linie laconică precum „Acceptat 0aef59a3b”. Un bloc poate consta din mii sau chiar sute de mii de linii similare, dar numai una poate servi drept „semnătură” blocului, a cărui căutare este esența mineritului.

Căutarea hash-ului corect se realizează prin simpla căutare a rezultatelor rezolvării unui număr mare de probleme. În algoritmul SHA-256, „corectitudinea” unui hash este determinată de numărul de zerouri de la începutul sumei hash. Probabilitatea de a afla un astfel de cod hash prin calcule determinate de algoritm este neglijabilă - o șansă la milioane de soluții. Probabilitatea exactă este determinată de nivelul actual de dificultate în sistemul descentralizat al unei anumite criptomonede.

Un fapt remarcabil. Fiecare dintre noi s-a ocupat în mod repetat de algoritmul SHA-256, fără să știe, chiar și fără să țină cont de minarea criptomonedei. Vorbim despre certificatul de securitate SSL, care protejează multe site-uri web. Când vizitați un astfel de site, interacționați automat cu SHA-256, pe care este construit SSL.

Caracteristicile protocolului SHA-256

În primul rând, puțină istorie. Inițial, algoritmul de criptare SHA-256, sau mai degrabă prototipul său, a fost inventat între zidurile „sinistrei” NSA (Agenția de Securitate Națională a SUA) în acum îndepărtatul 2002. În câteva luni, a fost modificat și prezentat oficial de Universitatea Națională de Metrologie la nivel federal. Doi ani mai târziu, a fost lansată a doua sa versiune îmbunătățită.

În următorii trei ani, agenția a lucrat pentru a îmbunătăți algoritmul și în cele din urmă a eliberat un brevet pentru a doua ediție. Acest lucru a fost realizat sub o licență fără drepturi de autor, care a făcut posibilă utilizarea celei mai noi tehnologii în scopuri „pașnice”.

În cele din urmă, SHA-256 a stat la baza creării primei criptomonede din lume - Bitcoin. În acest caz, protocolul este utilizat de două ori pentru a crește securitatea.

Atunci când se efectuează calcule ca parte a minării în sistemul Bitcoin, un semn al caracterului adecvat al codului hash rezultat este numărul de zerouri de la începutul liniei. Începând cu sfârșitul zilei de 17, începutul zilei de 18, numărul de zerouri de început necesare este 17 (+/-). Probabilitatea de a detecta un astfel de cod este de aproximativ 1 la 1,4*10 20 . Acesta este un număr monstruos de mic, care sfidează înțelegerea și este comparabil cu probabilitatea de a găsi un grăunte de nisip de o anumită formă pe toate plajele de nisip ale planetei noastre. Acesta este motivul pentru care extragerea Bitcoin necesită atât de multă putere de calcul și atât de multă electricitate.

Nu există nicio modalitate de a optimiza căutarea hash-ului „corect”. În protocolul SHA-256, funcția hash, luând un bloc de date, produce o valoare de ieșire complet imprevizibilă. Prin urmare, este necesară iterația (repetarea) după iterație până când se găsește un cod adecvat, subliniem încă o dată - complet aleatoriu.

Acum suntem forțați să „încărcăm” puțin cititorul cu informații tehnice complexe, altfel povestea noastră despre SHA-256 va fi incompletă. Dacă nimic nu este clar, treceți la următoarea secțiune a articolului.

Protocolul presupune împărțirea informațiilor în fragmente de 512 biți fiecare (sau 64 de biți, ceea ce este același, deoarece 1 octet = 8 biți). Apoi „amestecarea” criptografică are loc conform schemei inerente algoritmului, iar rezultatul este un cod hash de 256 de biți. Operația de hashing se realizează în 64 de iterații, ceea ce este relativ puțin, mai ales în comparație cu noii algoritmi criptografici care au apărut.

Principalii parametri tehnici ai SHA-256 sunt următorii:

  • Dimensiunea blocului: 64 de octeți;
  • Lungimea maximă a mesajului: 33 de octeți;
  • Dimensiunea codului hash rezultat: 32 de octeți;
  • Număr de repetări într-o rundă: 64;
  • Viteza maximă: aproximativ 140 MiB/s (mebibyte pe secundă).

În activitatea sa, algoritmul folosește binecunoscuta tehnică Merkle-Damgard, care presupune împărțirea indicatorului inițial în blocuri imediat după efectuarea modificărilor. Blocurile, la rândul lor, sunt împărțite în 16 cuvinte fiecare.

Setul de date este rulat printr-o rundă de 64 de iterații. Fiecare dintre ele începe procesul de hashing a cuvintelor care alcătuiesc blocul. Perechile de cuvinte sunt procesate de funcție, după care rezultatele sunt adunate și se obține codul hash corect. Fiecare bloc următor este calculat pe baza valorii celui precedent. Acesta este un proces fără întreruperi - este imposibil să se calculeze blocuri separat unul de celălalt.

Evoluția SHA-256

Pentru a înțelege valoarea criptografică a acestui algoritm, să ne uităm înapoi la istorie. Au început să-și testeze serios puterea aproape imediat după crearea sa - în 2003. Problema a fost tratată de profesioniști, dar nu au fost găsite vulnerabilități sau erori.

Au trecut cinci ani întregi când, în 2008, experții indieni au fost încă capabili să identifice coliziunile pentru până la 22 de iterații. După câteva luni de muncă grea, s-a propus o soluție de succes a problemei.

În cursul analizei funcționării părții funcționale a algoritmului, a fost testată rezistența acestuia la două tipuri de metode posibile de eșec de securitate:

  • prin preimage: aceasta înseamnă decriptarea inversă a mesajului original bazată doar pe șirul hash;
  • prin detectarea coliziunilor: aceasta implică coincidența datelor de ieșire, cu condiția ca mesajele primite să fie diferite. Adică, blocurile de intrare sunt diferite, dar hash-ul de ieșire este același - acest lucru nu ar trebui să se întâmple.

După ce prima versiune a SHA-256 a eșuat testele pe cel de-al doilea criteriu, dezvoltatorii au decis să creeze un nou mecanism de criptare bazat pe principii radical diferite. Așa s-a făcut - în 2012, a fost introdus un protocol de nouă generație, complet lipsit de deficiențele descrise mai sus.

Dezavantajele algoritmului

Faptul că dezvoltatorii au reușit să-și corecteze propriile greșeli nu înseamnă că au reușit să aducă SHA-256 la perfecțiune. Protocolul a scăpat de vulnerabilități evidente, dar deficiențele sale „native” au rămas.

Utilizarea SHA-256 ca bază a Bitcoin a devenit posibilă, nu în ultimul rând datorită faptului că legislația SUA în sine a fost loială acestui protocol. A fost permis să fie folosit pentru protecția datelor în unele programe guvernamentale și, de asemenea, a fost permis să fie folosit în sfera comercială.

De aici vine ironia sorții - protocolul a fost creat cu un singur scop, dar și-a găsit cea mai largă aplicare în altele complet diferite. Și pentru acele prime scopuri a fost mai mult decât eficient și adecvat. Dar pentru criptomonede s-a dovedit a fi prea simplu. Nu este de glumă când în China, de exemplu, nu există nici măcar ferme, ci „fabrici” întregi pline cu mineri ASIC.

Fiecare iterație a algoritmului pare destul de primitivă - o operație binară de bază plus o adăugare de 32 de biți. Acesta este motivul pentru care ASIC-urile bazate pe SHA-256 au apărut atât de repede, înmulțind cu zero toate speranțele minerilor „acasă” cu doar un procesor și câteva plăci video.

Timpurile și condițiile se schimbă foarte mult, iar protocolul SHA-256 urmează cu încredere urmele altor soluții mai avansate. Același Scrypt, în proces de calcule, înregistrează mai întâi 1024 de șiruri hash diferite și abia după aceea efectuează adunarea și obține rezultatul final. Aceasta este o schemă incomensurabil mai complexă, cu cele mai înalte niveluri de protecție și securitate a criptomonedei.

rezumat

Algoritmul de criptare SHA-256 a fost considerat destul de eficient și de încredere până când a început boom-ul criptomonedelor. Astăzi devine clar că, pe fundalul unor soluții noi, pare deja destul de slab. Atât de mult încât acest lucru a făcut posibilă crearea de dispozitive speciale „ascuțite” strict pentru a o ocoli. Aceștia sunt aceiași mineri ASIC care au distrus practic mineritul pe procesoarele centrale și deja termină mineritul pe plăcile video.

S-ar părea că nu este nimic rău în asta - concurență sănătoasă, până la urmă. Dar, de fapt, utilizarea ASIC-urilor centralizează destul de semnificativ criptomoneda, neutralizând astfel însăși ideea acesteia. Acest fapt nu a putut să nu împingă entuziaștii talentați să creeze algoritmi de hashing noi, mai avansați. Și nu au întârziat să vină.

Protocolul SHA-256 ocupă în prezent cea mai mare parte a pieței criptomonedei, dar noi alternative îl împing deja cu încredere deoparte. De exemplu, a doua cea mai populară și „scumpă” criptă, Ethereum, folosește protocolul Ethash, care se numea anterior Dagger. Protocolul este atât de bun încât Ethereum menține încă o descentralizare maximă până în prezent, iar mineri ASIC pentru minerit încă nu există în natură. Poate Ethash va înlocui SHA-256, în mod clar învechit.

Unul dintre primii algoritmi alternativi a fost Scrypt, pe care se bazează unul dintre cele mai populare altcoins, Litecoin. Aceasta este o soluție mult mai avansată, care nu mai oferă ASIC astfel de avantaje incontestabile. Cu toate acestea, super-profiturile din minerit i-au forțat pe specialiștii chinezi să investească mult efort în dezvoltarea soluțiilor tehnologice pentru Scrypt, iar ASIC-urile bazate pe acest protocol au apărut.

Dacă luăm în considerare mineritul din perspectiva unei persoane obișnuite care nu are experiență în nuanțe tehnice, atunci nu va simți nicio diferență între algoritmii Scrypt și SHA-256. ASIC-urile de pe ambele protocoale arată aproape la fel, consumă aproximativ aceeași cantitate de electricitate și au exact același zgomot de ventilator. Un alt lucru sunt ratele criptomonedei pe care aceleași ASIC-uri le mine, dar aceasta este o cu totul altă poveste.

Vom dedica următorul material în cadrul acestui subiect protocolului alternativ de criptare Scrypt menționat.

SHA 256 este un set criptografic de instrucțiuni pentru extragerea criptomonedelor. Cu alte cuvinte, protejează în mod fiabil toate tranzacțiile din rețea și complică extragerea monedelor electronice. Această abreviere înseamnă Secure Hashing Algorithm, ceea ce înseamnă o metodă de hashing extrem de populară și eficientă.

Esența SHA 256 este transformarea informațiilor în valori, numere. Acest lanț are o lungime fixă. Aceasta înseamnă că orice informație pe care o transmiteți în rețea va fi criptată cu valori speciale - identificatori (ID-uri).

La efectuarea tranzacțiilor, algoritmul SHA 256 compară ID-ul cu datele originale, care nu pot fi recuperate, apoi oferă acces la tranzacție. Acest protocol este utilizat acum în minerit de criptomonede precum BTC și BCH.

Istoria apariției

Cum s-a întâmplat că Bitcoin a început să folosească SHA 256? Totul a început cu algoritmul care a devenit membru al familiei SHA-2, care are o dimensiune a lanțului hash de 224-512 biți.

Ei, la rândul lor, au fost creați pe baza străbunicului lor - SHA-1, al cărui hash avea o lungime de 160 de biți. Tehnologia a apărut în 1995 și era destinată utilizării în scopuri civile - adică criptarea informațiilor obișnuite, neimportante pentru stat.

Familia SHA-2, căreia îi aparține SHA 256, a fost dezvoltată de Agenția Națională de Securitate în urmă cu 16 ani - în primăvara anului 2002. Pe baza acestui fapt, putem spune că algoritmul este depășit din punct de vedere moral. Cu toate acestea, este încă unul dintre cei mai puternici algoritmi pentru criptarea tranzacțiilor din rețea.

Parametrii tehnici ai SHA 256

Algoritmul este conceput pentru date împărțite în părți egale de 64 de octeți. SHA 256 asigură că acestea sunt colectate și combinate într-un singur lanț de 256 de biți. Metoda principală pentru această metodă este operația de criptare, care se efectuează în buclă de 64 de ori.

Scurte caracteristici ale instrucțiunilor algoritmice SHA 256:

  • Blocuri de 64 de biți - funcționează cel mai rapid cu blocuri de 32 de biți;
  • lungimea de vârf a lanțului de informații criptate este de 33 de octeți;
  • dimensiunea mesajului digest - 32 de octeți;
  • dimensiunea standardizată a unui cuvânt este de 4 octeți;
  • ciclul de criptare într-o rundă de operare este de 64 de octeți;
  • viteza cu care operează algoritmul este de 140 Mbit/s.

Este de remarcat faptul că acest membru al familiei SHA-2 se bazează pe cadrul descris de Merkle-Damgaard. Aceasta înseamnă că înainte de a împărți informațiile în cuvinte, datele sunt împărțite în blocuri. Procesul întărește criptarea prin amestecarea datelor.

Colectarea informațiilor în sine se realizează în intervalul de la 64 la 80 de repetări. Fiecare buclă ulterioară transformă blocurile create în cuvinte. Rezultatul final, și anume hash-ul, este creat prin însumarea tuturor valorilor inițiale.

Criptomonede cu algoritmul SHA 256

După cum am menționat mai devreme, nu numai Bitcoin are un astfel de set de instrucțiuni, ci și:

  • peercoin, a cărui particularitate este că codul este creat pe baza mingii, dar PoS este folosit pentru a proteja întreaga rețea, iar PoW este responsabil pentru distribuirea monedelor;
  • namecoin este o monedă digitală care acționează ca un mijloc de protecție, confidențialitate și descentralizare; unobtanium - are o inflație extrem de scăzută; va dura cel puțin 300 de ani pentru a extrage toate monedele;
  • deutsche eMark este o microrețea germană care este utilizată pentru schimbul de active și bani. Procesul în sine are loc fără intermediari; betaCoin - funcționează pe același principiu ca și faimosul BitCoin;
  • jouleCoin - de asemenea bazat pe bunicul Bitcoin, dar oferă o confirmare mai rapidă a tranzacțiilor;
  • steemit nu este nici măcar o criptă separată, ci o întreagă platformă pe blockchain. Sarcina sa principală este de a recompensa publicațiile interesante.

Litecoin folosește și algoritmul SHA 256, dar nu în întregul sistem, ci într-o subrutină. Pentru minerit Litecoin, se folosește protocolul de securitate Scrypt, care crește complexitatea minării și reduce rambursarea ASIC-urilor.

Exploatarea criptomonedelor bazată pe algoritmul SHA 256

Pentru a extrage monede electronice care se bazează pe familia SHA-2, nu este necesar să folosiți instrumente specializate - ASIC. Atât fermele bazate pe CPU, cât și GPU au rezultate bune în minerit. Acesta din urmă este net superior ca viteză față de primul.

Și totuși, ASIC este cea mai bună soluție pentru extragerea criptomonedelor. Avantajele sale sunt într-o oarecare măsură compensate de prețul său semnificativ - aproximativ 100 de mii de ruble, modelele mai puternice chiar depășesc 500 000. Pe măsură ce complexitatea crește, rambursarea scade. Prin urmare, echipamentul nu se justifică întotdeauna, deși oferă o viteză de mining mult mai mare decât fermele pe plăcile video și, mai ales, un procesor.

Miningul GPU este considerat mai mult sau mai puțin profitabil. În general, întreaga fermă va costa aproximativ 1000-2000 USD, plus echipamente suplimentare - în special, sisteme de răcire pentru plăcile video. De asemenea, merită să luați în considerare închirierea spațiilor, plățile de energie electrică și salariile personalului de service.

Printre plăcile video, GTX 1080 Ti de la Nvidia are performanțe bune. Produce o viteză de 1400 de operații reușite pe secundă. AMD este puțin în urmă cu plăcile sale de linie Vega - 1200 MH/s. Există și opțiuni mai ieftine precum Radeon 7970, dar viteza sa nu depășește 800 MH/s.

Algoritmul SHA 256, deși vechi, este încă folosit în Bitcoin, criptomoneda numărul 1 din lume. Protocolul este folosit și într-o serie de alte monede alternative promițătoare. SHA256 este înlocuit treptat de Scrypt, dar Bitcoin nu are de gând să treacă la el. În ceea ce privește mineritul, totul este simplu - dacă aveți bani, luați ASIC-uri cu o rată de hash mare. Doriți o soluție mai economică? Apoi construiește o fermă de pe plăcile video AMD sau Nvidia.

  • Traducere

La un moment dat am vrut să-mi dau seama cât de repede este posibil să extrag Bitcoins manual. S-a dovedit că hashingul SHA-256 este folosit pentru minerit și este destul de simplu și poate fi calculat chiar și fără computer. Desigur, procesul este foarte lent și complet nepractic. Dar după ce parcurgeți toți pașii pe hârtie, puteți înțelege bine detaliile modului în care funcționează algoritmul.

O rundă criptografică

Minerit

O parte cheie a întregului sistem de securitate Bitcoin este mineritul. Ideea de bază este că minerii grupează tranzacțiile Bitcoin într-un singur bloc, pe care apoi le trimit un număr incalculabil pentru a găsi o valoare hash foarte rară care se încadrează în condiții speciale. Când se găsește o astfel de valoare, blocul este considerat minat și intră în lanțul de blocuri. Hashing-ul în sine nu servește niciunui scop util în afară de creșterea dificultății de a găsi blocul corect. Astfel, aceasta este una dintre garanțiile că nimeni singur cu vreun set de resurse existente nu va putea prelua controlul asupra întregului sistem. Puteți citi mai multe despre minerit în ultimul meu articol.

Funcția de hashing criptografic primește un bloc de date ca intrare și produce o ieșire mică, dar imprevizibilă. Este conceput astfel încât să nu existe o modalitate rapidă de a obține rezultatul dorit și trebuie să continuați să căutați până când găsiți valoarea potrivită. Bitcoin folosește SHA-256 ca atare funcție. Mai mult, pentru a spori rezistența, SHA-256 este aplicat blocului de două ori și se numește SHA-256 dublu.

În Bitcoin, criteriul pentru ca un hash să fie valid este să aibă un număr suficient de zerouri la început. Găsirea unui astfel de hash este la fel de dificilă ca, de exemplu, găsirea unei mașini sau a unui număr de telefon care se termină cu mai multe zerouri. Dar, desigur, pentru un hash este exponențial mai dificil. În prezent, un hash valid trebuie să conțină aproximativ 17 zerouri la început, care este satisfăcut doar de 1 în 1,4x10 20 . Dacă facem o analogie, atunci găsirea unei astfel de valori este mai dificilă decât găsirea unei anumite particule printre tot nisipul de pe Pământ.

Albastrul blochează amestecarea neliniară a biților pentru a face analiza criptografică mai dificilă. Mai mult, pentru o fiabilitate și mai mare, sunt utilizate diferite funcții de amestecare (dacă puteți găsi o lacună matematică pentru a genera rapid hashuri valide, veți prelua controlul asupra întregului proces de extragere a Bitcoin).

Funcția majoritară (blocul Ma) operează pe biți pe cuvintele A, B și C. Pentru fiecare poziție de bit, returnează 0 dacă majoritatea biților de intrare în acea poziție sunt zero, în caz contrar, returnează 1.

Blocul Σ0 rotește A cu 2 biți, apoi cuvântul original A este rotit cu 13 biți și, în mod similar, cu 22 de biți. Cele trei versiuni deplasate rezultate ale lui A sunt adăugate pe biți modulo 2 ( xor normal, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch implementează funcția de selecție. La fiecare poziție de bit se verifică un bit din E, dacă este egal cu unu, atunci este scos bitul din F din această poziție, în caz contrar un bit din G. Astfel, biții din F și G sunt amestecați pe baza valorii a lui E.

Σ1 este similar ca structură cu Σ0, dar funcționează cu cuvântul E, iar constantele de deplasare corespunzătoare sunt 6, 11 și 25.

Blocurile roșii efectuează o adăugare de 32 de biți, generând noi valori pentru cuvintele de ieșire A și E. Valoarea W t este generată pe baza datelor de intrare (acest lucru se întâmplă în partea algoritmului care primește și procesează datele hashed). Este dincolo de domeniul nostru). K t este propria sa constantă pentru fiecare rundă.

În diagrama de mai sus, se observă că doar A și E se schimbă într-o rundă criptografică. Cuvintele rămase nu se schimbă, ci sunt mutate la ieșire - vechiul A se transformă în ieșire B, vechiul B în nou C și așa mai departe. Deși o singură rundă a algoritmului nu modifică prea mult datele, după 64 de runde, informațiile de intrare vor fi complet criptate.

Minăm manual

În videoclip vă arăt cum puteți parcurge toți pașii descriși cu un pix și hârtie. Am efectuat prima rundă de hashing pentru a mine blocul. Mi-a luat 16 minute și 45 de secunde.


Permiteți-mi să explic puțin ce se întâmplă: am notat cuvintele de la A la H în formă hexazecimală, iar sub fiecare am făcut o traducere în formă binară. Rezultatul blocului Ma este sub cuvântul C, iar valorile lui A după deplasări și ieșirea Σ0 în sine sunt situate deasupra liniei cu A. Funcția de selectare apare sub G și, în final, versiunile deplasate corespunzătoare ale lui E și valoarea după blocul Σ1 trece deasupra liniei cu E. În colțul din dreapta jos a efectuat o adunare, al cărei rezultat este implicat atât în ​​calculul noului A, cât și al noului E (primele trei blocuri de însumare roșii). În dreapta sus am calculat noua valoare a lui A, iar în mijloc este calculul noii valori a lui E. Toți acești pași au fost discutați mai sus și pot fi urmăriți cu ușurință în diagramă.

Pe lângă runda prezentată în videoclip, am mai efectuat una - ultima a 64-a rundă de hashing pentru un anumit bloc Bitcoin. În fotografie, valoarea hash este evidențiată cu galben. Numărul de zerouri confirmă că este un hash Bitcoin valid. Rețineți că zerourile sunt situate la sfârșitul hashului și nu la început, așa cum am scris mai devreme. Motivul este că Bitcoin inversează pur și simplu octeții primiți de SHA-256.


Ultima rundă de SHA-256, în urma căreia este vizibil un bloc Bitcoin extras cu succes

Ce înseamnă toate acestea pentru proiectarea minerilor hardware?

Fiecare pas din SHA-256 pare foarte simplu în logica digitală - operații simple pe biți și sume pe 32 de biți (dacă ați studiat vreodată proiectarea circuitelor, probabil v-ați imaginat deja cum ar putea arăta în hardware). Prin urmare, ASIC-urile implementează SHA-256 foarte eficient, plasând sute de unități de execuție rotunde SHA-256 în paralel. Fotografia de mai jos arată un cip minier care poate calcula 2-3 miliarde de hashe-uri pe secundă. Puteți vedea mai multe fotografii pe Zeptobars.


O fotografie de siliciu a cipului Bitfury ASIC, care poate extrage Bitcoin cu 2-3 gigahash-uri pe secundă. Poza de la Zeptobars. (CC BY 3.0)

Spre deosebire de Bitcoin, Litecoin, Dogecoin și alte sisteme alternative similare de monede folosesc algoritmul de hashing scrypt, care este în mod inerent dificil de implementat în hardware. Acest algoritm stochează 1024 de valori hash diferite în memorie în timpul execuției și le combină la ieșire pentru a obține rezultatul final. Prin urmare, este nevoie de mult mai multă memorie și circuite pentru a calcula hashurile scrypt în comparație cu hashurile SHA-256. Impactul schimbării algoritmului de hashing este clar vizibil atunci când se compară hardware-ul de minerit corespunzător - versiunile pentru scrypt (Litecoin și altele) sunt de mii de ori mai lente decât versiunile pentru SHA-256 (Bitcoin).

Concluzie

SHA-256 a fost dintr-o dată atât de simplu încât ar putea fi calculat chiar și manual (algoritmul de curbă eliptică folosit pentru a semna o tranzacție Bitcoin ar fi mult mai dureros, deoarece implică o grămadă de înmulțiri de numere de 32 de octeți). Calcularea unei runde de SHA-256 mi-a luat 16 minute și 45 de secunde. Cu această performanță, hashingul unui întreg bloc Bitcoin (128 de runde) va dura 1,49 zile, adică obținem o rată de hashing de 0,67 hashe-uri pe zi (de fapt, desigur, procesul s-ar grăbi odată cu practica). Prin comparație, generația actuală de mineri Bitcoin produce câteva terahash-uri pe secundă, ceea ce este de aproximativ un miliard de ori mai rapid decât mine. Cred că este clar că extragerea manuală a Bitcoin nu este foarte practică.

Un cititor de la reddit a întrebat despre cheltuiala mea energetică.Deoarece nu depun niciun efort fizic serios, putem presupune că rata metabolică va fi de 1500 de kilocalorii pe zi, apoi constatăm că hashingul manual necesită aproape 10 megajouli per hash. Consumul tipic de energie pentru un miner de fier este de 1000 de magehash pe joule. Astfel, sunt mai puțin eficient din punct de vedere energetic decât o bucată de fier specializată de 10^16 ori (10 cvadrilioane). O altă problemă este costul energiei. O sursă ieftină de energie este gogoșile la 23 cenți la 200 de kilocalorii.Am costuri de energie electrică de 15 cenți pe kilowatt-oră, ceea ce este de 6,7 ori mai ieftin decât gogoșile.Prin urmare, costul energiei în termeni de haș pentru mine, ca miner uman, este de 67 de cvadrilioane de ori mai mare. Da, este clar că n-o să-l primesc. Noroc cu extragerea manuală a Bitcoin, iar asta nici măcar nu ține cont de costul hârtiei și pixurilor!