A Bitcoin létrehozása – Melyik lánc az igazi?

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.

***

Az egyetlen valódi lánc

Menjünk vissza ahhoz a részhez az egyik korábbi fejezetben, hogy Henry újonnan csatlakozik a hálózathoz.

Az általa futtatott csomópont csatlakozik néhány másik csomóponthoz, és megkéri azokat, hogy ajánljanak számára további csomópontokat, amelyekhez szintén csatlakozhat. Ezt nevezik csomópont-felfedezésnek.

A csomópontok közül néhány azonban nem játszik tisztességesen, és a főkönyv manipulált változatát adják oda Henrynek, érvénytelen tranzakciókkal, vagy hamis egyenlegekkel, amelyek nem rendelkeznek érvényes Proof of Work hash értékkel. Ezeket a csomópontokat a Henry által futtatott szoftver azonnal elutasítja, és megakadályozza, hogy a továbbiakban Henry gépéhez csatlakozzanak[1].

A többi csomópont becsületes, viszont az általuk küldött főkönyvek nem egyeznek meg. Néhány esetleg offline volt egy ideig, és egy vagy két blokk hátrányban van a többiekhez képest. Ha Henry több különböző változatot tölt le a nyilvántartásból, amelyek egyformán érvényesnek számítanak, a program a Nakamoto-konszenzus segítségével dönti el, hogy melyik az érvényes. Összeveti az egyes másolatok által elvégzett munkát a Proof of Work használatával, és amelyik a többet éri, az lesz az egyetlen valódi lánc.

A csomópontok folyamatosan kommunikálnak egymással, hogy biztosan mindenkinél ott legyen a legújabb blokk is. Mivel minden csomópont az értékesebb láncot fogadja el érvényesnek, ebből származik a megegyezés, a konszenzus, hogy mi a főkönyv aktuális állapota. Henry nincs rákényszerülve, hogy a többség szavára hallgasson, amelyet el lehet téríteni egyszerűen azáltal, hogy a csalásra sikerül rávenni a többséget.

Ha Henry több tucatnyi rosszindulatú csomóponthoz csatlakozik, és csak egyetlen becsületeshez, a gépén futtatott Bitcoin programja akkor is tudni fogja, hogy melyik változat az érvényes, mivel az fogja a nagyobb Proof of Work értéket tartalmazni, és visszavezethető egészen a Genesis blokkig. Ennek a fontosságát nem lehet eléggé hangsúlyozni. Nem kell megbízni senkiben, hogy a kapott adatok hitelesek, mivel a saját csomópont segítségével minden egyes hash értéket le tud ellenőrizni, így tudhatja, hogy a valódi, érvényes blokklánc van nála.

Éppen emiatt rendkívül nehéz egy rosszindulatú hackernek, hogy hamis másolatot juttasson el egy csomópontba. Hogy ez sikerüljön, biztosítani kell, hogy az új csomópont semmilyen más, becsületes csomóponthoz nem csatlakozik, csak azokhoz a módosítottakhoz, amelyeket a támadó eltérített.

A tranzakciók visszavonása

A láncok kettéágazására van ugyan esély, de ha ilyen történik, az hamar megoldódik. Mindenesetre, ha valaki meg akarna támadni egy hálózatot, akkor kihasználhatja a Nakamoto-konszenzust, ha irányítani tudja a hashráta több, mint 50%-át. A támadó ilyenkor több munkát fektethet bele a hamis lánc létrehozásába, amely tartalmazza az általa kívánt tranzakciókat, ha hajlandó az ehhez szükséges energiát elhasználni, nagyobb Proof of Work értéket adva neki. Mikor pedig megosztja a hálózattal ezt a láncot, a csomópontok ezt fogadnák el egyetlen valódi láncként. Ezt 51%-os támadásnak nevezzük, mert az elkövetéséhez szükség van a hashráta több, mint a felének az irányítására.

A Bitcoin tranzakciók esetén fontos megérteni, hogy teljes véglegesség nem létezik, mivel mindig van matematikai esély az 51%-os támadásra, és árva blokkok is képződhetnek. Emiatt a tranzakciók címzettjei általában megvárnak néhány új blokkot, hogy véglegesnek tekintsék a történteket. Több blokk esetén már annyira sok energia kellene a manipulációhoz, hogy nem valószínű annak a bekövetkezte.

A blokkok bányászatakor az előző blokk hash-értékét is mindig az inputok közé teszik a bányászok, ebből származik az úgynevezett konfirmáció. Ha azt hallod, hogy egy tranzakciónak hat konfirmációja van, az azt jelenti, hogy a tranzakciót tartalmazó blokk után már hat újabb blokkot is létrehoztak. Ha digitális könyveket adsz el a webshopodban, amelynek nincsen sok plusz költsége, esetleg 1 konfirmációval is megelégedhetsz, vagy éppen azonnal teljesítettnek fogadod el a tranzakciót, és amint látod a mempoolban a bejegyzést, már küldöd is a letöltő-linket a vásárlónak. Viszont ha egy lakóházat adsz el, akkor esetleg 12 konfirmációt, két órát is hajlandó vagy kivárni.

Minél több konfirmációt akarsz, minél tovább vársz, annál több Proof of Work kerül bele a blokkokba, annál több energiát használnak el a bányászok a valódi, fizikai világban, annál drágább lenne a manipulációs kísérlet, a tranzakció visszafordítása. Manapság az az elterjedt nézet, hogy hat konfirmáció után már biztosan megtörténtnek vehetjük a tranzakciókat.

Ha a Bitcoin hashrátája jelentős mértékben lecsökkenne valamiért, tehát kevesebb energia kellene a blokkok létrehozásához, akkor módunk van rá, hogy növeljük a szükségesnek tartott konfirmációk számát. Első ránézésre nem hangzik túl jól, hogy várni kell a tranzakciók véglegesítésére, de ehhez érdemes figyelembe venni, hogy a bankkártyás tranzakciókat akár 120 nap múltán is vissza tudják fordítani.

A Bitcoin tranzakciók ezzel szemben mindössze néhány blokkig tekinthetők elméletben visszafordíthatónak. A kereskedők szemszögéből nézve a véglegesség és a visszafordíthatóság tekintetében így a Bitcoin hatalmas előrelépést jelent a hagyományos digitális fizetési, pénzügyi megoldásokhoz képest.

Léteznek becslések, amelyekből kiderül, hogy ha egy egész ország energiatermelését irányítanád is, és nálad lenne az összes létező Bitcoin-bányászgép, akkor is több, mint egy évig tartana, mire a teljes lánc-történetet újra tudnád írni. Ha több adatra vagy kíváncsi ezzel kapcsolatban, a http://bitcoin.sipa.be oldalon kedvedre nézelődhetsz.


[1] Angol nyelven olvashatsz erről egy nagyon jó értekezést az alábbi címen: https://hackernoon.com/bitcoin-miners-beware-invalid-blocks-need-not-apply-51c293ee278b

1 thought on “A Bitcoin létrehozása – Melyik lánc az igazi?

Comments are closed.