A Bitcoin létrehozása – A blokkjutalom és a felezés

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.

***

A blokkjutalom

Az a személy, aki megnyeri a Proof of Work lottót, saját magának is „ad” coinokat. De miért pont 12,5-öt, miért nem mondjuk ezret? Miért nem lehet csalni a rendszerben, és bármennyi coint adni magunknak?

A Bitcoin egy elosztott konszenzuson alapuló rendszer. Ez azt jelenti, hogy mindenkinek egyet kell értenie abban, hogy mi számít érvényesnek, mi az igazság. Ezt úgy lehet megvalósítani, hogy mindenki ugyanazt a szoftvert futtatja a saját gépén, amely ellenőrzi, hogy mindenki betartja-e ugyanazokat a pontosan meghatározott szabályokat, amelyeket összefoglalóan a Bitcoin konszenzus szabályainak hívunk. Minden egyes blokk, amelyet a bányászok létrehoznak, végigmegy ezen az ellenőrzésen. Ha megfelel a szabályoknak, mindenki beleírja a saját főkönyvébe, és mindenki elfogadja, hogy érvényes. Ha nem felel meg, akkor visszautasítják, nem kerül bele a nyilvántartásba.

A teljesség igénye nélkül lássunk néhány szabályt, amelynek meg kell felelni:

  • Az érvényes blokk új bitcoin létrehozását is tartalmazza, ennek a mértéke pedig a programban meghatározott kibocsátási rátától függ, annál nem több.
  • A tranzakcióknak rendelkeznie kell a megfelelő digitális aláírással, amely bizonyítja, hogy az adott coinokat tényleg a tulajdonosuk akarja elkölteni.
  • A blokkban nincs olyan tranzakció, amely ebben, vagy egy előző blokkban már egyszer elköltött coinokat akar újból elkölteni.
  • A blokkban lévő adatok mennyisége nem haladhat meg egy bizonyos mértéket.
  • A blokkhoz tartozó Proof of Work hash értéke kisebb a célszámnál, ez bizonyítja, hogy a véletlenszerű találgatás során el lett használva a megfelelő mennyiségű energia.

Ha Mary a bányászat során úgy dönt, hogy létrehoz magának egy kis mellékes jövedelmet, a többi résztvevő számítógépe vissza fogja utasítani a blokkját, mivel az érvénytelen lesz. Ez azért történik így, mert a Bitcoin programkódjában, amelyet mindenki a saját gépén futtat, van egy olyan kódrészlet, amely kimondja, „a jelenlegi blokkjutalom pontosan 12,5 BTC, ha látsz egy blokkot, amelyik ennél többet tartalmaz, az érvénytelen, utasítsd el”.

Ha Mary csalni próbál, és érvénytelen blokkot hozna létre, ez a blokk nem kerül bele a többiek főkönyvébe, ehelyett a létrehozására fordított rengeteg energia mind kárba vész, hiszen olyan dologra fordítódott, amit senki sem akar, a pénzhamisításra. Emiatt a bitcoin hamisítása gyakorlatilag megfizethetetlen, ahogyan erre Nick Szabo is rávilágított a Shelling out című értekezésében. Azt mindenki tudja, hogy egy pénz, amelyet könnyű hamisítani, nem a legjobb választás. A bitcoint ezzel szemben lehetetlen hamisítani, hiszen egy egyszerű matematikai ellenőrzéssel észre lehet venni a csalást.

Satoshi a Bitcoin első blokkjában, a Genesis blokkban bányászta ki az első bitcoinokat. A program nyílt forráskódú, ez pedig azt jelenti, hogy bárki szabadon belenézhet, megnézheti, hogyan működik, és ellenőrizheti, hogy semmiféle kétes dolog sincs a motorháztető alatt. Még maga Satoshi is részt kellett, hogy vegyen a Proof of Work lottóban, és milliónyi próbálkozást végrehajtania, hogy létrehozhassa az első blokkokat. Ő hozta létre az egész rendszert, de még ő sem tudta meghamisítani az energiafelhasználás bizonyítékát, nem tudta megkerülni a szabályokat.

Bárki, aki őutána csatlakozott a hálózathoz, gyakorlatilag azonnal ellenőrizhette az összes blokkját, a generált hash értékét a szükséges célszámmal együtt, és megbizonyosodhatott arról, hogy ő is elhasználta a megfelelő mennyiségű energiát, hogy megtalálja a statisztikailag nehezen megtalálható nyerőszámot. Most képzeljük el, hogy a jelenlegi, bankok által irányított fiat pénzrendszerben mekkora esély van egy ilyen precíz, valós idejű auditra a pénznyomtatással kapcsolatban.

A felezés

A bányászat segítségével jön létre új bitcoin a hálózaton. De Satoshi olyan rendszert akart létrehozni, amelyben nem lehetséges a pénzrontás. Nem akarta, hogy a pénzkészlet folyamatosan, vég nélkül növekedjen. Ehelyett egy kibocsátási ütemtervet talált ki, amely először gyors iramban, majd az évek múlásával egyre lassulva hozza létre az új coinokat, egészen addig, míg évente már egyetlen új bitcoin sem kerül kibányászásra.

Kezdetben a blokkjutalom 50 bitcoin volt, Satoshi is ennyit kapott az első blokkokért, ugyanúgy, ahogyan a rendszerhez akkoriban csatlakozó új résztvevők is, amikor kibányászták a blokkjaikat.

A Bitcoin programja tartalmazza a blokkjutalom felezésének a kódját is, amely nagyjából négy évente megfelezi a blokkokért járó BTC mennyiségét. Nem is igazából az idő múlását követi, hanem a létrehozott blokkok számát, mivel átlagosan 10 percenként jön létre egy új blokk, és négy évente éri el a felezési értéket a blokkok száma.

2008-ban 50 bitcoin járt a bányászoknak, 2012 után 25, 2016-ban ez lement 12,5-re, és 2020 májusa után a blokkokért 6,25 bitcoin jutalmat ír jóvá a rendszer. A könyv írásakor, 2019 júniusában még a 12,5 fél bitcoinnak örülhetnek a bányászok, de kicsivel több, mint 50000 blokk múlva ez ismét a felére csökken, és az éves kibocsátási ráta már csak 1,8% lesz.

Tizenkét év múlva pedig, újabb három felezés után a bitcoin teljes 21 milliós készletének a 99%-a már forgalomban lesz, és blokkonként kevesebb, mint 1 BTC jár majd a bányászoknak. A bitcoinblockhalf.com oldalon te magad is megnézheted, hogy milyen ütemterv alapján kerül kibányászásra a bitcoin.

Végül nagyjából a 2140-es évek környékén a blokkjutalom nullára csökken, a bányászok számára pedig a tranzakciós jutalékok jelentik majd a bevételt, és a hálózat fenntartásáért járó jutalmat.

A kibocsátási ráta és a blokkjutalom mértéke rögzítve van a programban, amely teljesen nyílt forráskódú, így bárki meggyőződhet erről a saját szemével is. Így attól függetlenül, hogy mennyire megyünk előre a Bitcoin történetében, azok a blokkok, amelyek megszegnék ezeket a szabályokat, elutasításra kerülnek a többiek részéről, hiszen nem fognak megfelelni a közösen futtatott program követelményeinek, amennyiben ezek nem változnak.