Nonce yra pagrindinė darbo įrodymo (PoW) kasybos algoritmo, skirto blokų grandinėms ir kriptovaliutoms, tokioms kaip Bitcoin, dalis. Kalnakasiai varžosi tarpusavyje suraskite nonce’ą, kuris sukuria maišos versiją, kurios vertė yra mažesnė arba lygi tinklo sunkumų nustatytai vertei. Jei kalnakasis randa tokią nonce, vadinamą a auksinė nonce, tada jie iškovoja teisę pridėti tą bloką į blokų grandinę ir gauti atlygį už bloką.

Nonce yra atsitiktinis, vienkartinis, sveikas skaičius. Kalnakasiai kiekvieną sekundę išbando ir išmeta milijonus nesąžiningų. Jie tikisi sukurti tikslą atitinkančią maišos vertę ir taip laimėti blokinį atlygį. Taip atsitinka pagrindiniame „PoW“ kasybos procese, nors tai yra daug daugiau. Čia mes išnagrinėsime visą nonce tikslą visame kasybos procese.

Statybiniai blokai su nonces

Nonce yra 32 bitų skaičius. Jis lieka bloko antraštėje kartu su kitais pagrindiniais duomenimis, pvz., Sunkumo taikiniu ir laiko žyme. Kai kalnakasiai kuria blokus, jie atsitiktinai pasirenka nonce ir įveda jį į bloko antraštę, sukurdami naują bloko antraštės maišos.

Maiša yra 256 bitų skaičius ir turi prasidėti nuo daugybės nulių, t. Y. Turėti neįtikėtinai mažą vertę. Jei jis neturi pakankamo nulių skaičiaus, tada kasėjas išmeta maišos variantą ir bando naują. Šis procesas kartojamas tol, kol kalnakasis atranda netiesą, kuri sukuria maišos vertę, mažesnę arba lygią, kurią nustato sunkumas..

Bloko struktūra

32 bitų „nonce“ dydis reiškia, kad yra keturi milijardai galimų derinių. Nors techniškai, jis yra daug didesnis dėl to, kas vadinama extra nonce. Tai yra papildoma vieta ilgesniam nenaudojimui, o tai reiškia, kad galite turėti dešimtis milijardų derinių.

Nonce yra vienintelis parametras, kurį keičia kalnakasis, visi kiti lieka statiniai. Jei kalnakasis randa auksinį nieką, jis prideda tą bloką prie blokų grandinės ir gauna blokinį atlygį. Šiuo metu jokiu būdu negalima pagreitinti teisingo nonce paieškos. Tai reiškia, kad kalnakasiai tiesiog veikia bandymų ir klaidų būdu, kol randa auksinį nieką. Šis procesas ir yra darbas, darbo įrodymu.

Ryšys su kasybos sunkumais

Kaip jau minėjome, kalnakasis bando surasti netą, kuris sukuria maišos, mažesnės už tinklo sunkumų nustatytą vertę. „Bitcoin“ protokolas nustato šiuos kasybos sunkumus. Didėjant sunkumui, tikslinė maišos vertė mažėja. Tai reiškia, kad maišos numerio pradžioje turi būti daugiau nulių. Mažesnės maišos vertės tikimybė sumažėja, todėl kalnakasiams tenka išbandyti daugiau nonces. Kai kalnakasis maišo bloką, maišos vertė turi būti lygi arba mažesnė už tikslinį skaičių, kad jis būtų sėkmingas.

Kasant Bitcoin, sunkumai koreguoja kiekvieną 2016 m. Tai pasiseka kas dvi savaites. Tačiau kitos „PoW“ blokų grandinės gali greičiau koreguoti. Pavyzdžiui, „Litecoin“ dėl trumpesnio blokavimo laiko jo sunkumai koreguojami kas tris su puse dienos. Kita vertus, „Digibyte“ realiuoju laiku koreguoja savo sunkumus kiekviename bloke.

Kodėl svarbu prisitaikymas

Jei sunkumai nesusitvarkytų, tarp maišos galios ir blokų atlygio būtų linijinis ryšys. Kai prie tinklo prisijungs daugiau kalnakasių ir padidės maišos galia, atitinkamai padidės ir Bitcoin atlygiai. Tai pakenktų „Bitcoin“ protokolo ir kartu jo patikimų pinigų savybių infliacijos kontrolei.

Laimei, turint sunkumų prisitaikant, kas dvi savaites blokų atlygiai gali būti palyginti stabilūs. Vis dėlto sunkumas gali būti ir mažesnis. Jei kasybos pelningumas išnyks, kalnakasiai nutrauks savo veiklą ir sumažės maišos norma. Tada sunkumai bus tinkamai sureguliuoti. Jau keletą mėnesių tai matėme „Bitcoin“ tinkle nuo sunkumas pasiekė aukščiausią tašką spalio 4 d.

„Bitcoin“ atveju po kiekvienų 2016 m. Blokų „Bitcoin“ klientas palygins kiekvieno sugeneruojamo bloko realųjį laiką ir tikslo laiką. Tada jis tinkamai sureguliuos sunkumus. Siekiama, kad kalnakasiai gamintų blokus kuo arčiau dešimties minučių.

Apsauga naudojant saugius maišos algoritmus

SHA-256 algoritmo atsparumas neleidžia kalnakasiams paspartinti ir apgauti bandymų ir klaidų proceso. SHA-256 priklauso SHA-2 saugių maišos algoritmų šeimai ir buvo paskelbta NSA 2001 m. Jei šis algoritmas būtų sugadintas, kaip atsitiko SHA-1 kriptografinių maišos algoritmų klasei, tada būtų pažeistas „PoW“ procesas..

Maišymo algoritmą sulaužyti galima keliais būdais. Turime omenyje galimybę apeiti bandymų ir klaidų metodą ir greičiau surasti teisingus trūkumus. Susidūrimo atakos yra naujausias ir efektyviausias būdas tai padaryti.

Visas saugaus maišos algoritmo tikslas yra užtikrinti maišos unikalumą. Kai duomenys maišo, įvestys turėtų sukurti visiškai unikalų maišos numerį. Vienintelis būdas tą patį skaičių gali būti pakartotas naudojant tas pačias įvestis, įskaitant nonce. Tačiau susidūrimo ataka reiškia, kad tas pats maišos gali būti gaminamas iš skirtingų įvesties elementų. Piktybinis veikėjas gali tai padaryti turėdamas pakankamai skaičiavimo išteklių. Tai visiškai pakerta saugaus maišos algoritmo paskirtį.

Maišos funkcija

Dabar, kai susidūrimo ataka pasirodė efektyvi prieš SHA-1 algoritmus, jais nebegalima pasikliauti. Išpuolis iš dalies buvo įmanomas dėl milžiniškos kompiuterių galios pažangos per pastarąjį dešimtmetį.

Tam tikru momentu, kai skaičiavimo galia bus pakankamai išaugusi, SHA-256 taip pat bus pažeidžiamas tokių išpuolių. Tačiau „Bitcoin“ kūrėjai turėtų tai žinoti dar ilgai, kol tai neįvyks. Taip yra todėl, kad teoriškai beveik visada tokie išpuoliai yra įmanomi, kol dar nėra įrodyta, kad jie veikia realiame gyvenime. Tada „Bitcoin Core“ komanda turėtų pasisukti link naujesnio ir griežtesnio algoritmo.

Taip pat verta paminėti, kad dauguma autentifikavimo protokolų internete šiuo metu naudoja SHA-2 algoritmus. Jei jie per naktį taptų pažeidžiami, turėtume didelių pasaulinių problemų, toli gražu ne tik Bitcoin kasyboje.

Darbo įrodymo vertė

Kalnakasiai naudoja savo aparatinę įrangą, kad išbandytų šias nesąmones – milijonų per sekundę greičiu. Tai, kad nėra galimybės greitai rasti „nonce“, „PoW“ išlaiko atvirą ir teisingą sistemą.

Naudinga šios sistemos ypatybė yra ta, kad norint išspręsti teisingą vertę ir gauti atlygį, reikia daug energijos, laiko ir kapitalo. Tačiau tuo pačiu metu kitiems mazgams yra nepaprastai lengva patikrinti teisingą vertę. Ši dichotomija užtikrina tinklo saugumą ir paprastą būdą pasiekti sutarimą.

Galų gale, tada nonce yra tik viena nedidelė Bitcoin kasybos proceso dalis. Tačiau jis vaidina svarbų vaidmenį išlaikant vientisumą. Nonce yra vienintelis dalykas, kurį kasykla keičia, kad rastų pakankamą maišos vertę. Iš tikrųjų tai yra akceleratorius, stabdys ir sankaba.