Sudėtingumas

Kas yra sudėtingumas?

Kriptovaliutų srityje terminas „sudėtingumas“ reiškia pastangas, reikalingas blokui iškasti. Proof-of-Work (PoW) blokų grandinėse taikomos tam tikros taisyklės, dėl kurių sudėtingumas didėja arba mažėja priklausomai nuo maišos naudojimo galios kiekio tinkle. Tai daroma siekiant užtikrinti, kad blokai nebūtų kuriami per greitai, ir palaikyti nuolatinį tinklo saugumą.
Pavyzdžiui, bitkoinas nustato bloko laiką maždaug dešimčiai minučių (vidutinis laikas, per kurį randamas naujas blokas). Jei blokai randami per greitai, tinklas padidina sudėtingumą, o tai efektyviai sumažina kasimo tikslo slenkstį.

Ir atvirkščiai – jei blokų paieška užtrunka per ilgai, sudėtingumas sumažėja, padidindamas tikslą. Šis tikslas yra skaičius, kuris periodiškai nustatomas iš naujo. Norėdamas sėkmingai iškasti bloką, kasėjas turi rasti maišą, mažesnę už šį skaičių.

Kaip veikia kasimas: supaprastintas pavyzdys

Čia galime pasitelkti paprastą pavyzdį. Tarkime, turime terminą „binance“ ir norime sukurti SHA256 maišą, kurios išvestis skaitine prasme būtų mažesnė už konkretaus tikslo, kuris apytiksliai atitinka šešioliktainio pavidalo maišas, prasidedančias tam tikru nulių skaičiumi.

Realiame kasime kasėjai bando rasti maišos reikšmę, mažesnę už tikslą, kuris yra labai didelis, pateikiamas 256 bitų formatu. Tai galime pavaizduoti iteratyviai pridėdami skaičius prie „binance“ (pvz., „binance1“, „binance2“, „binance3“) ir skaičiuojant maišą, kol gausime maišos išvestį, atitinkančią supaprastintą kriterijų, pvz., prasidedančią nuliais.

Kai pasiekiame „binance10“, mums pavyksta. Jei norime, kad pirmieji du simboliai būtų „0“, turime tęsti maišos skaičiavimą iki „binance99“. Kad gautume tris nulius, turime tęsti maišą iki „binance458“. O jei reikia keturių nulių? Tarp pirmųjų dvidešimties milijonų skaičių nėra įvesties, kuri pateiktų tokią išvestį.

Tai turėtų padėti suprasti, kaip veikia kasimas, tik skirtumas tas, kad kasėjai bando rasti skaičių, kuris yra žemiau tikslo. Kuo šis tikslas mažesnis, tuo sunkiau rasti sprendimą, todėl bitkoinas sunaudoja tiek daug skaičiavimo galios. Kasėjai pakartotinai nustatinėja tos pačios informacijos maišų variacijas, kad rastų galiojančią maišą.

Sudėtingumo koregavimas

Bitkoinas koreguoja kasimo sudėtingumą maždaug kas 2016 blokų (maždaug kas dvi savaites), kad išlaikytų vidutinį 10 minučių bloko laiką. Šis koregavimas grindžiamas tuo, kiek laiko užtruko iškasti paskutinius 2016 blokų. Jei blokai buvo iškasti greičiau, nei tikėtasi, sudėtingumas didėja, kad kasimas taptų sunkesnis; jei lėčiau – sudėtingumas mažėja, kad kasimas taptų lengvesnis.

Kasimo aparatinės įrangos evoliucija

Kadangi bitkoiną kasti taip sudėtinga, dalyviai jau seniai atsisakė įprastų kompiuterių ir vaizdo plokščių, pasirinkdami specialiai sukurtą aparatinę įrangą, vadinamą ASIC (specialiosios paskirties integriniais grandynais). 

Kasimas tapo pramoninio masto veikla, kurioje dominuoja dideli kasimo ūkiai su specializuota įranga, atspindinčia konkurencingą tinklo pobūdį ir didėjantį sudėtingumą.

Ne visos kriptovaliutos naudoja PoW

Verta pažymėti, kad ne visos kriptovaliutos naudoja PoW arba turi kasimo sudėtingumą. Pavyzdžiui, Ethereum perėjo prie statymo įrodymo (PoS) sutarimo mechanizmo, kuriam nereikia kasimo ar sudėtingumo koregavimų.

Išvada

Sudėtingumas yra dinaminis parametras, kuris užtikrina PoW blokų grandinių saugumą ir stabilumą, reguliuodamas, kiek skaičiavimo darbo reikia naujiems blokams iškasti. Jis prisitaiko prie tinklo maišos galios pokyčių, kad būtų palaikomas pastovus blokų kūrimo tempas ir užtikrinamas nuoseklus blokų grandinės veikimas.