تخطي إلى المحتوى الرئيسي
Change page

⁦مكافآت وعقوبات إثبات الحصة⁩

يتم تأمين إيثيريوم باستخدام عملتها المشفرة الأصلية، إيثر (ETH). يقوم مشغلو العقد الذين يرغبون في المشاركة في التحقق من الكتل وتحديد رأس السلسلة، بإيداع الإيثر في عقد الإيداع على إيثيريوم. ثم يتم الدفع لهم بالإيثر لتشغيل برنامج المُدَقِّق الذي يتحقق من صحة الكتل الجديدة المستلمة عبر شبكة نظير إلى نظير وتطبيق خوارزمية اختيار التفرع لتحديد رأس السلسلة.

هناك دوران أساسيان للمُدَقِّق: 1) التحقق من الكتل الجديدة و"التصديق" عليها إذا كانت صالحة، 2) اقتراح كتل جديدة عند اختياره عشوائيًا من إجمالي مجموعة المُدَقِّقين. إذا فشل المُدَقِّق في القيام بأي من هاتين المهمتين عند الطلب، فإنه يفقد مدفوعات الإيثر. يُكلف المُدَقِّقون أيضًا في بعض الأحيان بتجميع التوقيعات والمشاركة في لجان المزامنة.

هناك أيضًا بعض الإجراءات التي يصعب جدًا القيام بها عن طريق الخطأ وتدل على بعض القصد الخبيث، مثل اقتراح كتل متعددة لنفس الخانة أو التصديق على كتل متعددة لنفس الخانة. هذه سلوكيات "قابلة للاقتطاع" تؤدي إلى حرق كمية من الإيثر الخاصة بالمُدَقِّق (تصل إلى 1 ETH) قبل إزالة المُدَقِّق من الشبكة، وهو ما يستغرق 36 يومًا. يُستنزف إيثر المُدَقِّق المُقتطَع ببطء عبر فترة الخروج، ولكن في اليوم 18 يتلقون "عقوبة الارتباط" والتي تكون أكبر عندما يتم اقتطاع المزيد من المُدَقِّقين في نفس الوقت تقريبًا. وبالتالي، فإن هيكل الحوافز لآلية الإجماع يدفع مقابل الصدق ويعاقب الجهات الفاعلة السيئة.

يتم تطبيق جميع المكافآت والعقوبات مرة واحدة لكل حقبة.

اقرأ المزيد للحصول على التفاصيل...

المكافآت والعقوبات

المكافآت

يتلقى المُدَقِّقون مكافآت عندما يدلون بأصوات تتوافق مع أغلبية المُدَقِّقين الآخرين، وعندما يقترحون كتلًا، وعندما يشاركون في لجان المزامنة. يتم حساب قيمة المكافآت في كل حقبة من base_reward. هذه هي الوحدة الأساسية التي يتم حساب المكافآت الأخرى منها. يمثل base_reward متوسط المكافأة التي يتلقاها المُدَقِّق في ظل الظروف المثلى لكل حقبة. يتم حساب ذلك من الرصيد الفعال للمُدَقِّق وإجمالي عدد المُدَقِّقين النشطين على النحو التالي:

base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))

حيث base_reward_factor هو 64، و base_rewards_per_epoch هو 4، و sum(active balance) هو إجمالي الإيثر المُخزَّن عبر جميع المُدَقِّقين النشطين.

هذا يعني أن المكافأة الأساسية تتناسب طرديًا مع الرصيد الفعال للمُدَقِّق وتتناسب عكسيًا مع عدد المُدَقِّقين على الشبكة. كلما زاد عدد المُدَقِّقين، زاد الإصدار الإجمالي (حيث sqrt(N) ولكن صغرت base_reward لكل مُدَقِّق (حيث 1/sqrt(N)). تؤثر هذه العوامل على معدل النسبة السنوية (APR) لعقدة التخزين. اقرأ الأساس المنطقي لذلك في ملاحظات فيتاليك (opens in a new tab).

ثم يتم حساب إجمالي المكافأة كمجموع خمسة مكونات لكل منها وزن يحدد مقدار ما يضيفه كل مكون إلى إجمالي المكافأة. المكونات هي:

1. تصويت المصدر: أدلى المُدَقِّق بصوت في الوقت المناسب لنقطة فحص المصدر الصحيحة
2. تصويت الهدف: أدلى المُدَقِّق بصوت في الوقت المناسب لنقطة فحص الهدف الصحيحة
3. تصويت الرأس: أدلى المُدَقِّق بصوت في الوقت المناسب لكتلة الرأس الصحيحة
4. مكافأة لجنة المزامنة: شارك المُدَقِّق في لجنة المزامنة
5. مكافأة المقترح: اقترح المُدَقِّق كتلة في الخانة الصحيحة

الأوزان لكل مكون هي كما يلي:

TIMELY_SOURCE_WEIGHT	uint64(14)
TIMELY_TARGET_WEIGHT	uint64(26)
TIMELY_HEAD_WEIGHT	uint64(14)
SYNC_REWARD_WEIGHT	uint64(2)
PROPOSER_WEIGHT	uint64(8)

مجموع هذه الأوزان هو 64. يتم حساب المكافأة كمجموع الأوزان المطبقة مقسومًا على 64. يمكن للمُدَقِّق الذي أدلى بأصوات المصدر والهدف والرأس في الوقت المناسب، واقترح كتلة وشارك في لجنة المزامنة أن يتلقى 64/64 * base_reward == base_reward. ومع ذلك، لا يكون المُدَقِّق عادةً مقترح الكتلة، لذا فإن أقصى مكافأة له هي 64-8 /64 * base_reward == 7/8 * base_reward. يمكن للمُدَقِّقين الذين ليسوا مقترحي كتل ولا في لجنة مزامنة أن يتلقوا 64-8-2 / 64 * base_reward == 6.75/8 * base_reward.

تتم إضافة مكافأة إضافية لتحفيز التصديقات السريعة. هذه هي inclusion_delay_reward. هذه لها قيمة تساوي base_reward مضروبة في 1/delay حيث delay هو عدد الخانات التي تفصل بين مقترح الكتلة والتصديق. على سبيل المثال، إذا تم تقديم التصديق في غضون خانة واحدة من مقترح الكتلة، يتلقى المُصَدِّق base_reward * 1/1 == base_reward. إذا وصل التصديق في الخانة التالية، يتلقى المُصَدِّق base_reward * 1/2 وهكذا.

يتلقى مقترحو الكتل 8 / 64 * base_reward مقابل كل تصديق صالح مدرج في الكتلة، لذا فإن القيمة الفعلية للمكافأة تتناسب مع عدد المُدَقِّقين المُصَدِّقين. يمكن لمقترحي الكتل أيضًا زيادة مكافأتهم من خلال تضمين أدلة على سوء السلوك من قبل مُدَقِّقين آخرين في كتلتهم المقترحة. هذه المكافآت هي "الجزرة" التي تشجع على صدق المُدَقِّق. سيتم مكافأة مقترح الكتلة الذي يتضمن اقتطاعًا بـ slashed_validators_effective_balance / 512.

العقوبات

حتى الآن نظرنا في المُدَقِّقين حسني السلوك تمامًا، ولكن ماذا عن المُدَقِّقين الذين لا يدلون بأصوات الرأس والمصدر والهدف في الوقت المناسب أو يفعلون ذلك ببطء؟

العقوبات المفروضة على تفويت أصوات الهدف والمصدر تساوي المكافآت التي كان المُصَدِّق سيتلقاها لو قدمها. هذا يعني أنه بدلاً من إضافة المكافأة إلى رصيدهم، يتم خصم قيمة مساوية من رصيدهم. لا توجد عقوبة على تفويت تصويت الرأس (أي أن أصوات الرأس تُكافأ فقط، ولا يُعاقب عليها أبدًا). لا توجد عقوبة مرتبطة بـ inclusion_delay - ببساطة لن تتم إضافة المكافأة إلى رصيد المُدَقِّق. كما لا توجد عقوبة على الفشل في اقتراح كتلة.

اقرأ المزيد عن المكافآت والعقوبات في مواصفات الإجماع (opens in a new tab). تم تعديل المكافآت والعقوبات في ترقية بيلاتريكس (Bellatrix) - شاهد داني رايان وفيتاليك يناقشان هذا في فيديو Peep an EIP (opens in a new tab).

الاقتطاع

الاقتطاع هو إجراء أكثر صرامة يؤدي إلى الإزالة القسرية للمُدَقِّق من الشبكة وما يرتبط بذلك من فقدان للإيثر المُخزَّن الخاص به. هناك ثلاث طرق يمكن من خلالها اقتطاع المُدَقِّق، وكلها ترقى إلى الاقتراح غير النزيه أو التصديق على الكتل:

  • من خلال اقتراح وتوقيع كتلتين مختلفتين لنفس الخانة
  • من خلال التصديق على كتلة "تحيط" بكتلة أخرى (مما يغير التاريخ فعليًا)
  • من خلال "التصويت المزدوج" بالتصديق على مرشحين لنفس الكتلة

إذا تم اكتشاف هذه الإجراءات، يتم اقتطاع المُدَقِّق. هذا يعني أنه يتم حرق 0.0078125 فورًا لمُدَقِّق يمتلك 32 ETH (يتناسب خطيًا مع الرصيد الفعال)، ثم تبدأ فترة إزالة مدتها 36 يومًا. خلال فترة الإزالة هذه، تُستنزف حصة التخزين الخاصة بالمُدَقِّق تدريجيًا. في منتصف المدة (اليوم 18) يتم تطبيق عقوبة إضافية يتناسب حجمها مع إجمالي الإيثر المُخزَّن لجميع المُدَقِّقين المُقتطَعين في الـ 36 يومًا السابقة لحدث الاقتطاع. هذا يعني أنه عندما يتم اقتطاع المزيد من المُدَقِّقين، يزداد حجم الاقتطاع. الحد الأقصى للاقتطاع هو الرصيد الفعال الكامل لجميع المُدَقِّقين المُقتطَعين (أي، إذا كان هناك الكثير من المُدَقِّقين الذين يتم اقتطاعهم، فقد يفقدون حصة التخزين الخاصة بهم بالكامل). من ناحية أخرى، فإن حدث اقتطاع واحد ومعزول يحرق فقط جزءًا صغيرًا من حصة التخزين الخاصة بالمُدَقِّق. تسمى عقوبة منتصف المدة هذه التي تتناسب مع عدد المُدَقِّقين المُقتطَعين "عقوبة الارتباط".

تسرب الخمول

إذا مرت طبقة الإجماع بأكثر من أربع حقب دون تحقيق نهائية، يتم تنشيط بروتوكول طوارئ يسمى "تسرب الخمول". الهدف النهائي لتسرب الخمول هو تهيئة الظروف اللازمة للسلسلة لاستعادة النهائية. كما هو موضح أعلاه، تتطلب النهائية أغلبية 2/3 من إجمالي الإيثر المُخزَّن للاتفاق على نقاط فحص المصدر والهدف. إذا أصبح المُدَقِّقون الذين يمثلون أكثر من 1/3 إجمالي المُدَقِّقين غير متصلين بالإنترنت أو فشلوا في تقديم تصديقات صحيحة، فلن يكون من الممكن للأغلبية الساحقة البالغة 2/3 وضع نهائية لنقاط الفحص. يسمح تسرب الخمول لحصة التخزين العائدة للمُدَقِّقين غير النشطين بالاستنزاف تدريجيًا حتى يسيطروا على أقل من 1/3 إجمالي حصة التخزين، مما يسمح للمُدَقِّقين النشطين المتبقين بوضع نهائية للسلسلة. مهما كان حجم مجموعة المُدَقِّقين غير النشطين كبيرًا، فإن المُدَقِّقين النشطين المتبقين سيسيطرون في النهاية على 2/3 من حصة التخزين. يعد فقدان حصة التخزين حافزًا قويًا للمُدَقِّقين غير النشطين لإعادة التنشيط في أقرب وقت ممكن! تمت مواجهة سيناريو تسرب الخمول على شبكة اختبار ميدالا (Medalla) عندما تمكن < 66% من المُدَقِّقين النشطين من التوصل إلى إجماع على الرأس الحالي لسلسلة الكتل. تم تنشيط تسرب الخمول وتمت استعادة النهائية في النهاية!

يشجع تصميم المكافأة والعقوبة والاقتطاع لآلية الإجماع المُدَقِّقين الأفراد على التصرف بشكل صحيح. ومع ذلك، ينبثق من خيارات التصميم هذه نظام يحفز بقوة التوزيع المتساوي للمُدَقِّقين عبر عملاء متعددين، ويجب أن يثبط بقوة هيمنة العميل الواحد.

قراءة إضافية

المصادر