Dziesięciolecie Bitcoina. To już dekada jego istnienia
Dokładnie 10 lat temu, 03 stycznia 2009 roku sieć blockchain Bitcoina wydobyła pierwszy blok, nazywany blokiem 0. Ostatnia dekada to niewątpliwie czas podsumowań i refleksji. W tym artykule chciałbym skupić się na próbie wyjaśnienia, jak to się wszystko zaczęło, czym jest blok 0 i kim jest Satoshi Nakamoto.
Blok 0 – symbol nowego rozdania
Blok 0 urósł do rangi symbolu. Dla kryptowalutowej społeczności oznacza on wejście w nową jakość procesów przekazywania wartości. Kojarzy się również z początkiem nowej ery informatyzacji i komunikacji w ogóle, dzięki zastosowaniu technologii łańcucha bloków. Symboliczności całemu wydarzeniu dodaje fakt, że blok 0 nazywany jest z Genesis, co oznacza „pierwszy”, „początek”.
Pierwsza transakcja w blockchain Bitcoina odbyła się 03 stycznia 2009 o godzinie 18:15 i skutkowała wydobyciem pierwszych w historii 50 BTC. Kolejny, drugi blok został wykopany sześć dni później, w piątek 09 stycznia 2009 roku. Współczesne wersje Bitcoina numerują Genesis jako blok 0, chociaż jego bardzo wczesne wersje zaliczały go jako blok 1.
Panie i Panowie – blok 0!
Choć zapewne nie każdy z naszych czytelników jest „techniczny”, warto zobaczyć (być może po raz pierwszy), strukturę kodu Genesis. Przedstawia się ona następująco:
GetHash() = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
txNew.vin[0].scriptSig = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E6972
62206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D
695420656854
txNew.vout[0].nValue = 5000000000
txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FB
CF649B6DE611FEAE06279
A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG
block.nVersion = 1
block.nTime = 1231006505
block.nBits = 0x1d00ffff
block.nNonce = 2083236893
CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)
CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)
CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e
63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f75742
0666f722062616e6b73)
CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
vMerkleTree: 4a5e1e
Hash bloku 0 to 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f. Jest charakterystyczny o tyle, że posiada o dwa zera więcej, niż każdy inny. Te dwa początkowe, dodatkowe zera były wymagane dla najwcześniejszego z bloków.
Przypadek szczególny
Blok Genesis jest przypadkiem szczególnym, ponieważ nie odnosi się do żadnego innego bloku, który by go poprzedzał. Jest on permanentnie zakodowany w strukturze sieci bitcoin. Dla niej właśnie, wydobycie bloku 0 jest symbolicznym, niezbywalnym rodzajem grantu, który zainicjował sieć.
Blok 0 jako jedyny do tej pory zawierał dane wejściowe (coinbase), w postaci znamiennego przekazu Nakamoto. Każda późniejsza transkacja w blokach sieci odnosiła się już o danych wyjściowych bloku, który je poprzedza. Skoro Genesis nie posiadał poprzednika można powiedzieć, że pierwsze 50 Bitcoinów zostało stworzonych „z niczego”.