Pradžia
Straipsniai
Kas yra „Proof of Work“ (POW)?

Kas yra „Proof of Work“ (POW)?

Paskelbta Dec 6, 2018Naujinta Apr 18, 2024
10m

Pagrindiniai pranašumai

  • Proof of Work (PoW) – tai sutarimo mechanizmas, sukurtas siekiant išvengti dvigubų išlaidų skaitmeninėse mokėjimo sistemose.

  • PoW yra pagrindinė kasybos proceso dalis, apimanti naujų sandorių blokų įtraukimą į blokų grandinę ir naujų kriptovaliutos vienetų kūrimą.

  • Bitkoinas ir daugelis kitų kriptovaliutų naudoja PoW kaip savo blokų grandinės tinklo ir duomenų apsaugos metodą.

Įvadas

Trumpai tariant, Proof of Work (PoW) yra mechanizmas, sukurtas siekiant išvengti dvigubų išlaidų skaitmeninėse mokėjimo sistemose. Bitkoinas ir daugelis kitų kriptovaliutų naudoja PoW kaip savo blokų grandinės tinklo ir duomenų apsaugos metodą. Tokie mechanizmai dažnai vadinami sutarimo algoritmais arba sutarimo mechanizmais, nes juose dalyvauja kelios šalys, pasiekiančios sutarimą be būtinybės pasitikėti viena kita.

Proof of Work buvo pirmasis sutarimo algoritmas, kuris atsirado ir kartu su statymo įrodymu (PoS) išliko vienas svarbiausių. PoW 2008 m. bitkoino informaciniame dokumente pristatė Satoshi Nakamoto, tačiau pati technologija buvo sumanyta gerokai anksčiau.

Adamas Backas pateikė HashCash – Proof-of-Work algoritmo pavyzdį – dar iki pradedant naudoti kriptovaliutą. Reikalaudami, kad siuntėjai prieš siųsdami el. laišką atliktų nedidelį skaičiavimą, gavėjai galėjo sumažinti šlamšto kiekį. Šis skaičiavimas teisėtam siuntėjui beveik nieko nekainavo ir buvo greitai atliekamas kam nors siunčiant el. laiškus masiškai.

Kas yra dvigubos išlaidos?

Dvigubos išlaidos atsiranda tada, kai tos pačios lėšos išleidžiamos daugiau nei vieną kartą. Šis terminas vartojamas beveik išimtinai kalbant apie skaitmeninius pinigus – juk būtų sunku du kartus išleisti tuos pačius fizinius pinigus. 

Kai mokate už kavą, grynuosius atiduodate kasininkui, kuris tikriausiai užrakina juos kasoje. Negalite nueiti į kavinę kitoje kelio pusėje ir sumokėti už kitą kavą tais pačiais pinigais. Tačiau skaitmeninėse grynųjų pinigų sistemose egzistuoja galimybė tai padaryti. 

Prieš naudodami kopijavimo ir įklijavimo komandas, tikrai dubliuojate kompiuterio failą. Taip pat lengva išsiųsti tą patį failą el. paštu daugybei žmonių. Skaitmeniniai pinigai yra tik duomenys, todėl turite saugotis dvigubų išlaidų, t. y. tų pačių vienetų kopijavimo ir išleidimo skirtingose vietose. Skaitmeninė mokėjimo sistema, kuriai nepavyksta išvengti dvigubų išlaidų, greitai žlugs.

Norėdami sužinoti daugiau apie dvigubas išlaidas, žr. dvigubų išlaidų paaiškinimą.

Kodėl verta naudoti Proof-of-Work?

Jei perskaitėte mūsų straipsnį apie blokų grandinės technologiją, žinosite, kad kriptovaliutų vartotojai nuolat perduoda sandorius į tinklą. Tačiau šie sandoriai ne iš karto laikomi galiojančiais. Tai atsitinka tik tada, kai jie patvirtinami ir pridedami prie blokų grandinės.

Pavyzdžiui, bitkoinų blokų grandinė veikia kaip vieša sandorių duomenų bazė (registras), kurią gali matyti kiekvienas vartotojas. Įsivaizduokite taip: jūs ir trys draugai turite užrašų knygelę, skirtą savo bitkoinų sandoriams sekti. Kiekvieną kartą, kai vienas iš jūsų nori perkelti vertę, tai užsirašote:

Alisa sumokėjo Bobui 5 BTC; Bobas sumokėjo Karolinai 2 BTC ir kt.

Tačiau kiekvieną kartą atlikdami sandorį nurodote sandorį, iš kur buvo gautos lėšos. Taigi, jei Bobas sumokėjo Karolinai 2 BTC, įrašas iš tikrųjų atrodytų taip: 

Bobas sumokėjo Karolinai 2 BTC, gautus iš ankstesnio sandorio su Alisa.

Taigi turime būdą BTC vienetams sekti. Jei Bobas bandys atlikti kitą sandorį naudodamas tuos pačius 2 BTC, kuriuos ką tik išsiuntė Karolina, visi iš karto sužinos. Grupė neleis sandorio įtraukti į užrašų knygelę, nes tie 2 BTC jau buvo išleisti.

Tai gerai veikia mažoje grupėje. Visi vieni kitus pažįsta, todėl tikriausiai susitars, kuris iš draugų turėtų įtraukti sandorius į užrašų knygelę. O jei norime tai naudoti 10 000 dalyvių grupėje? Užrašų knygelė nėra lengvai išplečiama, nes niekas nenori patikėti ją valdyti nepažįstamajam.

Štai čia pasirodo naudingas Proof-of-Work. Jis užtikrina, kad vartotojai neišleistų pinigų, kurių neturi teisės leisti. Naudojant žaidimo teorijos ir kriptografijos derinį, PoW algoritmas leidžia bet kam atnaujinti blokų grandinę pagal sistemos taisykles.

Kaip veikia PoW?

Įsivaizduokite, kad mūsų užrašų knygelė iš anksčiau pateikto pavyzdžio yra blokų grandinė. Tačiau sandorių po vieną neįtraukiame – vietoj to sujungiame juos į blokus. Mes paskelbiame apie sandorius tinklui, o tada bloką kuriantys vartotojai įtraukia juos į kandidatų bloką. Sandoriai bus laikomi galiojančiais tik tada, kai jų kandidatų blokas taps patvirtintu bloku, tai reiškia, kad jis bus įtrauktas į blokų grandinės duomenų bazę.

Sandorių patvirtinimo ir naujų blokų pridėjimo procesas vadinamas kasyba. Tai brangu ir sudėtinga, bet už tai gali būti ir atlyginta. Bloko atlygis sudaromas iš vartotojų sandorių mokesčių ir visiškai naujų bitkoinų, sukurtų pagal protokolą. 

Proof-of-Work mechanizmas reikalauja, kad kasėjas (vartotojas, kuriantis bloką) investuotų išteklius, pvz., elektrą ir skaičiavimo galią, kad galėtų taikyti maišą savo kandidatų bloko duomenims, kol bus rastas galvosūkio sprendimas.

Maišos taikymas bloko duomenims reiškia, kad jie perduodami per maišos funkciją, kad būtų sugeneruota bloko maiša. Bloko maiša veikia kaip „pirštų atspaudas“ – tai jūsų įvesties duomenų tapatybė, unikali kiekvienam blokui.

Kitaip tariant, kasėjas turi patikrinti ir surinkti laukiančias operacijas, suskirstyti jas į kandidatų bloką ir perduoti bloko duomenis per maišos funkciją, kad būtų sukurta tinkama maiša. Jei jiems pavyksta rasti tinkamą savo kandidatų bloko maišą, jie perduoda ją į tinklą, įtraukia bloką į blokų grandinę ir renka atlyginimus už kasybą.

Kai kasėjas perduoda savo kandidatų bloką ir maišą į tinklą, kiti tinklo dalyviai pakartoja maišos taikymo procesą, kad patikrintų, ar išvestis tikrai galioja. 

Nors reikia daugybės maišos taikymo bandymų norint rasti tinkamą maišą, bet patvirtinti, kad sugeneruota maiša yra teisinga, nesudėtinga bet kam. Jie tiesiog turi pateikti tą pačią įvestį (bloko duomenis) naudodami maišos funkciją ir patikrinti, ar išvestis yra tokia pat.

Proof-of-Work turite pateikti duomenis, kurių maiša atitinka tam tikras sąlygas. Bet jūs nežinote, kaip tai padaryti. Vienintelė galimybė yra perduoti duomenis per maišos funkciją ir patikrinti, ar jie atitinka sąlygas. Jei ne, turėsite šiek tiek pakeisti duomenis, kad gautumėte kitą maišą. Pakeitus net vieną duomenų simbolį, rezultatas bus visiškai kitoks, todėl neįmanoma nuspėti, kokia gali būti išvestis.

Dėl to, jei norėsite sukurti bloką, žaisite spėjimo žaidimą. Paprastai imate informaciją apie visus sandorius, kuriuos norite pridėti, ir kai kuriuos kitus svarbius duomenis, tada jiems visiems pritaikote maišą. Tačiau duomenų rinkinys nepasikeis, todėl turite pridėti informacijos, kuri yra kintama, dalį. Priešingu atveju visada gausite tą pačią maišą kaip ir išvestis. Šiuos kintamuosius duomenis vadiname vienkartiniu raktu. Tai skaičius, kurį keisite kiekvieną kartą, todėl kiekvieną kartą gausite skirtingą maišą.

Apibendrinant galima teigti, kad kasybos procesas yra blokų grandinės duomenų rinkimo ir maišos apdorojimas kartu su vienkartiniu raktu, kol bus rasta tam tikra maiša. Jei randate maišą, atitinkančią protokole nustatytas sąlygas, gaunate teisę perduoti naują bloką į tinklą. Šiuo metu kiti tinklo dalyviai atnaujina savo blokų grandines, kad įtrauktų naują bloką.

Šiuolaikinių pagrindinių kriptovaliutų sąlygos yra neįtikėtinai sudėtingos. Kuo didesnis maišos koeficientas tinkle, tuo sunkiau rasti tinkamą maišą. Tai daroma siekiant užtikrinti, kad blokai nebūtų rasti per greitai.

Kaip galite įsivaizduoti, bandymas atspėti didelius maišos kiekius savo kompiuteryje gali brangiai kainuoti. Švaistote skaičiavimo ciklus ir elektros energiją. Tačiau protokolas apdovanos jus kriptovaliuta, jei rasite tinkamą maišą.

Apibendrinkime tai, ką išsiaiškinome iki šiol:

  • kasyba yra sudėtinga ir brangi, tačiau užtikrina tinklo saugumą;

  • kasėjai, kuriems pavyksta pagaminti galiojantį bloką, gauna atlyginimą naujai išleistomis kriptovaliutomis ir sandorių mokesčiais;

  • tinkamos maišos generavimas užtrunka, tačiau kiti vartotojai gali lengvai patikrinti jos galiojimą kartodami maišos procesą.

Iki šiol viskas atrodo gerai. Bet kas, jei bandysite sukčiauti? Kas trukdo į bloką sudėti daugybę apgaulingų sandorių ir sukurti galiojančią maišą?

Štai čia panaudojama viešojo rakto kriptografija. Šiame straipsnyje į tai labai nesigilinsime, bet peržiūrėkite straipsnį „Kas yra viešojo rakto kriptografija?“, kur rasite išsamios informacijos apie tai. Trumpai tariant, yra kelios tvarkingos kriptografinės gudrybės, leidžiančios bet kuriam vartotojui patikrinti, ar kas nors turi teisę perkelti bandomas išleisti lėšas.

Sukūrę sandorį jį pasirašote. Kiekvienas, esantis tinkle, gali palyginti jūsų parašą su viešuoju raktu ir patikrinti, ar jie sutampa. Jie taip pat patikrins, ar iš tikrųjų galite išleisti savo lėšas ir ar jūsų įvesčių suma yra didesnė už jūsų išvesčių sumą (t. y. ar neišleidžiate daugiau, nei turite).

Bet kokį bloką, kuriame yra neteisingas sandoris, tinklas automatiškai atmes. Jums brangiai atsieis net bandymas apgauti. Iššvaistysite savo išteklius be jokio atlyginimo.

Čia ir slypi Proof-of-Work grožis: apgaudinėti yra brangu, bet naudinga elgtis sąžiningai. Bet kuris racionalus kasėjas sieks savo investicijų grąžos, todėl galima tikėtis, kad jis elgsis taip, kad turėtų didesnę tikimybę sulaukti pajamų.

„Proof of Work“ (POW) ir „Proof of Stake“ (POS)

Be PoW, yra daugybė sutarimo algoritmų, tačiau vienas populiariausių yra statymo įrodymas (PoS). Ši koncepcija atsirado 2011 m. ir buvo įdiegta Ethereum ir keliuose kituose protokoluose.

Statymo įrodymo sistemose kasėjai pakeičiami tvirtintojais. Čia nevykdoma kasyba ir nelenktyniaujama, kas greičiau atspės maišą. Vietoje to vartotojai atrenkami atsitiktinai – jei jie yra atrenkami, jie turi pasiūlyti (arba „nukalti“) bloką. Jei blokas galioja, jie gaus atlygį, sudarytą iš mokesčių už bloko sandorius.

Tačiau galima pasirinkti ne bet kurį vartotoją – protokolas juos pasirenka pagal daugybę veiksnių. Kad atitiktų reikalavimus, dalyviai turi užblokuoti deleguojamas lėšas – iš anksto nustatytą blokų grandinės sumą vietine valiuta. Deleguojamos lėšos veikia kaip užstatas: lygiai taip pat, kaip kaltinamieji sumoka didelę pinigų sumą, skirtą atgrasyti juos nuo bandymų praleisti teismą, taip ir tikrintojai užrakina deleguojamas lėšas, kad tai atgrasytų juos nuo sukčiavimo. Jei jie veiks nesąžiningai, jų deleguotos lėšos (arba jų dalis) bus atimtos.

Statymo įrodymas turi pranašumų, palyginti su Proof-of-Work. Ryškiausias iš jų yra mažesnis anglies pėdsakas – kadangi PoS nereikia didelio galingumo kasimo fermų, jį naudojant suvartojama tik dalis elektros energijos, kuri suvartojama naudojant PoW. 

Tačiau reikia pasakyti, kad PoS dar nėra taip gerai patvirtintas kaip PoW. Nors kasyba gali būti suvokiama kaip švaistūniška veikla, ji yra vienintelis sutarimo algoritmas, išbandytas daugiau nei dešimtmetį. Nuo paleidimo bitkoinų PoW užsitikrino trilijonų dolerių vertės sandorius. Norint tiksliai pasakyti, ar PoS gali prilygti jam savo saugumu, delegavimas turi būti tinkamai išbandytas ilgą laikotarpį.

Baigiamosios mintys

Proof-of-Work buvo originalus dvigubų išlaidų problemos sprendimas, kuris įrodė esąs patikimas ir saugus. Bitkoinas įrodė, kad mums nereikia centralizuotų subjektų apsisaugant, kad tos pačios lėšos nebūtų išleistos du kartus. Sumaniai naudojant kriptografiją, maišos funkcijas ir žaidimų teoriją, dalyviai decentralizuotoje aplinkoje gali susitarti dėl finansinės duomenų bazės padėties.

Papildoma literatūra

Atsakomybės atsisakymas: šis turinys jums pateikiamas „toks, koks yra“ tik bendro informavimo ir švietimo tikslais, jis nesuteikia jokios garantijos ir nieko neteigia. Šis tekstas neturėtų būti suprantamas kaip finansinis, teisinis ar kitoks patarimas, taip pat nesiekiama rekomenduoti įsigyti kokį nors konkretų produktą ar paslaugą. Turėtumėte patys kreiptis patarimo į atitinkamus profesionalius patarėjus. Jei straipsnį pateikė trečiosios šalies bendraautoris, atkreipkite dėmesį, kad išsakytos nuomonės priklauso trečiosios šalies bendraautoriui ir nebūtinai atspindi Binance nuomonę. Daugiau informacijos rasite perskaitę visą atsakomybės atsisakymą čia. Skaitmeninių išteklių kainos gali būti nepastovios. Jūsų investicijos vertė gali sumažėti arba padidėti, o investuotos sumos galite ir neatgauti. Tik jūs esate atsakingi už savo investicinius sprendimus, o Binance nėra atsakinga už jokius jūsų patirtus nuostolius. Ši medžiaga neturėtų būti suprantama kaip finansinis, teisinis ar profesionalo patarimas. Jei reikia daugiau informacijos, žr. mūsų Naudojimo sąlygas ir įspėjimą dėl rizikos.