Block Propagation to rozchodzenie się nowego bloku między komputerami w sieci Bitcoin. Dostarczenie danych to pierwszy krok; odbierający węzeł sam musi sprawdzić, czy blok jest prawidłowy i może trafić do przyjętej historii.
Wyobraźmy sobie, że Anna zajmuje się wydobyciem i właśnie znalazła blok z transakcjami. Blok grupuje transakcje w pakiet dołączany do wspólnej historii. Bitcoin nie ma centrali, która wysyła go wszystkim naraz. Węzeł Anny informuje sąsiadów, czyli komputery, z którymi jest połączony. Wiadomość biegnie dalej i dociera do poszczególnych osób w różnym czasie. Tę drogę nazywamy Block Propagation. Jej szybkość wpływa na to, jak długo pozostali pracują jeszcze na wcześniejszej wersji historii. [1] [6]
Piotr prowadzi w domu Full Node: program sprawdzający bloki i transakcje według reguł Bitcoina. Sama informacja o nowym bloku nie wystarczy. Do weryfikacji potrzebuje całej zawartości. Może ją pobrać lub odtworzyć z otrzymanej wiadomości i posiadanych transakcji. To jak dostać listę stron książki i odnaleźć je we własnej bibliotece: przesyłamy mniej, lecz gotowa książka musi być taka sama. [1] [7]
Blok ma krótki nagłówek, Block Header. Zawiera on między innymi odwołanie do poprzedniego bloku i pozwala sprawdzić Proof of Work, dowód pracy obliczeniowej wymaganej przy wydobyciu. Górnicy szukają tego dowodu, powtarzając obliczenia; pozostali mogą szybko sprawdzić znaleziony wynik. To przydatna pierwsza kontrola, nie potwierdzenie każdej płatności. Sam nagłówek nie powie Piotrowi, czy podpisy są prawidłowe i czy transakcje rzeczywiście wydają dostępne, niewydane wcześniej środki. Podpis cyfrowy potwierdza autoryzację płatności za pomocą klucza prywatnego, czyli tajnej wartości liczbowej, bez ujawniania tego klucza. UTXO to niewydane wyjście transakcji: zapis kwoty i warunków, pod którymi można ją wydać. [6] [8]
Wiele transakcji Piotr otrzymał jeszcze przed wydobyciem bloku. Przechowuje je w Mempool, lokalnym zbiorze transakcji bez potwierdzenia. Compact Blocks opisane w BIP 152 wykorzystują tę wiedzę: zamiast ponownie przesyłać każdą transakcję, wiadomość zawiera głównie krótkie identyfikatory oraz wybrane pełne transakcje. Piotr układa znane elementy we właściwej kolejności. Mniejsza jest wiadomość sieciowa, nie sprawdzany blok; reguły jego poprawności się nie zmieniają. [2] [7]
Nie istnieje jeden wspólny Mempool dla całego świata. Każdy węzeł może znać nieco inne transakcje, więc Piotrowi może czegoś brakować. Prosi o brakujące dane albo wraca do pobrania całego bloku. Dodatkowa prośba i odpowiedź zabierają czas. Nie wolno z tego powodu zgadywać treści ani pomijać kontroli. Rzeczywista oszczędność zależy więc również od liczby transakcji znanych już odbiorcy. [2] [7]
Szybszy tryb BIP 152 pozwala przekazać blok dalej przed zakończeniem wszystkich kontroli transakcji. Nie oznacza to wysyłania w ciemno: nadawca musi sprawdzić między innymi połączenie ze zweryfikowanym łańcuchem, Proof of Work oraz kryptograficzną zgodność nagłówka z przesyłanymi transakcjami. Przesyłanie i pozostałe kontrole mogą wtedy trwać równocześnie. Full Node przyjmuje jednak blok do swojej aktywnej historii dopiero po pełnej weryfikacji. [2] [4] [7]
Zanim blok Anny dotrze do wszystkich, inny górnik może znaleźć własny blok z tym samym poprzednikiem. Część sieci przez chwilę widzi jedną prawidłową gałąź, a część drugą. Rozstrzyga dalsza skumulowana praca między prawidłowymi gałęziami, nie głosowanie komputerów. Prawidłowy blok pozostawiony poza przyjętym łańcuchem to Stale Block. Szybsze rozchodzenie się bloków skraca czas takiego wyścigu, lecz go nie eliminuje. [6] [8]
Jeśli blok Anny rozchodzi się powoli, rośnie ryzyko, że inni zaczną budować na konkurencyjnym bloku, a jej blok pozostanie poza przyjętym łańcuchem. W tej historii nie otrzyma z niego nagrody. Dobre połączenie to zatem więcej niż wygoda. Jego przewaga może sprzyjać skupianiu wydobycia u lepiej połączonych operatorów. Samo wolne łącze nie jest jednak miarą centralizacji ani dowodem ataku. [7] [8]
FIBRE to przykład wyspecjalizowanego systemu szybkiego przesyłania bloków. Ma ograniczać opóźnienia, także te spowodowane utratą pakietów, czyli małych części przesyłanej wiadomości. Taka droga może dostarczyć blok wcześniej, ale jej operator nie decyduje za Piotra o jego poprawności. Full Node Piotra musi sprawdzić te same reguły bez względu na trasę, którą dotarły dane. [3] [9]
Sieć musi uwzględniać też ilość danych, prywatność i odporność połączeń. Poleganie na jednej drodze jest słabością, nawet gdy działa szybko. Warto również rozróżniać zadania usprawnień: BIP 330, element Erlay, pomaga sąsiednim węzłom wykrywać różnice między zbiorami zapowiedzi transakcji. Nie zastępuje przesyłania bloków według BIP 152. Wspólnym celem jest sprawniejsza komunikacja przy zachowaniu niezależnej kontroli każdego węzła. [1] [5]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. Do tego hasła prowadzą również odsyłacze z Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.