Dla rozmiaru B bez witness i pełnego rozmiaru T zachodzi W = 3 × B + T. Obliczenie obejmuje cały serializowany blok, wraz z nagłówkiem i coinbase.
B to rozmiar pierwotnej serializacji bez witness, T to pełny rozmiar. W = 3 × B + T łączy obie wartości i daje WU, nie bajty. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]
Bajt bazowy kosztuje 4 WU. Bajt dodany przez serializację witness kosztuje 1 WU, w tym marker, flag i inne elementy serializacji tej części. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]
BIP 141 wymaga W ≤ 4 000 000 WU. Równość jest dozwolona; wyższe opłaty, więcej Proof of Work ani zgoda górnika nie usprawiedliwiają przekroczenia. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]
Przykładowe B = 500 000 i T = 2 500 000 dają W = 4 000 000 WU. B = 750 000 i T = 1 750 000 dają tę samą wagę; pełny blok nie ma więc stałego rozmiaru 4 MB. [BIP 141 — Segregated Witness]
Blok zawiera też 80-bajtowy nagłówek, zakodowaną liczbę transakcji i coinbase. Nagłówek i licznik są danymi bazowymi; suma wag samych pozostałych transakcji nie wystarczy. [Bitcoin Developer Reference — Block chain]
Transakcyjne vsize zaokrągla W / 4 w górę dla każdej całej transakcji. Suma takich zaokrąglonych rozmiarów pomija też część narzutu bloku i nie jest dokładnym obliczeniem wagi konsensusu. [BIP 141 — Segregated Witness] [Bitcoin Developer Reference — Block chain]
Full Node nadal sprawdza odpowiednie podpisy i skrypty. Witness zużywa przepustowość i obliczenia; mniejsza waga nie oznacza zerowych kosztów ani opcjonalnej weryfikacji. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — validation]
BIP 141 ogranicza także koszt operacji podpisu do 80 000 jednostek. Nie jest to proste liczenie wszystkich podpisów; reguły zależą od typu skryptu, a nowsze wersje mają dodatkowe własne limity. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits]
Górnik może wybrać niższą wagę docelową z powodów operacyjnych. Jego szablon lub lokalna polityka węzła nie zmieniają maksimum konsensusu ani nie gwarantują włączenia konkretnej transakcji. [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]
getblock w Bitcoin Core v29.0 zwraca size, strippedsize i weight. chainwork oznacza coś innego: skumulowaną pracę łańcucha, nie bajtową wagę jego bloków. [Bitcoin Developer Reference — Block chain] [Bitcoin Core — getblock RPC]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Virtual byte (vbyte), Witness data, SegWit, Wojna o rozmiar bloków. Do tego hasła prowadzą również odsyłacze z Virtual byte (vbyte), Witness data.