Compact Block Filters فهارس احتمالية صغيرة لكل كتلة تُبنى بطريقة حتمية. يحدد BIP 158 المحتوى والترميز، وBIP 157 النقل وفحص الترابط؛ ويقارن العميل السكربتات التي يراقبها محليًا.
تزامن المحفظة رؤوس الكتل والمرشحات، وتنزل المرشحات وتختبر سكربتاتها محليًا. عند التطابق تحصل على الكتلة كاملة وتبحث عن المعاملة الفعلية. لا ينبغي زيادة الرصيد لمجرد التطابق؛ فالمرشح لا يعيد مبلغًا أو إثبات ملكية أو سجل معاملات كاملًا. [BIP 157 — Client Side Block Filtering]
يتضمن BIP 158 basic سكربت scriptPubKey للمخرجات الجديدة عدا ما يبدأ بـ OP_RETURN، وسكربتات المخرجات السابقة التي تنفقها المدخلات خارج coinbase. تُحذف العناصر الفارغة. يجب تحويل نص العنوان إلى السكربت الصحيح؛ وليس هذا فهرسًا شاملًا لـ txid أو بيانات witness أو الملاحظات الاعتباطية. [BIP 158 — Compact Block Filters for Light Clients] [Bitcoin Core — BasicFilterElements]
يخزن Golomb-Rice فروق قيم التجزئة المرتبة؛ ويستخدم basic القيمتين P=19 وM=784931. قد يتطابق استعلام لعنصر خارج المجموعة باحتمال يقارب 1/M. زيادة السكربتات المراقبة تزيد فرص التصادم، وليست نسبة خطأ ثابتة للمحفظة كلها. المرشح الصحيح لا يفوّت عنصرًا مدرجًا. [BIP 158 — Compact Block Filters for Light Clients]
يربط رأس المرشح تجزئة المرشح الحالي بالرأس السابق. يكشف فحص الترابط اختلافًا عن سلسلة مقبولة، لكن هذا الالتزام ليس ضمن رأس كتلة Bitcoin. يمكن للمهاجم تقديم مرشحات كاذبة متسقة داخليًا؛ والتجزئة المحسوبة صحيحًا لا تضمن وحدها صدق المحتوى. [BIP 157 — Client Side Block Filtering]
يكشف BIP 157 المرشحات الكاذبة بمقارنة الأقران مع وجود مشارك صادق واحد على الأقل. قد تتطلب إعادة بناء basic أيضًا سكربتات المخرجات السابقة المنفقة. تستلزم إعادة التنظيم اتباع مرشحات الفرع الجديد وإعادة حساب حالة المحفظة؛ فالارتفاع القديم نفسه لا يحدد الكتلة نفسها. [BIP 157 — Client Side Block Filtering] [Bitcoin Core — BasicFilterElements]
خلافًا لـ BIP 37، لا يرسل العميل مرشح عناوينه الشخصي إلى الخادم. لكن القرين قد يلاحظ IP والتوقيت والكتل المطلوبة. التنزيل من أقران مختلفين يحد من تجميع المعلومات، لا من كل الارتباطات؛ والتطابقات العارضة وحدها لا تجعل الاتصال مجهول الهوية. [BIP 157 — Client Side Block Filtering]
يعيد Bitcoin Core RPC getblockfilter المرشح ورأسه لتجزئة كتلة عند تفعيل الفهرس المناسب. ولا يثبت ذلك خدمة P2P عامة أو قدرة القرين على توفير كل الكتل التاريخية. يحتاج العميل إلى مصدر كتل يعمل؛ ولا تعلن مرشحات الكتل المكتملة معاملات Mempool غير المؤكدة. [BIP 157 — Client Side Block Filtering] [Bitcoin Core 30.0 — getblockfilter]
تسرع Compact Blocks وفق BIP 152 نقل الكتل الجديدة باستخدام معرفات معاملات قصيرة وMempool المحلي. وتختار Compact Block Filters الكتل المهمة للعميل. لا تستبدل المطابقة المحلية أو فحص إدراج المعاملة التحقق المستقل الكامل من إجماع جميع الكتل. [BIP 157 — Client Side Block Filtering] [BIP 152 — Compact Block Relay]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Compact Block Filters, Neutrino, Full Node, خصوصية Bitcoin, Compact block relay. تشير إلى هذا المدخل أيضًا Neutrino.