المؤلف: جون أوتاندير، مطور Ethereum الأساسي؛ الترجمة: Golden Finance xiaozou
هذه المشاركة مستوحاة من إجابة مبشر Ethereum Vitalik في Reddit AMA الأخيرة.
p> p>
وأشار فيتاليك إلى أن الزيادة المعتدلة في حد الغاز أمر معقول، ولم تتم زيادة حد الغاز منذ ما يقرب من ثلاث سنوات، وهي أطول فترة في تاريخ البلاد. بروتوكول. أجرى Vitalik أيضًا بعض الحسابات البسيطة لزيادة حد غاز الإيثريوم إلى 40 مليونًا.
تشرح هذه المقالة سبب صعوبة زيادة حد الغاز في Ethereum؟ المخاطر الناجمة عن زيادة حد غاز الاثيريوم والحلول ذات الصلة.
1، حد الغاز (حد الغاز)
يحدد حد الغاز مقدار العمل المكتمل داخل الكتلة، وبالتالي يحدد عدد المعاملات التي يمكن تنفيذها لكل كتلة. ستسمح زيادة حد الغاز لـ Ethereum بمعالجة إنتاجية أعلى للمعاملات أو معاملات أكثر تعقيدًا. تاريخيًا، تأثر إعداد حد الغاز المحدد بعمال المناجم/الشركاء، وتم زيادة الحد على مر السنين. الصورة أدناه مأخوذة من etherscan.io وتُظهر الاستخدام التاريخي للغاز (قريب جدًا من حد الغاز، وقد استوعب السوق جميع الزيادات في الحد).
p> p>
2، خطر
الآن تتضمن زيادة حد الغاز عدة مخاطر.
(1) معدل الحظر مفقود
كنت من قبل كما هو مذكور في المقالة، معدل العم هو المؤشر الأكثر مناقشة عند تقييم زيادة حد الغاز. الآن، بعد دمج Ethereum، لم تعد هناك كتل عمومية. الطريقة الوحيدة التي نريد معرفة ما إذا كانت العقدة تتعامل مع حد الغاز الحالي بشكل جيد هي النظر إلى معدل كتلة التسرب. لكن هذا المقياس معيب لأنه يظهر فقط العقد التي تعاني من نقص العرض حاليًا. إنه لا يعطينا مؤشرًا جيدًا لكيفية زيادة حد الغاز، ويظهر فقط الحالة المتوسطة، وليس السيناريو الأسوأ الذي يمكن أن يحدث في الهجوم.
(2) حجم الحالة
حظر 18418786 ( لقطة الحساب في 24 أكتوبر 2023 تبلغ 10.33 جيجابايت، ولقطة التخزين 76.59 جيجابايت، وبالتالي فإن الحالة الإجمالية تبلغ 87 جيجابايت تقريبًا. حالة الكتلة 17419840 (6 يونيو 2023) أقل بقليل من 80 جيجابايت. وهذا يعني أن الولاية قد نمت بنحو 7 جيجا بايت خلال 4 أشهر، أي ما يقرب من 2 جيجا بايت شهريًا.
إذا استخدمنا 87+(2*12*# سنة) للاستقراء، فإن الحالة بعد سنة واحدة ستكون 111 غيغابايت وبعد خمس سنوات ستكون 207 جيجابايت. المشكلة هنا ليست الحجم يمكن لأي شخص تخزين الكثير من البيانات، ولكن الوصول إلى تلك البيانات وتعديلها يصبح أبطأ وأبطأ.
هذه مجرد لقطة، حالة عامة. يحتاج Geth أيضًا إلى تخزين هذه الحالة في شكل مختلف للتحقق من جذر الحالة. يتطلب شكل آخر من أشكال تخزين الحالة (عقدة ثلاثية) للكتلة 18418786 حوالي 180 جيجابايت.
لذلك، يبلغ إجمالي حجم المساحة المستخدمة حاليًا لتخزين الحالة فقط 267 جيجابايت تقريبًا. إذا قمنا بزيادة حد الغاز، فإن حجم الولاية سينمو بشكل أسرع.
مشكلة نمو الدولة هي أنه، على النقيض من الماضي، ليس لدينا طريقة واضحة لإزالة الدولة. لا توجد توصيات محددة بشأن الموعد النهائي للدولة يمكننا تنفيذها بسرعة لإخراجنا من الحالة المتنامية.
(3) النطاق التاريخي
في عام 2021 تم ذكره في مقال أن عقدة geth الكاملة تبلغ حوالي 350 جيجابايت (تم تقليمها حديثًا). وبعد حوالي ثلاث سنوات، تجاوزت عقدة geth الكاملة (على pbss) 900 جيجابايت. يوضح الرسم البياني أدناه إجمالي الحجم التراكمي للصفقات. ومن السهل أن نرى أن حجم المعاملات قد تضاعف خلال ثلاث سنوات، من حوالي 980 مليون معاملة إلى أكثر من 2.2 مليار معاملة.
p> p>
مع ظهور L2، أصبح النطاق التاريخي مشكلة أكبر لأن الطريقة التي يتم بها تخزين البيانات الآن (قبل ظهور 4844 عبر الإنترنت) هي بيانات الاتصال. يبلغ حجم الكتلة 18418786 أكثر من 427 جيجابايت، والكتلة 17419840 (منذ 4 أشهر أيضًا) يبلغ حجم الكتلة 339 جيجابايت، مما يعني نموًا قدره 28 جيجابايت في 4 أشهر، أي ما يقرب من 9 جيجابايت شهريًا. يمكننا استقراء هذا النمو بـ 427+(9*12*# سنة)، وهو 535 جيجابايت بعد عام واحد و967 جيجابايت بعد خمس سنوات (بافتراض النمو الخطي مرة أخرى).
نأمل أن يتباطأ هذا النمو بعد تشغيل EIP-4844، وعند هذه النقطة سيتوقف L2 عن استخدام CALLDATA لتوفير البيانات ويتحول إلى استخدام CALLDATA في غضون أسابيع قليلة فقاعة منتهية الصلاحية.
سوف يحل EIP-4444 مشكلة نمو السجل لأن العقد الكاملة لم تعد بحاجة إلى تخزين السجل بالكامل. يتطلب تنفيذ EIP-4444 شبكة موثوقة لاسترداد السجل قبل أن نتمكن من تمكين العقد الكاملة لإيقاف خدمة بيانات السجل.
(4) وقت المزامنة
حد الغاز في العديد يمكن أن تؤثر الجوانب على وقت المزامنة:
· تصبح المزامنة الكاملة بطيئة جدًا، وتستغرق عقدة geth أكثر من أسبوع لمزامنة السلسلة بالكامل، ويكون العملاء الآخرون أفضل تم تحسين وضع المزامنة الكاملة.
· تعد مزامنة البيانات التاريخية بطيئة نسبيًا. نظرًا لأننا نحتاج إلى تنزيل المزيد من البيانات، فسيكون جزء مزامنة البيانات التاريخية أبطأ.
· حالة مزامنة اللقطة أبطأ لأننا نحتاج إلى تنزيل المزيد من الحالة.
· استرداد اللقطة بطيء. نظرًا لأن النقطة المحورية تتحرك أثناء مزامنة اللقطة، فلدينا الكثير من الحالات غير المكتملة على القرص والتي تحتاج إلى الإصلاح. إذا تحرك المحور بشكل متكرر وكان هناك المزيد من التغييرات لكل كتلة، فإن مرحلة الإصلاح هذه ستكون أبطأ.
· نظرًا لأن العقد تحتاج إلى إجراء المزيد من التغييرات لتشكيل رأس الكتلة، فإن المزامنة مع السلسلة ستكون أبطأ.
(5) تنوع العملاء
إنشاء الجديد يعد عميل EL مشروعًا ضخمًا في حد ذاته. إن زيادة حد الغاز لها عيب إضافي يتمثل في زيادة صعوبة بناء العملاء وتحسينهم لاستخدام الشبكة الرئيسية. لقد كان Geth قيد التطوير لأكثر من 10 سنوات مع تحسينات واسعة النطاق. قد تكون هناك حجة مضادة مفادها أن العملاء الجدد يمكنهم التعلم من العملاء الحاليين وعدم ارتكاب نفس الأخطاء مرة أخرى.
ومع ذلك، فقد رأينا مشاكل في الشبكة الرئيسية مع عميلين (مواصفات التنفيذ مكتوبة بلغة python وEthereumJ مكتوبة بلغة جافا سكريبت). وهذا يعني أيضًا أن العملاء المكتوبين بلغات معينة لن يعملوا الآن. نظرًا لحدودها بسبب عبء اللغة ونضج قاعدة التعليمات البرمجية، فإن زيادة حد الغاز ستؤدي إلى ترك بعض العملاء في الخلف.
نرى هذا أيضًا مع KZG، ومن أجل الحصول على الأداء المطلوب، يعتمد معظم العملاء على استدعاء C-KZG (رمز مكتوب في قاعدة كود C) بدلاً من ذلك. بدلاً من استخدام مكتبة مكتوبة باللغة التي اختاروها.
(6) السيناريو الأسوأ
النظر في الغاز متى الحد، لا يمكننا أن ننظر فقط إلى الوضع العام. علينا دائمًا أن نفكر في السيناريو الأسوأ. بالتأكيد، قد تعمل العقد بشكل جيد عندما تكون السلسلة تحت حمل متوسط، ولكن ماذا يحدث إذا تضاعف إدخال/إخراج القرص فجأة لمدة 5 كتل متتالية؟
وقت التشغيل ليس هو المقياس الوحيد الذي نحتاج إلى أخذه في الاعتبار. إذا تمكن أحد المهاجمين من احتلال موارد أخرى، مثل إدخال/إخراج القرص، أو وقت وحدة المعالجة المركزية أو الذاكرة، فسيقوم بذلك قد يفرض على الأجهزة ذات التكوين المنخفض عدم الاتصال بالإنترنت. خاصة بعد اندماج Ethereum، فإن تشغيل عميلين على نفس الجهاز، ومهاجمة عميل واحد قد يؤدي أيضًا إلى جعل العميل الآخر غير مستقر. في الأيام الأولى لاختبار دمج إيثريوم، شهدنا العديد من المواقف التي يؤدي فيها تسرب الذاكرة في أحد العملاء إلى تعطل النظام بأكمله.
السيناريو الأسوأ الآخر الذي يجب مراعاته هو حجم الإثبات. مع زيادة حد الغاز، تزداد أيضًا تغيرات الحالة المحتملة التي يمكن أن تحدث بين كتلتين. وهذا له تأثير على مزامنة اللقطة التي تمت مناقشتها سابقًا، ولكنه يؤثر أيضًا على حجم المصادقة للعميل الخفيف لطبقة التنفيذ. الآن هذه ليست مشكلة كبيرة، فدليل شجرة ميركل-باتريشيا أكبر من أن يتم إرساله عبر الشبكة. ومع ذلك، إذا أردنا تنفيذ فكرة التحقق المتبادل لتشغيل العديد من العملاء الخفيفين على نفس الجهاز، فسيكون حجم الإثبات مهمًا للغاية.
3، الحل
هل انتهينا؟ ؟ هل سنحتفظ دائمًا بسقف 30MGas؟ لا!
في إحدى مقالاتي لعام 2021، اقترحت حلاً للمعضلة التي واجهناها في ذلك الوقت. بالنسبة لمشكلات المزامنة الكاملة التي نواجهها في عام 2021، تطبق geth مزامنة اللقطات واللقطات. بالنسبة لقضايا التهذيب وتخطيط قاعدة البيانات، تطبق geth PBSS. أصبح Txpool أكثر موثوقية في التعامل مع أحمال المعاملات العالية وتم نقل معظم معاملات MEV الأمامية إلى شركات البناء. تم أيضًا نقل العديد من المعاملات إلى L2، مما أدى بدوره إلى زيادة متوسط حجم معاملات الشبكة الرئيسية.
الحل الوحيد الذي لم يتم تنفيذه هو التجديد. لقد تغيرت الآراء قليلاً على مر السنين، ويبدو أن معظم الناس يميلون نحو الفترة التاريخية EIP-4444 كحل قصير المدى لنمو البيانات التاريخية. لإصدار EIP-4444، نحتاج إلى شبكة قوية من البيانات التاريخية التي تخدم العقد حتى لا يتم فقدان التاريخ حتى لو لم يعد يتم تخزينه بواسطة جميع العقد الكاملة (راجع للشغل، معظم عقد البيتكوين لا تخزن البيانات التاريخية على الإطلاق).
لم نجد بعد طريقة لائقة وواقعية للحد من الحالة.
كما رأيت في الهجوم قبل ترقية شنغهاي، هناك بعض الهجمات المعروفة التي تمنعنا من زيادة حد الغاز. تم حل جميع الأخطاء (على حد علمي).
في وقت كتابة هذا التقرير، تم إصدار EIP-4844 على شبكة الاختبار. سيؤدي EIP هذا إلى زيادة مساحة تخزين العقدة ومتطلبات الإدخال/الإخراج. في رأيي، انتظار رؤية تأثير هذا التغيير على الشبكة الرئيسية هو الشيء الأكثر أمانًا الذي يجب القيام به قبل محاولة أي نوع من زيادة حد الغاز. بمجرد انتقال L2 إلى معاملات blob، يجب أن نزيد تكلفة بيانات الاتصال (لأنه في رأيي أن سعر بيانات الاتصال أقل من سعره مقارنة بالأشياء الأخرى التي تحتاج البيانات إلى تخزينها). يعد هذا أيضًا بمثابة وظيفة إلزامية لـ L2 لاستخدام blobspace.
باختصار أود أن أذكر الجميع بتوخي الحذر عند التفكير في زيادة حد الغاز، لأنه سيؤثر على جوانب كثيرة من العقدة، كما ستتأثر بعض التأثيرات تكون واضحة نسبيا. وفي المناقشات ذات الصلة، من المهم النظر في التأثيرات طويلة المدى وقصيرة المدى لتغييرات حدود الغاز. ص>