التصديقات
يُتوقع من المُدَقِّق إنشاء وتوقيع وبث تصديق خلال كل حقبة. توضح هذه الصفحة كيف تبدو هذه التصديقات وكيف تتم معالجتها وتوصيلها بين عملاء الإجماع.
ما هو التصديق؟
في كل (6.4 دقائق)، يقترح المُدَقِّق تصديقًا على الشبكة. يكون التصديق لخانة معينة في الحقبة. الغرض من التصديق هو التصويت لصالح رؤية المُدَقِّق للسلسلة، وعلى وجه الخصوص أحدث كتلة مبررة والكتلة الأولى في الحقبة الحالية (المعروفة بنقاط التحقق source و target). يتم دمج هذه المعلومات لجميع المُدَقِّقين المشاركين، مما يُمكّن الشبكة من الوصول إلى إجماع حول حالة سلسلة الكتل.
يحتوي التصديق على المكونات التالية:
aggregation_bits: قائمة بتات (bitlist) للمُدَقِّقين حيث يعين الموضع مؤشر المُدَقِّق في لجنتهم؛ تشير القيمة (0/1) إلى ما إذا كان المُدَقِّق قد وقع علىdata(أي ما إذا كانوا نشطين ويتفقون مع مقترح الكتلة)data: تفاصيل تتعلق بالتصديق، كما هو موضح أدناهsignature: توقيع BLS يجمع توقيعات المُدَقِّقين الفرديين
المهمة الأولى للمُدَقِّق المُصَدِّق هي بناء data. يحتوي data على المعلومات التالية:
slot: رقم الخانة التي يشير إليها التصديقindex: رقم يحدد اللجنة التي ينتمي إليها المُدَقِّق في خانة معينةbeacon_block_root: تجزئة الجذر للكتلة التي يراها المُدَقِّق في رأس السلسلة (نتيجة تطبيق خوارزمية اختيار التفرع)source: جزء من تصويت النهائية يشير إلى ما يراه المُدَقِّقون كأحدث كتلة مبررةtarget: جزء من تصويت النهائية يشير إلى ما يراه المُدَقِّقون كالكتلة الأولى في الحقبة الحالية
بمجرد بناء data، يمكن للمُدَقِّق قلب البت في aggregation_bits المقابل لمؤشر المُدَقِّق الخاص به من 0 إلى 1 لإظهار مشاركته.
أخيرًا، يوقع المُدَقِّق على التصديق ويبثه إلى الشبكة.
التصديق المُجمَّع
هناك عبء كبير مرتبط بتمرير هذه البيانات عبر الشبكة لكل مُدَقِّق. لذلك، يتم تجميع التصديقات من المُدَقِّقين الفرديين داخل الشبكات الفرعية قبل بثها على نطاق أوسع. يتضمن ذلك تجميع التوقيعات معًا بحيث يتضمن التصديق الذي يتم بثه data للإجماع وتوقيعًا واحدًا يتكون من دمج توقيعات جميع المُدَقِّقين الذين يتفقون مع data هذا. يمكن التحقق من ذلك باستخدام aggregation_bits لأن هذا يوفر مؤشر كل مُدَقِّق في لجنته (والذي يتم توفير معرفه في data) والذي يمكن استخدامه للاستعلام عن التوقيعات الفردية.
في كل حقبة، يتم اختيار 16 مُدَقِّقًا في كل شبكة فرعية ليكونوا aggregators. يقوم المُجمِّعون بجمع جميع التصديقات التي يسمعون عنها عبر شبكة النشر (gossip network) والتي لها data مكافئ لبياناتهم. يتم تسجيل مرسل كل تصديق مطابق في aggregation_bits. ثم يقوم المُجمِّعون ببث التصديق المُجمَّع إلى الشبكة الأوسع.
عندما يتم اختيار مُدَقِّق ليكون مقترح الكتلة، فإنه يقوم بتعبئة التصديقات المُجمَّعة من الشبكات الفرعية حتى أحدث خانة في الكتلة الجديدة.
دورة حياة تضمين التصديق
- الإنشاء
- النشر
- التجميع
- النشر
- التضمين
تم توضيح دورة حياة التصديق في المخطط أدناه:
المكافآت
يُكافأ المُدَقِّقون على تقديم التصديقات. تعتمد مكافأة التصديق على علامات المشاركة (المصدر، والهدف، والرأس)، والمكافأة الأساسية، ومعدل المشاركة.
يمكن أن تكون كل علامة من علامات المشاركة إما صحيحة أو خاطئة، اعتمادًا على التصديق المُقدَّم وتأخير تضمينه.
يحدث أفضل سيناريو عندما تكون العلامات الثلاث صحيحة، وفي هذه الحالة سيكسب المُدَقِّق (لكل علامة صحيحة):
reward += base reward * flag weight * flag attesting rate / 64
يتم قياس معدل التصديق للعلامة باستخدام مجموع الأرصدة الفعالة لجميع المُدَقِّقين المُصَدِّقين للعلامة المحددة مقارنة بإجمالي الرصيد الفعال النشط.
المكافأة الأساسية
يتم حساب المكافأة الأساسية وفقًا لعدد المُدَقِّقين المُصَدِّقين وأرصدة إيثر الفعالة في حصة التخزين الخاصة بهم:
base reward = validator effective balance x 2^6 / SQRT(Effective balance of all active validators)
تأخير التضمين
في الوقت الذي صوّت فيه المُدَقِّقون على رأس السلسلة (block n)، لم تكن block n+1 قد اقتُرحت بعد. لذلك يتم تضمين التصديقات بشكل طبيعي بعد كتلة واحدة، بحيث يتم تضمين جميع التصديقات التي صوّتت على أن block n هي رأس السلسلة في block n+1، ويكون تأخير التضمين هو 1. إذا تضاعف تأخير التضمين إلى خانتين، تنخفض مكافأة التصديق إلى النصف، لأنه لحساب مكافأة التصديق يتم ضرب المكافأة الأساسية في مقلوب تأخير التضمين.
سيناريوهات التصديق
غياب المُدَقِّق المُصَوِّت
لدى المُدَقِّقين حد أقصى يبلغ حقبة واحدة لتقديم تصديقهم. إذا تم تفويت التصديق في الحقبة 0، فيمكنهم تقديمه مع تأخير تضمين في الحقبة 1.
غياب المُجمِّع
يوجد إجمالاً 16 مُجمِّعًا لكل حقبة. بالإضافة إلى ذلك، يشترك مُدَقِّقون عشوائيون في شبكتين فرعيتين لمدة 256 حقبة ويعملون كنسخة احتياطية في حالة غياب المُجمِّعين.
غياب مقترح الكتلة
لاحظ أنه في بعض الحالات قد يصبح المُجمِّع المحظوظ أيضًا مقترح الكتلة. إذا لم يتم تضمين التصديق بسبب غياب مقترح الكتلة، فسيقوم مقترح الكتلة التالي بالتقاط التصديق المُجمَّع وتضمينه في الكتلة التالية. ومع ذلك، سيزداد تأخير التضمين بمقدار واحد.
قراءة إضافية
- التصديقات في مواصفات الإجماع المشروحة لفيتاليك (Vitalik) (opens in a new tab)
- التصديقات في eth2book.info (opens in a new tab)
هل تعرف موردًا مجتمعيًا ساعدك؟ قم بتعديل هذه الصفحة وأضفه!
