Kezdőlap
Cikkek
Mi az a Proof of Work (PoW)?

Mi az a Proof of Work (PoW)?

Középszintű
Közzétéve Dec 6, 2018Frissítve Apr 18, 2024
10m

A legfontosabb tudnivalók

  • A Proof-of-Work (PoW) konszenzusmechanizmust azért hozták létre, hogy megelőzze a dupla költést a digitális fizetési rendszerekben.

  • A PoW kulcsfontosságú része a bányászati folyamatnak, amely során új tranzakcióblokkokat adnak a blokklánchoz, és új kriptovaluta-egységeket hoznak létre.

  • A Bitcoin és számos egyéb kriptovaluta a PoW-módszert használja a blokklánchálózatuk és az adataik védelmére.

Bevezetés

Röviden, a Proof-of-Work (PoW) mechanizmust azért hozták létre, hogy megelőzze a dupla költést a digitális fizetési rendszerekben. A Bitcoin és számos egyéb kriptovaluta a PoW-módszert használja a blokklánchálózatuk és az adataik védelmére. Az ilyen mechanizmusokra gyakran használják a konszenzusalgoritmus vagy a konszenzusmechanizmus kifejezést, mert a segítségükkel több résztvevő fél jut konszenzusra, anélkül, hogy bízniuk kellene egymásban.

A Proof-of-Work volt az első konszenzusalgoritmus, és a mai napig az egyik legfontosabb a Proof-of-Stake (PoS) mellett. A PoW mechanizmust Satoshi Nakamoto mutatta be a Bitcoin 2008-as fehér könyvében, de maga a technológia jóval korábban született meg.

Adam Back HashCash rendszere egy korai példa a Proof-of-Work algoritmusra, a kriptovaluták előtti időkből. Azzal, hogy a feladóktól megkövetelték, hogy az e-mail elküldése előtt végezzenek el egy kis számítási műveletet, a címzettek csökkenthették a spamek számát. Ez a számítás gyakorlatilag semmibe sem kerülne egy hiteles feladónak, de gyorsan jelentős tétellé válna annál, aki tömegesen küld e-maileket.

Mi az a dupla költés?

Dupla költésről akkor beszélünk, ha ugyanazt a pénzeszközt többször is elköltik. A kifejezést szinte kizárólag a digitális pénzzel kapcsolatban használják, hiszen ugyanazt a fizikai készpénzt nehéz lenne kétszer elkölteni. 

Amikor egy kávéért fizetsz, készpénzt adsz át a pénztárosnak, aki valószínűleg elzárja azt a kasszában. Nem mehetsz át a szemközti kávézóba, és fizethetsz egy másik kávét ugyanazzal a pénzzel. A digitális pénzrendszereknél viszont fennáll ennek a lehetősége. 

Biztosan másoltál már számítógépes fájlt a másolás-beillesztés parancsokkal. Emellett e-mailben könnyedén elküldheted ugyanazt a fájlt emberek tucatjainak. Mivel a digitális pénz csak adat, meg kell akadályozni a dupla költést, vagyis hogy az emberek ugyanazt az egységet kimásolják és elköltsék különböző helyeken. Az a digitális fizetési rendszer, mely nem tudja megakadályozni a dupla költést, nagyon gyorsan összeomlik.

A dupla költés részletesebb áttekintéséhez nézze meg a Magyarázat a dupla költéshez című cikkünket.

Miért szükséges a Proof-of-Work?

Ha olvastad a cikkünket a blokklánc-technológiáról, akkor tudod, hogy a kriptovaluta-felhasználók folyamatosan küldenek tranzakciókat a hálózatra. Ezek a tranzakciók azonban nem tekinthetők azonnal érvényesnek. Ez csak akkor történik meg, ha megerősítésük után hozzáadják őket a blokklánchoz.

A Bitcoin blokklánc például egy nyilvános tranzakció-adatbázisként (főkönyv) működik, amelyre minden felhasználó rálát. Képzeld el így: Neked és három barátodnak van egy jegyzettömbje, amelyen nyomon követitek a bitcoin-tranzakcióitokat. Ha valamelyikőtök bármikor értékátutalást szeretne kezdeményezni, akkor leírjátok azt:

Alíz 5 BTC-t fizet Robinak; Robi 2 BTC-t fizet Karolinának, stb.

Ám minden tranzakció alkalmával hivatkoztok arra a tranzakcióra, amelyből a pénzeszközök származnak. Tehát, ha Robi kifizetett Karolinának 2 BTC-t, akkor a bejegyzés valójában a következőképpen nézne ki: 

Robi 2 BTC-t fizet Karolinának, ami az Alízzal folytatott korábbi tranzakciójából származik.

Most már van egy módszerünk a BTC-egységek nyomon követésére. Ha Robi megpróbál egy újabb tranzakciót végrehajtani ugyanazzal a 2 BTC-vel, amit az imént küldött Karolinának, azt mindenki azonnal tudni fogja. A csoport nem engedi, hogy a tranzakciót hozzáadják a jegyzettömbhöz, mert azt a 2 BTC-t már elköltötték.

Nos, ez egy kis csoportban jól működhet. Mindenki ismeri a másikat, így valószínűleg meg fognak egyezni abban, hogy ki adjon hozzá tranzakciókat a jegyzettömbhöz. De mi a helyzet egy 10 000 fős csoport esetében? A jegyzettömbös ötlet nem működne jól, mivel senki sem akarja egy idegenre bízni a kezelését.

Itt jön a képbe Proof-of-Work. Ez biztosítja, hogy a felhasználók ne használjanak olyan pénzeszközöket, melyeket nincs joguk elkölteni. A PoW algoritmus a játékelmélet és a kriptográfia ötvözésével lehetővé teszi, hogy bárki a rendszer szabályai szerint frissítse a blokkláncot.

Hogyan működik a PoW?

Képzeljük el, hogy a fent említett jegyzettömbünk a blokklánc. De nem egyesével adjuk hozzá a tranzakciókat, hanem blokkokba foglaljuk őket. A tranzakciókat bejelentjük a hálózatnak, majd a blokkot létrehozó felhasználók hozzáadják őket a jelölt blokkhoz. A tranzakciók csak akkor tekinthetők érvényesnek, ha a jelölt blokk megerősített blokká válik, ami azt jelenti, hogy bekerült a blokkláncadatbázisba.

A tranzakciók validálásának és az új blokkok hozzáfűzésének folyamatát nevezzük bányászatnak. Ez drága és nehéz tevékenység, de a jutalom is magas lehet. A blokkjutalom a felhasználóktól származó tranzakciós díjakból és a protokoll által létrehozott, vadonatúj bitcoinokból áll. 

A Proof-of-Work megköveteli, hogy a bányász (a blokkot létrehozó felhasználó) erőforrásokat – például villamos áramot és számítási teljesítményt – fordítson a jelöltblokkok hashelésére, amíg meg nem oldják a feladványt.

A hashelés azt jelenti, hogy a blokk adatai egy hashing függvényen futnak le a blokkhash létrehozásához. A blokkhash úgy működik, mint egy „ujjlenyomat” – ez a bemeneti adatok azonosítója, és minden blokkhoz egyedi ujjlenyomat tartozik.

Más szóval egy bányász dolga hitelesíteni és összegyűjteni a folyamatban lévő tranzakciókat, jelöltblokkba foglalni őket, és a blokk adatait átküldeni egy hashing függvényen, hogy érvényes hash-t hozzon létre. Ha a bányásznak sikerül érvényes hash-t találnia a jelöltblokkjához, akkor elküldi azt a hálózatra, hozzáadja a blokkot a blokklánchoz, és begyűjti a bányászjutalmakat.

Amikor egy bányász továbbítja a jelöltblokkját és hash-kódját a hálózat felé, a hálózat résztvevői megismétlik a hashing folyamatot, hogy ellenőrizzék a kimeneti adatok érvényességét. 

Habár számtalan hashingkísérlet kell egy érvényes hash megtalálásához, a generált hash helyességének ellenőrzése mindenki számára pofonegyszerű. Csak el kell küldeni ugyanazt a bemenetet (blokkadatokat) a hash függvényen keresztül, és ellenőrizni kell, hogy a kimenet ugyanaz-e.

A Proof of Work során olyan adatokat kell megadnia, amelyek hash-e megfelel bizonyos feltételeknek. De nem tudja, hogyan juthat el oda. Az egyetlen lehetőség az, hogy az adatokat egy hash függvényen futtatja le, és ellenőrzi, hogy megfelelnek-e a feltételeknek. Ha nem, akkor kissé meg kell változtatnia az adatait, hogy más hash-t kapjon. Akár egy karakter megváltoztatása az adatokban teljesen más eredményt fog hozni, így nem lehet megjósolni, hogy mi lesz a kimenet.

Ennek eredményeképpen, ha blokkot akar létrehozni, találgatósat fog játszani. Általában információt vesz az összes hozzáadni kívánt tranzakcióról és néhány más fontos adatról, majd mindezt összevonja. Mivel azonban az adatállománya nem fog változni, hozzá kell adnia egy változó információt. Ellenkező esetben mindig ugyanazt a hash-t kapná kimenetként. Ezt a változó adatot nonce-nak nevezzük. Ezt a számot minden egyes próbálkozásnál megváltoztatja, hogy minden alkalommal más hash-t kapjon.

Összefoglalva, a bányászat a blokkláncadatok összegyűjtésének folyamata, melynek során addig hasheli az adatokat egy nonce értékkel együtt, amíg meg nem talál egy bizonyos hash-t. Ha talál egy olyan hash-t, amely megfelel a protokoll által meghatározott feltételeknek, jogot kap arra, hogy az új blokkot a hálózatnak továbbítsa. Ekkor a hálózat többi résztvevője frissíti blokkláncát, hogy az tartalmazza az új blokkot.

A főbb kriptovaluták esetében a feltételek teljesítése hihetetlenül nagy kihívást jelent. Minél nagyobb a hash ráta a hálózaton, annál nehezebb érvényes hash-t találni. Ennek célja, hogy a blokkokat ne találják meg túl gyorsan.

Amint azt el tudja képzelni, sok hash kitalálása nagy számítógépes költséggel jár. Számítási ciklusokat és áramot pazarol. De a protokoll kriptovalutával jutalmazza, ha érvényes hash-t talál.

Foglaljuk össze, amit eddig tudtunk:

  • A bányászat nehéz és drága, de védelmet nyújt a hálózatnak.

  • Azok a bányászok, akiknek sikerül érvényes blokkot létrehozniuk, jutalmul újonnan kibocsátott kriptovalutát és tranzakciós díjakat kapnak.

  • Egy érvényes hash generálása időbe telik, de a hashing folyamat megismétlésével más felhasználók könnyedén ellenőrizhetik annak érvényességét.

Eddig minden rendben. De mi van akkor, ha megpróbál csalni? Mi akadályozza meg abban, hogy egy csomó csalárd tranzakciót adjon a blokkhoz, és érvényes hash-t hozzon létre?

Itt jön a képbe a nyilvános kulcsú kriptográfia. Most nem megyünk bele ennek a részleteibe, de nézd meg a Mi az a nyilvános kulcsú kriptográfia? című cikkünket. Röviden, létezik néhány ügyes kriptográfiai trükk, amelyek bármely felhasználó számára lehetővé teszik, hogy ellenőrizzék, hogy valaki jogosult-e az elkölteni kívánt pénzösszegek mozgatására.

Amikor létrehozol egy tranzakciót, aláírod azt. A hálózaton bárki összehasonlíthatja az aláírásod a nyilvános kulcsával, és ellenőrizheti, hogy egyeznek-e. Azt is ellenőrzik, hogy valóban el tudod-e költeni a pénzed, és hogy a bemenet összege magasabb-e, mint a kimenet összege (azaz, hogy nem költesz-e többet, mint amennyid van).

Minden olyan blokkot, amely érvénytelen tranzakciót tartalmaz, a hálózat automatikusan elutasít. Már a csalás kísérlete is költséges lenne. A saját erőforrásait pazarolja el minden jutalom nélkül.

Ebben rejlik a Proof-of-Work szépsége: megdrágítja a csalást, de jövedelmezővé teszi a becsületes viselkedést. Minden racionális bányász a befektetése megtérülésére törekszik, így várhatóan olyan magatartást tanúsítanak, amely nagyobb eséllyel hoz bevételt.

Proof of Work (PoW) vs. Proof of Stake (PoS)

A PoW mellett számos egyéb konszenzusalgoritmus létezik, de az egyik legnépszerűbb a Proof-of-Stake (PoS). A koncepció 2011 óta létezik, és az Ethereum mellett jó néhány más protokoll is ezt alkalmazza.

A Proof of Stake rendszerekben a bányászokat validátorokkal helyettesítik. Nincs bányászat, és nincs verseny a hash-ek kitalálásáért. Helyette a felhasználók véletlenszerűen kerülnek kiválasztásra – ha kiválasztják őket, blokkot kell javasolniuk (vagy „kovácsolniuk”). Ha a blokk érvényes, akkor jutalmat kapnak, amely a blokk tranzakcióinak díjaiból áll.

Nem akárki kerül kiválasztásra - a protokoll számos tényező alapján választja ki a felhasználókat. A jogosultsághoz a résztvevőknek zárolniuk kell egy stake-et, amely a blokklánc natív valutájának egy előre meghatározott összege. A stake úgy működik, mint az óvadék: ahogy a vádlottak nagy összegű pénzt fizetnek be, hogy ne hagyják ki a tárgyalást, úgy az validátorok is zárolnak egy stake-et a csalás megelőzése érdekében. Ha tisztességtelenül cselekszenek, a stake-et (vagy annak egy részét) elvesztik.

A Proof of Stake számos előnnyel rendelkezik a Proof of Work mechanizmushoz képest. A legjelentősebb a kisebb szén-dioxid lábnyom – mivel a PoS-ben nincs szükség nagy teljesítményű bányászfarmokra, az elfogyasztott villamos energia csak töredéke a PoW rendszerben elfogyasztottnak. 

Ezzel együtt a PoS nem rendelkezik a PoW-hez hasonló eredményekkel. Bár pazarlónak lehet tekinteni, a bányászat az egyetlen olyan konszenzusalgoritmus, amely több mint egy évtizedes aktív múlttal rendelkezik. Indulása óta a Bitcoin PoW-rendszere több ezer milliárd dollár értékű tranzakciót biztosított. Ahhoz, hogy biztosan kijelenthessük, hogy a PoS felveheti a versenyt a biztonságával, a stakelést hosszú távon, megfelelően kell tesztelni.

Záró gondolatok

A Proof of Work volt az eredeti megoldás a dupla költés problémájára, és megbízhatónak, valamint biztonságosnak bizonyult. A Bitcoin bebizonyította, hogy nincs szükségünk centralizált entitásokra ahhoz, hogy ugyanazt a pénzt ne lehessen kétszer elkölteni. A kriptográfia, a hash függvények és a játékelmélet ügyes alkalmazásával a decentralizált környezet résztvevői meg tudnak állapodni egy pénzügyi adatbázis állapotáról.

További olvasnivaló

Felelősségi nyilatkozat: A jelen bejegyzés tartalmát annak mindenkori formájában bocsátjuk rendelkezésre általános tájékoztatási és oktatási céllal, és semmilyen felelősséget vagy szavatosságot nem vállalunk az alkalmazásával kapcsolatban. Az itt leírtak nem tekintendők pénzügyi, jogi vagy egyéb szakmai tanácsadásnak, sem egy konkrét termék vagy szolgáltatás megvásárlására tett javaslatnak. Javasoljuk, hogy kérj tanácsot a megfelelő szaktanácsadóktól. Mivel a jelen cikket külső szerző írta, felhívjuk figyelmedet, hogy az itt kifejtett nézőpontok a harmadik fél szerző álláspontját részletezik, és nem feltétlenül tükrözik a Binance Academy véleményét. Kérjük, hogy ide kattintva olvasd el részletes felelősségi nyilatkozatunkat. A digitális eszközök ára erősen ingadozhat. A befektetés értéke csökkenhet vagy nőhet, és az is előfordulhat, hogy nem kapod vissza a befektetett összeget. A befektetési döntéseiért egyedül te felelsz, és a Binance Academy nem vállal felelősséget az esetlegesen felmerülő veszteségekért. Az itt leírtak nem minősülnek pénzügyi, hogy vagy egyéb szakmai tanácsnak. További információért tekintsd meg Használati feltételeinket és a Kockázati figyelmeztetést.