Hogyan lehetünk dollármilliomosok a matematika segítségével – A Bitcoin sztori
Legyél Te is milliomos… és aki nem akart az lenni
A matematikai tehetségnek sokkal több praktikus haszna van annál, mint hogy „Gondolj egy számra!” típusú feladatokkal tudjuk elkápráztatni rokonainkat és ismerőseinket. Második választott szakmám gyakorlói, a közgazdászok régóta tárt karokkal (és magas fizetésekkel) várják a matematikusokat, akik bonyolult összefüggések meglátásával és összetett modellek építésével segítenek kockázatokat csökkenteni és nyereséget növelni (igaz, néha mindez pont fordítva történik – lásd például az LTCM híres esetét).
De mi a helyzet akkor, ha gyorsan szeretnénk nagyon gazdagok lenni? Mennyire segíthet a matematika abban, hogy dollármilliomos váljon belőlünk? Ez sem lehetetlen. 2000-ben az amerikai Clay Mathematics Institute hét kérdést nevezett meg, mint a 21. század legfontosabb, megoldásra váró matematikai problémáját. A Millennium Problems gyűjtőnévvel ismerté vált kérdéshalmaz bármelyikének megoldásáért egymillió dolláros pénzjutalmat ajánlott fel az intézet.
Bár a pénzdíj valóban vonzónak tűnik, óradíjban számolva már nem biztos, hogy jobban járunk akkor, ha a milleniumi problémákkal foglalkozunk egy hagyományos karrierút helyett, hiszen a hét problémából az elmúlt 19 évben összesen egyet sikerült megoldania a világ matematikus közösségének. Ezen egyetlen megoldásnak egyébként külön érdekessége, hogy a Poincaré-sejtést 2002-ben igazoló orosz Grigorij Jakovlevics Perelman (aki egyébként az 1982-es budapesti Nemzetközi Matematikai Diákolimpián tökéletes eredménnyel nyert aranyérmet) nemcsak a 2006-ban a bizonyításért neki ítélt Fields-érmet, de a 2010-ben a CMI által neki ítélt az egymillió dollárt sem volt hajlandó átvenni.
1. ábra: A Poincaré-sejtés egy szemléltetése. Forrás: Wikimedia Commons
Akinek a hírnév nem kellett
Rendben van, mondhatná a kedves olvasó, én azonban gyors meggazdagodást ígértem. A fenti problémák nyilvánvalóan nem kecsegtetnek ezzel. Mit szólna azonban az olvasó akkor, ha az egymillió dollárt mindössze tíz perc alatt megkeresné? És ehhez semmi mást nem kellene csinálnia, mint matematikai problémákat megoldania a számítógépe segítségével. És nem csak hét probléma várna megoldásra, hanem tízpercenként kapna egy újabbat. Ráadásul lényegében garantált lenne, hogy egy probléma megoldása átlagosan tíz percet vegyen igénybe. Túl szépen hangzik, hogy igaz legyen? Részben az is, de tény, hogy voltak olyan szereplők, akik számára ez a lehetőség valóban adott volt a múltban. Hogy mindezt pontosabban megértsük, ahhoz viszont meg kell ismerkednünk a Bitcoinnal.
2. ábra: A Bitcoin művészi ábrázolása. Forrás: Max Pixel
A Bitcoin egy kriptovaluta. A szóösszetétel első fele azt jelenti, hogy titkosítási algoritmusokon alapul, míg a második fele arra utal, hogy egy fizetőeszközről beszélünk. Fontosnak tartom megjegyezni, hogy a Bitcoin nem tekinthető pénznek, ahogyan erről más platformon számos alkalommal értekeztem korábban (lásd például itt). Ennek ellenére én is az általánosan használt kriptovaluta, illetve virtuális valuta elnevezéseket fogom használni. Azonban ebben az írásban minket elsősorban a titkosítás szerepe és e munka kompenzációja fog érdekelni.
A Bitcoin alapötlete egy Satoshi Nakamoto álnevű szerző (vagy szerzők) 2008 októberi cikkében lett először publikálva. A történet érdekessége, hogy a mai napig nem tudjuk, hogy kit, vagy kiket takar ez az álnév, annak ellenére, hogy Nakamoto nem csak az ötletet adta, hanem hozzá köthető a világ első blokkláncon alapuló adatbázisának megalkotása, a virtuális pénzek többszöri elköltését megakadályozó elméleti keretrendszer kidolgozása és megvalósítása, és a Bitcoin rendszer elindítása is. Magyar szál itt is van, egyesek szerint ugyanis a fenti álnév nem takar mást, mint a magyar származású programozó és vállalkozót, Nick Szabo-t, akinek egyébként a Bitcoin projekt bizonyíthatóan sokat köszönhet (Szabo természetesen cáfolja, hogy ő lenne Nakamoto).
3. ábra: Satoshi Nakamoto eredeti cikkének első oldala. Forrás: https://bitcoin.org/bitcoin.pdf
Kiválthatja a matematika a bankokat?
A Bitcoint kidolgozó csapat alapkérdése ez volt: hogyan lehetne egy nyílt fizetési rendszert működtetni? Egy olyat, ahol a tranzakciók lebonyolításához nincsen szükség egy központi szereplőre (bankra). Konkrétabban, egy olyan rendszert, ahol a tranzakciók validálását bárki (praktikusan a leggyorsabb, leghatékonyabb, legolcsóbb szereplő) elvégezheti. A tranzakciókat pedig egy nyilvános, mindenki által elérhető és bővíthető adatbázis tartalmazza.
A cél elérése érdekében két problémát kellett kezelni. Egyrészt biztosítani kell, hogy egy utalás csak akkor történhessen meg, ha az adott számlán megvan ennek a fedezete (ennek speciális eseteként pedig azt is, hogy nem lehet egy virtuális valutát kétszer elkölteni). Másrészt garantálni kell azt is, hogy a múltbeli tranzakciókat tartalmazó listát senki se tudja módosítani. E két feltétel hiányában senki sem bízna az adott kriptovalutában, hiszen fedezet nélküli utalás lehetősége esetén nem lenne értéke (ki fizetne egy olyan eszközért, melyet egy utalással maga is bármikor létrehozhat), a múltban megtörtént tranzakciók megváltoztathatósága esetén pedig senki sem lenne hajlandó utalást fogadni (nem lehetne biztos abban, hogy a megkapott összeg később is rendelkezésére áll majd).
A kriptográfia színre lép
A fenti két problémát Nakamoto és társai egy zseniális ötlettel oldották meg. A rendszer a tranzakciókat nem egy hosszú listában, hanem blokkokban tárolja. Egy blokk egy nagyjából 10 perces időszelet tranzakcióit gyűjti össze. Azonban nemcsak a tranzakciók listáját tartalmazza a blokk, hanem egyebek mellett egy időbélyeget, egy később még fontos szereppel bíró, részben véletlenszerű számsort (a nonce-ot), valamint egy, az előző blokk minden adatának figyelembevételével, egy bonyolult, kriptográfián alapuló függvény (hash-függvény) segítségével képezett kódot, az úgynevezett hash-t. A hash garantálja azt, hogy az egyes blokkok láncot fognak alkotni, hiszen a hash-kód által minden egyes blokk hozzá van kötve az előzőhöz (mivel az előző blokk adatain alapul az adott blokk által tartalmazott hash-kód). A blokkok teljes láncolatát hívjuk blokkláncnak.
4. ábra: A blokklánc. Forrás: a szerző saját illusztrációja
A hash-kód nagyon hasonló a számítástechnikában és a bankszámlák számlaszámában használt ellenőrző kódhoz. Egy blokkhoz egyértelműen meghatározható a hash-kód. Fontos továbbá, hogy a blokk tartalmának minimális megváltoztatása esetén a függvény teljesen más hash-kódot eredményez. Nem lényeges a működés szempontjából, de érdemes megemlíteni, hogy a hash-függvény nem kölcsönösen egyértelmű megfeleltetés. Azaz elképzelhető, hogy a függvény két különböző tartalmú blokkhoz is ugyanazt a hash-kódot rendeli.
5. ábra: A hash-függvény. Forrás: Wikimedia Commons
További fontos eleme a Bitcoin rendszerének, hogy a hash-kód nem lehet tetszőleges, hanem kisebbnek kell lennie egy, a rendszer által megszabott, és folyamatosan felülvizsgált értéknél. Ez gyakorlatilag azt jelenti, hogy a 256 hosszú hexadecimális hash-kódnak megadott számú nullával kell kezdődnie. A nullák elvárt száma határozza meg a nonce megtalálásának nehézségi fokát.
A tízperces matematikafeladvány
A tízperces tranzakciós listát jóváhagyó (validáló) szereplőnek kettős feladata van. Egyrészt ellenőriznie kell, hogy a listában minden egyes tranzakciónak rendelkezésre áll a fedezete. Másrészt találnia kell egy olyan véletlenszerű számsort, amelyet a fent már említett nonce helyére beillesztve a hash-függvény által generált kód megfelel az elvásároknak, azaz megfelelő számú nulla van az elején. Ez viszont nem könnyű feladat. A hash-függvény jellege miatt a nonce megtalálása lényegében próba–szerencse alapon történik. Ha a feladat bonyolultsága (azaz a hash-kód elején álló nullák száma) eggyel nő, akkor – mivel hexadecimális számról van szó – egy alkalmas nonce megtalálásának esélye 1/16-odára csökken. Azaz a nullák elvárt száma valóban összefügg a feladat nehézségével.
A cikk írásának pillanatában a Bitcoin blokklánc az 576 436. blokknál tartott, amelynek hash-kódja 000000000000000000133f916f78107e842e6f531e65999d4668649bedb4131c. Ez a kód 18 darab nullával kezdődik, azaz megtalálása jóval nehezebb volt, mint a legelső blokk hash-kódjának megtalálása. Az első kód 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f volt, mely ugyan 10 nullával kezdődött, ekkor azonban még csak 8 darab kezdő nulla volt a hash-kóddal szembeni elvárás a Bitcoin rendszerében.
6. ábra: A Bitcoin blokklánc. Forrás: https://www.blockchain.com/btc/blocks
És itt jön képbe Nakamotoék zsenialitása. A feladat nehézségét (azaz a nullák elvárt számát) kéthetente felülvizsgálja és szükség esetén automatikusan módosítja a rendszer, mégpedig azzal a céllal, hogy átlagosan nagyjából 10 percig tartson egy alkalmas nonce megtalálása. De miért fontos ez? És hogyan garantálja a fejezet elején említett két probléma kiküszöbölését?
A lottó, ahol 1618 szelvényből csak egy nyer
Az első probléma az utalások fedezetének ellenőrzése volt. Ezt a validáló szereplő elvileg megteszi. De mi a helyzet akkor, ha a hibázott, vagy szándékosan engedett meg fedezetlen tranzakciókat? Ekkor kap szerepet a blokklánc jelleg, illetve a fizetési rendszer nyíltsága. Ha a validáló szereplő fedezetlen utalást is beemelt a blokkba, akkor amint egy másik szereplő ezt észreveszi, fel fogja hívni erre a tényre a közösség figyelmét, majd ugyanerre az időintervallumra elkészíti a saját blokkját (és az ez alapján számított hash-kódját), mely nem tartalmazza az adott tételt. És a többi szereplő ezt a blokkot fogja folytatni a jövőben, azaz a hibás blokk nem lesz része a blokkláncnak, ezáltal garantálva azt, hogy fedezetlen tranzakció ne fordulhasson elő (hiszen a rendszer azokat a tranzakciókat tekinti megvalósultnak, amelyek szerepelnek a blokkláncban; azonban fontos megjegyezni, hogy bizonyos – nagyon speciális – esetekben ez a védelem nem tökéletes).
A második probléma a múltbeli tranzakciók integritásának a kérdése. Hogyan éri el a Bitcoin rendszere, hogy egyszerre legyen nyílt, azaz mindenki számára hozzáférhető, és hiteles, azaz megváltoztathatatlan? A megoldás kulcsa a bonyolultság. Mi történne például, ha valaki egy kettővel korábbi blokkot módosítani szeretne?
Ha ez a szereplő bizonyos tételeket kitörölne, módosítana vagy hozzáadna a blokkban szereplő listához, akkor a nonce-kódot is meg kellene változtatnia, hiszen a hash-kód a teljes blokk minden elemétől függ, azaz a módosított blokk a régi nonce-szal együtt szinte biztosan nem adna megfelelő számú nullával kezdődő hash-kódot. A jelenlegi bonyolultság mellett annak az esélye, hogy a régi nonce-kód a módosított blokkhoz is passzol 1 : 1618. Ennek körülbelül annyi az esélye, mint annak, hogy valaki a világegyetem kezdete óta egyszerre 150 országban játszva minden héten és minden országban megnyeri az ötös lottó főnyereményét (és most tekintsünk el attól, hogy az említett időintervallum nagy részében nem hogy lottó, de országok, sőt, emberek sem voltak). Azaz bátran kijelenthetjük, hogy nem túl valószínű eseményről beszélünk.
Mivel egy blokk létrehozása körülbelül 10 percet vesz igénybe, így ennyi időre lenne a fenti fiktív szereplőnek is szüksége ahhoz, hogy a módosított blokk hash-kódját megtalálja. A blokklánc jelleg miatt azonban ekkor még nem lenne készen, hiszen a következő blokk tartalmazza az előző blokk hash-kódját, így a következő blokkot is újra kellene generálnia, még akkor is, ha az abban szereplő tranzakciókat nem akarja megmásítani. És mivel a példában szereplő személy kettővel korábbi blokkot szeretett volna módosítani, így még egy blokk hash-kódját is meg kell találnia.
De miért gond ez, kérdezhetné az olvasó? Hiszen mindössze harminc perc munkával el tudta érni a célját, meg tudta változtatni a múltbeli tranzakciókat. A probléma csak az, hogy ez alatt a harminc perc alatt az eredeti blokklánc három újabb blokkal bővült, hiszen a többi – becsületes – validáló ugyanúgy dolgozott ez idő alatt, mint példánk főszereplője. Így antihősünk blokklánca továbbra is három elemmel rövidebb lenne, mint a valódi blokklánc. És ezt a hátrányát soha nem tudná behozni. Ez az oka annak, hogy a múlt nem módosítható a Bitcoin rendszerében, hiszen a két blokklánc hossza alapján mindenki számára nyilvánvaló lenne, hogy melyik az eredeti és melyik a módosított lánc.
7. ábra: Eredeti és módosított blokklánc. Forrás: a szerző saját illusztrációja
Hatmillió dolláros órabér
Mindez érdekes, de hol van az írás elején ígért egymillió dollárunk? Rövidesen ide is eljutunk. A validáló értékes munkát végez a Bitcoin-hálózat szempontjából, hiszen biztosítja a fizetési hálózat megbízhatóságát és működését. Emellett tényleges költségei is felmerülnek, mint a hardverek beszerzése és a felhasznált elektromos áram ára (és ez utóbbi nem kis tétel, 2014-ben a Bitcoin rendszer validátorai nagyjából annyi elektromos áramot használtak fel, mint egész Írország). Ezért a közösség részéről megvan a hajlandóság, a validátor részéről pedig az elvárás arra, hogy munkájáért pénzbeli ellentételezésben részesüljön. Ennek egyik része az egyes tranzakcióban részt vevő felek önkéntes felajánlása, míg másik része friss, ropogós, a validálás megtörténtekor „kinyomtatott” új Bitcoin (a szóképek itt természetesen nagyon képletesen értendők, hiszen virtuális valutáról beszélünk, azaz tényleges fizikai előállítás nem történik, egyszerűen csak jóváírják a megfelelő összeget a validátor Bitcoin-számláján).
A kriptovaluták esetében a validálást – az arany analógiájára – bányászatnak hívják. A fent bemutatott ellentételezések tehát a bányászat költségeit hivatottak kompenzálni. Fontos azonban kiemelni, hogy egy adott blokk validálásán egyszerre nagyon sok bányász is dolgozhat, kompenzációt azonban csak egy fog ezek közül kapni, méghozzá az, aki elsőként talál egy alkalmas nonce-ot és így hash-kódot.
A bányászat ellentételezésére frissen teremtett Bitcoin mennyisége előre meg van határozva. A legelső blokkoknál ez 50 BTC (a Bitcoin ISO-kódja) volt, amely érték 210 000 blokkonként (azaz nagyjából négyévente) feleződik. Jelenleg 12,5 BTC jár minden blokk kibányászásáért, azaz tízpercenként pontosan ennyi új Bitcoin teremtődik.
Ma komoly célgépekkel folyik a Bitcoin bányászata, melyek jelentős részét kínai vizierőművek mellé telepítették, hogy így csökkentsék a bányászat áramköltségeit. A virtuális valuta 2009-es indulás utáni első éveiben azonban egy használt laptop elég volt ahhoz, hogy egy kalandvágyó programozó BTC-ket bányásszon. A legtöbb kriptovalutát maga Satoshi Nakamoto termelte ki – egyes becslések szerint nem kevesebb, mint egymillió Bitcoinnal rendelkezik. De mások is szerencsét próbáltak, mint például a korábban már említett Nick Szabo, vagy egy másik honfitársunk, Hanyecz László, aki azzal vált híressé, hogy ő volt az, aki először fizetett Bitcoinnal. Ez a hírnév azonban nem jött ingyen, hiszen a két pizzáért 2010-ben elutalt 10 000 BTC mai értéke meghaladja a 82 millió amerikai dollárt.
8. ábra: Egy Bitcoin ára amerikai dollárban. Forrás: a szerző saját illusztrációja
Ez az összeg szemmel láthatóan jóval magasabb, mint a legtöbb általunk ismert pizza ára. Ennek az oka a Bitcoin árfolyamgörbéjének mesébe illő felrobbanása. És pontosan ez az áremelkedés az, ami fejezetcímünk állítását igazzá teszi. A virtuális valuta árfolyama 2017. december 17-én tetőzött. A csúcson 19 783,06 USD-t adtak egyetlen Bitcoin-ért (mivel nem fizikai eszközről beszélünk, így természetesen nem csak egész számú BTC-t birtokolhatunk; a Bitcoin esetében a legkisebb nyilvántartható egység 1 BTC százmilliomod része – amely mennyiség bevett neve az ötletgazda iránti tiszteletadás jeleként egy Satoshi).
Mindezek alapján az a bányász, aki a 2009 környékén használt laptopjával képernyővédő futtatása helyett Bitcoin-t bányászott, könnyedén és akár 10 percenként is megkereshetett 50 BTC-t. Ha ezt egészen 2017 végéig megtartotta és tökéletesen időzítve a csúcson eladta, akkor elmondhatja, hogy 10 perc alatt 989 153 amerikai dollárt keresett. Bár ez valamivel egymillió alatt van, a példában szereplő bányászunk valószínűleg nem panaszkodna emiatt.
Számolhatok? Avagy hol vannak a milliók?
A Bitcoin bányászata a mai árak mellett is komoly bevétellel kecsegtet (a cikk írásának idején egy BTC körülbelül 7 200 USD-t ért, azaz 10 perces munkával nagyjából 90 000 amerikai dollár, azaz valamivel több, mint 26 millió forint bevételre tehet szert a leggyorsabb bányász). Azonban egy használt laptoppal ma már labdába sem rúghatunk a hatalmas hardverparkokat üzemeltető bányászközösségekkel szemben. Így kicsi az esélye az olvasónak arra, hogy rövid, vagy akár hosszabb időn belül akárcsak forintmilliomos váljon belőle a Bitcoin bányászatával.
Ráadásul az sem valószínű, hogy a többezer létező (és a naponta keletkező számos új) kriptovaluta közül pont a Bitcoin lesz az, amelyik hosszú távon velünk marad. Ennek egyik oka az, hogy számos technikai paraméterében elavultnak számít az új trónkövetelőkhöz képest. A virtuális valuták egyébként is roppant kockázatos befektetési eszközök. Nem ritkán eleve a befektetők becsapása vagy kapzsiságának és hiszékenységének kihasználása a céljuk. Én még befektetésként sem javasolnám őket, mert a sokat hangoztatott „korlátozott mennyiség = biztos jövőbeni árnövekedés” képlet is csúsztatásra és megtévesztésre épül. Hogyan lehet hasznunkra akkor ez az írás? Hogyan fogjuk megkeresni a címben ígért egymillió dollárt?
Azt természetesen senkinek nem tudom megígérni, hogy garantáltan dollármilliomos lesz, aki jó matematikából, vagy elolvasta ezt a cikket. Az viszont látszik, hogy a blokklánc-technológia gyökeresen meg fogja változtatni a bankokat és a pénzügyi szektort, a biztosítási piacokat, a kormányzati szektort, az egészségügyet, az ingatlanpiacokat, a zeneipart, az ellátási lánc menedzsmentet, a jogi szektort, és valószínűleg a pénzpiacokon is erősödni fog a szerepe. Ez pedig azt jelenti, hogy fel fog értékelődni a kiművelt matematikai tehetségek szerepe.
Milyen készségek lesznek fontosak azok számára, akik ebben a forradalomban részt kívánnak venni? Az algebra és analízis alapjainak ismerete elengedhetetlen, de nem árt, ha tisztában van a valószínűségszámítás, az operációkutatás, a statisztika és az adatelemzés alapjaival. A kriptográfia és az informatika ismerete szinte alapkövetelmény, de természetesen jól jön az üzleti szemlélet is. És ha ez mind együtt van, akkor ki tudja… lehet, hogy pár év múlva az ő cége is fent lesz majd egy hasonló listán, és akkor egymillió dollár nem is fog már olyan soknak tűnni számára.
Sebestyén Géza
Budapesti Corvinus Egyetem, MNB Tanszék