Bár ma már szinte mindenki tudja, hogy soha nem lehet több bitcoin mint 21 millió (egészen pontosan annál egy picit kevesebb…), de ha valaki rászánja az időt, akkor azt fogja látni, hogy ezen limitáció sehol nem található meg sem a whitepaperben, sem a Satoshi által publikált első bitcoin core kódbázisokban. Ezt a véges számú limitációt (finite monetary supply) csak 2014-ben implementálták, Pieter Wuille BIP-0042-es beterjesztése nyomán.

Persze ez nem jelenti azt, hogy Satoshi tényleg végtelen mennyiségű bitcoint szeretett volna látni, ellenben egy igen vicces teóriával indokolta az eredeti kódot. A kód lényegében azt tartalmazta, hogy – a jelenlegi metódusnak megfelelően – 210.000 blokkonként (4 évente) feleződik a reward, onnantól 32 ciklusig nem feleződik (hiszen 0 satnak a fele is nulla). Ám a második 32-es ciklus után újra indul a ciklus, így 64 ciklussal (tehát 64×4=256 év) a genezis blokk után újra 50 BTC lenne a block reward. Ezen sajátosság abból fakad, hogy a block jutalom felezést Satoshi nem egy fix feltétellel kezelte, hanem egy 64 bites int érték shiftelésével, ami bizony 64 shiftnél túlcsordul a referencia C++ implementáció esetén.

Satoshi ezt a sajátosságot (ami a legvalószínűbb, hogy simán csak egy binary shift bug volt, amit nem gondolt végig eredendően…) azzal indokolta, hogy a Bitcoin tervezésekor a természeti kincsek jellemzőire próbált építeni, ahol pl teljesen logikus, hogy miután kimerült egy komolyabb forrás, akkor az emberek újabb lehetséges források felkutatásába kezdenek. Azaz, ha a végtelenségig kiszipolyoztunk egy aranybányát, akkor jelentős idővel később csak találunk egy újabbat. Ennek megfelelően 1024 évente négy egyenrangú szimbolikus “aranybányát” tártak volna a Bitcoin bányászok.

Tehát ha maradt volna az eredeti kódbázis, akkor mindösszesen már csak ~240 éves kellett volna várnunk arra, hogy újra 50 BTC legyen egy kibányászott block jutalma…

Source: Variance

%d bloggers like this: