ما الذي بداخل الكتلة: الترويسة والارتفاع والحجم والإعانة
الكتلة ترويسة صغيرة ثابتة الحجم مع جسم من المعاملات. معرفة أيهما أيهما تفسّر ما الذي يحسب التعدين تجزئته فعلًا ولماذا.
جزآن، ولا تُحسب التجزئة إلا لأحدهما
تتكون الكتلة من ترويسة ومتن. المتن هو المعاملات، وقد يكون بضع مئات من البايتات أو عدة ميغابايتات بحسب مدى انشغال السلسلة. أما الترويسة فهي ملخص ثابت للكتلة، وطولها في معظم السلاسل 80 بايت بالضبط.
التعدين يحسب تجزئة الترويسة ولا شيء غيرها. هذه هي أنفع حقيقة في هذا المقال، لأنها تفسر أمرًا يبدو مستحيلًا لولاها: برنامج التعدين يجرب مليارات التنويعات في الثانية، وما كان ليستطيع ذلك لو أن كل محاولة تعني إعادة حساب تجزئة كتلة مليئة بالمعاملات. وهو لا يفعل ذلك، بل يعيد حساب تجزئة 80 بايت.
الحقول الستة في الترويسة
تحتوي الترويسة على الإصدار، وتجزئة الكتلة السابقة، وجذر Merkle، وطابع زمني، وبتات الصعوبة، والـ nonce. لكل واحد منها سبب، واثنان منها يؤديان معظم العمل.
تجزئة الكتلة السابقة هي ما يجعلها سلسلة. فكل ترويسة تسمي الكتلة التي قبلها، لذا فإن إعادة كتابة كتلة قديمة ستغير تجزئتها، مما يكسر الترويسة التالية، ثم التي تليها، وصولًا إلى قمة السلسلة. هذه هي حجة الأمان الكاملة لإثبات العمل في حقل واحد.
جذر Merkle تجزئة واحدة تلخص كل معاملة في المتن. غيّر معاملة واحدة ولو ببايت واحد فيتغير جذر Merkle، فتتغير الترويسة، فتصبح كل تجزئة جُرّبت حتى الآن بلا قيمة. بهذه الطريقة يمكن لـ 80 بايت أن تمثل بصدق كتلة بأي حجم.
بتات الصعوبة هي الهدف الذي يجب أن تأتي التجزئة دونه، في صيغة مضغوطة. والطابع الزمني هو الوقت التقريبي لإنشاء الكتلة، ويُسمح بأن يكون تقريبيًا. والـ nonce هو الحقل الذي يحق لبرنامج التعدين تغييره بحرية، وهو ما يجعل البحث ممكنًا من الأساس.
الـ nonce ينفد، ولا بأس في ذلك
الـ nonce عدّاد صغير، وبرنامج التعدين الحديث يستنفد كل قيمة يمكن أن يحملها في لحظة تقريبًا. يبدو هذا طريقًا مسدودًا وهو ليس كذلك، لأن الـ nonce مجرد أسهل شيء يمكن تغييره، وليس الشيء الوحيد أبدًا.
عندما ينفد، يغير برنامج التعدين شيئًا آخر يدخل في الترويسة. يمكن للطابع الزمني أن يتحرك. ويمكن تعديل معاملة coinbase تعديلًا طفيفًا، مما يغير جذر Merkle، فينتج ترويسة جديدة تمامًا للبحث فيها. وفي مجمع التعدين، هذا بالضبط ما وُجد الـ extranonce من أجله: فهو يتيح للمجمع أن يعطي كل برنامج تعدين نقطة بداية مختلفة كي لا يطحن اثنان منها الأرقام نفسها.
الارتفاع موضع، وليس حقلًا
ارتفاع الكتلة هو عدد الكتل التي سبقت كتلة معينة. كتلة التكوين ارتفاعها صفر، والتالية واحد، وهكذا. وهو الرقم الذي تراه بجانب كل مدخل في صفحة الكتل الخاصة بالمجمع وفي أي مستكشف.
من المفيد أن تعرف أن الارتفاع لا يُخزَّن فعلًا في الترويسة. بل يُستنتج من موقع الكتلة في السلسلة. وفي معظم السلاسل الحديثة يُكتب الارتفاع أيضًا داخل معاملة coinbase، وهي قاعدة أُضيفت لاحقًا كي لا تتطابق كتلتان على ارتفاعين مختلفين بايتًا ببايت أبدًا، لكن الجواب المرجعي عن ارتفاع الكتلة يبقى موضعها.
ولهذا أيضًا يكون الارتفاع الطريقة الطبيعية للحديث عن التأكيدات. المعاملة المدفونة على عمق ست كتل هي معاملة يقل ارتفاع كتلتها عن القمة بستة، وكل كتلة إضافية تجعل إعادة كتابتها أغلى بالقدر نفسه.
الحجم هو المتن، وهو ما يمتلئ
حجم الكتلة هو في جوهره حجم المتن، لأن الترويسة ضئيلة إلى جانبه بحيث لا تُذكر. وعندما يقول الناس إن لسلسلة ما حدًا لحجم الكتلة، فهم يتحدثون عن عدد المعاملات التي يمكن أن تتسع لها، لا عن الترويسة.
الكتلة الممتلئة والكتلة الفارغة تتطلبان القدر نفسه تمامًا من عمل التعدين. الصعوبة تحدد مدى صعوبة إيجاد الكتلة؛ والحجم يحدد مقدار ما تحمله الكتلة. لا علاقة بينهما، والخلط بينهما مصدر كثير من التصورات الخاطئة عن الرسوم.
ما يؤثر فيه الحجم هو سوق الرسوم. فعندما تريد معاملات أكثر الدخول مما يتسع له المكان، تدخل أولًا تلك التي تعرض رسومًا أعلى، فيرتفع إجمالي الرسوم في الكتلة. وهذا يصب مباشرة فيما تدفعه الكتلة.
معاملة coinbase وإعانة الكتلة
المعاملة الأولى في كل كتلة مميزة. ليس لها مُرسِل، وهي تُنشئ العملات من العدم، وتدفعها لمن أنشأ الكتلة. وتُسمى معاملة coinbase، ولا علاقة لها بمنصة التداول التي تحمل الاسم نفسه.
ما تدفعه هو إعانة الكتلة مضافًا إليها رسوم كل المعاملات الأخرى في الكتلة. الإعانة هي الجزء المُصدَر حديثًا، ويحددها جدول إصدار السلسلة وتنخفض مع الوقت في معظم العملات. والرسوم هي ما أرفقه المستخدمون بمعاملاتهم كي تُدرَج. ومعًا تشكلان مكافأة الكتلة.
في مجمع التعدين تدفع معاملة coinbase للمجمع، الذي يوزع المكافأة بعد ذلك على كل من أسهم بحصص في تلك الجولة. هذا ليس التفافًا: بل هو الطريقة التي يستطيع بها المجمع أن يدفع لكثيرين مقابل مكافأة تصل في صورة دفعة واحدة غير قابلة للتجزئة.
لماذا يهمك أي من هذا أثناء التعدين
تصبح ثلاثة أمور واضحة بمجرد أن يتضح شكل الكتلة، والثلاثة تتكرر باستمرار.
- لماذا تُبطل الكتلة الجديدة عملك فورًا. لقد تغير حقل تجزئة الكتلة السابقة، فلم تعد الترويسة التي كنت تبحث فيها موجودة. وأي شيء ترسله لها بعد ذلك حصة متأخرة، ولا تصلح ذلك أي سرعة.
- لماذا يرسل لك المجمع عملًا جديدًا بهذه الكثرة. كل معاملة جديدة يريد المجمع إدراجها تغير جذر Merkle، والقالب الأحدث يحمل رسومًا أكثر، أي مكافأة أكبر مقابل الجهد نفسه.
- لماذا لا يظهر حجم الكتلة أبدًا في تقدير الأرباح. ما تكسبه تحدده الصعوبة وإعانة الكتلة والرسوم، لا عدد البايتات في المتن.
تعرض صفحة الكتل في هذا المجمع الارتفاع والمكافأة ووقت العثور، وهو الجزء المفيد من كل ما سبق مختصرًا في صف واحد. وسيعرض لك المستكشف الباقي، بما في ذلك معاملة coinbase التي دفعتها.