Blockchain technologija: kas tai?

0
Blockchain
Blockchain

Daugelis išgirdę apie Bitcoin, Ethereum, Monero arba bet kurią kitą kripto-valiutą, tuo pačiu susipažįsta ir su terminu Blockchain. Apie Blockchain paprastai rašoma, kad tai yra ateitis kuri pakeis pasaulį, tuo tarpu vis daugiau įmonių pradeda naudoti šią technologiją savo veiklose ir t.t. Tačiau, tikriausiai retas kuris iki galo supranta, kas gi tai yra tas magiškas žodis „Blockchain“.

Blockchain struktūra

Kaip technologijos pavadinimas jau ir sufleruoja – Blockchain’as yra tiesiog „mazgas“ (angl. node), kuris savyje turi daug blokų. Jeigu verstume pažodžiui (o gal tiksliau būtų – paraidžiui), tai ir gautume – Blokų grandinė.

Kiekviena valiuta turi truputį skirtingą Bloko struktūrą, tačiau daugelis parametrų sutampa. Bloką sudaro pagrindinė informacija, tokia kaip dydis (baitais), antraštė (angl. header), transakcijų skaičius bloke (sveikasis skaičius), bei, žinoma, pačios transakcijos.

Bloko antraštė (angl. header)

Antraštėje saugoma pati pagrindinė informacija apie šį unikalų bloką. Informacija susideda iš paskutinio bloko šifro (angl. hash, tai specialiu, vienpusiu šifru užkoduota paskutinio bloko informacija – apsauga, kad praeito bloko niekas negalėtų pakeisti), šio bloko transakcijų šifrolaiko, bei uždavinio sprendimo atsakymo (apie jį pakalbėsime vėliau).

Blockchain blokų struktūra
Blockchain blokų grandinė ir jų struktūra

Net nesigilinant į visiškus techninius niuansus, reiktų atkreipti dėmesį į šifrus (angl. hash, liet. maiša, nors šis lietuviškas terminas ir tikslus, tačiau daugeliui skamba ganėtinai keistai). Kompiuterių moksle egzistuoja tokios formulės, kurios gali užkoduoti informaciją į hash’us (pvz. MD5 arba SHA-256). Šios formulės įdomios tuo, kad turint konkrečią reikšmę (pvz. Bloko baitus), labai lengva juos užkoduoti, tačiau be galo sudėtinga atkoduoti. Tikslas toks – kad dekoduoti būtų neįmanoma, nebent bandant visas įmanomas kombinacijas (angl. brute force).

Taigi, jeigu užkoduojamas pats blokas bei į tą bloką įeina prieš tai buvusio bloko šifras (o į tą dar prieš tai buvusio) – galima teigti, jog pakeisti praeities bloko transakcijų tampa beveik neįmanoma (egzistuoja, pvz. 51% ataka, bet apie ją – truputį vėliau).

Uždavinio sprendimo atsakymas. Ši vieta nors ir skamba nelabai įmantriai ir įdomiai, tačiau yra viena sudėtingiausių ir labai svyruoja nuo kiekvienos kriptovaliutos. Būtent šiam parametrui ir yra naudojama visa kasėjų (angl. miners) turima skaičiavimo galia (angl. computing power). Pvz. Bitcoin atveju naudojama „dviguba“ SHA-256 funkcija, kurią reikia dekoduoti. Siekiant kuo greitesnio atsakymo išskaičiavimo – mineriai kuriasi į bendruomenes (angl. mining pools) ir taip „pasidalina“ uždavinį.

Bloko transakcijos

Kiekviename bloke, žinoma, saugomas pagrindinis dalykas – transakcijos, kurios įvyko bloko kūrimo metu. Beje, čia įdomu tai, kad pirmoji transakcija būna netikra – kasėjas „iš niekur“ persisiunčia sau premiją už kasimą (truputį daugiau apie tai aprašysime „Kasimo“ skiltyje). Jeigu bandytume suprasti tų transakcijų struktūrą – pamatytume, kad „realiame pasaulyje“ tai atitiktų „didžiąją knygą“.

Blockchain ir didžioji knyga

Bitcoin P2P transakcijos skelbimas
Bitcoin P2P transakcijos ir jų skelbimas

Norint išsiaiškinti kaip veikia Blockchain, svarbu pradėti nuo pamatų – t.y. kiekvienos įmonės buhalterinėje apskaitoje naudojamo dokumento – Didžiosios knygos (angl. General ledger). Didžioji knyga, tai tiesiog visų transakcijų žurnalas, kuris galiausiai išskaičiuoja balansą.

Lygiai taip pat ir Blockchain – norint sužinoti vartotojo sąskaitos balansą (galbūt tiksliau sakant – kripto-piniginės balansą) mes turime žinoti visą valiutos „mazgą“ (angl. node, dar kitaip vadinama grandine, angl. chain), visas kada nors įvykusias transakcijas (pervedimus). Kad lengviau būtų suprasti – pateikiame pavyzdį.

Transakcijų Blockchain’e pavyzdys

Pvz. įsivaizduokime du asmenis, kurių pirmasis turi 30 vienteų kripto-valiutos, o antrasis – 10. Jeigu pirmasis pervedė 15 virtualios valiutos vienetų antrąjam, tai šių dviejų žmonių piniginių balansas bus atitinkamai – 15 ir 25. Būtent toks transakcijos įrašas ir įsirašys į Blockchain bloką.

Transakcijų atsiradimas

Dabar, kai jau žinome, kaip atrodo išsaugotos transakcijos šioje technologijoje, kyla natūralus klausimas – o kaip jos atsiranda.

Viskas ganėtinai paprasta – tam reikia turėti piniginę (tiksliau šnekant piniginės adresą) ir „privatų raktą“. Piniginės adresas suteikiamas visiškai atsitiktinis įsidiegus, pvz. Bitcoin, piniginę ir yra tiesiog skaičių/raidžių kratinys. „Privatus raktas“ – yra didžiulis skaičius (kuris svyruoja priklausomai nuo technologijos) ir yra daugeliu atveju saugomas pačioje piniginėje. Būtent tam ir yra šifruojamos piniginės – apsaugomas privatus raktas.

Taigi, kai turime ir piniginę ir privatų raktą – pasirašome norimą transakciją ir ją paskelbiame tinkle. Visa tai vyksta P2P (angl. peer to peer) technologija – skelbiame atsisiktiniams kitiems tinklo kompiuteriams, o jie skelbia tolyn. Lygiai tokia pačia technologija veikia ir torrent’ų atsisiuntimas. Šias transakcijas pasiima kasėjai (mineriai) ir jas deda į blokus – apie tai jau rašėme keliomis pastraipomis anksčiau.

Saugumas

Dažnai galime išgirsti apie Blockchain technologiją dėl jos saugumo, nors čia reiktų rašyti didelį BET. Nors pati technologijos idėja atrodo nepriekaištinga, tačiau turi ir tikrai didelių trūkumų.

Svarbiausias saugumo elementas yra būtent kiekvieno bloko turima informacija apie prieš tai buvusius blokus (bloko antraštėje yra prieš tai buvusio bloko šifras, o į jį įeina dar prieš tai buvusio bloko šifras ir t.t.). Dėl tokio tipo šifravimo, vėlgi, priklausomai nuo skirtingų Blockchain įgyvendinimų, transakcijos patvirtinimui reikalaujama ir kelių blokų po jo patvirtinimų. Pvz. Bitcoin transakcija sakoma kad įvykdyta kai įvyksta 10 po to einančių blokų patvirtinimų – nes pakeisti seną bloką tampa beveik neįmanoma – reikia keisti ir paskesnius.

50% + 1 ataka

Pagrindinė problema su kuria gali susidurti visos kriptovaliutos – 50% + 1 ataka. Kadangi Blockchain yra visiškai decentralizuotas, t.y. neturi vienos tikros visų blokų kopijos (ji yra pas visus naudotojus), jeigu 50% ir dar vienas naudotojas (dauguma) praneštų kad yra kitaip (pvz. Marytė turi 500 BTC) – taptų tiesa, nes tikros tiesos nėra.

Tiesa, 50% + 1 ataka Bitcoin, Ethereum ar kitoms populiariausioms Blockchain technologijos nėra didelė problema dėl didžiulio vartotojų ir kasėjų skaičiaus. Tačiau naujoms, ne tokioms populiarioms valiutoms – didžiulis iššūkis.

Kasimas (angl. mining)

Kasėjai – pagrindinis kriterijus, kad veiktų Blockchain. Juk jeigu niekas netvirtins transakcijų – jų ir nebus.

Bitcoin kasimas
Bitcoin kasimas

Kasėjai, naudodamiesi savo skaičiavimo galia (tai gali būti telefonai, kompiuteriai ar net speciali įranga) tvirtina transakcijas. Kad kasėjų būtų užtektinai – jie gauna premijas (angl. rewards) – tai pirma transakcija bloke, kai pats kasėjas iš niekur atsisiunčia sau valiutos.

Norint suvaldyti kriptovaliutų infliaciją, užprogramuota, kad bėgant laikui kasėjų premijos mažėja ir taip atsiranda mažiau „naujų“ pinigų. Tikslas yra, kad ateityje premijos sumažėtų iki minimalių arba iš viso dingtų. Būtent todėl prie kiekvienos transakcijos galima (dažnu atvėju tai nėra privaloma) nustatyti pavedimo mokestį (angl. fee). Šiuos mokesčius taip pat pasiima kasėjai.

Jeigu mažiau populiariose valiutose dar įmanoma padaryti pavedimą ir be mokesčių – didžiosiose – to padaryti nepavyks. Dėl didžiulio transakcijų skaičiaus (kiekviana Blockchain adaptacija turi savo bloko dydžio limitus) visi pavedimai nebetelpa. Dėl to norint atlikti pavedimą reikia vis didesnio mokesčio (juk kasėjai ima tvirtinti „vertingiausias“ transakcijas). Tai viena didžiausių problemų pvz. Bitcoin transakcijos tampa ganėtinai brangios.

Kasimo pool’ai (angl. mining pools)

Norint išskaičiuoti (iškasti/rasti ir pan.) bloką reikia nemažos skaičiavimo galios. Kuo didesnė galia tuo didesnė ir tikimybė, kad Jums pasiseks.

Turėti labai daug resursų yra ir labai brangu, ir labai rizikinga. Būtent todėl žmonės jungiasi į grupes (kasimo pool’ų platformas), pasidalina skaičiavimus ir „sujungia“ savo skaičiavimo galią. Atlikus skaičiavimus lokaliose mašinose (pvz. asmeniniuose kompiuteriuose), išsskaičiuoti rezultatai siunčiami į pool’ą (siunčiami, taip vadinami, share’ai), kur jie apjungiami ir rašomi į Blockchain tinklą, kaip vieno kasėjo (nes visa galia „sujungta“). Gautas atlygis dalinamas dalimis, priklausomai nuo įdėto indėlio.

Žinoma, pool’ai pasiima kažkokį procentą (pvz. vieną) ir sau, juk jie apdoroja šimtus užklausų iš visų vartotojų. Dažnu atveju kiekvienam pool’o nariui yra mokamos išmokos pagal kokią nors sistemą. Šiuo metu populiariausios dvi sistemos – PPLNS ir PPS.

Mokėjimas už N paskutinių dalių (angl. PPLNS – Pay per last n shares)

Naudingiausias tiems, kurie kasa daugiau kaip 24 valandas. Mokama ne už kiekvieną išsiųstą skaičiavimą (angl. share) į pool’ą, o už indėlį, tarkime per 30 min. Dažniausiai kasant šiuo modeliu būna ir mažesni mokesčiai – taip skatinama ilgesnį laiką užsiimti kasimu.

Mokėjimas už dalį (angl. PPS – Pay per share)

Dažnu atveju naudingas tik tiems, kurie kasa labai trumpą laiką. Mokama už kiekvieną skaičiavimą (angl. share), kuris buvo nusiųstas į pool’ą. Dažnai imami didesni mokesčiai.

Blockchain technologijos adaptacijos

Pirmoji ir populiariausia, vienareikšmiškai – Bitcoin, tačiau reiktų nepamiršti, kad Blockchain technologija gali būti naudojama ne tik valiutoms. Blockchain gali būti naudojama duomenų, kurie keliauja kaip nuosavybė ir negali būti keičiami, saugojimui. Šiuo metu vyksta daug šios technologijos bandymų ir pritaikymų – nuo tapatybės kortelių, aviacijos įrašų iki valstybinių pinigų, ar kripto valiutų kūrimo.

PALIKTI KOMENTARĄ

Įrakytike komentarą
Įveskite savo vardą