Kuidas plokiahel töötab?
Avaleht
Artiklid
Kuidas plokiahel töötab?

Kuidas plokiahel töötab?

Keskmine
Avaldatud Dec 9, 2018Värskendatud Oct 4, 2022
5m

Mis on plokiahel?

Lühidalt öeldes on plokiahel andmekirjete loend, mis töötab detsentraliseeritud digitaalse arvestusraamatuna. Andmed on jaotatud plokkideks, mis on kronoloogiliselt järjestatud ja kaitstud krüptograafia abil. 

Varaseim plokiahela mudel loodi 1990. aastate alguses, kui arvutiteadlane Stuart Haber ja füüsik W. Scott Stornetta kasutasid krüptograafilisi tehnikaid plokkide ahelas, et kaitsta digitaalseid dokumente andmete muutmise eest. 

Haberi ja Stornetta töö inspireeris kindlasti ka paljude teiste arvutiteadlaste ja krüptograafiahuviliste tööd – mis viis lõpuks Bitcoini kui esimese detsentraliseeritud elektroonilise rahasüsteemi (või lihtsalt esimese krüptoraha) loomiseni.

Kuigi plokiahela tehnoloogia on vanem kui krüptoraha, hakati selle potentsiaali teadvustama alles pärast Bitcoini loomist 2008. aastal. Sellest ajast alates on huvi plokiahela tehnoloogia vastu järk-järgult kasvanud ja krüptorahasid tunnustatakse nüüd laiemalt.

Plokiahela tehnoloogiat kasutatakse enamasti krüptorahatehingute salvestamiseks, kuid see sobib ka palju teist tüüpi digitaalsete andmetega ja seda saab rakendada väga erinevatel kasutusjuhtudel. Vanim, ohutum ja suurim plokiahela võrk on Bitcoin, mis loodi krüptograafia ja mänguteooria hoolika ja tasakaalustatud kombinatsiooniga.


Kuidas plokiahel töötab?

Krüptovaluutade kontekstis koosneb plokiahel stabiilsest plokkide ahelast, millest igaüks salvestab eelnevalt kinnitatud tehingute loendi.  Kuna plokiahela võrku haldavad lugematu arv arvuteid, mis on levinud üle maailma, toimib see detsentraliseeritud andmebaasina (või arvestusraamatuna). See tähendab, et iga osaleja (sõlm) säilitab plokiahela andmete koopia ja nad suhtlevad üksteisega tagamaks, et nad kõik asuvad samal lehel (või plokis).

Seetõttu toimuvad plokiahela tehingud peer-to-peer globaalses võrgus ja see muudab Bitcoini detsentraliseeritud digitaalseks rahaks, mis on piirideta ja tsensuurikindel. Lisaks peetakse enamikku plokiahela süsteeme usaldusetuks, kuna need ei vaja mingit usaldust. Ei ole ühtki asutust, mis kontrolliks Bitcoini.

Peaaegu iga plokiahela keskne osa on kaevandamisprotsess, mis põhineb räsimisalgoritmidel. Bitcoin kasutab SHA-256 algoritmi (Secure hash algoritm 256 bits). See võtab mis tahes pikkusega sisendi ja genereerib väljundi, mis on alati sama pikkusega. Toodetud väljundit nimetatakse „räsiks“ ja sel juhul koosneb see alati 64 märgist (256 bitti).

Nii et sama sisendi tulemuseks on sama väljund, olenemata sellest, mitu korda protsessi korratakse. Aga kui sisendis teha väike muudatus, muutub väljund täielikult. Sellisena on räsifunktsioonid deterministlikud ja krüptoraha maailmas on enamik neist loodud ühesuunalise räsifunktsioonina.

Ühesuunaline funktsioon tähendab, et peaaegu võimatu on arvutada, mis oli väljundist sisend. Võib vaid oletada, mis sisend oli, kuid tõenäosus seda õigesti ära arvata on äärmiselt väike. See on üks põhjusi, miks Bitcoini plokiahel on turvaline.

Nüüd, kui teame, mida algoritm teeb, demonstreerime lihtsa tehingu näitega, kuidas plokiahel töötab.

Kujuta ette, et Alice'il ja Bobil on Bitcoini saldod. Oletame, et Alice võlgneb Bobile 2 Bitcoini.

Et Alice saadaks Bobile need 2 bitcoini, saadab Alice kõigile võrgu kaevandajatele sõnumi tehinguga, mille ta soovib teha.

Selles tehingus annab Alice kaevandajatele Bobi aadressi ja Bitcoinide koguse, mida ta soovib saata, koos digitaalallkirja ja avaliku võtmega. Allkiri tehakse Alice'i privaatse võtmega ja kaevandajad saavad kinnitada, et Alice on tegelikult nende müntide omanik.

Kui kaevandajad on kindlad, et tehing on kehtiv, saavad nad panna selle koos paljude teiste tehingutega plokki ja proovida plokki kaevandada. Seda tehakse, viies ploki läbi SHA-256 algoritmi. Väljund peab algama teatud arvu 0-dega, et seda lugeda kehtivaks. Vajalike 0-de hulk sõltub sellest, mida nimetatakse „raskuseks“, mis muutub sõltuvalt sellest, kui palju arvutusvõimsust võrgus on.

Väljundräsi loomiseks soovitud arvu 0-dega selle alguses lisavad kaevandajad plokki nn „nonsi“ enne selle algoritmi läbimist. Kuna sisendi väike muudatus muudab väljundit täielikult, proovivad kaevandajad juhuslikke nonsse, kuni leiavad kehtiva väljundräsi.

Kui plokk on kaevandatud, saadab kaevandaja selle äsja kaevandatud ploki kõigile teistele kaevandajatele. Seejärel kontrollivad nad, kas plokk on kehtiv, et nad saaksid selle lisada oma plokiahela koopiasse ja tehing on lõpule viidud. Kuid plokki peavad kaevandajad lisama ka eelmise ploki väljundräsi, et kõik plokid oleksid omavahel seotud, sellest ka nimi plokiahel. See on oluline osa, sest süsteemis toimib usaldus.

Igal kaevandajal on oma arvutis oma plokiahela koopia ja igaüks usaldab seda plokiahelat, millesse on tehtud kõige rohkem arvutuslikku tööd, kõige pikemat plokiahelat. Kui kaevandaja muudab tehingut eelmises plokis, muutub selle ploki väljundräsi, mis toob kaasa muutuse ka kõikides järgmistes plokkides, kuna plokid koostatakse räsidega. Kaevandaja peaks kogu töö uuesti tegema, et keegi tema plokiahelat õigeks tunnistaks. Seega, kui kaevandaja tahaks petta, oleks tal vaja rohkem kui 50% võrgu arvutusvõimsusest, mis on väga ebatõenäoline. Selliseid võrgurünnakuid nimetatakse seetõttu 51% rünnakuteks.

Arvutite tööle panemise mudelit plokkide tootmiseks nimetatakse töötõenduseks (PoW), on ka teisi mudeleid, nagu panuse tõendus (PoS), mis ei nõua nii palju arvutusvõimsust ja on mõeldud vähem elektrit nõudma, mida samas on võimalik skaleerida rohkematele kasutajatele.