Avaleht
Artiklid
Mis on töötõendus (Proof of Work - PoW)?

Mis on töötõendus (Proof of Work - PoW)?

Keskmine
Avaldatud Dec 6, 2018Värskendatud Apr 18, 2024
10m

Võtmepunktid

  • Töötõendus (PoW - Proof of Work) on konsensusmehhanism, mis on loodud selleks, et vältida topeltkulusid digitaalsetes maksesüsteemides.

  • PoW on kaevandamisprotsessi võtmeosa, mis hõlmab uute tehinguplokkide lisamist plokiahelasse ja uute krüptorahaühikute loomist.

  • Bitcoin ja paljud teised krüptorahad kasutavad PoW-d oma plokiahela võrgu ja andmete turvamiseks.

Sissejuhatus

Lühidalt on töötõendus (PoW) mehhanism, mis on loodud selleks, et vältida topeltkulusid digitaalsetes maksesüsteemides. Bitcoin ja paljud teised krüptorahad kasutavad PoW-d oma plokiahela võrgu ja andmete turvamiseks. Selliseid mehhanisme nimetatakse sageli konsensusalgoritmideks või konsensusmehhanismideks, kuna need hõlmavad mitut osapoolt, kes saavutavad konsensuse, ilma et oleks vaja üksteist usaldada.

Töötõendus oli esimene konsensusalgoritm, mis ilmus ja see on endiselt üks olulisemaid koos panuse tõendusega (PoS - Proof of Stake). Töötõendust tutvustas Satoshi Nakamoto 2008. aasta Bitcoini valges raamatus, kuid tehnoloogia ise loodi juba palju varem.

Adam Backi HashCash on varajane näide töötõenduse algoritmist krüptorahaeelsetel aegadel. Nõudes saatjatelt enne e-kirjade saatmist väikest arvutustööd, võivad vastuvõtjad rämpsposti vähendada. See arvutus ei maksaks legitiimsele saatjale praktiliselt midagi, kuid jookseb kiiresti kokku, kui keegi saadab massiliselt e-kirju.

Mis on topeltkulutus?

Topeltkulutus tekib siis, kui samu vahendeid kulutatakse rohkem kui üks kord. Seda terminit kasutatakse peaaegu eranditult digitaalse raha kontekstis – lõppude lõpuks on raske kaks korda sama füüsilist raha kulutada. 

Täna kohvi eest tasudes annad sularaha üle kassapidajale, kes selle tõenäoliselt registrisse lukustab. Ei saa minna üle tee asuvasse kohvikusse ja maksta sama arvega teise kohvi eest. Digitaalsetes rahasüsteemides on aga võimalus, et seda saab teha. 

Enne kopeerimis- ja kleepimiskäskude kasutamist oled kindlasti arvutifaili dubleerinud. Samuti on lihtne sama faili saata kümnetele inimestele. Kuna digitaalne raha on lihtsalt andmed, tuleb takistada inimesi topeltkulutamist, st samade ühikute kopeerimist ja kulutamist eri kohtades. Digitaalne maksesüsteem, mis ei suuda vältida topeltkulutusi, kukub hetkega kokku.

Topeltkulutustest põhjalikuma ülevaate saamiseks loe artiklit Topeltkulutuse seletus.

Miks on töötõendus vajalik?

Kui oled lugenud meie artiklit plokiahela tehnoloogia kohta, siis tead, et krüptoraha kasutajad edastavad võrku pidevalt tehinguid. Neid tehinguid ei peeta siiski kohe kehtivaks. See juhtub ainult siis, kui need kinnitatakse ja plokiahelasse lisatakse.

Näiteks Bitcoini plokiahel töötab avaliku tehingute andmebaasina (arvestusraamatuna), mida iga kasutaja näeb. Kujuta ette seda nii: sul ja kolmel sõbral on märkmik sinu bitcoini tehingute jälgimiseks. Iga kord, kui keegi teist soovib väärtust üle kanda, kirjutate selle üles:

Alice maksab Bobile 5 BTC; Bob maksab Carolile 2 BTC-d jne.

Kuid iga kord, kui teete tehingu, viitate tehingule, kust raha tuli. Seega, kui Bob maksaks Carolile 2 BTC-ga, näeks sissekanne tegelikult välja järgmiselt: 

Bob maksab Carolile 2 BTC-d, mis pärinesid sellest varasemast tehingust Alice'iga.

Nüüd on meil viis BTC ühikute jälgimiseks. Kui Bob üritab teha uue tehingu, kasutades sama 2 BTC-d, mille ta just Carolile saatis, saavad kõik sellest kohe teada. Grupp ei luba tehingut märkmikusse lisada, kuna need 2 BTC-d on juba kulutatud.

See võib väikeses rühmas hästi toimida. Kõik tunnevad üksteist, nii et tõenäoliselt lepivad nad kokku, kes sõpradest peaks märkmikusse tehinguid lisama. Mis siis, kui tahame 10 000 osalejaga rühma? Märkmiku idee ei skaleeru hästi, sest keegi ei taha usaldada võõrast inimest seda haldama.

Siin tulebki mängu töötõendus. See tagab, et kasutajad ei kuluta raha, mida neil pole õigust kulutada. Kasutades mänguteooria ja krüptograafia kombinatsiooni, võimaldab PoW-algoritm igaühel plokiahelat uuendada vastavalt süsteemi reeglitele.

Kuidas töötõendus toimib?

Kujuta ette, et meie ülaltoodud näite märkmik on plokiahel. Kuid me ei lisa tehinguid ükshaaval, vaid koondame need plokkidesse. Me teatame tehingutest võrku, seejärel lisavad plokki loovad kasutajad need kandidaatplokki. Tehinguid loetakse kehtivaks alles siis, kui nende kandidaatplokk muutub kinnitatud plokiks, mis tähendab, et see on plokiahelasse lisatud.

Tehingute kinnitamise ja uute plokkide lisamise protsessi nimetatakse kaevandamiseks. See on kallis ja raske, kuid see võib olla ka tulus. Ploki tasu koosneb kasutajate tehingutasudest ja protokolliga loodud uhiuutest bitcoinidest. 

Töötõenduse mehhanism nõuab, et kaevandaja (ploki loov kasutaja) investeeriks ressursse, nagu elekter ja arvutusvõimsus, et räsida oma kandidaatploki andmeid, kuni mõistatusele lahendus leitakse.

Ploki andmete räsimine tähendab, et need lastakse läbi räsifunktsiooni, et genereerida ploki räsi. Ploki räsi toimib nagu "sõrmejälg" – see on sinu sisendandmete identiteet ja on iga ploki jaoks ainulaadne.

Teisisõnu peab kaevandaja kontrollima ja koguma ootel olevaid tehinguid, korraldama need kandidaatplokkidesse ja edastama ploki andmed läbi räsifunktsiooni, et luua kehtiv räsi. Kui neil õnnestub leida oma kandidaatplokile kehtiv räsi, edastavad nad selle võrku, lisavad ploki plokiahelasse ja koguvad kaevandamise tasu.

Kui kaevandaja edastab oma kandidaatploki ja räsi võrku, kordavad teised võrgus osalejad räsiprotsessi, et kontrollida, kas väljund on tõesti kehtiv. 

Kuigi kehtiva räsi leidmiseks kulub lugematu arv räsikatseid, on igaühe jaoks triviaalne kinnitada, et loodud räsi on õige. Nad peavad lihtsalt räsifunktsiooni kaudu esitama sama sisendi (ploki andmed) ja kontrollima, kas väljund on sama.

Töötõenduses peab esitama andmed, mille räsi vastab teatud tingimustele. Aga kuidas sinna jõuda, see pole teada. Ainus võimalus on edastada andmed läbi räsifunktsiooni ja kontrollida, kas need vastavad tingimustele. Kui seda ei juhtu, peab erineva räsi saamiseks andmeid veidi muutma. Andmetes kasvõi ühe märgi muutmine annab täiesti teistsuguse tulemuse, nii et pole võimalik ennustada, milline väljund võib olla.

Selle tulemusena, on ploki loomiseks vaja mängida äraarvamismängu. Tavaliselt võetakse teave kõigi tehingute kohta, mida soovitakse lisada ja veel teisi olulisi andmeid ning seejärel räsitakse need kokku. Kuid kuna andmestik ei muutu, on vaja lisada muutuvat teavet. Vastasel juhul saadaks väljundina alati sama räsi. Neid muutujaandmeid nimetatakse nonsiks. See on number, mida muudetakse iga katsega, nii et iga kord saadakse erinev räsi.

Kokkuvõtteks võib öelda, et kaevandamine on protsess, mille käigus kogutakse plokiahela andmeid ja räsitakse need koos räsimärgiga, kuni leitakse konkreetse räsi. Kes leiab räsi, mis vastab protokollis sätestatud tingimustele, saab õiguse uue ploki võrku levitada. Sel hetkel värskendavad teised võrgus osalejad oma plokiahelaid, et lisada uus plokk.

Tänapäeva suuremate krüptorahade jaoks on tingimuste täitmine uskumatult keeruline. Mida kõrgem on võrgu räsimäär, seda keerulisem on kehtivat räsi leida. Seda tehakse selleks, et plokke liiga kiiresti ei leitaks.

Nagu võid ette kujutada, võib suurte räsikoguste ära arvamine sinu arvutis osutuda kulukaks. Sa raiskad arvutustsükleid ja elektrit. Kuid protokoll premeerib sind krüptorahaga, kui leiad kehtiva räsi.

Võtame kokku, mida me seni teame:

  • Kaevandamine on võrgu turvalisuse seisukohalt üliolulise tähtsusega.

  • Kaevandajaid, kellel õnnestub toota kehtiv plokk, premeeritakse äsja emiteeritud krüptoraha ja tehingutasudega.

  • Kehtiva räsi genereerimine võtab aega, kuid teised kasutajad saavad räsiprotsessi korrates hõlpsasti selle kehtivust kontrollida.

Siiamaani on kõik korras. Aga mis siis, kui proovid petta? Mis takistab sind plokki panemast hunnikut petturlikke tehinguid ja tootmast kehtivat räsi?

Siin tulebki mängu avaliku võtmega krüptograafia. Selles artiklis me sellesse ei süvene, kuid loe artiklit „Mis on avaliku võtmega krüptograafia?“, et sellega põhjalikult tutvuda. Lühidalt öeldes on olemas mõned osavad krüptograafilised nipid, mis võimaldavad igal kasutajal kontrollida, kas kellelgi on õigus liigutada raha, mida nad üritavad kulutada.

Tehingu loomisel sa allkirjastad selle. Võrgus saab igaüks võrrelda sinu allkirja sinu avaliku võtmega ja kontrollida, kas need ühtivad. Samuti kontrollivad nad, kas saad oma raha tegelikult kulutada ja kas sinu sisendite summa on suurem kui sinu väljundite summa (st kas sa ei kuluta rohkem, kui sul on).

Võrk lükkab automaatselt tagasi kõik plokid, mis sisaldavad kehtetut tehingut. Isegi üritamine petta läheb sinu jaoks kalliks maksma. Raiskad oma ressursse ilma preemiat saamata.

Selles peitubki töötõenduse ilu: see muudab petmise kulukaks, kuid ausa tegutsemise tulusaks. Iga ratsionaalne kaevandaja püüdleb oma investeeringu tasuvuse poole, seega võib eeldada, et nad käituvad viisil, mis toob suurema tõenäosusega tulu.

Töötõendus (PoW) vs. panuse tõendus (PoS)

Peale PoW on palju konsensusalgoritme, kuid üks populaarsemaid on panuse tõendus (PoS). Kontseptsioon pärineb aastast 2011 ja seda on rakendatud Ethereumis ja mitmetes teistes protokollides.

Panuse tõenduse süsteemides asendatakse kaevandajad valideerijatega. Sellega ei kaasne kaevandamist ega võidujooksu räsi mõistatamiseks. Selle asemel valitakse kasutajad juhuslikult – kui nad valitakse, peavad nad välja pakkuma (või „sepistama“) ploki. Kui plokk on kehtiv, saavad nad preemiat, mis koosneb ploki tehingutasudest.

Valida ei saa aga ükskõik millist kasutajat – protokoll valib nad mitme teguri põhjal. Osalemiseks peavad osalejad lukustama panuse, mis on ettemääratud summa plokiahela natiivsest rahast. Panus toimib nagu kautsjon: nii nagu süüdistatavad panevad suure rahasumma, et takistada neil kohtuistungit vahele jätmast, lukustavad valideerijad panuse, et välistada petmist. Kui nad käituvad ebaausalt, võetakse nende panus (või osa sellest) ära.

Panuse tõendusel on töötõendusega võrreldes mõningaid eeliseid. Kõige tähelepanuväärsem on väiksem süsiniku jalajälg – kuna PoS-is pole vaja suure võimsusega kaevandusfarme, on tarbitav elektrienergia vaid murdosa PoW-s tarbitavast. 

Sellegi poolest pole PoS-il samad tulemused kui PoW-l. Kuigi seda võib pidada raiskavaks, on kaevandamine ainus konsensusalgoritm, mida on üle kümne aasta testitud. Alates selle käivitamisest on Bitcoini PoW taganud triljonite dollarite väärtuses tehinguid. Et kindlalt väita, kas PoS suudab oma turvalisusega konkureerida, tuleb panustamist korralikult pikas perspektiivis testida.

Lõppmärkused

Töötõendus oli algne lahendus topeltkulutamise probleemile ning see on osutunud usaldusväärseks ja turvaliseks. Bitcoin tõestas, et me ei vaja tsentraliseeritud üksusi, et vältida samade vahendite kahekordset kulutamist. Krüptograafia, räsifunktsioonide ja mänguteooria nutika kasutamisega saavad detsentraliseeritud keskkonnas osalejad finantsandmebaasi olekus kokku leppida.

Lisalugemist

Lahtiütlus: seda sisu esitatakse sellisel kujul, nagu see on, ainult üldiseks teabeks ja hariduslikel eesmärkidel, ilma igasuguse esinduse või garantiita. Seda ei tohiks tõlgendada kui finants-, juriidilist või muud professionaalset nõuannet ega soovitust konkreetse toote või teenuse ostmiseks. Peaksid küsima nõu asjakohastelt professionaalsetelt nõustajatelt. Kui artikli on koostanud kolmandast osapoolest kaastöötaja, pane tähele, et väljendatud seisukohad kuuluvad kolmandast osapoolest kaastöötajale ja ei pruugi kajastada Binance Academy omasid. Lisateabe saamiseks loe meie täielikku lahtiütlust siit. Digitaalsete varade hinnad võivad olla kõikuvad. Sinu investeeringu väärtus võib langeda või tõusta ja sa ei pruugi investeeritud summat tagasi saada. Sina vastutad ainuisikuliselt oma investeerimisotsuste eest ja Binance Academy ei vastuta võimalike kahjude eest. Seda materjali ei tohiks tõlgendada finants-, juriidilise või muu professionaalse nõuandena. Lisateabe saamiseks vaata meie kasutustingimusi ja riskihoiatust.