Érmék az SHA256-on. Mi a Bitcoin titkosítási algoritmusa? A Bitcoin hash algoritmus gyengeségei és erősségei

Az SHA 256 hash funkció képezte a világ legelső kriptovalutájának – a Bitcoinnak és sok altcoinnak – az alapját. Tudtad, hogy jóval a kriptovaluták megjelenése előtt hozták létre, és teljesen más célokra szánták? Ma áttekintjük az algoritmus történetét, működési elvét, aktuális problémákat és azt, hogy mely kriptovaluták használják az SHA256-ot.

Sztori

Az SHA 256 algoritmus neve a Secure Hashing Algorithm rövidítése. A fejlesztő így nevezte – az Egyesült Államok Nemzetbiztonsági Ügynökségének. Az algoritmus egy hash függvény. Ez azt jelenti, hogy a bemenete egy tetszőleges hosszúságú adatmennyiség, a kimenet pedig egy rögzített hosszúságú karakterkészlet, úgynevezett hash.

A hash-kivonatoló függvények egyik legfontosabb jellemzője a visszafordíthatatlanság. A hash-t úgy kaphatjuk meg, hogy az eredeti adatokat átadjuk a függvényen, de a hash ismeretében nem fogjuk tudni megszerezni az eredeti adatokat. Ennek a tulajdonságnak köszönhetően a funkció széles körben elterjedt a különböző szolgáltatásokban és alkalmazásokban, ahol adatvédelem szükséges. Minden nap az SHA 256 algoritmust használjuk, amikor internetes oldalakat látogatunk. Tartalmaz egy SSL biztonsági tanúsítványt, amely a webhelyhez való biztonságos kapcsolat létrehozásához szükséges.


Az algoritmus az SHA-2 család része, amelyet az 1995-ben megjelent SHA-1 alapján fejlesztettek ki. Megalakulása óta az sha256 erősségét alaposan tesztelték kriptoanalízis segítségével. A kriptoanalízis a hash függvények két fő típusú támadással szembeni ellenállását teszteli:
  • Ütközések keresése - azonos hash-ek észlelése különböző bemeneti paraméterekkel. A támadás sikerességi aránya veszélyezteti a digitális aláírás biztonságát a jelenlegi algoritmus használatával.
  • Az előkép megtalálása az eredeti üzenet visszafejtésének képessége a hash használatával. Ez a támadás veszélyezteti a hitelesítési jelszókivonatok tárolásának biztonságát.

Az elemzést először 2003-ban tesztelték, de akkor nem találtak sebezhetőséget. Az idő múlásával a számítási teljesítmény fejlődött. 2008-ban ütközéseket találtak az SHA-512 és SHA-256 iterációknál. Ugyanezen év szeptemberében az SHA256 31 iterációjára és az SHA-512 27 iterációjára dolgoztak ki egy eljárást az ütközések létrehozására.

Nyilvánvalóan eljött az idő egy új kriptorezisztens funkció kifejlesztésére. 2012-ben az NSA feltalálta az SHA-3-at. A frissített algoritmus fokozatosan kiszorítja a kevésbé kripto-ellenálló elődeit.

Bányászat az SHA 256-on

Az Egyesült Államok törvényei megengedik az SHA és hasonló hash-függvények használatát más protokollok és algoritmusok részeként bizonyos szövetségi, nem titkos információbiztonsági alkalmazásokban. Az SHA-2-t magán- és kereskedelmi szervezetek használhatják.

Nem meglepő, hogy kriptovalutákban használták. A bányászok az összes tranzakciót egy blokkba gyűjtik, majd elkezdik kivonatolni. Ha a rendszer szabályainak megfelelő hash értéket talál, a blokk készen áll a blokklánc végéhez való csatolásra. Az új blokkot olyan valaki találja meg, aki nagyon gyorsan ki tudja számítani a hash értékeket. A számítások sebessége a berendezés teljesítményétől függ. Háromféle berendezés használható Bitcoin bányászatához:

  • CPU (központi feldolgozó egység);
  • GPU (videokártyák);
  • ASIC (Application Specific Device).

A Bitcoin hálózatot úgy alakították ki, hogy minden új blokkot 10 percenként egyszer meg kell találni. A hálózat résztvevőinek száma folyamatosan változik, de az időnek állandónak kell maradnia. Az egyenlő tartózkodási idők biztosítása érdekében a rendszer a bányászok számától függően módosítja a számítási nehézséget. A kriptovaluták az utóbbi időben népszerűvé váltak, és a bányászok száma jelentősen megnőtt. A blokkok túl gyors megtalálásának elkerülése érdekében a számítások bonyolultsága is megnőtt.


A Bitcoint processzorokon kezdték bányászni. Aztán amikor már nem volt elég az erejük, videokártyákra váltottak. Hamarosan a videokártyák már nem tudtak megbirkózni. Aztán feltalálták az ASIC-eket - az sha 256 algoritmussal történő számításokhoz tervezett speciális eszközöket.Egy ASIC sokkal erősebb és energiahatékonyabb, mint több videokártya.

A vállalkozó szellemű bányászok hatalmas farmokat hoznak létre ASIC-ekből. Maga a berendezés magas költsége mellett egy ilyen gazdaság havonta több tízezer dolláros villanyszámlát kap. Ma már csak az ilyen ipari farmokon van értelme a bitcoin bányászatnak, egy otthoni számítógép vagy akár egy több videokártyával rendelkező farm sem lesz képes velük versenyezni, sőt még az áramot sem tudja megtéríteni.

Ezt azonban könnyű kiszámítani. Vannak számológépek a bányászat jövedelmezőségének kiszámításához sha256-on. Például: https://www.coinwarz.com/miningprofitability/sha-256. Írja be az űrlapba berendezése hashrate-jét (számítási teljesítményét), energiafogyasztását és költségét, a szolgáltatás kiszámolja a nyereségét.

Altcoins SHA-256

Nézzük meg a sha 256-on működő kriptovaluták listáját és listáját.

Bitcoin Cash (BCH)

2017. augusztus 1-jén elvált tőle. A klasszikus Bitcoin blokkmérete 1 MB. A hálózat annyira megnőtt, hogy már nem fér el minden tranzakció egy blokkba. Ez tranzakciós sorok kialakulásához és a fizetési díjak emelkedéséhez vezetett. A közösség egy új protokoll bevezetése mellett döntött, amelynek értelmében a blokkot 2 MB-ra növelték, bizonyos információkat a blokkláncon kívül kezdtek el tárolni, és a komplexitás újraszámításának időkeretét két hétről egy napra csökkentették.

Namecoin (NMC)

Ez egy Bitcoin technológián alapuló rendszer név-érték kombinációk tárolására és továbbítására. Leghíresebb alkalmazása a domain név elosztó rendszer, amely független az ICANN-tól, ezért lehetetlenné teszi a domain visszavételét. A Namecoin 2011-ben indult, Bitcoin bányászati ​​szoftveren fut, amelyet továbbítottak arra a szerverre, ahol a Namecoin fut.

DigiByte (DGB)

Egy 2013-ban elindított kriptovaluta, amelynek célja a Bitcoin és a Litecoin teljesítményének javítása. DigiByte különbségek:

  • Alacsony volatilitás érhető el a kibocsátott érmék hatalmas száma (akár 21 milliárd darab) miatt, ami biztosítja azok alacsony költségét és könnyű használhatóságát a számításokban;
  • Gyorsabb tranzakciók a blokk méretének kétévente történő megduplázásával;
  • Alacsony jutalék vagy nincs jutalék;
  • A bányászati ​​folyamat öt algoritmusra oszlik, amelyek lehetővé teszik az érmék egymástól függetlenül történő bányászását. Az SHA-256-hoz és a Scrypt-hez ASIC-ket, a Groestl-hez és a Skein-hez videokártyákat, a Qubithez pedig processzort használhat.

Az SHA 256 algoritmus a legelterjedtebb a kriptovaluták között. Ezt a Bitcoin népszerűsége és sikere okozta, valamint az altcoin fejlesztők vágya, hogy hasonló érméket hozzanak létre. A számítási bonyolultság növekedése arra késztette a bányászokat, hogy keressenek módokat a hatékonyabb bányászathoz, ami az ASIC-ek megjelenéséhez vezetett.


A Bitcoin titkosítása az SHA-256-on alapul, egy speciális algoritmuson, amely a programkód része. Feladata a bemeneti adatok meghatározott karakterkészletté alakítása (ábécé és numerikus ábrázolásban), valamint az információ védelme. Az ilyen műveleteket kivonatolásnak nevezik. Mik ennek az algoritmusnak a finomságai? Miért van rá szükség és hogyan működik? Mik az előnyei és a hátrányai? Ezeket és számos más szempontot részletesen megvizsgálunk.

Milyen titkosítási algoritmusa van a Bitcoinnak, és hol használják?

A kriptovalutáról, működésének és bányászatának jellemzőiről beszélve a kriptohálózat résztvevői elkerülhetetlenül olyan széles körben elterjedt meghatározással találkoznak, mint a Bitcoin titkosítási algoritmusa. A BTC kifejlesztésének napjától a mai napig (2018. augusztus 13-ig) az SHA-256-ot használták, amely a következő problémák megoldásához szükséges a Bitcoin hálózatban:

  1. BTC-címek kialakítása (tranzakciókhoz használatos).
  2. Bányászat (munka igazolása).
  3. A szükséges biztonság és anonimitás elérése.
  4. Digitális aláíráshoz és felismeréséhez.
Az SHA-256 algoritmus nem csak a Bitcoin, hanem más érmék esetében is releváns, nevezetesen a Bitcoin Cash, Mazacoin, Peercoin, Namecoin és más kriptovaluták esetében. Ezenkívül az SHA-2 (az SHA-256 alapja) számos olyan protokoll létrehozására szolgál, amelyek az interneten található adatok védelmére szolgálnak, nevezetesen az SSL, TSL és mások.

A Bitcoin-kivonatoló algoritmus szükséges az információk ellenőrzéséhez az elemzésével és a pontatlanságok időben történő azonosításával. Az adatok feldolgozása és hash-vé alakítása után lehetetlen visszaszerezni az információkat. Ha vesz egy már titkosított BTC fájlt, végezze el újra a számításokat, és győződjön meg arról, hogy a hash paraméterek megegyeznek, akkor biztos lehet benne, hogy az eredeti információban nincs változás. Ha az adatok eltérnek, az rendszerfeltörést jelez.

Bitcoin titkosítási algoritmus – hogyan működik egyszerű szavakkal


Az SHA-2 a Merkle és Damgaard által létrehozott keretrendszeren alapul. A kriptográfiában használt hash függvény sajátossága a nem szabványos megközelítés kialakítása. A beérkező adatokat azonos méretű blokkokra osztjuk, majd a létrehozott elemeket hexadecimális számokká alakítjuk. Velük történik a későbbi számítások elvégzése. A kapott értékre hash függvényt alkalmazunk, és a feldolgozás eredménye a kimenetben megjelenő hash összeg. Ez egy karakterkészlet, amely alfabetikus és numerikus kijelzőn jelenik meg. Lényegében ez egy hash.

A következő blokk a fent leírt elv szerint épül fel. Ebben az esetben az előző elem létrehozása után egy új folyamat indul el. Ha módosítják az eredeti adatokat, a hash megváltozik. Abban az esetben, ha különböző blokkokban hirtelen azonos hash függvény paraméterek jelennek meg, konfliktushelyzet lép fel az algoritmus működésében. Amikor ilyen eltérés lép fel, a teljes blokklánc-lánc megkérdőjeleződik.

Így egy hash függvényt használnak a digitális aláírás létrehozására. Ha a fent tárgyalt helyzet bekövetkezik, nagy a valószínűsége az aláírás-hamisításnak. Az ilyen hibák (ütközések) kiszámításához egy speciális technikát alkalmaznak, amely magában foglalja az adatok felsorolását, ami növeli a hash függvény erejét.

A Bitcoin titkosítás helyességét négy követelmény szabályozza:

  1. Amikor módosítja a bejövő adatokat, a hash összege változatlan marad.
  2. A kivonatolás során egyedi hash összeget kapunk (a karakterkészletnek egyedinek kell lennie).
  3. A kulcs létrehozása hash segítségével rendkívül bonyolult.
  4. A hashek visszafordíthatatlanok. Ez azt jelenti, hogy a bemeneti adatokkal végzett munka megengedett fordított művelet végrehajtásának lehetősége nélkül.

Hogyan érvényesül ez a Bitcoinban?

A kriptovaluta hálózat csomópontjainak feladata, hogy számos tranzakcióban megtalálják azt, amelyik minden szempontból megfelel neki. Az opciók értékelésekor a kezdeti figyelem a jutalék nagyságára irányul (egyébként emiatt a nagyobb jutalékos tranzakciók gyorsabban teljesülnek). Ezt követően ellenőrizzük a működést, megvizsgáljuk a bemeneti és kimeneti adatokat, és tisztázzuk a digitális aláírás eredetiségét.

Amint a vizsgált munka befejeződik, a Bitcoin lánc következő eleme (blokk) létrejön egy bizonyos mérettel (a kérdéses kriptovalutához - 1 megabájt). Az eredményül kapott csomópontok a verzióból, a formálási időből, két hash-ből (múltbeli blokk és bejövő tranzakciók), valamint az egyediséget biztosító további paraméterekből (bitek és nonce) állnak. A komplexumban a létrehozott blokkot sokszor kivonatolja, aminek eredményeként egy head hash jön létre, amely a lánc „régi” elemének kimeneteként, az újnak pedig bemeneteként működik.

Tegyük fel, hogy a hash halmaz egy adott „0” számot tartalmaz (például a nonce 17). Rendkívül nehéz ilyen értéket kiválasztani pusztán az értékek felsorolásával. Ez a szempont biztosítja a blokklánc-hálózatban lévő információk megbízhatóságát és a hackelés elleni védelmet. A hash létrehozásához óriási erőre van szükség, amely nélkül lehetetlen megtalálni a szükséges karakterkészletet. A munka befejezése és a paraméter megtalálása után az újonnan létrehozott blokkal és a talált hash-sel 17 „0-val” elküldésre kerül a kriptográfiai hálózat elemeinek. Ezután a Bitcoin hálózat minden résztvevője ellenőrzi a hash-t, kombinálva a karakterkészletet a blokkból származó információkkal. Ha nincs ütközés, új elem jelenik meg a blokklánc láncban.

Mikor jelent meg a Bitcoin titkosítási algoritmusa - rövid történet


Az "SHA" kifejezés három szó rövidítése: "Secure Hashing Algorithm". A Bitcoin az SHA-256-ot használja, az említett hash-függvény „alapja” pedig az SHA-2, amely számos kriptoalgoritmust tartalmaz (köztük a 256-ot is).

Az SHA-2 megalkotói az Egyesült Államok NSA, az ország nemzetbiztonsági kérdéseivel foglalkozó speciális ügynökség. Az algoritmus kifejlesztése és tesztelése után 2002-ben megjelent a nyilvánosság számára. Az új SHA-2 tartalmazta az első SHA-1 hash funkciót is (7 évvel korábban, 1995-ben). Az SHA-2 bevezetése óta az algoritmus számos változata megjelent, amelyek közül az egyiket Satoshi Nakamoto használta a Bitcoin 2009-es létrehozásakor.

A fejlesztők célja az volt, hogy kiadjanak egy olyan algoritmust, amely egy véletlenszerű karakterkészletből biztosítaná egy bizonyos hosszúságú meghatározott érték kialakítását. Megcsinálták. A jövőben az eredményül kapott paramétert az információk azonosítására (ellenőrzésére) fogják használni. Az SHA-2 eredeti célja a különböző szolgáltatásokon található adatok védelme, ma (2018-ban) az SHA-256 elsősorban az érmebányászatban használt algoritmusként ismert.

2012-ben a rendszert továbbfejlesztették, és megjelent a hash funkció frissített verziója - SHA-3. Úgy gondolják, hogy idővel az új fejlesztés kiszorítja a korábbi algoritmusokat, ami javítani fogja az amúgy is magas fokú biztonságot.

A Bitcoin titkosítási algoritmus jellemzői


Az SHA-256 lényege egyszerű. Az összeadás utáni kezdeti üzenet blokkra van osztva, és mindegyik 16 szóból áll. Az így kapott elemek speciális ciklusokon mennek keresztül, amelyek 64 vagy 80 szakaszból állnak. Mindegyiknél két szó konvertálódik, és az átalakítási lehetőséget a fennmaradó szavak alkotják. Az eredményül kapott paramétereket összeadva egy hash keletkezik.

Az algoritmus működése során 6 parancsot használnak:

  • "xor" - eltávolítja az "OR"-t.
  • „shr” - az indikátort a kívánt számú bittel jobbra tolja egy adott frekvenciával.
  • „rothad” - a jelzőt a kívánt számú bittel jobbra tolja (adott ciklus használata nélkül).
  • „II” - lineáris jellegű elemek kapcsolata.
  • "ésés".
  • „+” - követés.
A protokoll jellemzői:
  1. Az üzenet időtartamának felső határa 33 B.
  2. A maximális sebesség paraméter 139 MiB/s.
  3. Szóméret - 4 B.
  4. Egy ciklusban az ismétlések száma 64.
  5. A blokk elem mérete 64 B.
  6. A teljes hash kód 32 B.

Bitcoin titkosítási algoritmus a bányászatban


A bányászaton belüli számítások végzésekor a kapott hash kód helyességét a sor elején lévő nullák száma határozza meg. Például, ha ez a paraméter 17, akkor egy ilyen szám megtalálásának valószínűsége rendkívül alacsony, és valahol 1:1,4*10 körül van a 20. hatványig. Nem meglepő, hogy a Bitcoin bányászatához erős berendezések és magas energiaköltségek szükségesek. A keresett hash keresésének optimalizálása ugyanakkor lehetetlen, mert egy információblokk vétele után egy véletlen szám jelenik meg a kimeneten.

A virtuális érme bányászatának nehézsége a szükséges hash megtalálása és a következő blokk létrehozása. E cél elérése érdekében az értékek szabványos felsorolását használják, amely nagy teljesítményű berendezéseket igényel. Mint említettük, nem egyszerű hash-re kell keresni, hanem olyan értékre, amely előtt nagy számú „0” van.

A kriptovaluta bányászata az SHA-256 segítségével egy adott kriptográfiai probléma megoldását célzó intézkedések összessége. Bitcoin esetében a következő berendezéseket használják a bányászathoz:

  1. A BTC 2009-es megjelenése óta, valamint 2010 közepéig releváns volt a központi feldolgozó egység (CPU) használata.
  2. 2011 közepéig a bányászok videokártyás (GPU) számítógépeket használtak.
  3. 2013 elejéig az FGPA-k népszerűek voltak, akárcsak a GPU-farmok.
  4. 2014-ben megjelentek az ASIC-ek. Teljesítményükben elhomályosították a meglévő berendezéseket. Ennek ellenére 2017 elejéig a bányászok GPU-farmot használtak és poolban dolgoztak, de 2017 végére és a mai napig csak a -bányászok relevánsak. Más berendezések használata veszteséges.
Az említett eszközök segítségével kiválasztható a kívánt hash függvény, és újat generálhatunk. Minél nagyobb az eszköz hashrate-je (számítási teljesítménye), annál gyorsabban rendeződnek az adatok, és annál kevesebb időbe telik a megoldás megtalálása.

A verseny fokozódásával és a termelékenyebb bányászok megjelenésével, és növekszik, amelynek paramétere 2 hetente változik.

A Bitcoin hash algoritmus gyengeségei és erősségei


Fentebb megnéztük, hogy mi az a Bitcoin hash algoritmus és mik a jellemzői. Ez az SHA-256, amelyet a legelterjedtebb algoritmusnak tekintenek, magas szintű megbízhatósággal és viszonylag egyszerű működési elvvel. Nagyon ellenáll a hackelésnek, és lehetővé teszi az érmék bányászását bármilyen berendezésen (a nehézségi paraméterektől függően).

Számos pozitív tulajdonsága ellenére a Bitcoin hash algoritmusának számos gyenge pontja van:

  1. A BTC bányászat résztvevői által végzett irányítás. Itt ugyanaz az elv működik, mint a részvénytársaságoknál (JSC), amikor a társasági résztvevők bizonyos számú részvényt birtokolnak. Minél több hatalom összpontosul a kriptohálózati bányászok kezében, annál erősebb a hatásuk az egész rendszerre. Ezenkívül a bányászat 2018-ban egyre bonyolultabbá válása miatt észrevehető tendencia, hogy a bányászat magánbányászok kezéből a virtuális érmék bányászatára szolgáló berendezések létrehozásában részt vevő nagy szervezetek irányítása alá kerül. Bitcoinok fogadásához egy magánbányásznak nagy összegeket kell költenie ASIC-ek vásárlására, csatlakoznia kell az egyik medencéhez, és fizetnie kell az áramért. Ha spórol a berendezésen, a termelés veszít a jövedelmezőségből.
  2. A fentebb tárgyalt helyzet következménye, hogy a bitcoinok „oroszlánrésze” nagy bányavállalatok tulajdonosai kezében összpontosul. Ha figyelembe vesszük, hogy nem minden kapott Bitcoin kerül eladásra, az ilyen szervezetek befektetőkké és érmék letétkezelőjévé válnak. Ennek eredményeként csökken a forgalomban lévő érmék száma. Ezenkívül a kriptovaluta felhalmozása lehetővé teszi a decentralizáció, valamint a BTC árfolyamának befolyásolását a kereskedési folyamat során.
  3. A meglévő hiányosságok miatt az SHA-256 algoritmus fokozatosan a múlté, és fejlettebb projektek veszik át a helyét. Például a Scrypt, az Ethash, a Blake-256, az Equihash és mások egyre népszerűbbek. Az új algoritmusok jobb védelmi és biztonsági szinttel rendelkeznek, ami arra kényszerítette számos kriptovaluta készítőjét, hogy elhagyják az elavult SHA-256-ot a fejlettebb technológiák javára.
  4. A fejlesztők által azonosított főbb hibák kijavítása ellenére néhány sebezhetőséget nem sikerült eltávolítani (2008-ban 22 iteráció során találtak ütközéseket). Ezért folytatódott az SHA fejlesztése, és a második verziót az SHA-3 váltotta fel.
2009-ben kénytelen voltam az SHA-256-ot használni, mert a kriptovaluta létrehozásakor az államok kormányai elfogadták ezt a protokollt. Akkoriban egyes kormányzati programokban aktívan használták adatvédelemre, és a kereskedelmi szektorban is alkalmazták. Kiderült, hogy a protokollt bizonyos problémák megoldására hozták létre, de a valóságban teljesen más módon van rá igény.

Az egyértelműség kedvéért táblázatba foglaljuk a Bitcoin titkosítási algoritmus pozitív és negatív tulajdonságait.

ElőnyökHibák
Széles körben elterjedt (beleértve a kriptovaluta szektort is). Az SHA protokollt aktívan használják a mindennapi életben az információk védelmére.A decentralizáció elvesztése. A hatalom a bányavállalatok kezében összpontosul.
Megbízható betörésvédelem.Az SHA iteráció egyszerű felépítésű, ami idővel a bányászat bonyolultságának növekedéséhez vezetett. 2018 augusztusától csak nagy teljesítményű ASIC-k használhatók Bitcoinok bányászatára.
Kényelem az érmebányászat szempontjából, sokoldalúság a bányászati ​​berendezések kiválasztásában.Új algoritmusok jelennek meg, amelyek fejlettebb szerkezettel rendelkeznek.
A második verzióban (SHA-2) az alkotóknak sikerült kiküszöbölniük számos olyan hiányosságot, amelyek negatívan befolyásolták a rendszer megbízhatóságát.A hibákkal kapcsolatos aktív munka ellenére sok hiányosságot nem sikerült megszüntetni. Nem meglepő, hogy a fejlesztők létrehozták az SHA-3 új verzióját.
A jegyzőkönyvet törvényhozási szinten fogadták el az Egyesült Államokban.

Ma szinte nem használják új kriptovaluták fejlesztésére. A még mindig SHA-256-ot használó érmék legszembetűnőbb példája a Bitcoin Cash, a Bitcoin villája, amely 2017 augusztusában jelent meg. De ebben az érmében az SHA használata inkább szükségszerűség, mintsem az alkotók döntése. Ami magát a Bitcoint illeti, ennek a sorozatnak a használata a Satoshi Nakamoto alternatívák hiányának köszönhető.

Ma, 2018-ban sok szó esik ennek az algoritmusnak a fejlesztéséről és a kriptovaluta hálózat módosításáról, de ez idáig ezek a szándékok nem találtak fizikai megvalósításra, és csak javaslatok formájában maradnak meg.

Videó a kriptográfiai funkciókról és algoritmusokról:

Az elmúlt 2017 a kriptovaluták robbanásszerű népszerűségének és a „fő” kriptovaluta, a Bitcoin árfolyamának ugyanolyan gyors növekedésének éve volt. Ezek a körülmények nemcsak a spekuláció és a bányászat, hanem a jelenség lényege iránt is felkeltették az érdeklődést. Egyre többen szeretnének megérteni, hogyan működik mindez?

Olyan anyagok sorozatát nyitjuk meg, amelyekben megpróbáljuk a legkönnyebben hozzáférhető formában elmagyarázni, mi van ezeknek a titokzatos betűszavaknak, mint a Scrypt, SHA-256, X11 és mások mögött. Kezdjük a kriptovaluták világának legfontosabb (de nem a legjobb) algoritmusával - az SHA-256-tal. Ez az alapja a Bitcoin fejlesztésének. De előtte definiáljuk a kulcsfontosságú terminológiát – határozzuk meg a „bányászat” és a „hash” kifejezések jelentését.

Mi a bányászat?

A közhiedelemmel ellentétben a bányászat nemcsak és nem is annyira magának a kriptográfiai bankjegynek a kinyerését jelenti, hanem inkább a kriptovaluta csalárd tevékenységekkel szembeni védelmét szolgáló intézkedések. Nem csak a hamisításról van szó – még ennél is fontosabb a védelem például az ugyanazon érmék ugyanazon személy általi többszöri használata ellen. Az új kriptoérmék bevétele szorosan összefügg a kibocsátásukkal, és a bányászati ​​algoritmus feltételeinek megfelelő új blokk megtalálásának jutalmából alakul ki.

Vagyis a következő kriptoérme „megjelenéséhez” összetett számítások egész komplexumát kell végrehajtania, és meg kell találnia azt a nagyon áhított „helyes” blokkot. A szerelmesek ezt teszik a felszereléseikkel. A rendszer önmagát támogatja - a kriptovaluta biztonságának növelése és az új egységek kibocsátása érdekében bányászat szükséges, és annak érdekében, hogy ennek értelme legyen, a bányászok jutalmat kapnak.

Röviden, a bányászszoftver-csoportok korábban egyetlen blokkba hajtottak végre számítási műveleteket, amelyeket aztán hihetetlenül sokszor átalakítanak, hogy felfedezzenek egy speciális hash-kódot. Minél több résztvevő vesz részt a folyamatban, annál nehezebb lesz megtalálni az algoritmus követelményeinek megfelelő hash kódot. A „helyes” hash rendkívül ritka, és ennek megtalálása a lottón való nyeréshez hasonlítható.

Mi az a hash?

A „hash” kifejezést, amely nem mindenki számára világos, fentebb említettük. Ez az egyik alapvető koncepció a titkosításban általában, és különösen az SHA-256 algoritmusban. Magyarázzuk el, mit jelent ez, és nézzük át a legfontosabb kapcsolódó pontokat.

Tehát a kivonatolás az a folyamat, amelynek során egy tetszőleges méretű bejövő adathalmazt egy kimenő digitális sztringgé alakítanak. Ez az átalakítás egy előre kidolgozott algoritmus szerint történik, és a kimenő karakterlánc teljesen egyedi, és a bejövő tömb egyfajta „ujjlenyomataként” szolgál. Ezt a karakterláncot nevezik hash összegnek, hash kódnak vagy egyszerűen hash-nek. A transzformációs algoritmus pedig egy hash függvény.

Mondjunk egy példát. Hash függvényeket „táplálhatunk”, mondjuk a regény szövegét A. S. Puskin „Jevgenyij Onegin” versében, és a kimenet egy hexadecimális kód lesz, körülbelül így: Természetesen lehetetlen ezt a kódot „kibontani” és „Jevgene Onegin”-re alakítani. De amint megváltoztat egyetlen karaktert a versben, akár csak egy szóközt ad hozzá, a kapott hash a felismerhetetlenségig átalakul. A hangerő szintén nem befolyásolja a hash kód hosszát. Tehát beírhat egy „a” szimbólumot a függvénybe, és a kimenet pontosan ugyanaz a pszeudo-véletlen szimbólumkészlet, pontosan azonos hosszúságú lesz.

Most nézzük meg közelebbről, miért van erre szükség, és milyen nehézségek merülnek fel az út során. Akit érdekel a téma, az tudja, hogy az SHA-256 protokollal kriptovaluták bányászata történhet központi processzor, grafikus kártya vagy speciális ASIC eszköz segítségével. Tulajdonképpen a Bitcoin kapcsán az első módszer már egyáltalán nem releváns, a videokártyás bányászat pedig utolsó napjait éli. A számítások bonyolultsága túlságosan jelentősen megnőtt, és a fele mértékek már nem megfelelőek.

A bányászati ​​szoftver felületén a blokkok hash összegekké alakításának folyamatai lakonikus sorként jelennek meg, például „Elfogadva 0aef59a3b”. Egy blokk több ezer vagy akár százezer hasonló sorból állhat, de csak egy szolgálhat a blokk „aláírásaként”, amelynek keresése a bányászat lényege.

A megfelelő hash keresése a rengeteg probléma megoldásának eredményeinek egyszerű keresésével történik. Az SHA-256 algoritmusban a hash „helyességét” a hash összegének elején lévő nullák száma határozza meg. Az algoritmus által meghatározott számítások révén elhanyagolható a valószínűsége annak, hogy egy ilyen hash-kódot megtaláljunk – több millió megoldás közül egy esély. A pontos valószínűséget az adott kriptovaluta decentralizált rendszerének jelenlegi nehézségi szintje határozza meg.

Figyelemre méltó tény. Mindannyian többször foglalkoztunk az SHA-256 algoritmussal, anélkül, hogy tudtuk volna, még a kriptovaluta bányászattól függetlenül is. Az SSL biztonsági tanúsítványról beszélünk, amely számos webhelyet véd. Amikor felkeres egy ilyen webhelyet, automatikusan kapcsolatba lép az SHA-256-tal, amelyre az SSL épül.

Az SHA-256 protokoll jellemzői

Először is egy kis történelem. Kezdetben az SHA-256 titkosítási algoritmust, vagy inkább prototípusát a „baljóslatú” NSA (US Nemzetbiztonsági Ügynökség) falai között találták fel, a már távoli 2002-ben. Néhány hónapon belül módosította és hivatalosan bemutatta a Nemzeti Metrológiai Egyetem szövetségi szinten. Két évvel később megjelent a második, javított verzió.

A következő három évben az Ügynökség az algoritmus fejlesztésén dolgozott, és végül szabadalmat adott ki a második kiadására. Ez jogdíjmentes licenc alatt történt, ami lehetővé tette a legújabb technológia „békés” célú felhasználását.

Végül az SHA-256 képezte az alapot a világ első kriptovalutájának, a Bitcoinnak a létrehozásához. Ebben az esetben a protokollt kétszer használják a biztonság növelésére.

A Bitcoin rendszerben végzett bányászat részeként végzett számítások során a kapott hash kód alkalmasságának jele a sor elején lévő nullák száma. 17. végén, 18. elején a kötelező kezdő nullák száma 17 (+/-). Egy ilyen kód észlelésének valószínűsége hozzávetőlegesen 1:1,4*10 20 . Ez egy rettenetesen kis szám, amely dacol a felfogással, és összehasonlítható annak valószínűségével, hogy bolygónk összes homokos strandján találunk egy bizonyos alakú homokszemet. Ez az oka annak, hogy a Bitcoin bányászatához annyi számítási teljesítményre és sok elektromos áramra van szükség.

Nincs mód a "helyes" hash keresésének optimalizálására. Az SHA-256 protokollban a hash függvény egy adatblokkot felvéve teljesen megjósolhatatlan kimeneti értéket állít elő. Ezért az iteráció után ismétlésre (ismétlésre) van szükség, amíg megfelelő kódot nem találunk, még egyszer hangsúlyozzuk - teljesen véletlenszerű.

Most kénytelenek vagyunk egy kicsit „felrakni” az olvasót összetett technikai információkkal, különben az SHA-256-ról szóló történetünk hiányos lesz. Ha semmi sem világos, csak lépjen tovább a cikk következő részéhez.

A protokoll magában foglalja az információ felosztását egyenként 512 bites töredékekre (vagy 64 bájtra, ami ugyanaz, mivel 1 bájt = 8 bit). Ezután kriptográfiai „keverés” történik az algoritmusban rejlő séma szerint, és a kimenet egy 256 bites hash kód. A kivonatolási művelet 64 iterációban történik, ami viszonylag kevés, különösen a megjelent új kriptográfiai algoritmusokhoz képest.

Az SHA-256 fő műszaki paraméterei a következők:

  • Blokkméret: 64 bájt;
  • Maximális üzenethossz: 33 bájt;
  • A kapott hash kód mérete: 32 bájt;
  • Ismétlésszám egy körben: 64;
  • Maximális sebesség: körülbelül 140 MiB/s (mebibyte/s).

Munkájában az algoritmus a jól ismert Merkle-Damgard technikát alkalmazza, amely magában foglalja a kezdeti indikátor blokkokra osztását közvetlenül a változtatások elvégzése után. A blokkok pedig egyenként 16 szóra vannak felosztva.

Az adatkészlet 64 iterációból áll. Mindegyik elindítja a blokkot alkotó szavak kivonatolási folyamatát. A szópárokat a függvény feldolgozza, majd az eredményeket összeadja, és megkapja a megfelelő hash kódot. Minden következő blokk kiszámítása az előző értéke alapján történik. Ez egy zökkenőmentes folyamat - lehetetlen a blokkokat egymástól elkülönítve kiszámítani.

Az SHA-256 evolúciója

Az algoritmus kriptográfiai értékének megértéséhez tekintsünk vissza a történelembe. Szinte azonnal a létrehozása után - 2003-ban - elkezdték komolyan tesztelni az erejét. Az üggyel szakemberek foglalkoztak, de sebezhetőséget vagy hibát nem találtak.

Öt egész év telt el, amikor 2008-ban az indiai szakértők még 22 iterációig is képesek voltak azonosítani az ütközéseket. Több hónapos kemény munka után a probléma sikeres megoldását javasolták.

Az algoritmus funkcionális részének működésének elemzése során kétféle biztonsági meghibásodási móddal szembeni ellenállását teszteltük:

  • preimage-n keresztül: ez az eredeti üzenet fordított visszafejtését jelenti csak a hash karakterlánc alapján;
  • ütközésérzékelésen keresztül: ez a kimenő adatok egybeesését jelenti, feltéve, hogy a bejövő üzenetek eltérőek. Vagyis a bejövő blokkok különböznek, de a kimenő hash ugyanaz - ennek nem szabad megtörténnie.

Miután az SHA-256 első verziója sikertelen volt a második kritériumon, a fejlesztők úgy döntöttek, hogy új titkosítási mechanizmust hoznak létre, amely gyökeresen eltérő elveken alapul. Ez történt - 2012-ben egy új generációs protokollt vezettek be, amely teljesen mentes a fent leírt hiányosságoktól.

Az algoritmus hátrányai

Az a tény, hogy a fejlesztőknek sikerült kijavítaniuk saját hibáikat, nem jelenti azt, hogy sikerült tökéletesíteniük az SHA-256-ot. A protokoll megszabadult a nyilvánvaló sebezhetőségektől, de „natív” hiányosságai megmaradtak.

Az SHA-256 használata a Bitcoin alapjaként lehetővé vált, nem utolsósorban annak a ténynek köszönhetően, hogy maga az Egyesült Államok jogszabályai is lojálisak voltak ehhez a protokollhoz. Egyes kormányzati programokban engedélyezték adatvédelemre, illetve kereskedelmi szférában is.

Innen ered a sors iróniája - a protokollt egy célra hozták létre, de a legszélesebb körű alkalmazását teljesen más esetekben találta meg. Az első célokhoz pedig több mint hatékony és megfelelő volt. De a kriptovaluták esetében ez túl egyszerűnek bizonyult. Nem vicc, amikor például Kínában nem is farmok, hanem egész „gyárak” vannak tele ASIC bányászokkal.

Az algoritmus minden iterációja meglehetősen primitívnek tűnik – egy alapvető bináris művelet plusz egy 32 bites összeadás. Ezért jelentek meg olyan gyorsan az SHA-256-on alapuló ASIC-ek, amelyek nullával megszorozták a csak processzorral és pár videokártyával rendelkező „otthoni” bányászok minden reményét.

Az idők és a feltételek sokat változnak, és az SHA-256 protokoll magabiztosan követi más, fejlettebb megoldások nyomát. Ugyanaz a Scrypt a számítások során először 1024 különböző hash karakterláncot rögzít, majd csak ezután hajtja végre az összeadást és megkapja a végeredményt. Ez egy összehasonlíthatatlanul összetettebb rendszer a legmagasabb szintű kriptovaluta védelemmel és biztonsággal.

Összegzés

Az SHA-256 titkosítási algoritmust egészen hatékonynak és megbízhatónak tartották egészen a kriptovaluta boom kezdetéig. Ma már világossá válik, hogy az új megoldások hátterében már meglehetősen gyengének tűnik. Olyannyira, hogy ez lehetővé tette speciális eszközök létrehozását, amelyeket szigorúan annak megkerülésére „kihegyeztek”. Ugyanazok az ASIC bányászok, amelyek gyakorlatilag tönkretették a központi processzorok bányászatát, és már befejezik a videokártyák bányászatát.

Úgy tűnik, nincs ezzel semmi baj – végül is egészséges verseny. Valójában azonban az ASIC-ek használata jelentősen centralizálja a kriptovalutát, ezáltal semlegesíti annak ötletét. Ez a tény csak arra késztette a tehetséges rajongókat, hogy új, fejlettebb kivonatolási algoritmusokat hozzanak létre. És nem is vártak sokáig.

Az SHA-256 protokoll jelenleg a kriptovaluta piac oroszlánrészét foglalja el, de az új alternatívák már magabiztosan félretolják. Például a második legnépszerűbb és „drágább” kripta, az Ethereum az Ethash protokollt használja, amelyet korábban Daggernek hívtak. A protokoll annyira jó, hogy az Ethereum a mai napig fenntartja a maximális decentralizációt, és a bányászatához még mindig nem léteznek ASIC bányászok a természetben. Talán az Ethash váltja fel az egyértelműen elavult SHA-256-ot.

Az egyik első alternatív algoritmus a Scrypt volt, amelyen az egyik legnépszerűbb altcoin, a Litecoin alapul. Ez egy sokkal fejlettebb megoldás, amely már nem ad olyan tagadhatatlan előnyöket az ASIC-nek. A bányászatból származó szuperprofit azonban arra kényszerítette a kínai szakembereket, hogy sok erőfeszítést tegyenek a Scrypt technológiai megoldásainak fejlesztésébe, és megjelentek az ezen a protokollon alapuló ASIC-ek.

Ha a bányászatot egy hétköznapi ember szemszögéből nézzük, aki nem jártas a technikai árnyalatokban, akkor semmi különbséget nem fog érezni a Scrypt és az SHA-256 algoritmusok között. Mindkét protokoll ASIC-jei majdnem ugyanúgy néznek ki, körülbelül ugyanannyi áramot fogyasztanak, és pontosan ugyanolyan ventilátorzajjal rendelkeznek. Egy másik dolog a kriptovaluta árfolyama, amelyet ugyanezek az ASIC-ek bányásznak, de ez egy teljesen más történet.

A következő anyagot e téma keretében az említett alternatív titkosítási protokollnak, a Scrypt-nek szenteljük.

Az SHA 256 egy kriptográfiai utasításkészlet a kriptovaluták bányászatához. Más szóval, megbízhatóan védi az összes tranzakciót a hálózaton, és megnehezíti az elektronikus érmék kinyerését. Ez a rövidítés a Secure Hashing Algorithm rövidítése, ami egy rendkívül népszerű és hatékony kivonatolási módszert jelent.

Az SHA 256 lényege, hogy az információkat értékekké, számokká alakítja. Ez a lánc fix hosszúságú. Ez azt jelenti, hogy a hálózaton belül továbbított minden információ speciális értékekkel - azonosítókkal (ID-k) lesz titkosítva.

A tranzakciók lebonyolításakor az SHA 256 algoritmus összehasonlítja az azonosítót az eredeti adatokkal, amelyeket nem lehet visszakeresni, majd hozzáférést biztosít a tranzakcióhoz. Ezt a protokollt ma már olyan kriptovaluták bányászatánál használják, mint a BTC és a BCH.

Megjelenés története

Hogyan történt, hogy a Bitcoin elkezdte használni az SHA 256-ot? Az egész azzal kezdődött, hogy az algoritmus az SHA-2 család tagjává vált, amelyek hash láncának mérete 224-512 bit.

Őket viszont dédapjuk - SHA-1 - alapján hozták létre, akinek hash-je 160 bit hosszú volt. A technológia 1995-ben jelent meg, és polgári célokra szánták - vagyis hétköznapi, nem államilag fontos információk titkosítására.

Az SHA-2 családot, amelyhez az SHA 256 is tartozik, a Nemzetbiztonsági Ügynökség fejlesztette ki 16 éve - 2002 tavaszán. Ez alapján elmondható, hogy az algoritmus erkölcsileg elavult. Azonban továbbra is ez az egyik legerősebb algoritmus a tranzakciók titkosítására a hálózaton.

Az SHA 256 műszaki paraméterei

Az algoritmust 64 bájt egyenlő részekre osztott adatokra tervezték. Az SHA 256 biztosítja, hogy ezeket összegyűjtsék és egyetlen 256 bites láncba egyesítsék. Ennek a módszernek a fő módszere a titkosítási művelet, amelyet egy ciklusban 64 alkalommal hajtanak végre.

Az SHA 256 algoritmikus utasításainak rövid jellemzői:

  • 64 bites blokkok – a 32 bites blokkokkal működik a leggyorsabban;
  • a titkosított információlánc csúcshossza 33 bájt;
  • üzenet kivonat mérete - 32 bájt;
  • egy szó szabványosított mérete 4 bájt;
  • a titkosítási ciklus egy műveleti körben 64 bájt;
  • az algoritmus működési sebessége 140 Mbit/s.

Érdemes megjegyezni, hogy az SHA-2 család ezen tagja a Merkle-Damgaard által leírt keretrendszeren alapul. Ez azt jelenti, hogy mielőtt az információt szavakra osztanák, az adatokat blokkokra osztják. A folyamat az adatok keverésével erősíti a titkosítást.

Maga az információgyűjtés 64-80 ismétlés tartományban történik. Minden következő ciklus szavakká alakítja a létrehozott blokkokat. A végeredmény, nevezetesen a hash, az összes kezdeti érték összegzésével jön létre.

Kriptovaluták SHA 256 algoritmussal

Mint korábban említettük, nem csak a Bitcoin rendelkezik ilyen utasításokkal, hanem:

  • peercoin, melynek sajátossága, hogy a kódot a dákógolyó alapján hozzák létre, de a PoS a teljes hálózat védelmét szolgálja, a PoW pedig az érmék elosztásáért felel;
  • A namecoin egy digitális valuta, amely a védelem, a titoktartás és a decentralizáció eszközeként működik; unobtanium - rendkívül alacsony az inflációja; az összes érme kibányászása legalább 300 évig tart;
  • A deutsche eMark egy német mikrohálózat, amelyet eszközök és pénz cseréjére használnak. Maga a folyamat közvetítők nélkül megy végbe; betaCoin - ugyanazon az elven működik, mint a világhírű BitCoin;
  • jouleCoin - szintén a Bitcoin nagyapján alapul, de gyorsabban visszaigazolja a tranzakciókat;
  • A steemit nem is egy külön kripta, hanem egy teljes platform a blokkláncon. Fő feladata az érdekes kiadványok jutalmazása.

A Litecoin is az SHA 256 algoritmust használja, de nem a teljes rendszerben, hanem egy szubrutinban. A Litecoin bányászathoz a Scrypt biztonsági protokollt használják, amely növeli a bányászat összetettségét és csökkenti az ASIC-k megtérülését.

Kriptovaluta bányászat az SHA 256 algoritmus alapján

Az SHA-2 családon alapuló elektronikus érmék bányászásához nem szükséges speciális eszközök - ASIC - használata. Mind a CPU, mind a GPU alapú farmok jól teljesítenek a bányászatban. Utóbbi sebességben egyértelműen felülmúlja az előbbit.

Pedig az ASIC a legjobb megoldás a kriptovaluták bányászatára. Előnyeit bizonyos mértékig ellensúlyozza a jelentős ára - körülbelül 100 ezer rubel, az erősebb modellek még az 500 000-et is meghaladják. A bonyolultság növekedésével a megtérülés csökken. Ezért a berendezés nem mindig igazolja magát, bár sokkal nagyobb bányászati ​​​​sebességet biztosít, mint a videokártyákon és különösen a CPU-n lévő farmok.

A GPU bányászat többé-kevésbé jövedelmezőnek tekinthető. Általánosságban elmondható, hogy az egész farm körülbelül 1000-2000 dollárba kerül, plusz további felszerelések – különösen a videokártyák hűtőrendszerei. Érdemes figyelembe venni a helyiségek bérlését, a villanyfizetést és a kiszolgáló személyzet fizetését is.

A videokártyák közül jól teljesít az Nvidia GTX 1080 Ti. 1400 sikeres művelet sebességét produkálja másodpercenként. Az AMD kissé le van maradva Vega vonalkártyáival - 1200 MH/s. Vannak olcsóbb lehetőségek is, mint a Radeon 7970, de a sebessége nem haladja meg a 800 MH/s-ot.

Az SHA 256 algoritmust, bár régi, még mindig használják a Bitcoinban, a világ első számú kriptovalutájában. A protokollt számos más ígéretes altcoinban is használják. Az SHA256-ot fokozatosan felváltja a Scrypt, de a Bitcoin nem tervezi az átállást. A bányászattal kapcsolatban minden egyszerű - ha van pénze, vegyen magas hash arányú ASIC-eket. Gazdaságosabb megoldást szeretne? Ezután építs egy farmot AMD vagy Nvidia videokártyákból.

  • Fordítás

Egy ponton szerettem volna rájönni, milyen gyorsan lehet manuálisan bányászni Bitcoint. Kiderült, hogy a bányászathoz SHA-256 hash-t használnak, és ez meglehetősen egyszerű és számítógép nélkül is kiszámítható. Természetesen a folyamat nagyon lassú és teljesen kivitelezhetetlen. De miután végigment az összes lépésen papíron, jól megértheti az algoritmus működésének részleteit.

Egy titkosítási kör

Bányászati

A teljes Bitcoin biztonsági rendszer kulcsfontosságú része a bányászat. Az alapötlet az, hogy a bányászok egy blokkba csoportosítják a Bitcoin-tranzakciókat, amelyekből aztán megszámlálhatatlan számú hash-értéket találnak, hogy találjanak egy nagyon ritka hash értéket, amely speciális feltételekhez tartozik. Ha ilyen értéket talál, a blokk bányászottnak minősül, és belép a blokkláncba. Maga a kivonatolás nem szolgál más hasznos célt, mint hogy megnehezíti a megfelelő blokk megtalálását. Így ez az egyik garancia arra, hogy a meglévő erőforrásokkal egyedül senki ne tudja átvenni az egész rendszer irányítását. A bányászatról bővebben a legutóbbi cikkemben olvashat.

A kriptográfiai kivonatoló funkció egy adatblokkot fogad bemenetként, és kicsi, de kiszámíthatatlan kimenetet állít elő. Úgy tervezték, hogy ne legyen gyors módja a kívánt kimenet elérésének, és addig kell keresnie, amíg meg nem találja a megfelelő értéket. A Bitcoin az SHA-256-ot használja ilyen funkcióként. Ezenkívül az ellenállás fokozása érdekében az SHA-256-ot kétszer alkalmazzák a blokkra, és ezt dupla SHA-256-nak nevezik.

A Bitcoinban a hash érvényességének feltétele, hogy elegendő számú kezdő nulla legyen. Egy ilyen hash megtalálása ugyanolyan nehéz, mint például egy több nullára végződő autó vagy telefonszám megtalálása. De természetesen egy hash esetében ez exponenciálisan nehezebb. Jelenleg egy érvényes hash-nek körülbelül 17 kezdő nullát kell tartalmaznia, amit csak 1 az 1,4x10 20-hoz elégít ki. Ha egy analógiát vonunk le, akkor egy ilyen értéket nehezebb megtalálni, mint egy adott részecskét megtalálni a Föld összes homokja között.

A kék blokkolja a nem lineárisan kevert biteket, hogy megnehezítse a kriptográfiai elemzést. Sőt, a még nagyobb megbízhatóság érdekében különböző keverési funkciókat használnak (ha talál egy matematikai kiskaput az érvényes hashek gyors generálásához, akkor átveszi az irányítást a teljes Bitcoin bányászati ​​folyamat felett).

A többségi függvény (Ma blokk) bitenként működik az A, B és C szavakon. Minden bitpozícióhoz 0-t ad vissza, ha az adott pozícióban lévő bemeneti bitek többsége nulla, ellenkező esetben 1-et ad vissza.

A Σ0 blokk elforgatja A-t 2 bittel, majd az eredeti A szót 13 bittel, és hasonlóképpen 22 bittel. A kapott A három eltolt változata bitenkénti modulo 2 ( normál xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ch valósítja meg a kiválasztási funkciót. Minden bitpozíciónál ellenőrzik az E-ből származó bitet, ha egyenlő eggyel, akkor ebből a pozícióból az F-ből származó bit kerül kiadásra, egyébként pedig egy bit a G-ből. Így az F és G bitjei az érték alapján keverednek. E.

A Σ1 szerkezetében hasonló a Σ0-hoz, de az E szóval működik, és a megfelelő eltolási állandók a 6, 11 és 25.

A piros blokkok 32 bites összeadást hajtanak végre, új értékeket generálva az A és E kimeneti szavakhoz. A W t értéket a bemeneti adatok alapján állítják elő (ez az algoritmusnak a kivonatolt adatokat fogadó és feldolgozó részében történik . Ez kívül esik a hatáskörünkön). K t a saját állandója minden körre.

A fenti diagramon észrevehető, hogy egy kriptográfiai körben csak A és E változik. A fennmaradó szavak nem változnak, hanem eltolódnak a kimeneten - a régi A B kimenetté változik, a régi B pedig új C-vé, és így tovább. Bár az algoritmus egyetlen köre nem sokat változtat az adatokon, 64 kör után a bemeneti információ teljesen titkosítva lesz.

Kézzel bányászunk

A videóban megmutatom, hogyan lehet végigvinni az összes leírt lépést tollal és papírral. Elvégeztem a kivonatolás első körét a blokk bányászatához. 16 perc 45 másodpercig tartott.


Hadd magyarázzam el egy kicsit, mi történik: A szavakat A-tól H-ig írtam fel hexadecimális formában, és mindegyik alatt készítettem egy bináris formátumú fordítást. Az Ma blokk eredménye a C szó alatt van, az eltolások utáni A értékei és maga a Σ0 kimenet az A-val jelzett sor felett található. A kiválasztó függvény G alatt jelenik meg, végül pedig az E és az E megfelelő eltolt változatai a Σ1 blokk utáni érték az E-vel jelzett vonal fölé megy. A jobb alsó sarokban In egy összeadást hajtott végre, melynek eredménye az új A és az új E (az első három piros összegzési blokk) kiszámításában is részt vesz. A jobb felső sarokban kiszámoltam az A új értékét, középen pedig az E új értékének kiszámítása. Mindezekről a lépésekről fentebb volt szó, és könnyen nyomon követhetők a diagramon.

A videóban látható körön kívül még egyet lebonyolítottam – az utolsó 64. hash kört egy adott Bitcoin blokkhoz. A képen a hash értéke sárga színnel van kiemelve. A nullák száma megerősíti, hogy ez egy érvényes Bitcoin hash. Vegye figyelembe, hogy a nullák a hash végén találhatók, és nem az elején, ahogy korábban írtam. Ennek az az oka, hogy a Bitcoin egyszerűen átfordítja az SHA-256 által kapott bájtokat.


Az SHA-256 utolsó köre, melynek eredményeként egy sikeresen kibányászott Bitcoin blokk látható

Mit jelent mindez a hardverbányászok tervezése szempontjából?

Az SHA-256 minden lépése nagyon egyszerűnek tűnik a digitális logikában – egyszerű bitműveletek és 32 bites összegek (ha valaha is tanulmányozta az áramkörtervezést, valószínűleg már elképzelte, hogyan nézhet ki ez hardverben). Ezért az ASIC-k nagyon hatékonyan valósítják meg az SHA-256-ot, és több száz SHA-256 körös végrehajtási egységet helyeznek el párhuzamosan. Az alábbi képen egy bányászati ​​chip látható, amely másodpercenként 2-3 milliárd hash-t képes kiszámítani. További fotókat a Zeptobars oldalon láthat.


Szilícium felvétel a Bitfury ASIC chipről, amely másodpercenként 2-3 gigahashes sebességgel képes kitermelni a Bitcoint. Kép a Zeptobarsról. (CC BY 3.0)

A Bitcoinnal ellentétben a Litecoin, a Dogecoin és más hasonló alternatív -coin rendszerek a scrypt hash algoritmust használják, amelyet eleve nehéz hardverben megvalósítani. Ez az algoritmus 1024 különböző hash értéket tárol a memóriában a végrehajtás során, és ezeket kombinálja a kimeneten, hogy megkapja a végeredményt. Ezért sokkal több memóriára és áramkörre van szükség a titkosítási kivonatok kiszámításához, mint az SHA-256 hashekhez. A kivonatolási algoritmus megváltoztatásának hatása jól látható a megfelelő bányászati ​​hardverek összehasonlításakor – a scrypt verziói (Litecoin és mások) ezerszer lassabbak, mint az SHA-256 (Bitcoin) verziói.

Következtetés

Az SHA-256 hirtelen annyira egyszerű volt, hogy akár kézzel is ki lehetett számítani (a Bitcoin-tranzakció aláírására használt elliptikus görbe algoritmus sokkal fájdalmasabb lenne, mivel 32 bájtos számok szorzását foglalja magában). Az SHA-256 egy körének kiszámítása 16 percet 45 másodpercet vett igénybe. Ezzel a teljesítménnyel egy teljes Bitcoin blokk (128 kör) kivonatolása 1,49 napot vesz igénybe, vagyis napi 0,67 hash-t kapunk (sőt, gyakorlással persze felgyorsulna a folyamat). Összehasonlításképpen, a bitcoin-bányászok jelenlegi generációja másodpercenként több terahast produkál, ami körülbelül ötmilliárdszor gyorsabb, mint én. Azt hiszem, egyértelmű, hogy a kézi Bitcoin bányászat nem túl praktikus.

A reddit olvasója az energiafelhasználásomról kérdezte.Mivel nem gyakorolok komolyabb fizikai erőfeszítést, feltételezhetjük, hogy napi 1500 kilokalória lesz az anyagcsere, akkor azt tapasztaljuk, hogy a manuális hash-hez közel 10 megajoule-ra van szükség hash-enként Tipikus fogyasztási energia egy vasbányásznál 1000 magehas per joule. Így 10^16-szor (10 kvadrillió) kevésbé vagyok energiatakarékos, mint egy speciális vasdarab. Más kérdés az energia költsége. Olcsó energiaforrás a fánk 23-as cent 200 kilokalóriára.Nekem 15 cent/kilowattórán a villany ára van, ami 6,7-szer olcsóbb, mint a fánk. Ennek eredményeként az energiaköltség hash-ban kifejezve számomra, mint emberi bányász 67 kvadrilliószor magasabb. Igen, egyértelmű, hogy nem fogom elérni Sok sikert a kézi Bitcoin bányászathoz, és ez még a papír és a toll költségét sem vesszük figyelembe!