المؤلف: @Web3Mario
المقدمة:
أصدرت Vitalik اقتراح EIP-7706 في 13 مايو 2024، حيث تقترح ملحقًا لنموذج الغاز الحالي، وفصل حساب الغاز لبيانات المكالمات بشكل منفصل، وتخصيص رسوم قاعدة الغاز المشابهة لـ Blob تعمل آلية التسعير على تقليل تكاليف تشغيل L2 بشكل أكبر. يجب إرجاع المقترحات ذات الصلة إلى EIP-4844 المقترح في فبراير 2022، وهو ما مضى عليه وقت طويل، لذلك، قمت بالتحقق من المعلومات ذات الصلة وآمل أن أقدم نظرة عامة على أحدث آلية لغاز Ethereum حتى يتمكن الجميع من فهمها بسرعة. .
نماذج Ethereum Gas المدعومة حاليًا - EIP-1559 وEIP-4844
في التصميم الأصلي، استخدم Ethereum آلية مزاد بسيطة لتسعير رسوم المعاملات، الأمر الذي يتطلب من المستخدمين تقديم عطاءات نشطة لمعاملاتهم الخاصة، أي تحديد سعر الغاز. عادةً، بسبب قيام المستخدم بدفع رسوم المعاملة سوف تنتمي إلى عمال المناجم، لذلك سيحدد عمال المناجم ترتيب تغليف المعاملات بناءً على سعر العرض بناءً على مبدأ التحسين الاقتصادي. لاحظ أن هذا يتم مع تجاهل MEV. وفقًا للمطورين الأساسيين في ذلك الوقت، واجهت هذه الآلية المشكلات الأربع التالية:
< strong>عدم التطابق بين تقلب مستويات رسوم المعاملات والإجماعتكلفة التداول: بالنسبة لأولئك الذين ينشطون في blockchain، هناك طلب كافٍ على تغليف المعاملات، مما يعني أنه يمكن ملء الكتل بسهولة، ولكن هذا غالبًا ما يعني أيضًا أن الرسوم الإجمالية متقلبة للغاية. على سبيل المثال، عندما يكون متوسط سعر الغاز 10 جيجاوي، فإن التكلفة الهامشية التي تتكبدها الشبكة من خلال قبول معاملة أخرى في كتلة تكون أعلى 10 مرات مما لو كان متوسط سعر الغاز 1 جيجاوي، وهو أمر غير مقبول.
تأخير غير ضروري للمستخدمين: نظرًا لأن كل كتلة لها حدود غازية محددة، مقترنة بالحدود الطبيعية التقلبات في حجم المعاملات التاريخية، غالبًا ما تنتظر المعاملات عدة كتل قبل تعبئتها، ولكن هذا غير فعال بالنسبة للشبكة بأكملها، أي لا توجد طريقة للسماح لكتلة واحدة بأن تكون أكبر من آليات "الركود" الأصغر التالية لاستيعاب الكتل؛ - كتلة فروق الطلب.
التسعيرعدم الكفاءة: بسبب استخدام آلية مزاد بسيطة كفاءة اكتشاف السعر العادل منخفضة، مما يعني أنه سيكون من الصعب على المستخدمين تقديم سعر معقول، مما يعني أنه في كثير من الحالات، يدفع المستخدمون رسوم معالجة عالية.
البلوكتشين بدون مكافآت الكتلةسوف عدم الاستقرار
قوي>: عندما تتم إزالة مكافآت الكتلة التي يجلبها التعدين واعتماد نموذج رسوم خالص، فقد يؤدي ذلك إلى الكثير من عدم الاستقرار، مثل "الكتل الشقيقة" التي تحفز التعدين على سرقة رسوم المعاملات، وفتح هجوم تعدين أناني أكثر قوة ناقلات وأكثر من ذلك.
حتى اقتراح وتنفيذ EIP-1559، كان لنموذج الغاز أول تكرار له في EIP-1559، Vitalik و النوى الأخرى التي اقترحها المطور في 13 أبريل 2019، وتم اعتمادها في ترقية لندن في 5 أغسطس 2021، تخلت هذه الآلية عن آلية المزاد واعتمدت بدلاً من ذلك نموذج تسعير مزدوج للرسوم الأساسية ورسوم الأولوية ستكون كميًا يتم حسابه من خلال نموذج رياضي قائم على أساس العلاقة بين استهلاك الغاز في الكتلة الأم وهدف الغاز العائم والمتكرر، والتأثير البديهي هو أنه إذا تجاوز استخدام الغاز في الكتلة السابقة عندما يتم تجاوز هدف الغاز المحدد مسبقًا، فإن القاعدة. سيتم زيادة الرسوم إذا كانت أقل من هدف الغاز، فسيتم تخفيض الرسوم الأساسية وهذا لا يعكس العلاقة بين العرض والطلب بشكل أفضل فحسب، بل يجعل التنبؤ بالغاز المعقول أكثر دقة ويتجنب حدوث المشاكل بسبب ذلك. يرجع السبب في ارتفاع أسعار الغاز بشكل كبير بسبب سوء التشغيل إلى أن حساب الرسوم الأساسية يتم تحديده مباشرة بواسطة النظام بدلاً من تحديده بحرية من قبل المستخدم. الكود المحدد هو كما يلي:

يمكن ملاحظة أنه عندما يكونparent_gas_used أكبر منparent_gas_target، فسيتم مقارنة الرسوم الأساسية للكتلة الحالية بالرسوم الأساسية للكتلة السابقة بالإضافة إلى قيمة الإزاحة. أما بالنسبة لقيمة الإزاحة، parent_base_fee مضروبًا في التكلفة السابقة إجمالي تكلفة الغاز للكتلة هو الإزاحة بالنسبة لهدف الغاز والحد الأقصى لقيمة ما تبقى من هدف الغاز والثابت هو 1. على العكس من ذلك، المنطق مماثل.
بالإضافة إلى ذلك، لن يتم توزيع الرسوم الأساسية على القائمين بالتعدين كمكافأة، ولكن سيتم تدميرها بشكل مباشر. سيؤدي هذا إلى الحفاظ على النموذج الاقتصادي لـ ETH في مكانه الصحيح الحالة الانكماشية التي تساعد على استقرار القيمة. من ناحية أخرى، فإن رسوم الأولوية تعادل المكافأة التي يقدمها المستخدمون لعمال المناجم ويمكن تسعيرها بحرية، وهذا يسمح بإعادة استخدام خوارزمية الفرز الخاصة بعمال المناجم إلى حد معين.

مع تقدم الوقت حتى عام 2021، سيدخل تطوير Rollup تدريجيًا في وضع جيد. نحن نعلم أنه سواء كان OP Rollup أو ZK Rollup يعني أن بعض بيانات الإثبات بعد ضغط بيانات L2 يجب تحميلها إلى السلسلة من خلال توفر بيانات الاستدعاء (Data متاح) أو يتم إرساله مباشرة إلى السلسلة للتحقق. وهذا يجعل حلول التراكم تواجه تكلفة غاز كبيرة عند الحفاظ على نهائية L2، وسيتم نقل هذه التكاليف في النهاية إلى المستخدمين، لذلك، لم تكن تكلفة استخدام معظم بروتوكولات L2 في ذلك الوقت منخفضة كما كان متصورًا.
في الوقت نفسه، تواجه Ethereum أيضًا معضلة المنافسة على مساحة الكتلة. نحن نعلم أن هناك حدًا للغاز في كل كتلة، مما يعني أن حد الغاز في الكتلة الحالية لا يمكن أن يتجاوز إجمالي استهلاك الغاز لجميع المعاملات هذه القيمة المحسوبة على أساس حد الغاز الحالي البالغ 30,000,000، هناك حد نظري قدره 30,000,000 / 16 = 1,875,000 بايت، حيث يشير الرقم 16 إلى استهلاك كل بيانات مكالمة. بايت بواسطة EVM 16 وحدة من الغاز يعني أن الحد الأقصى لحجم البيانات الذي يمكن أن تحمله كتلة واحدة هو حوالي 1.79 ميجابايت. عادة ما تكون البيانات المتعلقة بالتجميع التي تم إنشاؤها بواسطة فارز L2 كبيرة الحجم، مما يجعلها تتنافس مع تأكيدات المعاملات لمستخدمي السلسلة الرئيسية الآخرين، مما يؤدي إلى حجم معاملات أصغر يمكن تعبئته في كتلة واحدة، مما يؤثر على TPS من السلسلة الرئيسية.
من أجل حل هذه المعضلة، اقترح المطورون الأساسيون اقتراح EIP-4844 في 5 فبراير 2022، وقاموا بترقية Dencun في بداية الربع الثاني من عام 2024 تم تنفيذه لاحقًا. يقترح الاقتراح نوعًا جديدًا من المعاملات يسمى Blob Transaction، وبالمقارنة مع النوع التقليدي للمعاملات، فإن الفكرة الأساسية لـ Blob Transaction هي إضافة نوع بيانات جديد، وهو بيانات Blob. يختلف عن نوع بيانات الاتصال، لا يمكن الوصول إلى بيانات blob مباشرة بواسطة EVM، ولكن يمكن الوصول فقط إلى التجزئة الخاصة بها، والتي تسمى أيضًا VersionedHash. بالإضافة إلى ذلك، هناك تصميمان مصاحبان، أحدهما هو أن دورة GC لمعاملة blob أقصر مقارنةً بالمعاملات العادية، مما يضمن عدم تضخيم بيانات الكتلة بشكل عام التأثير المقدم مشابه لتأثير EIP-1559، ولكن يتم تحديد الدالة الأسية الطبيعية في النموذج الرياضي لجعل أداءها أفضل من حيث الاستقرار استجابة للتقلبات في حجم المعاملة، لأن ميل الدالة الأسية الطبيعية يكون أيضًا وظيفة أسية طبيعية، مما يعني أنه بغض النظر عن حالة مقياس معاملات الشبكة في هذا الوقت، عندما يرتفع حجم المعاملات بسرعة، فإن الرسوم الأساسية لغاز النقطة تستجيب بشكل كامل، وبالتالي تحد بشكل فعال من نشاط المعاملات ، تحتوي هذه الوظيفة أيضًا على ميزة مهمة. عندما تكون قيمة الإحداثي 0، تكون قيمة الوظيفة 1.
base_fee_per_blob_gas = min_base_fee_per_blob_gas*e ** (verger_blob_gas/blob_base_fee_pde_praction)
العمل هما ثابتان، ويتم تحديد فائض_blob_gas بالفرق بين إجمالي استهلاك غاز blob في الكتلة الأصلية وثابت TARGET_BLOB_GAS_PER_BLOCK عندما يتجاوز إجمالي استهلاك غاز blob القيمة المستهدفة، أي عندما يكون الفرق موجبًا، e** (. فائض_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) أكبر من 1، ثم يصبح base_fee_per_blob_gas أكبر، والعكس صحيح. يمكن تنفيذ ذلك بتكلفة منخفضة لبعض السيناريوهات التي تريد فقط استخدام قدرة الإجماع الخاصة بـ Ethereum للتصديق على بعض البيانات واسعة النطاق لضمان توفرها في نفس الوقت لن يؤدي ذلك إلى مزاحمة سعة تعبئة المعاملات للكتلة. بأخذ جهاز التسلسل التراكمي كمثال، يمكن تغليف المعلومات الأساسية لـ L2 في بيانات كبيرة من خلال معاملة blob، ومن خلال التصميم المتطور في EVM، يمكن استخدام versionedHash لتنفيذ منطق التحقق على السلسلة.

يجب إضافة أن الإعدادات الحالية لـ TARGET_BLOB_GAS_PER_BLOCK وMAX_BLOB_GAS_PER_BLOCK تضع حدًا للشبكة الرئيسية، أي هدف معالجة متوسط 3 نقاط (0.375 ميجابايت) لكل كتلة وحد يصل إلى 6 نقاط (0.75 ميجابايت) . تم تصميم هذه الحدود الأولية لتقليل الضغط الذي يفرضه EIP على الشبكة ومن المتوقع أن يزداد في الترقيات المستقبلية حيث تُظهر الشبكة الموثوقية مع الكتل الأكبر حجمًا.
تحسين بيئة التنفيذ نموذج استهلاك الغاز - EIP-7706
بعد توضيح نموذج Ethereum Gas الحالي، دعونا نلقي نظرة على أهداف وتفاصيل تنفيذ اقتراح EIP-7706. تم تقديم الاقتراح من قبل فيتاليك في 13 مايو 2024. على غرار بيانات Blob، يقوم هذا الاقتراح بتجريد نموذج الغاز المطابق لحقل بيانات آخر ذو خصائص خاصة، وهو بيانات الاستدعاء. وتحسين منطق تنفيذ التعليمات البرمجية المقابل.
من حيث المبدأ، منطق حساب الرسوم الأساسية لبيانات المكالمات هو نفس الرسوم الأساسية لبيانات blob في EIP-4844، وكلاهما يستخدم الدوال الأسية ويستند إلى يتم استخدام الكتلة الأصلية الانحراف بين قيمة استهلاك الغاز الفعلية والقيمة المستهدفة لحساب نسبة القياس للرسوم الأساسية الحالية.

تجدر الإشارة إلى تصميم المعلمة الجديد، LIMIT_TARGET_RATIOS=[2,2,4]، حيث يمثل LIMIT_TARGET_RATIOS[0] النسبة المستهدفة لفئة عملية التنفيذ Gas، ويمثل LIMIT_TARGET_RATIOS[1] النسبة المستهدفة لفئة بيانات Blob Gas ، يمثل LIMIT_TARGET_RATIOS [2] النسبة المستهدفة لنوع بيانات الاتصال Gas. يتم استخدام هذا المتجه لحساب القيمة المستهدفة للغاز المقابلة لأنواع الغاز الثلاثة في الكتلة الأصلية، ويكون منطق الحساب كما يلي، أي استخدام LIMIT_TARGET_RATIOS للتنفيذ عمليات قسمة الأعداد الصحيحة على حد الغاز:
< p>
إعداد Gas_limits المنطق المحدد هو كما يلي:
gas_limits[0] يجب أن يتبع صيغة الضبط الحالية
يجب أن تكون حدود الغاز [1] مساوية لـ MAX_BLOB_GAS_PER_BLOCK
يجب أن تكون حدود_الغاز[2] مساوية لحدود_الغاز[ 0] // CALLDATA_GAS_LIMIT_RATIO
نحن نعلم أن حد الغاز الحالي[0] هو 30000000، وأن CALLDATA_GAS_LIMIT_RATIO مضبوط مسبقًا على 4، مما يعني أن هدف غاز بيانات الاتصال الحالي هو حوالي 30000000 // 4 // 4 = 1875000، وبسبب منطق حساب غاز بيانات الاستدعاء الحالي، تستهلك كل بايت غير الصفر 16 غازًا، ويستهلك الصفر بايت 4 غازًا بافتراض أن توزيع البايتات غير الصفرية والصفرية في a يمثل كل جزء معين من بيانات المكالمات 50%، ثم يتم استهلاك 10 غاز في المتوسط لمعالجة 1 بايت من بيانات المكالمات. لذلك، يجب أن يتوافق هدف غاز بيانات المكالمات الحالي مع 187500 بايت من بيانات بيانات المكالمات، وهو ما يعادل ضعف متوسط الاستخدام الحالي تقريبًا.
ميزة ذلك هي أنه يقلل بشكل كبير من احتمالية وصول بيانات المكالمات إلى حد الغاز، ويحافظ على استخدام بيانات المكالمات في حالة أكثر اتساقًا من خلال النموذج الاقتصادي وفي الوقت نفسه، يتم أيضًا التخلص من إساءة استخدام بيانات المكالمات. السبب وراء هذا التصميم هو إزالة العوائق أمام تطوير L2، ومع البيانات الثنائية الكبيرة، يمكن تقليل تكلفة جهاز الفرز بشكل أكبر.