كيف يعمل تنصيف كتلة بيتكوين على المستوى الهندسي؟ سنقوم بالتفسير بمساعدة أندرياس أنتونوبولوس.

في مقطع فيديو حديث، أوضح أنتونوبوليس التعليمات البرمجية لبيتكوين كور الذي يتحكم في نصف مكافأة بيتكوين (BTC) بالتفصيل.

Bitcoin halving code

 التعليمات البرمجية لتنصيف بيتكوين. المصدر: برنامج بيتكوين كور.

شرحٌ مفصّل

في كل مرة يتم فيها تقييم كتلة بيتكوين أو يتم تعدين كتلة جديدة، يتم استدعاء الوظيفة GetBlockSubsidy. والغرض منه هو حساب الحجم المناسب لمكافأة الكتلة. ويقيم السطر١٢٤٠ دورة التنصيف ويقسم ارتفاع الكتلة الحالي إلى ٢١٠٠٠٠؛ الفاصل الزمني بين التنصيف. وفي وقت كتابة هذه المقالة، كان ارتفاع الكتلة ٦٢٩٣٦٩، إذا قسمناه على ٢١٠٠٠٠، نحصل على ٢,٩٩. ونظرًا لأن المتغير الذي يخزن هذه القيمة هو نوع صحيح، يتم التخلص من الكسور العشرية. وباستخدام هذه المعلومات، "تعرف" التعليمات البرمجية أنه كان لدينا نصفين. وهذا هو السبب في أن النصف القادم سيحدث عند الكتلة ٦٣٠٠٠٠.

تصحيح برمجيات ساتوشي

يصحح السطران ١٢٤٢ و١٢٤٣ الخطأ الذي ارتكبه ساتوشي في الكود الأصلي. حيث استمر هذا الخطأ في الأصل في تخفيض مكافأة التنصيف إلى ما قبل ٦٤ نصف؛ والعدد الإجمالي للتنصيف مضمن في بروتوكول بيتكوين.

يضاعف السطر ١٢٤٥ مكافأة الكتلة الأصلية الي تبلغ ٥٠ من خلال عملة ثابتة، والتي تساوي ١٠٠٠٠٠٠٠٠ ساتوشي. ومن المفارقات أنه لا يوجد عملات بيتكوين في التعليمات البرمجية لبيتكوين، فقط ساتوشي.

ويحسب السطر ١٢٤٧ مكافأة الكتلة المناسبة لارتفاع الكتلة الحالي. وهو يستخدم عملية أحادية البت تكون أكثر كفاءة من العمليات الحسابية العادية. ويتم بعد ذلك تعديل مكافأة الكتلة التي تم حسابها في السطر ١٢٤٥ وفقًا لمكافأة الكتلة الحالية. وفي الوقت الحالي، سيبدو هذا على النحو التالي:

"٥٠ * ١٠٠٠٠٠.٠٠٠ / ٢٢ = ١٢٥٠،٠٠٠،٠٠٠ ساتوشي أو ١٢,٥ بيتكوين."

وأخيرًا، يُرجع السطر ١٢٤٨ مكافأة الكتلة المناسبة عندما يتم استدعاؤها بواسطة وظيفة أو إجراء آخر في التعليمات البرمجية لبيتكوين.

وعندما يصل التنصيف في النهاية بعد حوالي ٤ أيام، أو ٦٣١ كتلة، يمكننا جميعًا أن نرتاح ونقدر جمال التعليمات البرمجية لبيتكوين.