A Bitcoin létrehozása – Proof of Work

Az alábbi cikk egy fejezet Yan Pritzker – A Bitcoin létrehozása című könyvének magyar fordításából. A tartalomjegyzéket és az ingyen letölthető változatot ide kattintva éred el.

***

PROOF OF WORK

Ez a lottóhúzásos módszer, amelyet felvázoltunk, két nagy hátulütővel jár. Egyrészt ha semmilyen központi szereplő nincsen a rendszerben, ki fogja eladni a szelvényeket, és kiválasztani a nyertes számokat? Másrészt hogyan lehetünk biztosak abban, hogy a nyertes becsületes lesz, és nem akar mindannyiunkat becsapni?

Ha egy olyan hálózatot szeretnénk, amelyhez bárki szabadon csatlakozhat, akkor meg kell oldanunk, hogy ne kelljen megbíznunk egymásban. Egy olyan rendszert kell kiépítenünk, amely a következő tulajdonságokkal rendelkezik:

  • Mindenki számára biztosítani kell, hogy létrehozhassa a saját lottószelvényét, hiszen nem tudja azokat megvásárolni a nem létező központi irányítótól. A centralizált lottókat, mint amilyen például az Ötöslottó, cégek futtatják, amelyek létrehozzák a szelvényeket, és kisorsolják a számokat. Mivel a mi hálózatunkon nincsen központi szereplő, mindenkinek meg kell engednünk, hogy létrehozza a saját szelvényét.
  • Gondoskodni kell arról, hogy a részvétel pénzbe kerüljön, így el tudjuk kerülni, hogy valaki hatalmas mennyiségű szelvényt hozzon létre magának ingyen. De ha nincs kitől megvásárolni, mivel magunknak hozzuk létre, hogyan oldható meg, hogy mégis pénzbe kerüljön? Hívjuk segítségül a fizika törvényeit, és a szelvények létrehozásához legyen szükség elektromos energiára, egy erőforrásra, amely pénzbe kerül!
  • A hálózat többi résztvevőjének könnyen ellenőriznie kell, mégpedig kizárólag a szelvény segítségével, hogy tényleg mi nyertünk. Az Ötöslottónál a cég húzza ki a nyerőszámokat. A mi decentralizált rendszerünkben nincsen cég, így a résztvevőknek kell megegyezniük abban, hogy a nyertes számnak egy bizonyos tartományba kell esnie, például 1 és 10 közé. Ha az általad generált szelvény száma 1 és 10 közé esik, nyertél. Ahhoz pedig, hogy létrehozzuk a saját szelvényünket, egy kriptográfiai módszert, az úgynevezett hash funkciót fogjuk használni.

Proof of Work: energiaigényes, aszimmetrikus kirakózás

Mindhárom szükséges tulajdonságot biztosítani tudjuk egy elegáns megoldás, az úgynevezett Proof of Work használatával. Ezt jóval a Bitcoin születése előtt, már 1993-ban kitalálták. A Bitcoin működésének a megértésében valószínűleg ennek a sorshúzásos módszernek a megértése a legnehezebb, így a következő pár fejezetet a mélyebb, alaposabb kifejtésnek fogjuk szentelni.

Biztosítanunk kell, hogy a szelvények létrehozása sokba kerüljön, különben az emberek végtelen mennyiségűt generálnának maguknak, ingyen. Mi lehet az, ami garantáltan sokba kerül, de nem egy centralizált központi szereplőnek köszönhetjük?

Itt találkozik a Bitcoin rendszere a fizikával. A termodinamika első törvénye kimondja, hogy az energiát nem lehet sem létrehozni, sem megsemmisíteni. Más szavakkal fogalmazva, ha az energiáról beszélünk, nincs ingyen ebéd. Az elektromosság mindig drága, mert meg kell vásárolnod a szolgáltatótól, vagy saját energiatermelő egységet üzemeltetned. Az elektromosság mindkét esetben sokba kerül.

A Proof of Work mögötti koncepció az, hogy egy véletlenszerű folyamatban veszel részt, hasonlóan ahhoz, mintha egy dobókockát dobálnál újra és újra. Ez a kocka viszont nem hatoldalú, hanem annyi oldala van, amennyi atom létezik az univerzumban. Ezzel a kockadobással hozol létre magadnak egy lottószelvényt, egészen pontosan generálsz egy számot. Ahhoz, hogy ezt megtedd, a számítógépednek dolgoznia kell, ahhoz pedig áramra van szükség, és az áram pénzbe kerül.

Ahhoz, hogy nyerjél a lottón, egy olyan számra van szükséged, amelyet matematikailag le lehet vezetni a nyilvántartásba írandó tranzakciókból, valamint egy véletlenszerűen kiválasztott számból, és ezt a számot kaphatod meg a kockadobással. De ahhoz, hogy a megfelelő számot megtaláld, milliószor, billiószor, vagy akár kvadrilliószor is dobnod kell a kockával. Ennek a számnak kisebbnek kell lennie az úgynevezett célszámnál, amelyet a hálózat határoz meg bizonyos időközönként. A célszámról a későbbiekben beszélünk még. Ez megdolgoztatja a számítógéped, és drága elektromos áramot használ hozzá, akár sok ezer dollárnyi értékben.

Mivel a folyamat a véletlenszerűségen alapul, bárki számára lehetőség nyílik arra, hogy létrehozza a saját lottószelvényeit. Ehhez mindössze egy véletlenszerű számokat próbálgató számítógépre van szüksége, és a nyilvántartásba felvezetendő tranzakciók listájára. Ahhoz, hogy megtaláld a megfelelő számot, rengeteg energiára van szükséged. A hálózat többi résztvevőjének ezzel ellentétben nagyon egyszerű dolga van, ha le akarják ellenőrizni, tényleg te nyertél-e, mindössze három dolgot kell megvizsgálniuk:

  • Az általad generált szám tényleg kisebb az előre meghatározott célszámnál?
  • Az általad generált szám matematikailag tényleg levezethető azokból a tranzakciókból, amelyeket kiválasztottál, hogy bekerüljenek a nyilvántartásba?
  • Ezek a tranzakciók megfelelnek a hálózat általános szabályainak? Nincs köztük dupla költés vagy ütemterven kívüli coin-generálás?

A Proof of Work véletlenszerű folyamata rengeteg próbálkozást igényel, hogy rátaláljunk a nyertes számra. Ennek a leellenőrzésére viszont elegendő egyetlen egy dolgot megtenni. Kicsit úgy kell elképzelni, mint egy sudoku-táblát, vagy éppen egy sok darabból álló kirakót. Nagyon sokáig tarthat megoldani, kirakni, viszont elég egyetlen pillantás, hogy lássuk, készen van-e vagy sem. A Proof of Work ezért számít aszimmetrikusnak. Nehéz a játékosoknak, de könnyű annak, aki ellenőrizni szeretné.

A folyamat során elhasznált energia és pénz miatt értelemszerű az igény, hogy mindenki elfogadja az általad generált nyerőszámot. Ez pedig nagy motiváció, hogy az ember rendesen viselkedjen, betartsa a szabályokat, és csak érvényes tranzakciókat rögzítsen.

Ha például úgy döntesz, hogy dupla költést végeznél, és olyan pénzt használnál, amellyel nem rendelkezel, a hálózat többi tagja vissza fogja utasítani a próbálkozásodat, így a rengeteg energia, amelyet a találgatásra fordítottál, kárba vész, az erre költött pénzeddel együtt. Viszont ha szabályos tranzakciókat rögzítesz a nyilvántartásba, és becsületesen végzed a munkád, bitcoint kapsz jutalmul, amellyel kifizetheted a villanyszámládat, és még nyereséged is lesz belőle.

A Proof of Work így rendelkezik egy nagyon fontos tulajdonsággal, hiszen a fizikai világban is kézzel fogható költsége van a használatának. Emiatt tehát ha valaki erőszakkal, kényszerítéssel szeretné manipulálni a hálózatot valamelyik résztvevőn keresztül, nem elegendő megtalálni és eltéríteni a számítógépét. Ki kell fizetni a villanyszámláját is.

De hogyan tudjuk bizonyítani a többi résztvevő számára, hogy mi tényleg elégettük az adott mennyiségű energiát? Ehhez szükségünk lesz egy rövid kitérőre a számítástechnika-tudományba, amely során megnézünk két fogalmat, a hashelés és a bitek dolgát.

1 thought on “A Bitcoin létrehozása – Proof of Work

Comments are closed.