Block, czyli blok, to kolejna grupa transakcji w historii Bitcoina. Gdy płatność trafia do prawidłowego bloku w łańcuchu śledzonym przez twój węzeł, otrzymuje pierwsze potwierdzenie. Nie decyduje o tym centralny administrator: górnik tworzy blok, a pozostałe węzły sprawdzają zgodność z regułami Bitcoina.
Wysyłasz płatność w bitcoinie, a portfel początkowo pokazuje oczekiwanie na potwierdzenie. Transakcja rozchodzi się między węzłami i może trafić do ich mempooli, lokalnych list niepotwierdzonych transakcji. Górnik wybiera część z nich do kandydata na blok. Jeśli znajdzie wymagany Proof of Work (wynik obliczeń górniczych spełniający reguły sieci), a węzły przyjmą blok do aktywnego łańcucha, zawarta w nim płatność otrzyma pierwsze potwierdzenie. Następny blok dobudowany za nim zwiększy liczbę do dwóch. Celem jest średnio około dziesięciu minut między blokami, a nie gwarancja realizacji każdej płatności w dziesięć minut. [1] [3]
Każdy blok ma krótki nagłówek i swoje transakcje. Nagłówek zawiera między innymi kryptograficzny odcisk poprzedniego bloku — odniesienie zmieniające się po zmianie jego danych. Powstaje więc powiązana historia, nie luźny stos płatności. Inny odcisk w nagłówku podsumowuje transakcje danego bloku i nazywa się Merkle root. Górnik próbuje wariantów nagłówka, aż jego hash, liczbowy odcisk, spełni próg trudności. Nie dowodzi to jeszcze poprawności płatności. Pełny węzeł sprawdza również podpisy, prawa do wydawania i inne reguły. Prawidłowy Proof of Work nie naprawi nieprawidłowej transakcji. [1] [3]
Pierwsza transakcja nazywa się Coinbase Transaction. Górnik może w niej przypisać sobie najwyżej dozwoloną nową emisję oraz opłaty z transakcji zawartych w bloku. Następnie węzeł sprawdza zwykłe transakcje po kolei: dotychczas niewydane kwoty znikają z dostępnych środków i powstają nowe. Te oddzielne kwoty to UTXO. Płatność może w tym samym bloku wydać wyjście wcześniejszej płatności, jeśli spełnia pozostałe warunki. Nie wolno jednak wydać tego samego wyjścia dwukrotnie. Nowej nagrody z coinbase nie można od razu wydać w tym bloku: obowiązuje specjalna reguła oczekiwania 100 bloków. [1]
Blok nie ma stałej liczby miejsc na płatności. Prosta transakcja wymaga mniej danych niż złożona, więc tę samą pojemność mogą wypełnić różne ich liczby. Od SegWit (zmiany reguł Bitcoina dotyczącej przechowywania i liczenia danych transakcji) pojemność rozlicza się wagą z limitem 4 000 000 jednostek. To techniczny sposób liczenia danych, nie masa fizyczna. Obowiązują też inne reguły. Górnik nie musi wykorzystać całej pojemności. Tak zwany pusty blok może pomijać zwykłe płatności, ale nadal zawiera coinbase. Pusty nie znaczy więc bez żadnej transakcji ani automatycznie nieprawidłowy. [1] [2]
Czasem dwaj górnicy znajdują bloki niemal jednocześnie i obaj nawiązują do tego samego poprzednika. Oba bloki mogą być prawidłowe, lecz tworzą konkurencyjne gałęzie. Węzeł wybiera spośród prawidłowych gałęzi według łącznej udowodnionej pracy, nie przez proste głosowanie ani samą liczbę bloków. Przejście do innej gałęzi to reorganizacja. Płatność z opuszczonego bloku może stracić potwierdzenia; jeżeli nadal jest prawidłowa i nie ma jej w nowej gałęzi, może ponownie czekać na włączenie. Kolejne potwierdzenia zwykle zwiększają pewność, ale nie dają matematycznej obietnicy nieodwracalności. Dla zainteresowanych szczegółami: nagłówek ma 80 bajtów. Merkle root to odcisk obliczony z identyfikatorów transakcji, zwanych txid, w kolejności ich występowania w bloku. Dane witness z SegWit, na przykład podpisy potrzebne do sprawdzenia wydania środków, mają dodatkowy odcisk kryptograficzny zapisany za pośrednictwem coinbase. Te powiązania pozwalają węzłowi sprawdzić, czy dostarczone dane należą do bloku. [1] [2]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Block Header, Transakcja, Timechain / Blockchain, Wydobywanie. Do tego hasła prowadzą również odsyłacze z Block Header, Merkle Tree, Potwierdzenie, Transakcja coinbase.