180 / 691BIP157/158

Compact Block Filters

Filter blok ringkas dalam operasi dompet

Compact Block Filters membantu dompet ringan memilih blok untuk diunduh melalui pencocokan skrip lokal. Kecocokan perlu diperiksa, bukan konfirmasi pembayaran atau jaminan anonimitas.

Compact Block Filters adalah indeks probabilistik kecil tiap blok yang dibangun deterministik. BIP 158 mengatur isi dan pengodean, BIP 157 pengiriman dan pemeriksaan kesinambungan; klien membandingkan skripnya secara lokal.

Dompet menyinkronkan header blok dan filter, mengunduh filter lalu menguji skrip lokal. Jika cocok, dompet mengambil seluruh blok dan mencari transaksi sebenarnya. Kecocokan saja tidak boleh menaikkan saldo: filter tidak mengembalikan jumlah, bukti kepemilikan atau riwayat transaksi lengkap. [BIP 157 — Client Side Block Filtering]

BIP 158 basic mencakup scriptPubKey output baru kecuali yang diawali OP_RETURN, serta skrip output sebelumnya yang dibelanjakan input selain coinbase. Elemen kosong diabaikan. String alamat harus diubah menjadi skrip yang benar; ini bukan indeks universal txid, data witness atau catatan sembarang. [BIP 158 — Compact Block Filters for Light Clients] [Bitcoin Core — BasicFilterElements]

Golomb-Rice menyimpan selisih nilai hash terurut; basic memakai P=19 dan M=784931. Satu kueri bukan anggota dapat cocok dengan peluang sekitar 1/M. Lebih banyak skrip dipantau berarti lebih banyak peluang tabrakan, bukan tingkat kesalahan tetap seluruh dompet. Filter yang benar tidak melewatkan elemen yang disertakan. [BIP 158 — Compact Block Filters for Light Clients]

Header filter menghubungkan hash filter saat ini dengan header sebelumnya. Pemeriksaan kesinambungan menemukan perbedaan terhadap rantai yang diterima, tetapi komitmen ini tidak ada dalam header blok Bitcoin. Penyerang dapat memberikan filter palsu yang konsisten secara internal; hash yang dihitung benar tidak sendiri menjamin isi yang benar. [BIP 157 — Client Side Block Filtering]

BIP 157 mendeteksi filter palsu dengan membandingkan peer yang mencakup sedikitnya satu peserta jujur. Merekonstruksi basic juga dapat memerlukan skrip output terdahulu yang dibelanjakan. Reorganisasi mengharuskan mengikuti filter cabang baru dan menghitung ulang status dompet; tinggi lama yang sama tidak berarti blok yang sama. [BIP 157 — Client Side Block Filtering] [Bitcoin Core — BasicFilterElements]

Berbeda dari BIP 37, klien tidak mengirim filter alamat pribadi ke server. Peer masih dapat melihat IP, waktu dan blok yang diminta. Mengunduh dari peer berbeda membatasi pemusatan informasi, bukan seluruh korelasi; kecocokan tidak sengaja saja tidak membuat komunikasi anonim. [BIP 157 — Client Side Block Filtering]

Bitcoin Core RPC getblockfilter mengembalikan filter dan header untuk hash blok dengan indeks terkait aktif. Ini tidak membuktikan layanan P2P publik atau kemampuan peer menyediakan setiap blok historis. Klien membutuhkan sumber blok yang berfungsi; filter blok selesai tidak mengumumkan transaksi Mempool yang belum dikonfirmasi. [BIP 157 — Client Side Block Filtering] [Bitcoin Core 30.0 — getblockfilter]

Compact Blocks menurut BIP 152 mempercepat pengiriman blok baru dengan pengenal transaksi pendek dan Mempool lokal. Compact Block Filters memilih blok relevan bagi klien. Pencocokan lokal maupun pemeriksaan masuknya transaksi tidak menggantikan validasi konsensus penuh dan mandiri atas seluruh blok. [BIP 157 — Client Side Block Filtering] [BIP 152 — Compact Block Relay]

Untuk gambaran yang lebih utuh, baca entri ini bersama Compact Block Filters, Neutrino, Full Node, Privasi Bitcoin, Compact block relay. Entri ini juga dirujuk dari Neutrino.

DOC · 001BIP 157 — Client Side Block FilteringSpesifikasiDOC · 002BIP 158 — Compact Block Filters for Light ClientsSpesifikasiDOC · 003Bitcoin Core — BasicFilterElementsSumber primerDOC · 004Bitcoin Core 30.0 — getblockfilterDokumentasiDOC · 005BIP 152 — Compact Block RelaySpesifikasi
Utamakan sumber · Bukan nasihat investasi