23 / 736HDR

Block Header

ترويسة الكتلة

الجزء الصغير من الكتلة الذي يربط محتواها بالتاريخ السابق ويتيح التحقق من عمل التعدين.

Block Header سجل قصير في بداية كتلة Bitcoin. يحتوي على بصمة الكتلة السابقة، وبصمة تجمع معاملات الكتلة، والمعلومات اللازمة للتحقق من Proof of Work. أما بيانات المدفوعات نفسها فتوجد في جزء آخر من الكتلة.

تخيّل الكتلة حزمة من المعاملات، والترويسة سجلًا مرافقًا لها. لا تتضمن الترويسة قائمة بالمستلمين أو المبالغ، بل بصمات تشفيرية: قيمًا قصيرة تُحسب من البيانات وتتيح اكتشاف تغيّرها. تشير إحداها إلى الكتلة السابقة، وتلخّص أخرى، تسمى Merkle root، معرّفات معاملات هذه الكتلة. هكذا تربط الترويسة محتوى محددًا بموضع محدد في التاريخ. لكنها ليست نسخة مصغرة من المعاملات؛ فلا يمكن استعادة محتواها الأصلي من البصمة. [1] [4]

يُعدّ المعدّن كتلة مرشحة ويبحث عن قيمة hash مناسبة، أي بصمة تُفسَّر على أنها عدد. يجب أن تكون أقل من الهدف المحدد أو مساوية له. هذا البحث هو Proof of Work: يغيّر المعدّن البيانات ويكرر الحساب، لأنه لا يستطيع ببساطة التنبؤ بنتيجة مناسبة. أشهر القيم المتغيرة هي nonce، عدد مساعد داخل الترويسة. وللحصول على احتمالات إضافية، يمكنه مثلًا تعديل بيانات Coinbase Transaction، المعاملة الخاصة التي ينشئها في بداية الكتلة. عندها تتغيّر Merkle root أيضًا، فتنتج ترويسة أخرى. وتستطيع بقية العقد إعادة الحساب بسرعة للتحقق من النتيجة. [1] [3] [4]

تتيح سلسلة الترويسات تتبع ترابط الكتل والتحقق من العمل المرتبط بها من دون تنزيل جميع المعاملات. لكن تخيّل كتلة لها Proof of Work صالح ويحاول شخص داخلها إنفاق أموال غيره من دون التوقيع المطلوب. فحص الترويسة وحدها لا يكشف هذا الخلل. لذلك تتحقق Full Node أيضًا من المعاملات وتوقيعاتها والمخرجات المتاحة غير المنفقة والمكافأة المسموح بها. صلاحية الترويسة لا تضمن صلاحية الكتلة كاملة. [2]

يحدد حقل nBits الهدف الذي يجب أن تستوفيه قيمة hash. إنه ترميز مختصر للهدف، وليس رقم «difficulty» الذي يعرضه مستكشف الكتل. وتتحقق العقدة أيضًا من أن الهدف يتبع القواعد المطبقة في هذا الموضع من السلسلة. ولا يستطيع المعدّن اختيار أي وقت يريد. يجب أن يكون لاحقًا لوسيط أوقات الكتل الـ11 السابقة، أي القيمة الوسطى بعد ترتيبها، وألا يكون متقدمًا كثيرًا في المستقبل. ومع ذلك، فهو ليس الوقت الدقيق لكل دفعة ولا ساعة تقيس مدة التعدين. [2] [3]

ترتيب الحقول وأحجامها ثابتان: يشغل version مقدار 4 بايت، وبصمة الترويسة السابقة 32، وMerkle root مقدار 32، وtime مقدار 4، وnBits مقدار 4، وnonce مقدار 4. المجموع 80 بايت مهما كان عدد المعاملات. ينتج معرّف الكتلة من تطبيق SHA-256 مرتين على الترويسة المكتوبة بهذا التنسيق الدقيق. تستخدم الحقول العددية ترتيب little-endian، حيث يأتي البايت الأقل أهمية أولًا؛ أما قيم hash فلها ترتيب داخلي للبايتات يختلف عن طريقة عرض المعرّف المعتادة. لذلك لا يكفي لإعادة الحساب أن تلصق القيم كما يعرضها مستكشف الكتل. [1] [4]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Block, Proof of Work, Merkle Tree, Nonce. تشير إلى هذا المدخل أيضًا Block, Hash, SHA-256, Merkle Tree.

DOC · 001Bitcoin Core v29.0: header serializationمصدر أولي DOC · 002Bitcoin Core v29.0: header validationمصدر أولي DOC · 003Bitcoin Core v29.0: proof of workمصدر أولي DOC · 004Bitcoin Developer Reference: Block Headersمصدر أولي
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية