Kompaktowy blok to kodowanie transportu, nie mniejszy blok konsensusu. Full Node musi odtworzyć dokładne transakcje we właściwej kolejności i zweryfikować cały blok.
Krótkie ID ma 48 bitów uzyskanych przez skrócenie SipHash-2-4. Klucze wynikają z nagłówka i dostarczonego nonce; nie jest to globalny identyfikator transakcji. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]
Niektóre transakcje przychodzą całe jako wypełnione elementy, zwykle z coinbase. Indeksy określają pozycję w odtworzonym bloku. [BIP 152 — Compact Block Relay]
Odbiorca dopasowuje krótkie ID do znanych transakcji, na przykład w mempoolu. Jednakowe ID samo nie dowodzi tożsamości transakcji. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]
Brakujące lub niejednoznaczne elementy zamawia się według indeksu przez getblocktxn. Odpowiedź blocktxn dostarcza transakcje do ukończenia rekonstrukcji. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P] [Bitcoin Core v29.0 — net processing]
Rekonstrukcja zachowuje dokładną kolejność i sprawdza zobowiązania kryptograficzne bloku. Full Node nadal waliduje konsensus przed przyjęciem; kompaktowy przekaz nie jest wyjątkiem. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Core v29.0 — net processing]
Po uzgodnieniu sendcmpct szybki tryb może ogłaszać bezpośrednio przez cmpctblock. Po określonych wstępnych kontrolach może wyprzedzać pełną walidację nadawcy, lecz nie usuwa weryfikacji odbiorcy. [BIP 152 — Compact Block Relay] [Bitcoin Core v29.0 — net processing]
Oszczędny tryb najpierw używa inv lub headers, potem odbiorca prosi o kompaktowy blok. Może potrzebować więcej rund niż bezpośrednie ogłoszenie. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P]
Kolizje ID mogą powodować dodatkowe żądania lub nieudaną rekonstrukcję i pobranie całego bloku. Nie pozwalają uznać błędnego bloku za poprawny konsensualnie. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Optech — Compact block relay]
Wersja 2 wyprowadza ID z wtxid zamiast txid i przesyła dane witness według BIP 144. Wersja protokołu kompaktowego nie jest wersją samego bloku. [BIP 152 — Compact Block Relay] [BIP 144 — SegWit peer services]
Korzyść zależy od pokrycia znanych transakcji i warunków sieci. Małe pokrycie dodaje żądania; celem jest oszczędność transmisji, nie gwarantowany rozmiar lub zerowe opóźnienie. [BIP 152 — Compact Block Relay] [Bitcoin Optech — Compact block relay]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Block propagation, Initial block download, Eclipse attack, Virtual byte (vbyte). Do tego hasła prowadzą również odsyłacze z Stale Block, Block propagation, Compact Block Filters, Compact Block Filters.