Block Weight określa, jak Bitcoin mierzy wykorzystaną pojemność bloku, czyli grupy transakcji dopisywanej do wspólnej historii. Poszczególne części danych liczą się inaczej. Waga ma stały górny limit; nie wyznacza liczby płatności ani wartości przesyłanych bitcoinów.
Anna wysyła Bitcoin, ale następny blok nie zawiera jej płatności. Samo to nie oznacza utraty pieniędzy. Niepotwierdzona transakcja może czekać w Mempool — lokalnej kolejce danego węzła. Węzeł to program, który sprawdza transakcje i bloki oraz wymienia dane z innymi uczestnikami sieci. Górnik wybiera transakcje do bloku o ograniczonej pojemności i może też utworzyć mniejszy blok. Opłaty są zachętą, a nie poleceniem uwzględnienia konkretnej płatności. Block Weight wyjaśnia jedno ograniczenie tego wyboru, nie wszystkie przyczyny oczekiwania. [1] [7]
Górny limit wynosi 4 000 000 WU, z uwzględnieniem tej dokładnej wartości. WU oznacza jednostkę wagi. Full Node, węzeł samodzielnie sprawdzający reguły Bitcoin, odrzuci blok powyżej limitu. Nie uratują go wysokie opłaty ani poprawny Proof of Work — obliczeniowy dowód pracy wymagany przy wydobyciu. Trzeba zarówno znaleźć ten dowód, jak i zbudować prawidłowy blok. Sama wola górnika nie ustala więc pojemności. [1] [3] [4]
Bajt jest standardową jednostką ilości danych. SegWit oddzielił część danych potwierdzających prawo do wydania monet, w tym podpisy. Nazywa się je witness. Bajt danych podstawowych wnosi 4 WU, a dodatkowy bajt pełnego zapisu z witness — 1 WU. Do drugiej grupy należą także pomocnicze pola marker i flag. Pozwala to zachować podstawową strukturę transakcji i zapewnić miejsce na dane weryfikacyjne bez jednakowego liczenia wszystkich bajtów. [1] [2]
Podpis potwierdza prawo nadawcy do wydania określonych monet. Warunki wydania opisuje krótki program zwany skryptem. Mniejszy udział witness w wadze nie pozwala węzłowi pominąć wymaganych podpisów czy warunków skryptu. Dane nadal znajdują się w pełnym zapisie. To zasada rozliczania pojemności, a nie twierdzenie, że praca procesora, transmisja i zapotrzebowanie na miejsce maleją w tej samej proporcji. [1] [4]
Serializacja to zapis bloku w postaci dokładnej sekwencji bajtów wymienianych przez komputery. Oznaczmy rozmiar bez witness jako B, a pełny rozmiar jako T. BIP 141 używa W = 3 × B + T. Dane podstawowe są już zawarte w T, więc łącznie liczą się czterokrotnie. Dane dodane przez zapis witness liczą się raz. Wzór dotyczy całego bloku, nie tylko zwykłych płatności. [1] [8]
Przyjmijmy B = 500000 i T = 2500000 bajtów. Wynik to W = 4000000 WU. Inny skład danych może dać B = 750000 i T = 1750000 bajtów, a ponownie W = 4000000 WU. To przykłady obliczeń, nie pomiary bloków. Oba wykorzystują taką samą wagę, lecz drugi wymaga przesłania mniejszej liczby bajtów. Zdanie „pełny blok zawsze ma 4 MB” jest więc błędne. Liczba transakcji w pełnym bloku też nie jest stała. [1]
Blok nie jest wyłącznie zbiorem płatności. Ma nagłówek o rozmiarze 80 bajtów, zawierający między innymi odniesienie do poprzedniego bloku i podsumowanie transakcji. Następnie zapisana jest ich liczba, zakodowana za pomocą CompactSize — kodowania liczb całkowitych o zmiennej długości. Pierwsza jest Coinbase Transaction, specjalna transakcja nagrody dla górnika; nazwa nie oznacza tu giełdy. Wszystkie te części wchodzą do obliczenia. Suma wag pozostałych transakcji nie jest jeszcze wagą całego bloku. [5] [7] [8]
Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. Zwykle posługuje się wirtualnym rozmiarem transakcji w jednostkach vByte. To waga całej transakcji podzielona przez 4 i zaokrąglona w górę. Pomaga porównywać opłaty za zajętą pojemność. Suma takich zaokrąglonych rozmiarów nie daje dokładnej wagi bloku: jednostka jest inna, zaokrąglenia są osobne, a struktura bloku została pominięta. Duża kwota nie musi oznaczać dużej ilości danych. [1] [8]
Waga nie opisuje całej pracy węzła. Odpowiednie reguły przewidują również limit 80 000 ważonych jednostek kosztu operacji weryfikacji podpisów. Nie jest to prosta liczba wszystkich podpisów w bloku. Tapscript, język skryptów wprowadzony wraz z Taproot, ma osobny budżet dla każdego wejścia, czyli części transakcji wydającej wcześniej otrzymane monety; jego operacje podpisu nie wchodzą do tego starszego limitu obejmującego blok. BIP 342 opisuje inne ograniczenie. Zgodność z limitem wagi nie pozwala więc na dowolnie kosztowną weryfikację. [1] [3] [9]
Eksplorator bloków to aplikacja do wyszukiwania transakcji i bloków w danej sieci. W Bitcoin Core v29.0 polecenie getblock zwraca między innymi size, strippedsize i weight: pełny rozmiar w bajtach, rozmiar bez witness i wagę. Można też zobaczyć chainwork. To skumulowana praca obliczeniowa łańcucha, a nie jego waga danych. Na co dzień warto rozróżniać pojemność i cenę: Block Weight ogranicza miejsce w bloku, a opłata płatności zależy od rozmiaru transakcji i wybranej stawki. Żadna z tych liczb sama nie obiecuje czasu potwierdzenia. [6]
Pełniejszy obraz uzyskasz, czytając to hasło razem z vByte, Witness Data, SegWit, Wojna o rozmiar bloków, Bitcoin, Full Node. Do tego hasła prowadzą również odsyłacze z Signet, vByte, Witness Data, Ordinals Inscriptions.