120 / 691CMPCT

Compact block relay

BIP 152 압축 블록 중계는 헤더, 짧은 ID, 선택된 전체 거래를 보낸다. 수신자는 이미 아는 거래를 사용하고 누락 데이터를 구한다.

압축 블록은 전송 인코딩이며 더 작은 합의 블록이 아니다. Full Node는 정확한 거래를 올바른 순서로 복원하고 전체 블록을 검증해야 한다.

짧은 ID는 SipHash-2-4를 잘라 만든 48비트다. 키는 헤더와 제공된 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는 txid 대신 wtxid로 짧은 ID를 만들고 BIP 144의 witness 데이터를 전송한다. 압축 프로토콜 버전은 블록 자체 버전 번호가 아니다. [BIP 152 — Compact Block Relay] [BIP 144 — SegWit peer services]

이점은 거래 중복과 네트워크 조건에 달려 있다. 중복이 적으면 요청이 늘며 목표는 전송량 절약이지 메시지 크기나 지연 0의 보장이 아니다. [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.

DOC · 001BIP 152 — Compact Block Relay명세 ↗DOC · 002Bitcoin Core — BIP 152 implementation문서 ↗DOC · 003Bitcoin Developer Reference — P2P문서 ↗DOC · 004Bitcoin Core v29.0 — net processing문서 ↗DOC · 005Bitcoin Optech — Compact block relay문서 ↗DOC · 006BIP 144 — SegWit peer services명세 ↗
1차 출처 우선 · 투자 조언이 아닙니다