
مؤلف:دراغان راكيتا ،ترجمة النموذج: OUBA جيد ، BITT سلسلة رؤية عالم
EOF (تنسيق كائن EVM)
EOF (تنسيق كائن EVM) هي مجموعة من EIPs الصغيرة المصممة لتحسين EVM.يقدم تنسيق رمز بايت جديد للتحضير لمستقبل EVM.
ميزة EOF
يصعب شرح قيمة EOF لأنها ليست شيئًا واحدًا ، ولأنه تأخر في الشوكة وسنوات عديدة من التطوير والبحث ، وتطور الإصدارات المختلفة ، يصبح التفسير أكثر تعقيدًا.
الغرض من هذه المقالة هو تلخيص هذه المزايا وشرحها في جملة واحدة:
المزايا:
-
يسمح EOF بتغيير تسعير غاز رمز التشغيل
-
إذا تغير تسعير الغاز ، فقد يكون رمز البايت التقليدي مختلفًا.
-
إزالة مراقبة الغاز
-
هذا يعني إزالة رمز تشغيل الغاز ، وحد الغاز في المكالمة/devatecall/staticcall.
-
السماح L2 بتغيير الغاز وفقًا لحالة استخدامه
-
على سبيل المثال ، التكلفة العالية لعملية التجزئة في ZK L2.
-
EIP-7667: زيادة تكلفة الغاز لوظائف التجزئة.
-
تقليل حجم رمز البايت وتقليل استخدام الغاز
-
تشير البيانات المبكرة إلى أن حجم رمز الكود/التهيئة ومبلغ استخدام الغاز ينخفض:
-
انخفض نشر UNISWAP-V3 بنسبة 6.5 ٪ ورمز النشر.
-
نشر UNISWAPV3FACTORY لاستخدام حوالي 14 ٪ من الغازات أقل ، استدعاء Runtest لاستخدام حوالي 9 ٪ غاز أقل.
-
ينخفض نشر ENS DNSregistrar بنحو 6 ٪ من رمز التهيئة وحوالي 1.5 ٪ من رمز النشر.
-
ENS Calls ProveAndClaim: استخدم حوالي 10 ٪ من الغاز.
-
السماح بتحويل رمز BYTECODE وترقية
-
تعني مراقبة رمز الإزالة إزالة الكمبيوتر الشخصي وإنشاء/إنشاء 2 و extcodehash و extcodesize و extcodecopy و codesize ورمز تشغيل الترميز.
-
إذا تم تغيير الرمز ، فلن يتمكن العقد التقليدي من التشغيل.
-
سيسمح لنا ذلك بتعديل رمز EOF bytecode عند تقديم Verkle في المستقبل.
-
EOF تمكين رمز التشغيل على الفور رقم
-
افتح إمكانية فتح swapn و dupn والتبادل.
-
يوفر هذا المزيد من الحرية للصلابة إلى حجم المكدس ، ويحل عمق المكدس في صلابة.
-
قم بإزالة تحليل هدف القفز باهظ الثمن
-
في RETH ، يتم الحفاظ على نتائج التحليل مع BYTECODE ، ولكن العملاء الآخرين مختلفون.إزالة تحليل الهدف القفز قبل تنفيذ العقد يحسن السرعة.
-
مع إزالة التحليل ، يمكننا زيادة الحد الأقصى لحجم رمز Bytecode في المستقبل.
-
يصبح التحليل الثابت أسهل
-
البرامج الفرعية لتدفقات التحكم الإلزامي والأكثر هيكليًا تجعل الاختبار الغامض أكثر فعالية ، ويمكن أن يحقق تحليلًا ثابتًا للوقت الخطي.
-
فصل البيانات والرمز أسهل في العقل.
-
يمكن تجميع eof bytecode في رمز bytecode أسرع
-
يمكن تجميع eof bytecode في رمز الجهاز.
-
إثبات المستقبل EVM
-
يتيح إصدار وهيكل رمز البايت أن يكون قابلية التوسع.هذا مفيد بشكل خاص لـ L2 والتوحيد.
-
مثال على ذلك هو EIP-7701: أضاف تجريد الحساب المحلي مع EOF جزءًا جديدًا من الرأس.
-
معالجة التوسع في المساحة
-
يتم ملء رمز تشغيل المكالمة EXT*الجديد بالصفر من خلال طلب حقل العنوان للتحضير لتوسيع العنوان في المستقبل.عندما يقرر Ethereum توسيع مساحة العنوان ، تم إعداد EOF لهذه التغييرات.
-
ExtCall (0xf8) ، extdelegatecall (0xf9) ، extstaticCall (0xfb)
-
لديها نفس المخطط مثل المكالمة المهجورة ، ولكنها تزيل حقول GAS_LIMIT وإخراج الذاكرة.
-
قبل إدخال Returnataload (في شوكة مبكرة جدًا) ، يجب تعيين إخراج ذاكرة رمز تشغيل المكالمة قبل تنفيذ رمز تشغيل المكالمة.هذا لا يسمح الإخراج الديناميكي.
-
eofcreate و ReturnContract
-
إنه المحتوى الجديد لـ EOF ويتطلب علاجًا خاصًا.
-
Exchange (0xe8) ، swapn (0xe7) ، duPn (0xe6) ، datacopy (0xd3) ، datasize (0xd2) ، dataloadn (0xd1) ، dataload (0xd0) ، rjumpi (0xe1) ، rjump) v (0xe2) ، returndataload
-
المنطق بسيط ، ومعظمه يحتاج فقط إلى تنفيذ خطوط 10-20.لا توجد العديد من الحواف التي يجب تغطيتها.
-
Callf (0xe3) ، Retf (0xe4) ، و Jephf (0xe5)
-
مطلوب المكدس الفرعي والتحقق من المكدس ، والتعقيد يتطلب حوالي 20-30 سطر.
-
يحتاج إلى مطور لنحو 2-3 أشهر.بدأ العمل الاختبار.في الوقت الحاضر ، هناك حوالي 2000 من اختبارات التحقق المكتوبة بخط اليد ، كما يجري اختبار الحالة أيضًا.
متكامل مع EVM الحالي
بالنسبة للمطورين ، هناك مشكلة مهمة هي الجهد وتكاليف الاختبار وتكلفة الحفاظ على رموز التشغيل هذه المطلوبة للتغييرات.
لن يتعارض رمز التشغيل الجديد مع رمز التشغيل التقليدي ، ولن يمس التحقق من EOF رمز التشغيل المهجور.
يمكن أن يكون تشفير وفك تشفير EOF غير واضحة.التحقق من شيء جديد.
قم بإنشاء معاملة لرمز EOF bytecode ، على غرار EofCreate ولكن يتطلب التحقق قبل التنفيذ.
معظم رموز التشغيل بسيطة للغاية:
يتركز التغيير في EVM ، وبالتالي فإن تكامل بقية العميل يعتمد على بنية العميل وموقع رمز البايت.
تحتاج Excodesize و ExtCodehash إلى معرفة ما إذا كان الحساب هو EOF وإرجاع القيمة المحددة مسبقًا (حجم 0xef00 وتجزئة) ، مما قد يغير طريقة تكامل العميل قليلاً.تتمثل إحدى الأفكار في حفظ شعار IS_EOF في نموذج حساب عادي للقفز رمز البايت لتحميل رمز البايت عند الاتصال بأي رمز تشغيل نوع ExtCode.
تأثير على L2
المشكلة الأكبر هي لماذا لا ينفذ L2 هذه التغييرات؟هل يجب أن نتوقف عن تحسينات EVM على Ethereum L1؟
والحقيقة هي أن L2 ليس جاهزًا ، ليس فقط ، ليس لديهم منصة للمساعدة في دمج هذه الابتكارات.تساعد التحكم في إصدار رمز البايت على بناء منصة يمكن استخدامها بواسطة L2. ).
والأهم من ذلك ، أن EOF ليس تنسيقًا فحسب ، بل يتطلب أيضًا دعم اللغة (الصلابة/Vyper/Huff) ، ويتطلب دعم سلسلة الأدوات.يتطلب نظام بيئي لاستخدامه.
العيوب: لا تزال البايتات التقليدية موجودة
هذه مشكلة شائعة.ستكون البايت التقليدية موجودة إلى الأبد.مع رمز Bytecode لتنسيق بديل ، في المستقبل ، يمكننا الانتقال وإزالة رمز البايت التقليدي عندما تنتهي صلاحية الحالة.
لخص
EOF ليس الشيء المبهج التالي.من الضروري لمزيد من التطوير والإثبات المستقبلي لـ EVM.