Genesis Block jest ustalonym blokiem początkowym głównej sieci Bitcoina, zwanej mainnetem. Jego nagłówek nosi datę 3 stycznia 2009 roku. Zawiera jedną transakcję tworzącą wyjście 50 BTC, które jest traktowane szczególnie i nie można go wydać.
W sobotę 3 stycznia 2009 roku londyński The Times pisał o brytyjskim ministrze finansów Alistairze Darlingu i perspektywie drugiego ratowania banków. Według znacznika czasu w nagłówku pierwszy blok Bitcoina pochodzi z tego samego dnia. Satoshi Nakamoto umieścił tytuł artykułu w jego jedynej transakcji. Zdanie pozostało w danych, które każdy może odczytać. Nie było jeszcze rynku, giełdy ani tłumu górników. Był przede wszystkim początek łańcucha, do którego mogły dołączać kolejne bloki. Nagłówek powiązał go z konkretnym dniem i osadził nowy eksperyment pieniężny w czasach kryzysu finansowego. [1] [6]
Genesis nie ma poprzedniego bloku, więc odpowiednie pole nagłówka ma wartość zerową. Bitcoin Core odtwarza jego dane z ustalonych parametrów i sprawdza oczekiwany hash, cyfrowy odcisk danych bloku. Węzeł nie zaczyna zatem od dowolnego bloku otrzymanego od innego uczestnika. Blok na wysokości 1 odwołuje się już do hasha Genesis Blocku; inny początek oznaczałby inną historię. Whitepaper opisywał łańcuch chroniony przez Proof of Work. Dopiero utworzenie konkretnego bloku z prawidłowym dowodem pracy zamieniło projekt w zapis, na którym mógł oprzeć się działający program. [1] [8]
Nagłówek bloku zawiera czas 1231006505, czyli 3 stycznia 2009 roku, 18:15:05 UTC. To wartość wpisana przez twórcę bloku, a nie niezależny pomiar chwili jego powstania. Kolejna wskazówka znajduje się w wejściu transakcji coinbase: „The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”. Coinbase nie wydaje wcześniejszego wyjścia: tworzy nagrodę za blok, a jej specjalne wejście może zawierać dodatkowe dane. Tam Satoshi zapisał nagłówek. Wspiera on wniosek, że blok nie powstał przed publikacją wiadomości. Nie potwierdza jednak dokładnej sekundy wydobycia ani prawdziwej tożsamości autora. [1] [5] [6]
Artykuł dotyczył kolejnej pomocy brytyjskim bankom po wstrząsie finansowym z 2008 roku. Odczytanie go jako krytyki pakietów ratunkowych jest uzasadnione, zwłaszcza obok whitepaperu opisującego płatności bez pośrednika finansowego. Satoshi nie pozostawił jednak jednoznacznego publicznego wyjaśnienia wyboru tego zdania. Pewny jest zapisany tekst; polityczny przekaz pozostaje interpretacją. Nagłówek wiąże też blok z konkretnym wydaniem gazety, a więc zdarzeniem poza komputerem autora. Oba znaczenia mogą się uzupełniać. Protokół nie wyprowadza z nich reguł politycznych; zapis historyczny należy odróżniać od późniejszych odczytań. [1] [8]
Każdy kolejny blok zawiera hash poprzedniego. Genesis Block nie ma takiego połączenia, dlatego jego początek jest wyraźnie ustalony w oprogramowaniu. Bitcoin Core tworzy go między innymi z nagłówka gazety, klucza publicznego, czasu 1231006505, nonce 2083236893, trudności 1 i nagrody 50 BTC. Otrzymany hash musi odpowiadać znanej wartości. Początkowo Satoshi kontrolował jedyną znaną implementację i prawdopodobnie jedyny aktywny węzeł. Reguły pozwalały jednak każdemu późniejszemu Full Node sprawdzać je samodzielnie. Genesis Block był technicznym punktem wyjścia, a nie gotową zdecentralizowaną gospodarką. Nonce to liczba w nagłówku, którą górnik może zmieniać podczas szukania prawidłowego bloku; trudność określa wymagany wysiłek tej pracy. [1] [6]
Zbiór UTXO zawiera niewydane wyjścia transakcji: kwoty wraz z warunkami ich wydania. Przy dołączaniu genesis Bitcoin Core pomija dołączanie jego transakcji, więc pierwotne wyjście nie trafia do zbioru UTXO. Nie jest to zwykłe oczekiwanie na dojrzałość nagrody górniczej i kolejne potwierdzenia go nie odblokują. Nawet znajomość właściwego klucza prywatnego nie utworzyłaby brakującego wydawalnego wyjścia. [2]
Eksplorator może pokazywać późniejsze wpłaty na adres kojarzony z genesis. Nie są one pierwotnym wyjściem bloku 0: mają własne identyfikatory transakcji i warunki wydania. Szczególne pominięcie genesis nie dotyczy ich automatycznie. Salda adresu nie należy więc utożsamiać z możliwością wydania pierwotnych 50 BTC. [2] [5]
Następny blok, na wysokości 1, ma znacznik czasu 9 stycznia 2009 roku, 02:54:25 UTC. Pierwsze dwa bloki dzieli więc kilka dni, znacznie więcej niż zwyczajowy cel dziesięciu minut. Same znaczniki czasu nie tłumaczą tej przerwy; przypisywanie Satoshiemu konkretnego zamiaru byłoby spekulacją. Publiczne ogłoszenie wersji 0.1 na e-mailowej liście dyskusyjnej Cryptography Mailing List pochodzi już z 8 stycznia 2009 roku, z godziny 19:27:40 UTC. Opisał system peer-to-peer, podał link do pobrania i instrukcję uruchomienia. Bitcoin miał już pierwszy zapis oraz program, który inni mogli uruchomić, aby samodzielnie weryfikować reguły. [7] [1] [9]
Na własnym węźle mainnetu getblockhash 0 zwraca identyfikator zaczynający się od 000000000019d668. getblock z tym hashem i poziomem szczegółowości 2 pokazuje blok oraz zdekodowaną transakcję. Dane można porównać z parametrami Bitcoin Core; sam zrzut ekranu eksploratora nie zastępuje ich sprawdzenia. [3] [4]
Sieci testowe i regtest mają własne parametry oraz inne hashe genesis. Przed porównaniem sprawdź sieć, nie tylko wysokość 0. Zgodny pierwszy blok potwierdza wspólny początek, nie poprawność wszystkich dalszych bloków, bezpieczeństwo portfela ani kontrolę nad kluczami. Genesis Block ustala punkt wyjścia. Następne bloki muszą odpowiadać regułom programu wybranego przez operatora węzła. Satoshi mógł stworzyć pierwszy blok, ale nie mógł przez to zmusić innych do używania programu ani automatycznej akceptacji wszystkiego, co nastąpiło później. [1] [8]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Block Subsidy, Timechain / Blockchain. Do tego hasła prowadzą również odsyłacze z Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Block Subsidy.