Block Propagation هو انتشار كتلة جديدة بين حواسيب شبكة Bitcoin. النقل يوفّر البيانات؛ أما العقدة المستقبلة فعليها أن تتحقق بنفسها من صلاحية الكتلة وإمكان ضمها إلى السجل الذي تعتمده.
لنتخيل أن آنا تعمل في التعدين وقد وجدت للتو كتلة تضم معاملات. تجمع الكتلة معاملات في دفعة تُضاف إلى السجل المشترك. لا توجد في Bitcoin جهة مركزية ترسلها إلى الجميع في اللحظة نفسها. تخبر عقدة آنا جيرانها، أي الحواسيب المتصلة بها، ثم ينتقل الخبر إلى غيرهم ويصل إلى كل مشارك في وقت مختلف. هذه الرحلة هي Block Propagation. سرعتها تؤثر في المدة التي يواصل خلالها الآخرون العمل انطلاقًا من السجل السابق. [1] [6]
يشغّل بيتر في منزله Full Node، وهو برنامج يفحص كتل Bitcoin ومعاملاته وفق القواعد. لا يكفي إشعار بوجود كتلة جديدة؛ بل يحتاج إلى محتواها كاملًا للتحقق منها. يمكنه تنزيله كله، أو إعادة تركيبه من الرسالة المستلمة والمعاملات الموجودة لديه. يشبه ذلك استلام قائمة بصفحات كتاب ثم جمعها من مكتبته: ما ينتقل أقل، لكن الكتاب النهائي يجب أن يكون نفسه. [1] [7]
للكتلة ترويسة موجزة تسمى Block Header. تتضمن، من بين أمور أخرى، رابطًا إلى الكتلة السابقة، وتتيح فحص Proof of Work، أي دليل العمل الحسابي الذي يتطلبه التعدين. يبحث المعدّنون عن هذا الدليل بتكرار الحسابات، بينما يستطيع الآخرون فحص النتيجة بسرعة. هذا فحص أولي مفيد، وليس إثباتًا لصحة كل دفعة. لا يستطيع بيتر من الترويسة وحدها معرفة صلاحية التواقيع أو التأكد من أن المعاملات تنفق أموالًا متاحة لم تُنفق بعد. يثبت التوقيع الرقمي الإذن بالدفع باستخدام مفتاح خاص، وهو قيمة عددية سرية، دون الكشف عن المفتاح. UTXO هو مخرج معاملة لم يُنفق بعد: سجلّ بمبلغ وشروط إنفاقه. [6] [8]
تلقّى بيتر كثيرًا من المعاملات قبل تعدين الكتلة. يحتفظ بها في Mempool، وهي مجموعة محلية من المعاملات غير المؤكدة. تستفيد Compact Blocks، المحددة في BIP 152، من ذلك: تحمل الرسالة أساسًا معرّفات قصيرة مع بعض المعاملات الكاملة، بدل إعادة إرسال كل شيء. يرتّب بيتر الأجزاء المعروفة ترتيبًا صحيحًا. ما يصغر هو رسالة الشبكة، لا الكتلة التي يجري فحصها؛ وقواعد صلاحيتها لا تتغير. [2] [7]
ليست هناك Mempool واحدة مشتركة للعالم كله. قد تعرف كل عقدة معاملات مختلفة قليلًا، ولذلك قد لا تكون بعض البيانات لدى بيتر. يطلب ما ينقصه، أو يعود إلى تنزيل الكتلة كاملة. يضيف الطلب والرد وقتًا للذهاب والعودة عبر الشبكة. هذا لا يبرر تخمين المحتوى أو تجاوز الفحص. لذلك يعتمد الوفر الفعلي أيضًا على عدد المعاملات المعروفة مسبقًا لدى المستقبِل. [2] [7]
يتيح النمط الأسرع من BIP 152 تمرير الكتلة قبل اكتمال فحص جميع المعاملات. وليس المقصود إرسال أي شيء بلا تمييز: على المرسِل أن يفحص، ضمن متطلبات أخرى، اتصال الكتلة بالسلسلة المتحقق منها وProof of Work والتطابق التشفيري بين الترويسة والمعاملات المرسلة. يمكن عندئذ تنفيذ النقل وبقية الفحوص بالتوازي. ومع ذلك، لا تقبل Full Node الكتلة في سجلها النشط إلا بعد التحقق الكامل منها. [2] [4] [7]
قبل أن تصل كتلة آنا إلى الجميع، قد يجد مُعدّن آخر كتلة تستند إلى الكتلة السابقة نفسها. يرى جزء من الشبكة مؤقتًا فرعًا صالحًا، ويرى جزء آخر الفرع الثاني. يحسم العمل المتراكم لاحقًا الاختيار بين الفروع الصالحة، لا تصويت الحواسيب. وتسمى الكتلة الصالحة التي تبقى خارج السلسلة المعتمدة Stale Block. يضيّق الانتشار الأسرع الفترة التي قد يحدث فيها هذا التنافس، لكنه لا يلغيها. [6] [8]
إذا انتشرت كتلة آنا ببطء، تزداد فرصة أن يبني الآخرون على كتلة منافسة وتبقى كتلتها خارج السلسلة المعتمدة. عندئذ لا تحصل على مكافأة تلك الكتلة في هذا السجل. لذلك فالارتباط الجيد ليس مجرد راحة. قد تشجع ميزته تركز التعدين لدى المشغلين الأفضل اتصالًا. لكن بطء خط واحد ليس بحد ذاته قياسًا للمركزية ولا دليلًا على هجوم. [7] [8]
FIBRE مثال على نظام متخصص في نقل الكتل بسرعة. يسعى إلى تقليل تأخر الشبكة، بما فيه التأخر الناتج عن فقدان حزم البيانات، وهي أجزاء صغيرة من الرسالة المنقولة. قد يوصل هذا المسار الكتلة مبكرًا، لكنه لا يمنح مشغله صلاحية تقرير صحتها نيابة عن بيتر. على Full Node لدى بيتر فحص القواعد نفسها مهما كان المسار الذي جاءت منه البيانات. [3] [9]
تحتاج الشبكة أيضًا إلى مراعاة حجم البيانات والخصوصية وقدرة الاتصالات على تحمل الأعطال. الاعتماد على مسار واحد نقطة ضعف حتى لو كان سريعًا. وللتحسينات أدوار مختلفة أيضًا: يساعد BIP 330، وهو أحد مكونات Erlay، العقد المتجاورة على كشف الفروق بين مجموعات إعلانات المعاملات. ولا يحل محل نقل الكتل وفق BIP 152. الهدف المشترك هو التواصل بكفاءة أكبر مع احتفاظ كل عقدة بفحوصها المستقلة. [1] [5]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. تشير إلى هذا المدخل أيضًا Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.