لعبة إعادة التنظيم في إيثيريوم القائم على إثبات الحصة
يقدم كاسبار شوارتز-شيلينغ بحثًا حول هجمات إعادة تنظيم الكتل في إيثيريوم القائم على إثبات الحصة، ويغطي نواقل الهجوم، وآليات الدفاع، والتخفيفات المطبقة على مستوى البروتوكول.
Date published: 29 نوفمبر 2022
يستكشف هذا العرض التقديمي أنواع إعادة تنظيم الكتل الممكنة في إيثيريوم القائم على إثبات الحصة (PoS) والتخفيفات المصممة لمنعها. يستعرض كاسبار شوارتز-شيلينغ، الباحث في مجموعة الحوافز القوية التابعة لمؤسسة إيثيريوم، آليات إعادة التنظيم اللاحقة (ex-post) والسابقة (ex-ante)، مقارنًا المشهد الأمني بين إثبات العمل (PoW) وإثبات الحصة.
هذا النص هو نسخة يسهل الوصول إليها من النص الأصلي للفيديو (opens in a new tab) الذي نشرته ليسكون. تم تعديله بشكل طفيف لتسهيل القراءة.
مقدمة وخلفية (0:03)
مرحبًا بكم. سأتحدث اليوم عن عمليات إعادة التنظيم الممكنة في إيثيريوم القائم على إثبات الحصة.
انضممت مؤخرًا إلى مؤسسة إيثيريوم، وتحديدًا مجموعة الحوافز القوية. نحن في الأساس فريق بحثي يركز على أي شيء يتعلق بالحوافز. سأبقي هذا قصيرًا — هذا العرض مليء بالمعلومات ويمكنكم العثور على معظم أعمالنا على GitHub.
نوعان من إعادة التنظيم (0:44)
أريد اليوم التحدث عن عمليات إعادة التنظيم، وأريد تحديدًا أن أستعرض نوعين مختلفين من عمليات إعادة التنظيم الممكنة في مجال إيثيريوم القائم على إثبات الحصة.
من ناحية، لدينا إعادة التنظيم اللاحقة (ex-post) ومن ناحية أخرى إعادة التنظيم السابقة (ex-ante). اعذروني على التسمية اللاتينية المتكلفة قليلًا، لكنها تفي بالغرض.
إعادة التنظيم اللاحقة هي ما نفكر فيه عادةً عندما نتحدث عن إعادة التنظيم. يرى الخصم كتلة — إذا كانت ذات قيمة، فقد يرغب في محاولة إعادة تنظيمها. لذا في المخطط هنا نرى أن الكتلة N+1 هي الكتلة التي يريد المهاجم إزالتها عبر إعادة التنظيم، ومن خلال البناء على نفس الكتلة الأصلية N، إذا نجح الأمر، يتم بناء الكتلة N+3 على الكتلة N+2. هذا هو المعتاد.
أما إعادة التنظيم السابقة فهي مختلفة قليلًا. الفكرة هي أن المهاجم يحتاج إلى بدء الهجوم قبل حتى أن يعرف أي كتلة سيقوم بإزالتها عبر إعادة التنظيم. كيف يعمل ذلك تقريبًا؟ على مستوى عالٍ جدًا، يتم بناء الكتلة N+1 فوق N ولكن لا يتم إصدارها على الفور. العقد الصادقة لا تعرف حتى بوجود N+1 ولذلك ستستمر في البناء على N. ثم من خلال آلية ما يتم إصدار N+1 وقد ترى N+3 أن N+1 في المقدمة وتبني فوقها، بحيث يتم فعليًا إزالة N+2 عبر إعادة التنظيم.
قد تتساءل لماذا قد ترغب حتى في القيام بهذا النوع من إعادة التنظيم. حسنًا، لا يزال هناك قيمة قابلة للاستخراج من المُعَدِّن (MEV) يمكن الاستيلاء عليها. إذا كنت محظوظًا، فإن الكتلة N+2 تحتوي على الكثير من MEV — يمكنك الاستيلاء عليها بمجرد نسخ ولصق محتوى تلك الكتلة. في أسوأ الحالات، لديك أساسًا معاملات تعادل خانتين (slots) للاستماع إليها.
إعادة التنظيم اللاحقة في إثبات العمل (2:49)
قبل الغوص في إعادة التنظيم السابقة، وهي الموضوع الرئيسي لهذا العرض، دعوني ألخص بإيجاز إعادة التنظيم اللاحقة وأبدأ تحديدًا بسياق إثبات العمل.
في الأساس، إنه ملخص لمنشور المدونة الذي كتبه المشتبه بهم المعتادون — جورجيوس وفيتاليك. فقط اذهب واقرأه، إنه رائع.
باختصار، في إيثيريوم القائم على إثبات العمل، تعتبر عمليات إعادة التنظيم اللاحقة صعبة ولكنها ليست مستحيلة. يمتلك مُعَدِّن بنسبة 10% فرصة جيدة نسبيًا لتعدين بعض الكتل على التوالي، وإذا كان الحافز مرتفعًا بما يكفي — تخيل وجود كتلة واحدة تحتوي على MEV بقيمة 100 ETH للاستيلاء عليها — فربما يكون معدل نجاح بنسبة واحد بالمائة كافيًا بالفعل لجعل محاولة إعادة التنظيم جديرة بالاهتمام.
إعادة التنظيم اللاحقة في إثبات الحصة (3:39)
في إثبات الحصة، الأمر مختلف تمامًا. نحن نتحدث عن كمية هائلة من حصة التخزين المطلوبة. سأستعرض معكم كيف يمكن للمرء أن يقوم بذلك فقط للتأكيد على مدى صعوبته البالغة.
ربما بعض الأساسيات أولًا. يتقدم الوقت في إيثيريوم القائم على إثبات الحصة في خانات (slots). يبلغ طول كل خانة 12 ثانية. في كل خانة هناك دوران: لديك مُقترِح — مُقترِح واحد بالضبط — ولجنة مكونة من آلاف المصدقين الذين يُفترض أن يقدموا تصديقًا على الكتل التي يسمعونها على طبقة الند للند (P2P). يحددون رأس السلسلة عن طريق تشغيل اختيار التفرع، وهو في الأساس دالة تأخذ شجرة الكتل كمدخلات وتعطيك رأس السلسلة.
يُفترض أن تقدم تصديقًا للكتل إذا سمعت كتلة صالحة، أو بعد أربع ثوانٍ من بداية الخانة — أيهما يأتي أولًا. لذا إذا كان مُقترِح الكتلة N+1 غير متصل بالإنترنت لسبب ما ولم تكن هناك كتلة بعد أربع ثوانٍ من بداية الخانة، فإنك تصدق على الكتلة N. إذا سمعتها في الوقت المحدد، فإنك تصدق على الكتلة N+1. بسيط.
كل هذه التصديقات تعطي وزنًا للكتل، ويُستخدم هذا الوزن بواسطة اختيار التفرع لتحديد أحدث رأس للسلسلة.
الآن دعونا نستعرض إعادة تنظيم لكتلة واحدة. في البداية، كل شيء يسير كالمعتاد — الجميع يصدق على الكتلة N، حتى المهاجم. ثم يتم بناء N+1 فوق N، ولأن المهاجم لا يريد إعطاء وزن للكتلة التي يحاول إزالتها عبر إعادة التنظيم، فإنه يصدق بدلًا من ذلك على الكتلة N. تكتسب الكتلة N الكثير من الوزن لأن المهاجم يمتلك ثلثي اللجنة — مما يعني أنه يحتاج إلى التحكم تقريبًا في ثلثي إجمالي حصة التخزين.
ثلث الأشخاص الصادقين صدقوا على N+1، وثلثان على N. الآن تأتي الكتلة N+2 — من الواضح أن المهاجم يبنيها على N، ويصدق على كتلته الخاصة. من وجهة نظر المُدَقِّقين الصادقين، لا تزال N+1 في المقدمة من حيث الوزن لأن كلًا من N+1 و N+2 ترثان الوزن الكامل للكتلة N، لكن N+1 تمتلك أيضًا هذا الثلث من التصديقات الذي تفتقر إليه N+2.
إذا قمنا بحساب ذلك — فإن الكتلة N+1 لديها تصديقات بقيمة ثلث زائد ثلث، مما يعطي ثلثين، والكتلة N+2 لديها أيضًا ثلثان. للتبسيط، دعونا نفترض أن كسر التعادل يصب في صالح المهاجم. حينها سترى N+3 أن N+2 في المقدمة وتبني فوقها.
لإعطائك فكرة عن مدى سخافة هذه الافتراضات — حتى لو كان لديك مُخزِّن يمتلك 65% من حصة التخزين، للتحكم في ثلثي اللجنة في أي خانة معينة، فإن لديك احتمالية تبلغ 0.05%. هذا يوضح أن قوة التصديقات المتوازية حقيقية — فعمليات إعادة التنظيم اللاحقة صعبة للغاية، إن لم تكن شبه مستحيلة، في إيثيريوم القائم على إثبات الحصة.
آليات هجوم إعادة التنظيم السابقة (7:34)
الآن سأتحدث عن إعادة التنظيم السابقة. يعتمد هذا الهجوم على ورقة بحثية أعدها نيودر وآخرون. لقد قمنا مؤخرًا بتحسين هذا الهجوم بشكل كبير. كما كتبنا ورقة بحثية حوله وتمكنا من رفعها على arXiv في الوقت المناسب.
أيضًا للتوضيح مقدمًا — لا تقلقوا، هناك تخفيفات. سيتم دمجها قبل الدمج (The Merge).
كيف يعمل هجوم إعادة التنظيم السابقة؟ في البداية، الكتلة N — كالمعتاد، الجميع يصدق عليها. الآن أنت مُقترِح N+1. تقوم باقتراحها والتصديق عليها بشكل خاص باستخدام مُدَقِّق واحد. والأهم من ذلك، أنك تبقيها خاصة — لا تصدرها ولا تنشرها على طبقة P2P.
ما يحدث هو أن الأشخاص الصادقين لا يرون الكتلة N+1، لذلك سيصدقون على الكتلة N. هذه هي الحيلة — أنت ترث هذا الوزن ولا تضطر فعليًا لمحاربته.
دعونا نفترض عدم وجود زمن انتقال (latency) في الوقت الحالي. في الخانة N+2، ما نفعله كمهاجم هو إصدار الكتلة N+1 والتصديق الخاص في نفس الوقت. يحتاج المُدَقِّقون الصادقون في الخانة N+2 إلى التصديق على كتلة. من وجهة نظرهم، يرون الكتلة N+2 والكتلة N+1 مع هذا التصديق الخاص الواحد. إذا قاموا بتشغيل اختيار التفرع، فسيجدون أن الكتلة N+1 لها وزن أكبر من الكتلة N+2، لأن N+1 تحتوي على التصديق الخاص الذي تفتقر إليه N+2. حتى جميع المُدَقِّقين الصادقين سيصدقون فعليًا على الكتلة N+1. في N+3، وبشكل بديهي، سيُنظر إلى N+1 على أنها رأس السلسلة.
زمن انتقال الشبكة والهجوم (10:25)
لقد افترضت عدم وجود زمن انتقال، وهو بالطبع ليس كيف تسير الأمور. هناك زمن انتقال — يستغرق نشر الكتل والرسائل على طبقة P2P بعض الوقت.
الطريقة التي يمكن للمهاجم من خلالها تنفيذ هذا النوع من الهجوم هي امتلاك الكثير من العقد في مواقع مختلفة على طوبولوجيا P2P. عندما يقترح المُقترِح الصادق في الخانة N+2 تلك الكتلة، فإنك تسمع عنها في وقت مبكر جدًا من عملية النشر. ونتيجة لذلك، يمكنك إصدار كتلتك الخاصة من كل هذه المواقع المختلفة بحيث تسمع الأغلبية عن الكتلة N+1 قبل أن يسمعوا عن الكتلة N+2 — مما يعني أنهم يرون أن الكتلة N+1 في المقدمة من حيث الوزن وسيصدقون عليها فعليًا.
للتأكيد مرة أخرى على ما يحدث هنا: لدينا مُقترِح مع مُصَدِّق واحد ينجح في تنفيذ إعادة تنظيم لكتلة واحدة. هذا ليس مثاليًا، على أقل تقدير.
استراتيجيات الموازنة لعمليات إعادة تنظيم أطول (11:42)
إذا كنت ترغب في التعمق أكثر، يمكنك تنفيذ عمليات إعادة تنظيم أطول باستخدام استراتيجية الموازنة. الفكرة هي تقسيم اللجنة الصادقة إلى وجهات نظر مختلفة للسلسلة.
تقوم بإصدار كتلتك الخاصة بطريقة تجعل نصف العقد الصادقة تقريبًا تسمع عن كتلتك الخاصة وتصديقك قبل أن يسمعوا عن الكتلة N+2 — لذلك يصدقون على كتلتك. النصف الآخر تريدهم ألا يسمعوا كتلتك قبل أن يصدقوا على N+2.
الآن لديك نصف اللجنة الصادقة يصدق على N+1 والنصف الآخر يصدق على N+2. كيف يساعد ذلك؟ اللجنة الصادقة الآن تلغي بعضها البعض، وأنت كمهاجم لا تضطر حتى لمحاربتهم — وهو في الأساس حلم المهاجم الذي يتحقق.
بالمرور عبر المخطط: الكتلة N كالمعتاد، الكتلة N+1 — نفس القصة، لا تقوم بإصدارها. يصدق المُدَقِّقون الصادقون على الكتلة N. تظهر الكتلة N+2، تسمع عنها مبكرًا، وتصدر الكتلة N+1 مع تصديق واحد — "الصوت المرجح" — بطريقة يراها نصف اللجنة الصادقة قبل والنصف الآخر بعد. نصفهم يصوتون لـ N+1، والنصف الآخر لـ N+2. أنت في الواقع تريد انقسامًا بفارق واحد بحيث يكون لدى N+2 تصديق واحد إضافي، لذلك تبني N+3 على N+2 وتستمر عملية إعادة التنظيم.
لإنهاء إعادة تنظيم لكتلتين: يتم اقتراح الكتلة N+3، تسمعها مبكرًا، وتصدر الكتلة N+1 وتصديقيك المتبقيين، مما يغرق طبقة P2P بحيث تصوت أغلبية الأشخاص الصادقين للكتلة N+1 — بحيث يكون لها وزن أكبر من الكتلة N+3 ويتم بناء N+4 فوق N+1.
إذا فكرت في الأمر، فمن الرخيص نسبيًا القيام بعمليات إعادة التنظيم هذه في ظل هذه الافتراضات. حتى لو لم يكن لديك انقسامات مثالية، نظرًا لأن طبقة P2P كبيرة جدًا، فلديك توزيع احتمالي يمكنك استهدافه بحيث تنمو تكلفة الهجوم في الجذر التربيعي لحجم اللجنة.
تخفيف تعزيز المقترح (15:17)
دعونا نتحدث عن التخفيف. ما هي الفكرة الأساسية؟ سنمنح المُقترِح المزيد من القوة. إذا وصلت كتلة صالحة في الوقت المحدد، فلنعزز وزن هذه الكتلة طوال مدة الخانة. بعد انتهاء تلك الخانة، نستأنف نتيجة إل إم دي جوست (LMD GHOST) المعتادة وتعود الأمور إلى طبيعتها.
لذا إذا تم اقتراح الكتلة N+2 في الوقت المحدد وكانت صالحة، فستحصل هذه الكتلة على تعزيز — لنقل 80% من حجم اللجنة. الآن هذا التصديق الصغير اللطيف لـ N+1 من المهاجم لن يفي بالغرض. مستحيل.
أشياء الموازنة أيضًا لم تعد تعمل لأن لديك انقسامًا بنسبة 50/50 ولكن التعزيز يرميها دائمًا في اتجاه واحد. لا توجد طريقة يمكنك من خلالها الحفاظ على هذا الانقسام بنسبة 50/50.
الفكرة هي أنه مع وجود هذا التخفيف، يجب أن تتنافس تصديقات الخصم مع التعزيز لإقناع المُدَقِّقين الصادقين بالتصويت وفقًا لرغبتهم. هذا يكسر استراتيجيات الموازنة ويمنع أساسًا جميع عمليات إعادة التنظيم تمامًا. أخبار جيدة — هناك طلب سحب (PR) مفتوح، لذا سيتم دمجه أساسًا قبل الدمج (The Merge).
النقاط الرئيسية (16:48)
بعض النقاط الرئيسية. لقد تحدثت عن الاختلافات بين إعادة التنظيم اللاحقة والسابقة. لقد استعرضت بإيجاز المشاهد المختلفة لعمليات إعادة التنظيم في إثبات العمل مقابل إثبات الحصة. لقد أوضحت لكم كيفية تنفيذ إعادة التنظيم السابقة ولكن الأهم من ذلك كيفية إصلاحها.
إذا كنتم مهتمين بهذا، فهناك ورقة بحثية — أكثر تفصيلًا ودقة. سيتم رفع الشرائح. تعالوا للتحدث معي إذا كنتم مهتمين، ويمكنكم أيضًا العثور علي على تويتر.
آمل أن يكون هذا مثيرًا للاهتمام بالنسبة لكم. شكرًا جزيلاً.