Компактний блок — кодування передавання, не менший консенсусний блок. Full Node має відновити точні транзакції в правильному порядку й перевірити весь блок.
Короткий ID має 48 біт після скорочення SipHash-2-4. Ключі походять із заголовка й наданого nonce; це не глобальний ідентифікатор транзакції. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]
Деякі транзакції надходять повністю як попередньо заповнені елементи, зазвичай включно з coinbase. Індекси визначають їхні позиції в блоці. [BIP 152 — Compact Block Relay]
Одержувач зіставляє короткі ID з відомими транзакціями, наприклад у мемпулі. Однаковий короткий ID сам не доводить тотожності транзакцій. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation]
Відсутні чи неоднозначні елементи запитуються за індексом через getblocktxn. Відповідь blocktxn надає потрібні транзакції для завершення відновлення. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P] [Bitcoin Core v29.0 — net processing]
Відновлення зберігає точний порядок і перевіряє криптографічні зобов’язання блока. Full Node усе одно перевіряє консенсус перед прийняттям; компактне передавання не виняток. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Core v29.0 — net processing]
Після узгодження sendcmpct швидкий режим може оголошувати блок прямо через cmpctblock. Після визначених попередніх перевірок це може передувати повній валідації відправника, не скасовуючи перевірки одержувача. [BIP 152 — Compact Block Relay] [Bitcoin Core v29.0 — net processing]
Ощадливий режим спочатку використовує inv чи headers, після чого одержувач запитує компактний блок. Він може потребувати більше обмінів, ніж пряме оголошення. [BIP 152 — Compact Block Relay] [Bitcoin Developer Reference — P2P]
Колізії ID можуть викликати запити транзакцій або невдале відновлення з подальшим завантаженням повного блока. Вони не дозволяють прийняти неправильний блок як дійсний. [BIP 152 — Compact Block Relay] [Bitcoin Core — BIP 152 implementation] [Bitcoin Optech — Compact block relay]
Версія 2 виводить ID з wtxid замість txid і передає дані witness за BIP 144. Версія компактного протоколу не є номером версії самого блока. [BIP 152 — Compact Block Relay] [BIP 144 — SegWit peer services]
Користь залежить від спільних транзакцій і мережі. Малий перетин додає запити; головна мета — економія передавання, не гарантований розмір повідомлення чи нульова затримка. [BIP 152 — Compact Block Relay] [Bitcoin Optech — Compact block relay]
Для повної картини прочитайте також Block propagation, Initial block download, Eclipse attack, Virtual byte (vbyte). На цю статтю також посилаються Stale Block, Block propagation, Compact Block Filters, Compact Block Filters.