Mince na SHA256. Čo je bitcoinový šifrovací algoritmus? Slabé a silné stránky bitcoinového hashovacieho algoritmu

Hašovacia funkcia SHA 256 tvorila základ úplne prvej kryptomeny na svete – Bitcoinu a mnohých altcoinov. Vedeli ste, že vznikol dávno pred príchodom kryptomien a bol určený na úplne iné účely? Dnes sa pozrieme na históriu algoritmu, princíp jeho fungovania, aktuálne problémy a aké kryptomeny využívajú SHA256.

Príbeh

Názov algoritmu SHA 256 je skratka pre Secure Hashing Algorithm. Tak to nazval developer – Americká národná bezpečnostná agentúra. Algoritmus je hašovacia funkcia. To znamená, že jeho vstupom je objem údajov ľubovoľnej dĺžky a výstupom je množina znakov pevnej dĺžky, nazývaná hash.

Jednou z kľúčových vlastností hashovacích funkcií je nevratnosť. Hash môžeme získať odovzdaním pôvodných údajov funkciou, ale ak poznáme hash, nebudeme môcť získať pôvodné údaje. Vďaka tejto vlastnosti sa funkcia rozšírila v rôznych službách a aplikáciách, kde je vyžadovaná ochrana dát. Každý deň používame algoritmus SHA 256 pri návšteve stránok na internete. Zahŕňa bezpečnostný certifikát SSL, ktorý je potrebný na vytvorenie zabezpečeného pripojenia k lokalite.


Algoritmus je súčasťou rodiny SHA-2 vyvinutej na základe SHA-1, ktorá sa objavila v roku 1995. Od svojho vzniku bol sha256 dôkladne testovaný na svoju silu pomocou kryptoanalýzy. Kryptoanalýza testuje odolnosť hašovacích funkcií voči dvom hlavným typom útokov:
  • Hľadanie kolízií – detekcia identických hashov s rôznymi vstupnými parametrami. Miera úspešnosti tohto útoku ohrozuje bezpečnosť digitálneho podpisu pomocou súčasného algoritmu.
  • Nájdenie predobrazu je schopnosť dešifrovať pôvodnú správu pomocou jej hash. Tento útok ohrozuje bezpečnosť ukladania hash autentifikačných hesiel.

Analýza bola prvýkrát testovaná v roku 2003, no vtedy sa nenašli žiadne slabé miesta. Postupom času sa rozvíjala výpočtová sila. V roku 2008 boli zistené kolízie pre iterácie SHA-512 a SHA-256. V septembri toho istého roku bola vyvinutá metóda na vytváranie kolízií pre 31 iterácií SHA256 a 27 iterácií SHA-512.

Je zrejmé, že nastal čas vyvinúť novú funkciu odolnú voči kryptomenám. V roku 2012 NSA vynašiel SHA-3. Aktualizovaný algoritmus postupne nahradí svojich menej kryptoodolných predchodcov.

Ťažba na SHA 256

Zákony USA povoľujú používanie SHA a podobných hashovacích funkcií ako súčasť iných protokolov a algoritmov v určitých federálnych aplikáciách na zabezpečenie informácií, ktoré nie sú tajné. SHA-2 môžu používať súkromné ​​a komerčné organizácie.

Nie je žiadnym prekvapením, že bol použitý v kryptomenách. Baníci zhromažďujú všetky transakcie do bloku a potom ho začnú hashovať. Keď sa nájde hodnota hash, ktorá zodpovedá systémovým pravidlám, blok sa považuje za pripravený na pripojenie ku koncu blockchainu. Nový blok nájde niekto, kto dokáže veľmi rýchlo vypočítať hodnoty hash. Rýchlosť výpočtov závisí od výkonu zariadenia. Na ťažbu bitcoínov možno použiť tri typy zariadení:

  • CPU (centrálna procesorová jednotka);
  • GPU (grafické karty);
  • ASIC (Application Specific Device).

Bitcoinová sieť je navrhnutá tak, že každý nový blok musí byť nájdený raz za 10 minút. Počet účastníkov siete sa neustále mení, ale čas musí zostať konštantný. Na zabezpečenie rovnakých časov zotrvania systém upravuje výpočtovú náročnosť v závislosti od počtu baníkov. Kryptomeny si v poslednej dobe získali popularitu a počet baníkov sa dramaticky zvýšil. Aby sa bloky nenachádzali príliš rýchlo, zvýšila sa aj zložitosť výpočtov.


Bitcoin sa začal ťažiť na procesoroch. Potom, keď ich výkon nestačil, prešli na grafické karty. Čoskoro to grafické karty už nezvládali. Potom boli vynájdené ASIC - špeciálne zariadenia určené na výpočty pomocou algoritmu sha 256. Jeden ASIC je oveľa výkonnejší a energeticky úspornejší ako niekoľko grafických kariet.

Podnikaví baníci vytvárajú obrovské farmy z ASIC. Okrem vysokých nákladov na samotné zariadenie dostáva takáto farma každý mesiac účty za elektrinu vo výške niekoľkých desiatok tisíc dolárov. Ťažba bitcoínov má teraz zmysel iba na takýchto priemyselných farmách, domáci počítač alebo dokonca farma s niekoľkými grafickými kartami im nebude môcť konkurovať a dokonca ani vrátiť elektrinu.

To sa však dá ľahko vypočítať. Existujú kalkulačky na výpočet ziskovosti ťažby na sha256. Napríklad https://www.coinwarz.com/miningprofitability/sha-256. Do formulára zadajte hashrate vášho zariadenia (výpočtový výkon), spotrebu energie a jej náklady, služba vám vypočíta zisk.

Altcoiny SHA-256

Pozrime sa na zoznam a zoznam kryptomien, ktoré fungujú na sha 256.

Bitcoin Cash (BCH)

Odlúčený od neho 1. augusta 2017. Veľkosť bloku v klasickom bitcoine je 1 MB. Sieť sa rozrástla natoľko, že všetky transakcie sa už nezmestia do bloku. To viedlo k vytváraniu radov transakcií a zvýšeniu poplatkov za uskutočňovanie platieb. Komunita sa rozhodla zaviesť nový protokol, podľa ktorého sa blok zväčšil na 2 MB, niektoré informácie sa začali ukladať mimo blockchainu a skrátil sa časový rámec na prepočet zložitosti z dvoch týždňov na deň.

Namecoin (NMC)

Ide o systém na ukladanie a prenos kombinácií mena a hodnoty založený na technológii Bitcoin. Jeho najznámejšou aplikáciou je distribučný systém doménových mien, ktorý je nezávislý od ICANN, a preto znemožňuje opätovné privlastnenie domény. Namecoin bol spustený v roku 2011 a beží na softvéri na ťažbu bitcoinov, ktorý bol odovzdaný na server, kde beží Namecoin.

DigiByte (DGB)

Kryptomena uvedená na trh v roku 2013 s cieľom zlepšiť výkonnosť bitcoínov a litecoinov. Rozdiely DigiByte:

  • Nízka volatilita je dosiahnutá vďaka obrovskému počtu vydaných mincí (až 21 miliárd), čo zabezpečuje ich nízku cenu a jednoduchosť použitia pri výpočtoch;
  • Rýchlejšie transakcie zdvojnásobením veľkosti bloku každé dva roky;
  • nízke alebo žiadne provízie;
  • Proces ťažby je rozdelený do piatich algoritmov, ktoré vám umožňujú ťažiť mince nezávisle od seba. Môžete použiť ASIC pre SHA-256 a Scrypt, grafické karty pre Groestl a Skein a procesor pre Qubit.

Algoritmus SHA 256 je najbežnejší medzi kryptomenami. Spôsobila to popularita a úspech Bitcoinu a túžba vývojárov altcoinov vytvárať podobné mince. Nárast výpočtovej zložitosti podnietil baníkov, aby hľadali spôsoby efektívnejšej ťažby, čo viedlo k vzniku ASIC.


Bitcoinové šifrovanie je založené na SHA-256, špeciálnom algoritme, ktorý je súčasťou programového kódu. Jeho úlohou je konvertovať vstupné dáta na špecifickú sadu znakov (v abecednom a číselnom vyjadrení) a chrániť informácie. Takéto akcie sa nazývajú hashovanie. Aké sú jemnosti tohto algoritmu? Prečo je to potrebné a ako to funguje? Aké sú výhody a nevýhody? Tieto a mnohé ďalšie body podrobne zvážime.

Aký šifrovací algoritmus má Bitcoin a kde sa používa?

Pri diskusii o kryptomene, vlastnostiach jej fungovania a ťažby sa účastníci krypto siete nevyhnutne stretávajú s takou rozšírenou definíciou, akou je šifrovací algoritmus Bitcoin. Odo dňa vývoja BTC až do dnešného dňa (13. augusta 2018) sa používa SHA-256, ktorý je potrebný na vyriešenie nasledujúcich problémov v sieti Bitcoin:

  1. Vytváranie BTC adries (používané na transakcie).
  2. Ťažba (doklad o práci).
  3. Dosiahnutie požadovaného stupňa bezpečnosti a anonymity.
  4. Pre digitálny podpis a jeho rozpoznávanie.
Algoritmus SHA-256 je relevantný nielen pre bitcoiny, ale aj pre iné coiny, konkrétne Bitcoin Cash, Mazacoin, Peercoin, Namecoin a ďalšie kryptomeny. Okrem toho sa SHA-2 (základ SHA-256) používa na vytváranie mnohých protokolov určených na ochranu údajov na internete, konkrétne SSL, TSL a ďalších.

Bitcoinový hashovací algoritmus je potrebný na kontrolu informácií prostredníctvom ich analýzy a včasnej identifikácie nepresností. Keď sú údaje spracované a prevedené na hash, nie je možné získať informácie späť. Ak vezmete už zašifrovaný súbor BTC, vykonajte výpočty znova a uistite sa, že parametre hash sú identické, môžete si byť istí, že nedošlo k žiadnym zmenám pôvodných informácií. Ak sa údaje líšia, znamená to hacknutie systému.

Bitcoinový šifrovací algoritmus - ako to funguje jednoduchými slovami


SHA-2 je založený na frameworku, ktorý vytvorili Merkle a Damgaard. Zvláštnosťou hašovacej funkcie používanej v kryptografii je neštandardný prístup k jej tvorbe. Prichádzajúce dáta sú rozdelené do blokov rovnakej veľkosti, po ktorých sú vytvorené prvky prevedené na hexadecimálne čísla. Práve s nimi sa následne robia výpočty. Na výslednú hodnotu sa použije hašovacia funkcia a výsledkom spracovania je hašovacia suma, ktorá sa objaví vo výstupe. Je to súbor znakov prezentovaných v abecednom a numerickom zobrazení. V podstate ide o hash.

Ďalší blok je postavený podľa vyššie uvedeného princípu. V tomto prípade sa po vytvorení predchádzajúceho prvku spustí nový proces. Ak sa vykonajú zmeny v pôvodných údajoch, zmení sa hash. V prípade, že sa identické parametre hašovacej funkcie náhle objavia v rôznych blokoch, nastane konfliktná situácia v prevádzke algoritmu. Keď dôjde k takémuto rozporu, je spochybnený celý reťazec blockchainu.

Na vytvorenie digitálneho podpisu sa teda používa hašovacia funkcia. Ak nastane situácia diskutovaná vyššie, existuje vysoká pravdepodobnosť falšovania podpisu. Na výpočet takýchto zlyhaní (kolízií) sa používa špeciálna technika, ktorá zahŕňa enumeráciu údajov, čo zvyšuje silu hašovacej funkcie.

Správnosť bitcoinového šifrovania je kontrolovaná štyrmi požiadavkami:

  1. Keď vykonáte zmeny v prichádzajúcich údajoch, množstvo hash zostane rovnaké.
  2. Počas hašovania sa získa individuálny hašovací súčet (znaková sada musí byť jedinečná).
  3. Vytváranie kľúčov pomocou hashovania je mimoriadne komplikované.
  4. Haše sú nezvratné. To znamená, že práca so vstupnými údajmi je povolená bez možnosti vykonania spätnej akcie.

Ako to platí v Bitcoine?

Úlohou uzlov kryptomenovej siete je nájsť v početných transakciách taký, ktorý mu vyhovuje vo všetkých ohľadoch. Pri hodnotení opcií sa počiatočná pozornosť venuje veľkosti provízie (mimochodom, z tohto dôvodu sú transakcie s vyššou províziou dokončené rýchlejšie). Ďalej sa kontroluje operácia, študujú sa vstupné a výstupné údaje a objasňuje sa originalita digitálneho podpisu.

Po dokončení uvažovanej práce sa vytvorí ďalší prvok bitcoinového reťazca (blok) s určitou veľkosťou (pre príslušnú kryptomenu - 1 megabajt). Výsledné uzly pozostávajú z verzie, času vytvorenia, dvoch hashov (minulý blok a prichádzajúce transakcie), ako aj ďalších parametrov, ktoré zaisťujú jedinečnosť (bity a nonce). V komplexe je vytvorený blok mnohokrát hašovaný, čo vedie k vytvoreniu hashu hlavy, ktorý funguje ako výstup pre „starý“ prvok reťazca a ako vstup pre nový.

Povedzme, že množina hash obsahuje konkrétne číslo „0“ (napríklad nonce je 17). Je mimoriadne ťažké vybrať takú hodnotu iba pomocou enumerácie hodnôt. Práve tento aspekt zabezpečuje spoľahlivosť informácií v blockchainovej sieti a jej ochranu pred hackermi. Na vytvorenie hashu je potrebná obrovská sila, bez ktorej nie je možné nájsť požadovanú sadu znakov. Po dokončení tejto práce a nájdení parametra sa odošle prvkom krypto siete s novovytvoreným blokom a nájdeným hashom so 17 „0“. Ďalej všetci účastníci bitcoinovej siete skontrolujú hash, pričom kombinujú sadu znakov s informáciami z bloku. Ak nedôjde ku kolízii, v blockchainovom reťazci sa objaví nový prvok.

Kedy sa objavil bitcoinový šifrovací algoritmus - stručná história


Termín "SHA" je skratkou troch slov: "Secure Hash Algorithm". Bitcoin používa SHA-256 a „základom“ spomínanej hašovacej funkcie je SHA-2, ktorý zahŕňa mnoho krypto-algoritmov (vrátane 256).

Tvorcami SHA-2 je americká NSA, špeciálna agentúra zaoberajúca sa otázkami národnej bezpečnosti krajiny. Po vyvinutí a otestovaní algoritmu bol v roku 2002 uvoľnený pre verejnosť. Nový SHA-2 obsahoval aj prvú hashovaciu funkciu SHA-1 (vytvorenú o 7 rokov skôr – v roku 1995). Od zavedenia SHA-2 bolo vydaných mnoho variantov algoritmu, z ktorých jeden použil Satoshi Nakamoto pri vytváraní bitcoinu v roku 2009.

Cieľom vývojárov bolo vydať algoritmus, ktorý by zabezpečil vytvorenie špecifickej hodnoty určitej dĺžky z náhodnej množiny znakov. Urobili to. V budúcnosti bude výsledný parameter slúžiť na identifikáciu (kontrolu) informácií. Pôvodným účelom SHA-2 je chrániť dáta v rôznych službách a dnes (v roku 2018) je SHA-256 známy predovšetkým ako algoritmus používaný pri ťažbe mincí.

V roku 2012 bol systém vylepšený a objavila sa aktualizovaná verzia hašovacej funkcie - SHA-3. Predpokladá sa, že časom nový vývoj nahradí predchádzajúce algoritmy, čím sa zlepší už aj tak vysoký stupeň bezpečnosti.

Charakteristika bitcoinového šifrovacieho algoritmu


Podstata SHA-256 je jednoduchá. Počiatočná správa po pridaní je rozdelená do blokov a každý z nich má 16 slov. Výsledné prvky prechádzajú špeciálnymi cyklami zahŕňajúcimi 64 alebo 80 stupňov. V každom z nich sa konvertujú dve slová a možnosť transformácie je tvorená zvyšnými slovami. Výsledné parametre sa sčítajú a tvoria hash.

Počas prevádzky algoritmu sa používa 6 príkazov:

  • "xor" - odstráni "ALEBO".
  • „shr“ - posunie indikátor o požadovaný počet bitov doprava so špecifickou frekvenciou.
  • „rots“ - posunie indikátor o požadovaný počet bitov doprava (bez použitia špecifického cyklu).
  • „II“ - spojenie prvkov, ktoré majú lineárny charakter.
  • "a" - "A".
  • „+“ - sledovanie.
Vlastnosti protokolu:
  1. Horná hranica trvania správy je 33 B.
  2. Parameter maximálnej rýchlosti je 139 MiB/s.
  3. Veľkosť slova – 4 B.
  4. Počet opakovaní v cykle je 64.
  5. Veľkosť prvku bloku je 64 B.
  6. Celkový hash kód je 32 B.

Bitcoinový šifrovací algoritmus pri ťažbe


Pri vykonávaní výpočtov v rámci ťažby je správnosť výsledného hash kódu určená počtom núl na začiatku riadku. Napríklad, ak je tento parameter 17, pravdepodobnosť nájdenia takéhoto čísla je extrémne nízka a pohybuje sa niekde okolo 1:1,4*10 až 20. mocnina. Nie je prekvapujúce, že ťažba bitcoínov vyžaduje použitie výkonných zariadení a vysoké náklady na energiu. Zároveň je nemožná optimalizácia hľadania požadovaného hashu, pretože po prijatí bloku informácií sa na výstupe objaví náhodné číslo.

Ťažkosťou ťažby virtuálnej mince je nájsť potrebný hash a vytvoriť ďalší blok. Na dosiahnutie tohto cieľa sa používa štandardné vymenovanie hodnôt, ktoré si vyžaduje vysokovýkonné vybavenie. Ako už bolo spomenuté, nehľadá sa jednoduchý hash, ale hodnota s veľkým počtom „0“ pred ňou.

Ťažba kryptomien pomocou SHA-256 je súbor opatrení zameraných na riešenie konkrétneho problému s kryptomenami. V prípade bitcoínov sa na ťažbu používa nasledujúce vybavenie:

  1. Od príchodu BTC v roku 2009, ako aj do polovice roku 2010, bolo relevantné použitie centrálnej procesorovej jednotky (CPU).
  2. Do polovice roku 2011 baníci používali počítače s grafickými kartami (GPU).
  3. Až do začiatku roku 2013 boli FGPA populárne, rovnako ako farmy GPU.
  4. V roku 2014 sa objavili ASIC. Výkonovo zatienili existujúce vybavenie. Napriek tomu až do začiatku roka 2017 baníci využívali GPU farmy a pracovali v bazénoch, no do konca roka 2017 a dodnes sú relevantné iba -mineri. Používanie iných zariadení je nerentabilné.
Uvedené zariadenia slúžia na výber požadovanej hašovacej funkcie a generovanie novej. Čím vyšší je hashrate (výpočtový výkon) zariadenia, tým rýchlejšie sa údaje triedia a nájdenie riešenia trvá menej času.

S narastajúcou konkurenciou a uvoľňovaním produktívnejších baníkov a pribúda, ktorých parameter sa mení každé 2 týždne.

Slabé a silné stránky bitcoinového hashovacieho algoritmu


Vyššie sme sa pozreli na to, čo je bitcoinový hashovací algoritmus a aké sú jeho vlastnosti. Toto je SHA-256, ktorý je považovaný za najbežnejší algoritmus s vysokou úrovňou spoľahlivosti a relatívne jednoduchým princípom fungovania. Je vysoko odolný proti hackovaniu a umožňuje ťažiť mince na akomkoľvek zariadení (v závislosti od parametrov obtiažnosti).

Napriek mnohým pozitívnym vlastnostiam má bitcoinový hashovací algoritmus niekoľko slabých stránok:

  1. Kontrola účastníkmi ťažby BTC. Funguje tu rovnaký princíp ako v akciových spoločnostiach (AK), kedy majú účastníci spoločnosti určitý počet akcií. Čím viac energie sa sústreďuje v rukách ťažiarov krypto siete, tým silnejší je ich vplyv na celkový systém. Vzhľadom na rastúcu náročnosť ťažby v roku 2018 je navyše badateľná tendencia presunu ťažby z rúk súkromných ťažiarov pod kontrolu veľkých organizácií, ktoré sa podieľajú na vytváraní zariadení na ťažbu virtuálnych mincí. Ak chcete získať bitcoiny, súkromný ťažiar musí minúť veľké sumy na nákup ASIC, pripojiť sa k jednému z bazénov a zaplatiť za elektrinu. Ak šetríte na zariadení, výroba stráca ziskovosť.
  2. Dôsledkom vyššie diskutovanej situácie je skutočnosť, že „leví“ podiel bitcoinov je sústredený v rukách vlastníkov veľkých ťažobných spoločností. Ak vezmeme do úvahy, že nie všetky prijaté bitcoiny idú na predaj, takéto organizácie sa menia na investorov a správcov mincí. V dôsledku toho sa počet mincí v obehu znižuje. Akumulácia kryptomeny vám navyše umožňuje ovplyvňovať decentralizáciu, ako aj výmenný kurz BTC počas obchodného procesu.
  3. Kvôli existujúcim nedostatkom sa algoritmus SHA-256 postupne stáva minulosťou a na jeho miesto nastupujú pokročilejšie projekty. Obľúbenosť si získavajú napríklad Scrypt, Ethash, Blake-256, Equihash a ďalšie. Nové algoritmy majú lepšiu úroveň ochrany a bezpečnosti, čo prinútilo tvorcov mnohých kryptomien opustiť zastaraný SHA-256 v prospech pokročilejších technológií.
  4. Napriek oprave hlavných chýb, ktoré boli identifikované vývojármi, sa nepodarilo odstrániť niektoré zraniteľnosti (v roku 2008 boli zistené kolízie pri 22 iteráciách). Preto vývoj SHA pokračoval a druhá verzia bola nahradená SHA-3.
V roku 2009 som bol nútený použiť SHA-256, pretože v čase vzniku kryptomeny prijali vlády štátov tento protokol. V tom čase sa aktívne využíval na ochranu údajov v niektorých vládnych programoch a využíval sa aj v komerčnom sektore. Ukázalo sa, že protokol bol vytvorený na vyriešenie určitých problémov, ale v skutočnosti je žiadaný úplne iným spôsobom.

Pre prehľadnosť si zhrňme do tabuľky pozitívne a negatívne vlastnosti bitcoinového šifrovacieho algoritmu.

VýhodyNedostatky
Rozšírené (vrátane sektora kryptomien). Protokol SHA sa aktívne používa v každodennom živote na ochranu informácií.Strata decentralizácie. Moc je sústredená v rukách ťažobných spoločností.
Spoľahlivá ochrana proti vlámaniu.Iterácia SHA má jednoduchú štruktúru, čo časom viedlo k zvýšeniu zložitosti ťažby. Od augusta 2018 je možné na ťažbu bitcoínov použiť iba ASIC s vysokým výkonom.
Pohodlie z hľadiska ťažby mincí, všestrannosť pri výbere ťažobného zariadenia.Objavujú sa nové algoritmy, ktoré majú pokročilejšiu štruktúru.
V druhej verzii (SHA-2) sa tvorcom podarilo odstrániť množstvo nedostatkov, ktoré negatívne ovplyvňovali spoľahlivosť systému.Napriek aktívnej práci na chybách sa mnohé nedostatky nepodarilo odstrániť. Nie je prekvapením, že vývojári vytvorili novú verziu SHA-3.
Protokol bol prijatý na legislatívnej úrovni v Spojených štátoch.

Dnes sa pri vývoji nových kryptomien takmer nepoužíva. Najvýraznejším príkladom mince, ktorá stále používa SHA-256, je Bitcoin Cash, fork Bitcoinu, ktorý sa objavil v auguste 2017. Ale v situácii s touto mincou je použitie SHA skôr nevyhnutnosťou ako voľbou tvorcov. Pokiaľ ide o samotný Bitcoin, použitie tohto sériového protokolu je spôsobené nedostatkom alternatív od Satoshi Nakamota.

Dnes, v roku 2018, sa veľa hovorí o zlepšení tohto algoritmu a vykonaní zmien v kryptomenovej sieti, ale zatiaľ takéto zámery nenašli fyzickú implementáciu a zostávajú len vo forme návrhov.

Video o kryptografických funkciách a algoritmoch:

Minulý rok 2017 bol rokom explozívnej popularity kryptomien a rovnako rýchleho rastu miery „hlavnej“ kryptomeny Bitcoin. Tieto okolnosti podnietili záujem nielen o špekulácie a ťažbu, ale aj o samotnú podstatu fenoménu. Čoraz viac ľudí chce prísť na to, ako to celé funguje?

Otvárame sériu materiálov, v ktorých sa pokúsime čo najprístupnejšou formou vysvetliť, čo sa skrýva za týmito záhadnými skratkami ako Scrypt, SHA-256, X11 a ďalšie. Začnime najdôležitejším (ale nie najlepším) algoritmom pre svet kryptomien - SHA-256. Práve to je základom rozvoja Bitcoinu. Predtým si však definujme kľúčovú terminológiu – definujme význam pojmov „ťažba“ a „haš“.

čo je ťažba?

Na rozdiel od všeobecného presvedčenia, ťažba nie je len a nie tak ťažba samotných kryptografických bankoviek, ale skôr opatrenia na ochranu práve tejto kryptomeny pred podvodnými aktivitami. Nejde len o falšovanie – ešte dôležitejšia je ochrana napríklad pred opakovaným použitím tých istých mincí tou istou osobou. Zárobky nových krypto mincí úzko súvisia s ich emisiou a tvoria sa z odmeny za nájdenie nového bloku, ktorý spĺňa podmienky ťažobného algoritmu.

To znamená, že aby sa „objavila“ ďalšia kryptomena, musíte vykonať celý komplex zložitých výpočtov a nájsť ten veľmi žiadaný „správny“ blok. Toto robia nadšenci so svojim vybavením. Schéma sa sama podporuje – na zvýšenie bezpečnosti kryptomeny a vydávanie nových jednotiek je nevyhnutná ťažba a aby to malo zmysel robiť, ťažiari dostávajú odmenu.

Stručne povedané, skupiny ťažobného softvéru predtým vykonávali výpočtové operácie do jedného bloku, ktorý sa potom neuveriteľne veľakrát transformuje, aby sa objavil špeciálny druh hash kódu. Nájdenie hašovacieho kódu, ktorý by spĺňal požiadavky algoritmu, je tým ťažšie, čím viac účastníkov je zapojených do procesu. „Správny“ hash je extrémne zriedkavý a jeho nájdenie je podobné výhre v lotérii.

čo je hash?

Pojem „hash“, ktorý nie je každému jasný, bol spomenutý vyššie. Toto je jeden zo základných pojmov v šifrovaní všeobecne a najmä v algoritme SHA-256. Vysvetlime si, čo to znamená, a prejdeme si najdôležitejšie súvisiace body.

Hašovanie je teda proces premeny prichádzajúcej množiny údajov ľubovoľnej veľkosti na odchádzajúci digitálny reťazec. Táto transformácia sa vykonáva podľa vopred vyvinutého algoritmu a odchádzajúci reťazec je úplne jedinečný a slúži ako akýsi „odtlačok prsta“ prichádzajúceho poľa. Práve tento reťazec sa nazýva hash sum, hash code alebo jednoducho hash. A transformačný algoritmus je hašovacia funkcia.

Uveďme si príklad. Môžeme „nakŕmiť“ hašovacie funkcie, povedzme, text románu vo verši A. S. Puškina „Eugene Onegin“ a výstupom bude hexadecimálny kód približne takto:. Samozrejme, nie je možné „rozvinúť“ tento kód späť a zmeniť ho na „Eugena Onegina“. Ale akonáhle zmeníte jediný znak v básni, čo i len pridáte jednu medzeru, výsledný hash sa zmení na nepoznanie. Objem tiež neovplyvňuje dĺžku hash kódu. Takže môžete do funkcie vložiť jeden symbol „a“ a výstupom bude presne rovnaká množina pseudonáhodných symbolov presne rovnakej dĺžky.

Teraz sa pozrime bližšie na to, prečo je to potrebné a aké ťažkosti na ceste vznikajú. Každý, kto sa o túto tému zaujíma, vie, že ťažbu kryptomien pomocou protokolu SHA-256 je možné vykonávať pomocou výkonu centrálneho procesora, grafickej karty alebo špecializovaného zariadenia ASIC. V skutočnosti, v kontexte bitcoinu, prvá metóda už nie je vôbec relevantná a ťažba pomocou grafických kariet prežíva svoje posledné dni. Zložitosť výpočtov sa príliš výrazne zvýšila a polovičné opatrenia už nie sú vhodné.

V rozhraní ťažobného softvéru sú procesy konverzie blokov na hašovacie množstvá zobrazené ako lakonická čiara ako „Accepted 0aef59a3b“. Blok môže pozostávať z tisícov alebo dokonca stoviek tisíc podobných riadkov, ale iba jeden môže slúžiť ako „podpis“ bloku, ktorého hľadanie je podstatou ťažby.

Hľadanie správneho hashu prebieha jednoduchým prehľadávaním výsledkov riešenia obrovského množstva problémov. V algoritme SHA-256 je „správnosť“ hashu určená počtom núl na začiatku súčtu hash. Pravdepodobnosť zistenia takéhoto hash kódu pomocou výpočtov určených algoritmom je zanedbateľná – jedna šanca z miliónov riešení. Presná pravdepodobnosť je určená aktuálnou úrovňou náročnosti v decentralizovanom systéme konkrétnej kryptomeny.

Pozoruhodný fakt. Každý z nás sa opakovane zaoberal algoritmom SHA-256 bez toho, aby o tom vedel, dokonca aj bez ohľadu na ťažbu kryptomien. Hovoríme o bezpečnostnom certifikáte SSL, ktorý chráni mnohé webové stránky. Keď navštívite takúto stránku, automaticky interagujete s SHA-256, na ktorej je SSL postavené.

Vlastnosti protokolu SHA-256

Najprv trocha histórie. Šifrovací algoritmus SHA-256, alebo skôr jeho prototyp, bol pôvodne vynájdený v stenách „zlovestnej“ NSA (Národná bezpečnostná agentúra USA) v teraz vzdialenom roku 2002. V priebehu niekoľkých mesiacov bol upravený a oficiálne predstavený Národnou metrologickou univerzitou na federálnej úrovni. O dva roky neskôr vyšla jeho druhá, vylepšená verzia.

Počas nasledujúcich troch rokov agentúra pracovala na zlepšení algoritmu a nakoniec vydala patent na jeho druhé vydanie. Stalo sa tak na základe licencie Royalty-free, ktorá umožnila využívať najnovšiu technológiu na „mierové“ účely.

Nakoniec SHA-256 vytvoril základ pre vytvorenie prvej kryptomeny na svete - Bitcoin. V tomto prípade sa protokol na zvýšenie bezpečnosti použije dvakrát.

Pri vykonávaní výpočtov v rámci ťažby v systéme Bitcoin je znakom vhodnosti výsledného hash kódu počet núl na začiatku riadku. Od konca 17., začiatku 18. je počet požadovaných úvodných núl 17 (+/-). Pravdepodobnosť detekcie takéhoto kódu je približne 1:1,4*1020. To je obludne malé číslo, ktoré sa vymyká chápaniu a je porovnateľné s pravdepodobnosťou nájdenia zrnka piesku určitého tvaru na všetkých piesočnatých plážach našej planéty. To je dôvod, prečo ťažba bitcoínov vyžaduje toľko výpočtového výkonu a toľko elektriny.

Neexistuje spôsob, ako optimalizovať vyhľadávanie „správneho“ hashu. V protokole SHA-256 vytvára hašovacia funkcia, ktorá berie blok údajov, úplne nepredvídateľnú výstupnú hodnotu. Preto je potrebná iterácia (opakovanie) po iterácii, kým sa nenájde vhodný kód, ešte raz zdôrazňujeme - úplne náhodne.

Teraz sme nútení čitateľa trochu „naložiť“ zložitými technickými informáciami, inak bude náš príbeh o SHA-256 neúplný. Ak nie je vôbec nič jasné, prejdite na ďalšiu časť článku.

Protokol zahŕňa rozdelenie informácií na fragmenty s veľkosťou 512 bitov (alebo 64 bajtov, čo je rovnaké, pretože 1 bajt = 8 bitov). Potom dôjde k kryptografickému „zmiešaniu“ podľa schémy obsiahnutej v algoritme a výstupom je hash kód s veľkosťou 256 bitov. Operácia hashovania sa vykonáva v 64 iteráciách, čo je relatívne málo, najmä v porovnaní s novými kryptografickými algoritmami, ktoré sa objavili.

Hlavné technické parametre SHA-256 sú nasledovné:

  • Veľkosť bloku: 64 bajtov;
  • Maximálna dĺžka správy: 33 bajtov;
  • Veľkosť výsledného hash kódu: 32 bajtov;
  • Počet opakovaní v jednom kole: 64;
  • Maximálna rýchlosť: približne 140 MiB/s (mebibajt za sekundu).

Algoritmus pri svojej práci využíva známu techniku ​​Merkle-Damgard, ktorá zahŕňa rozdelenie počiatočného indikátora na bloky ihneď po vykonaní zmien. Bloky sú zase rozdelené do 16 slov.

Súbor údajov prechádza kolom 64 iterácií. Každý z nich spustí proces hashovania slov, ktoré tvoria blok. Funkcia spracuje dvojice slov, potom sa výsledky sčítajú a získa sa správny hash kód. Každý ďalší blok sa vypočíta na základe hodnoty predchádzajúceho. Ide o bezproblémový proces – nie je možné vypočítať bloky oddelene od seba.

Evolúcia SHA-256

Aby sme pochopili kryptografickú hodnotu tohto algoritmu, pozrime sa späť do histórie. Jeho silu začali vážne testovať takmer okamžite po jeho vytvorení - v roku 2003. Záležitosť riešili profesionáli, no nenašli sa žiadne slabé miesta ani chyby.

Uplynulo celých päť rokov, keď v roku 2008 indickí experti dokázali identifikovať kolízie až v 22 iteráciách. Po niekoľkých mesiacoch tvrdej práce bolo navrhnuté úspešné riešenie problému.

V rámci analýzy činnosti funkčnej časti algoritmu bola testovaná jej odolnosť voči dvom typom možných spôsobov zlyhania zabezpečenia:

  • cez preimage: to znamená spätné dešifrovanie pôvodnej správy len na základe hash reťazca;
  • prostredníctvom detekcie kolízie: to znamená zhodu odchádzajúcich údajov za predpokladu, že prichádzajúce správy sú odlišné. To znamená, že prichádzajúce bloky sú odlišné, ale odchádzajúci hash je rovnaký - to by sa nemalo stať.

Potom, čo prvá verzia SHA-256 zlyhala v testoch na druhé kritérium, vývojári sa rozhodli vytvoriť nový šifrovací mechanizmus založený na radikálne odlišných princípoch. To je to, čo sa stalo - v roku 2012 bol zavedený protokol novej generácie, úplne bez vyššie opísaných nedostatkov.

Nevýhody algoritmu

To, že sa vývojárom podarilo opraviť svoje vlastné chyby, neznamená, že sa im podarilo doviesť SHA-256 k dokonalosti. Protokol sa zbavil zjavných zraniteľností, ale jeho „prirodzené“ nedostatky zostali.

Použitie SHA-256 ako základu Bitcoinu sa stalo možným, v neposlednom rade vďaka tomu, že samotná legislatíva USA bola lojálna k tomuto protokolu. Bolo povolené používať ho na ochranu údajov v niektorých vládnych programoch a bolo povolené používať ho aj v komerčnej sfére.

Odtiaľ pochádza irónia osudu – protokol vznikol za jedným účelom, no najširšie uplatnenie našiel v úplne iných. A na tie prvé účely to bolo viac než efektívne a vhodné. Ale pre kryptomeny sa to ukázalo ako príliš jednoduché. Nie je vtip, keď napríklad v Číne nie sú ani farmy, ale celé „továrne“ plné ASIC baníkov.

Každá iterácia algoritmu vyzerá celkom primitívne – základná binárna operácia plus 32-bitové sčítanie. To je dôvod, prečo sa ASIC založené na SHA-256 objavili tak rýchlo a vynásobili nulou všetky nádeje „domácich“ baníkov iba s procesorom a niekoľkými grafickými kartami.

Časy a podmienky sa veľmi menia a protokol SHA-256 s istotou nasleduje ďalšie, pokročilejšie riešenia. Ten istý Scrypt v procese výpočtov najprv zaznamená 1024 rôznych hash reťazcov a až potom vykoná sčítanie a získa konečný výsledok. Ide o neporovnateľne zložitejšiu schému s najvyššou úrovňou ochrany a bezpečnosti kryptomien.

Zhrnutie

Šifrovací algoritmus SHA-256 bol považovaný za celkom efektívny a spoľahlivý, kým nezačal boom kryptomien. Dnes je jasné, že na pozadí nových riešení to už vyzerá dosť slabo. Natoľko, že to umožnilo vytvoriť špeciálne zariadenia „naostrené“ striktne tak, aby to obišli. Toto sú tí istí ASIC baníci, ktorí prakticky zničili ťažbu na centrálnych procesoroch a už dokončujú ťažbu na grafických kartách.

Zdalo by sa, že na tom nie je nič zlé – zdravá konkurencia predsa. Ale v skutočnosti použitie ASIC dosť výrazne centralizuje kryptomenu, čím neutralizuje jej samotnú myšlienku. Táto skutočnosť nemohla pomôcť talentovaným nadšencom prinútiť vytvárať nové, pokročilejšie hashovacie algoritmy. A nenechali na seba dlho čakať.

Protokol SHA-256 v súčasnosti zaberá leví podiel na trhu s kryptomenami, no nové alternatívy ho už sebavedomo odsúvajú nabok. Napríklad druhá najpopulárnejšia a „drahšia“ krypta, Ethereum, používa protokol Ethash, ktorý sa predtým nazýval Dagger. Protokol je taký dobrý, že Ethereum si dodnes zachováva maximálnu decentralizáciu a ASIC minery na jeho ťažbu v prírode stále neexistujú. Možno Ethash nahradí jasne zastaraný SHA-256.

Jedným z prvých alternatívnych algoritmov bol Scrypt, na ktorom je založený jeden z najpopulárnejších altcoinov, Litecoin. Toto je oveľa pokročilejšie riešenie, ktoré už neposkytuje ASIC také nepopierateľné výhody. Superzisky z ťažby však prinútili čínskych špecialistov investovať veľa úsilia do vývoja technologických riešení pre Scrypt a ASIC založené na tomto protokole sa skutočne objavili.

Ak vezmeme do úvahy ťažbu z pohľadu bežného človeka, ktorý nemá skúsenosti s technickými nuansami, potom nepocíti žiadny rozdiel medzi algoritmami Scrypt a SHA-256. ASIC na oboch protokoloch vyzerajú takmer rovnako, spotrebúvajú približne rovnaké množstvo elektriny a majú úplne rovnaký hluk ventilátora. Ďalšou vecou sú kurzy kryptomien, ktoré ťažia tie isté ASIC, ale to je úplne iný príbeh.

Nasledujúci materiál budeme v rámci tejto témy venovať spomínanému alternatívnemu šifrovaciemu protokolu Scrypt.

SHA 256 je kryptografický súbor inštrukcií na ťažbu kryptomien. Inými slovami, spoľahlivo chráni všetky transakcie v sieti a komplikuje ťažbu elektronických mincí. Táto skratka znamená Secure Hash Algorithm, čo znamená veľmi populárnu a efektívnu metódu hashovania.

Podstatou SHA 256 je previesť informácie na hodnoty, čísla. Táto reťaz má pevnú dĺžku. To znamená, že všetky informácie, ktoré prenášate v rámci siete, budú zašifrované špeciálnymi hodnotami – identifikátormi (ID).

Pri vykonávaní transakcií algoritmus SHA 256 porovnáva ID s pôvodnými údajmi, ktoré nie je možné získať, a potom poskytuje prístup k transakcii. Tento protokol sa teraz používa pri ťažbe kryptomien ako BTC a BCH.

História vzhľadu

Ako sa stalo, že Bitcoin začal používať SHA 256? Všetko to začalo tým, že sa algoritmus stal členom rodiny SHA-2, ktorá má veľkosť hash reťazca 224-512 bitov.

Tie boli zase vytvorené na základe svojho pradeda - SHA-1, ktorého hash bol dlhý 160 bitov. Technológia sa objavila v roku 1995 a bola určená na použitie na civilné účely – teda na šifrovanie bežných, neštátnych informácií.

Rodinu SHA-2, do ktorej SHA 256 patrí, vyvinula Národná bezpečnostná agentúra pred 16 rokmi – na jar 2002. Na základe toho môžeme povedať, že algoritmus je morálne zastaraný. Stále je to však jeden z najsilnejších algoritmov na šifrovanie transakcií v sieti.

Technické parametre SHA 256

Algoritmus je navrhnutý pre dáta rozdelené na rovnaké časti 64 bajtov. SHA 256 zaisťuje, že sa zhromažďujú a spájajú do jedného 256-bitového reťazca. Hlavnou metódou pre túto metódu je operácia šifrovania, ktorá sa v slučke vykoná 64-krát.

Stručná charakteristika algoritmických inštrukcií SHA 256:

  • 64-bitové bloky - pracuje najrýchlejšie s 32-bitovými blokmi;
  • maximálna dĺžka zašifrovaného reťazca informácií je 33 bajtov;
  • veľkosť súhrnu správ - 32 bajtov;
  • štandardizovaná veľkosť jedného slova je 4 bajty;
  • šifrovací cyklus v jednom kole operácie je 64 bajtov;
  • rýchlosť, s ktorou algoritmus pracuje, je 140 Mbit/s.

Stojí za zmienku, že tento člen rodiny SHA-2 je založený na rámci opísanom Merkle-Damgaardom. To znamená, že pred rozdelením informácií na slová sa údaje rozdelia do blokov. Proces posilňuje šifrovanie miešaním údajov.

Samotný zber informácií sa vykonáva v rozsahu od 64 do 80 opakovaní. Každá ďalšia slučka premieňa vytvorené bloky na slová. Konečný výsledok, teda hash, vznikne sčítaním všetkých počiatočných hodnôt.

Kryptomeny s algoritmom SHA 256

Ako už bolo spomenuté, nielen bitcoin má takúto sadu pokynov, ale aj:

  • peercoin, ktorého zvláštnosťou je, že kód je vytvorený na základe bielej gule, ale PoS sa používa na ochranu celej siete a PoW je zodpovedný za distribúciu mincí;
  • namecoin je digitálna mena, ktorá funguje ako prostriedok ochrany, dôvernosti a decentralizácie; unobtanium – má extrémne nízku infláciu, ťažba všetkých mincí bude trvať najmenej 300 rokov;
  • deutsche eMark je nemecká mikrosieť, ktorá sa používa na výmenu aktív a peňazí. Samotný proces prebieha bez sprostredkovateľov; betaCoin - funguje na rovnakom princípe ako svetoznámy BitCoin;
  • jouleCoin - tiež založený na starom Bitcoine, ale poskytuje rýchlejšie potvrdenie transakcií;
  • steemit nie je ani samostatná krypta, ale celá platforma na blockchaine. Jeho hlavnou úlohou je odmeňovať zaujímavé publikácie.

Litecoin tiež používa algoritmus SHA 256, ale nie v celom systéme, ale v podprograme. Pre ťažbu Litecoinov sa používa bezpečnostný protokol Scrypt, ktorý zvyšuje náročnosť ťažby a znižuje návratnosť ASIC.

Ťažba kryptomien založená na algoritme SHA 256

Na ťažbu elektronických mincí, ktoré sú založené na rodine SHA-2, nie je potrebné používať špecializované nástroje - ASIC. Farmy založené na CPU aj GPU fungujú dobre pri ťažbe. Ten druhý je v rýchlosti jednoznačne lepší ako prvý.

A predsa je ASIC tým najlepším riešením na ťažbu kryptomien. Jeho výhody sú do určitej miery kompenzované jeho významnou cenou - asi 100 tisíc rubľov, výkonnejšie modely dokonca presahujú 500 000. S rastúcou zložitosťou klesá návratnosť. Preto sa zariadenie nie vždy ospravedlňuje, hoci poskytuje oveľa vyššiu rýchlosť ťažby ako farmy na grafických kartách a najmä na CPU.

Ťažba GPU sa považuje za viac-menej ziskovú. Vo všeobecnosti bude celá farma stáť približne 1 000 - 2 000 USD plus ďalšie vybavenie - najmä chladiace systémy pre grafické karty. Oplatí sa brať do úvahy aj prenájom priestorov, platby za elektrinu a platy pre obsluhujúci personál.

Medzi grafickými kartami si GTX 1080 Ti od Nvidie vedie dobre. Produkuje rýchlosť 1400 úspešných operácií za sekundu. AMD so svojimi kartami radu Vega mierne zaostáva – 1200 MH/s. Existujú aj lacnejšie možnosti ako Radeon 7970, ale jeho rýchlosť nepresahuje 800 MH / s.

Algoritmus SHA 256, aj keď je starý, sa stále používa v bitcoine, kryptomene č. 1 na svete. Protokol sa používa aj v množstve ďalších sľubných altcoinov. SHA256 postupne nahrádza Scrypt, no Bitcoin naň neplánuje prejsť. Čo sa týka ťažby, všetko je jednoduché – ak máte peniaze, vezmite si ASIC s vysokým hash rate. Chcete hospodárnejšie riešenie? Potom postavte farmu z grafických kariet AMD alebo Nvidia.

  • Preklad

V jednej chvíli som chcel prísť na to, ako rýchlo je možné ťažiť Bitcoiny manuálne. Ukázalo sa, že na ťažbu sa používa hash SHA-256, ktorý je pomerne jednoduchý a dá sa vypočítať aj bez počítača. Samozrejme, proces je veľmi pomalý a úplne nepraktický. Ale po prejdení všetkých krokov na papieri môžete dobre pochopiť podrobnosti o tom, ako algoritmus funguje.

Jedno krypto kolo

Baníctvo

Kľúčovou súčasťou celého bezpečnostného systému Bitcoinu je ťažba. Základnou myšlienkou je, že ťažiari zoskupujú bitcoinové transakcie do jedného bloku, ktorý potom hašujú nevyčísliteľné množstvo, aby našli veľmi vzácnu hašovaciu hodnotu, ktorá spadá za špeciálnych podmienok. Keď sa takáto hodnota nájde, blok sa považuje za vyťažený a vstupuje do reťazca blokov. Hašovanie samo o sebe neslúži žiadnemu užitočnému účelu okrem zvýšenia obtiažnosti nájdenia správneho bloku. Toto je teda jedna zo záruk, že nikto sám s akýmkoľvek existujúcim súborom zdrojov nebude schopný prevziať kontrolu nad celým systémom. Viac o ťažbe si môžete prečítať v mojom poslednom článku.

Kryptografická hašovacia funkcia prijíma blok údajov ako vstup a vytvára malý, ale nepredvídateľný výstup. Je navrhnutý tak, že neexistuje žiadny rýchly spôsob, ako získať požadovaný výstup, a musíte pokračovať v hľadaní, kým nenájdete správnu hodnotu. Bitcoin používa SHA-256 ako takú funkciu. Navyše na zvýšenie odolnosti sa SHA-256 aplikuje na blok dvakrát a nazýva sa double SHA-256.

V bitcoinoch je kritériom platnosti hashu dostatočný počet úvodných núl. Nájsť takýto hash je rovnako náročné ako napríklad nájsť auto alebo telefónne číslo končiace niekoľkými nulami. Ale samozrejme pre hash je to exponenciálne ťažšie. V súčasnosti musí platný hash obsahovať približne 17 úvodných núl, čo je splnené iba 1:1,4x1020. Ak nakreslíme analógiu, nájdenie takejto hodnoty je ťažšie ako nájdenie konkrétnej častice medzi všetkým pieskom na Zemi.

Modré bloky nelineárne zamiešajú bity, aby sa kryptografická analýza sťažila. Navyše, pre ešte väčšiu spoľahlivosť sa používajú rôzne funkcie miešania (ak nájdete matematickú medzeru na rýchle generovanie platných hashov, prevezmete kontrolu nad celým procesom ťažby bitcoínov).

Väčšinová funkcia (blok Ma) funguje bitovo so slovami A, B a C. Pre každú bitovú pozíciu vráti 0, ak väčšina vstupných bitov na tejto pozícii je nula, inak vráti 1.

Blok Σ0 otočí A o 2 bity, potom sa pôvodné slovo A otočí o 13 bitov a podobne o 22 bitov. Výsledné tri posunuté verzie A sú pridané bitovým modulom 2 ( normálne xor, (Aror 2) xor (Aror 13) xor (Aror 22)).

Ch implementuje funkciu výberu. Na každej bitovej pozícii sa skontroluje bit z E, ak sa rovná jednej, tak sa na výstup dostane bit z F z tejto pozície, inak bit z G. Teda bity z F a G sa zmiešajú na základe hodnoty z E.

Σ1 má podobnú štruktúru ako Σ0, ale pracuje so slovom E a zodpovedajúce posunové konštanty sú 6, 11 a 25.

Červené bloky vykonávajú 32-bitové sčítanie a generujú nové hodnoty pre výstupné slová A a E. Hodnota W t sa generuje na základe vstupných údajov (toto sa deje v časti algoritmu, ktorá prijíma a spracováva hašované údaje je to mimo náš rozsah). Kt je jeho vlastná konštanta pre každé kolo.

Vo vyššie uvedenom diagrame je zrejmé, že iba A a E sa menia v jednom kryptografickom kole. Zvyšné slová sa nemenia, ale sú posunuté na výstupe – staré A sa zmení na výstup B, staré B na nové C atď. Aj keď jedno kolo algoritmu veľmi nezmení dáta, po 64 kolách budú vstupné informácie úplne zašifrované.

Ťažíme ručne

Vo videu ukazujem, ako môžete prejsť všetkými popísanými krokmi s perom a papierom. Vykonal som prvé kolo hašovania, aby som vydoloval blok. Trvalo mi to 16 minút, 45 sekúnd.


Trochu vysvetlím, čo sa deje: Slová od A po H som si zapísal v šestnástkovej sústave a pod každým som urobil preklad do binárnej podoby. Výsledok bloku Ma je ​​pod slovom C a hodnoty A po posunoch a samotný výstup Σ0 sa objavia nad čiarou s A. Funkcia select sa objaví pod G a nakoniec zodpovedajúce posunuté verzie E a hodnota za blokom Σ1 prejde nad čiaru s E. V pravom dolnom rohu sa vykoná sčítanie, ktorého výsledok sa podieľa na výpočte nového A aj nového E (prvé tri červené sčítacie bloky). Vpravo hore som vypočítal novú hodnotu A a v strede je výpočet novej hodnoty E. Všetky tieto kroky boli diskutované vyššie a dajú sa ľahko sledovať v diagrame.

Okrem kola zobrazeného vo videu som vykonal ešte jedno – posledné 64. kolo hashovania pre konkrétny blok Bitcoinu. Na fotografii je hodnota hash zvýraznená žltou farbou. Počet núl potvrdzuje, že ide o platný bitcoinový hash. Všimnite si, že nuly sa nachádzajú na konci hashu a nie na začiatku, ako som už napísal. Dôvodom je, že Bitcoin jednoducho prevráti bajty prijaté SHA-256.


Posledné kolo SHA-256, v dôsledku čoho je viditeľný úspešne vyťažený bitcoinový blok

Čo to všetko znamená pre dizajn hardvérových baníkov?

Každý krok v SHA-256 vyzerá v digitálnej logike veľmi jednoducho – jednoduché bitové operácie a 32-bitové súčty (ak ste niekedy študovali návrh obvodov, pravdepodobne ste si už predstavili, ako by to mohlo vyzerať v hardvéri). Preto ASIC implementujú SHA-256 veľmi efektívne a paralelne umiestňujú stovky okrúhlych jednotiek SHA-256. Fotografia nižšie zobrazuje ťažobný čip, ktorý dokáže vypočítať 2 až 3 miliardy hashov za sekundu. Viac fotiek si môžete pozrieť na Zeptobaroch.


Silikónová snímka čipu Bitfury ASIC, ktorý dokáže ťažiť bitcoiny rýchlosťou 2-3 gigahashe za sekundu. Obrázok zo Zeptobars. (CC BY 3.0)

Na rozdiel od bitcoinov, litecoinov, dogecoinov a iných podobných alternatívnych -coinových systémov používajú scrypt hashovací algoritmus, ktorý je vo svojej podstate ťažko implementovateľný do hardvéru. Tento algoritmus počas vykonávania ukladá do pamäte 1024 rôznych hašovacích hodnôt a kombinuje ich na výstupe, aby sa získal konečný výsledok. Na výpočet hash scrypt je preto potrebné oveľa viac pamäte a obvodov v porovnaní s hodnotami hash SHA-256. Vplyv zmeny hashovacieho algoritmu je jasne viditeľný pri porovnaní zodpovedajúceho ťažobného hardvéru - verzie pre scrypt (Litecoin a iné) sú tisíckrát pomalšie ako verzie pre SHA-256 (Bitcoin).

Záver

SHA-256 bol zrazu taký jednoduchý, že sa dal vypočítať aj ručne (algoritmus eliptických kriviek používaný na podpísanie bitcoinovej transakcie by bol oveľa bolestivejší, pretože zahŕňa množstvo násobení 32-bajtových čísel). Výpočet jedného kola SHA-256 mi trval 16 minút, 45 sekúnd. S týmto výkonom bude hashovanie celého bitcoinového bloku (128 kôl) trvať 1,49 dňa, to znamená, že dostaneme rýchlosť hashovania 0,67 hashov za deň (v skutočnosti by sa tento proces, samozrejme, zrýchlil praxou). Pre porovnanie, súčasná generácia bitcoinových baníkov produkuje niekoľko teraashov za sekundu, čo je asi kvintiliónkrát rýchlejšie ako ja. Myslím, že je jasné, že manuálna ťažba bitcoínov nie je veľmi praktická.

Čitateľ z reddit sa opýtal na môj energetický výdaj. Keďže nevyvíjam žiadnu vážnu fyzickú námahu, môžeme predpokladať, že rýchlosť metabolizmu bude 1500 kcal za deň, potom zistíme, že manuálne hashovanie si vyžaduje takmer 10 megajoulov na hash. Typická spotreba energie pre baníka železa je 1 000 magéšov za joule. Som teda 10^16-krát menej energeticky efektívny ako špecializovaný kus železa (10 kvadriliónov). Ďalším problémom sú náklady na energiu. Lacným zdrojom energie sú šišky pri 23 centov za 200 kcal. Mám náklady na elektrinu 15 centov na kilowatthodinu, čo je 6,7-krát lacnejšie ako šišky.V dôsledku toho sú náklady na energiu v prepočte na hash pre mňa, ako ľudského baníka, 67 kvadriliónovkrát vyššie. Áno, je jasné, že to nezískam Veľa šťastia s manuálnou ťažbou bitcoínov, a to ani neberieme do úvahy náklady na papier a perá!