شعار زيفيرنت

اختبارات الملكية المعممة لأقبية ERC4626

التاريخ:

مع نمو DeFi ونضجه ، أصبحت البنية التحتية القابلة للتطوير والتركيب في قمة اهتمامات المطورين. طلبات Ethereum للتعليقات (أو ERCs) - مجموعات أدوات موحدة لبناء التطبيقات المستندة إلى Ethereum ، مثل معيار الرمز المميز المستخدم على نطاق واسع ERC20 - خدمة الدور الأساسي المتمثل في توفير إرشادات متسقة للمطورين للمساهمة في النظام البيئي دون البدء من نقطة الصفر. في وقت سابق من هذا العام، معيار قبو رمزي ERC4626 تم إنشاؤه لتشجيع التوافق المتبادل بين الرموز المميزة الحاملة للعائد. يمكن أن يؤدي توحيد تفاصيل عمليات التنفيذ أيضًا إلى معالجة مشكلات التوافق الملحة ، مما يجعل تكامل البروتوكول أسهل وأقل عرضة للخطأ في النهاية.

العديد من مشاريع DeFi بالفعل اعتمد المعيار ، الذي يتطلع إلى زيادة قابلية تكوين خزائنهم ، ونتوقع اعتماده على نطاق أوسع في جميع أنحاء النظام البيئي. ومع ذلك ، فإن تكييف الخزائن الحالية يسبب بعض الآلام في النمو ؛ بشكل حاسم ، يمكن أن تؤدي بعض أخطاء التنفيذ إلى تعريض أهداف جديدة للهجوم. حتى الأخطاء الصغيرة (صغيرة مثل إساءة تفسير الواجهة القياسية) يمكن أن يكون لها عواقب وخيمة على كل من الأمان وتجربة المستخدم ، مما يؤكد الحاجة إلى المزيد من أدوات وتدابير الأمان ، لا سيما داخل نظام DeFi البيئي الأكثر قابلية للتكوين. 

لحسن الحظ ، يمكن أن يكون للأخطاء البسيطة حلول بسيطة نسبيًا إذا تم اكتشافها جيدًا قبل استغلالها (وبشكل مثالي قبل نشرها). تحقيقا لهذه الغاية ، أطلقنا سراح اختبارات الملكية ERC4626 من أجل التشويش والتنفيذ الرمزي لمساعدة منشئي الخزنة على اكتشاف الانتهاكات القياسية التي قد تؤدي إلى كسر عمليات الدمج أو تؤدي إلى نقاط الضعف في المستقبل. في هذا المنشور ، نشرح المشكلة المحفزة ، ونسير من خلال نهجنا ، ونختتم ببعض النصائح العملية.

أولاً ، خلفية صغيرة عن معيار ERC4626

تم الانتهاء منه في مارس ، ERC4626 هو المعيار للأقبية ذات الرموز المميزة. تم تقديمه من أجل توسيع نطاق الاستخدام ERC20 قياسي (حاليًا هو الأساس لمئات الرموز المميزة) ، وتشجيع التوحيد القياسي عبر الخزائن الحاملة للإنتاجية ، وضمان قابلية التركيب للتطبيقات والبروتوكولات (مثل مجمعات العائد) التي تحتاج إلى التفاعل معها. هذا يعني أن أي تطبيق تم إنشاؤه على قبو ERC4626 يمكن توسيعه بسهولة للعمل مع أي قبو ERC4626 آخر. 

تسمح الخزائن ذات الرموز المميزة للمستخدمين بإيداع الأصول بحرية في أسهم الخزينة ، ثم استرداد هذه الأسهم لاحقًا لسحب رأس المال والفائدة من الخزنة. أسهم الخزينة هذه هي رموز ERC20 ، وبالتالي يمكن تداولها بسهولة أو استخدامها كضمان لاقتراض أصول أخرى. على سبيل المثال ، يمكن للمستخدمين إيداع أصولهم في خزائن Yearn إلى رموز yVault المميزة ، والتي يمكن تداولها بعد ذلك على Uniswap ، أو تخزينها للحصول على عائد إضافي ، أو استخدامها كضمان لبروتوكولات الإقراض.

قد يختلف منطق العمل لتوليد وتوزيع العائد (وتحديد سعر السهم) عبر التطبيقات. من أجل تغطية أكبر عدد ممكن من الخزائن (بهدف جعلها قابلة للتشغيل المتبادل مقابل متطابقة) ، يركز معيار ERC4626 على وصف واجهة المستخدم ، تاركًا معظم تفاصيل التنفيذ غير محددة. يسمح هذا بالتنوع في منطق الأعمال طالما أن المخزن يفي بالمتطلبات المحددة للواجهة ويشجع إمكانية التشغيل البيني عبر العديد من أنواع التطبيقات وأنواع خزائن ERC4626.

مع إنشاء المزيد من الخزائن ، نتوقع أن نراها مطبقة وفقًا لمعيار ERC4626 منذ البداية ؛ لكننا حاليًا في مرحلة انتقالية إلى حد ما ، حيث سيحتاج المطورون الذين يتطلعون إلى الاستفادة من إمكانية تكوين أكبر إلى تحديث الخزائن والتطبيقات والبروتوكولات الحالية لتتوافق مع المعيار. ومع ترقيتهم ، فهم يواجهون عددًا من التعقيدات والتحديات. 

تحديات المطابقة القياسية (ومزالق عدم التوافق)

إن اتباع معيار جديد ليس دائمًا أمرًا سهلاً. يجب أن يقوم كل قبو ERC4626 بتنفيذ متطلبات المعيار بأمانة (وبدقة) كما هو موضح. خلاف ذلك ، يصبح تكامل خزائن ERC4626 معقدًا بشكل متزايد لمراعاة الاختلافات المختلفة. هذا التعقيد يجعل عمليات الدمج عرضة للخطأ بطبيعتها ؛ ولأنها ليست دليلاً كافياً في المستقبل ، فقد تؤدي إلى ثغرات أمنية بمرور الوقت.

تتطلب الرموز المميزة ERC20 غير القياسية (على سبيل المثال ، Tether USD) العديد من أنظمة DeFi لاستخدام مكتبة إضافية (مثل SafeERC20) عند إجراء عمليات نقل الرموز للتعامل بأمان مع السلوكيات المتباينة (على سبيل المثال عدم إرجاع أي شيء عند نجاح التحويل بدلاً من العودة true). هذا يعني أن أي أنظمة تتفاعل مع هذه الرموز يمكن أن تصبح عرضة للخطر إذا لم يتم تصميم النظام للتعامل بشكل صحيح مع حالات "العوائد المفقودة". يمكن أن تؤدي هذه السيناريوهات إلى حدوث مأزق أمني مشترك ، وتزيد من تكاليف التطوير والصيانة الإجمالية (عند أخذ المنطق الإضافي والتبعيات اللازمة للتخفيف من المشكلات). لذلك ، يعد التوافق مع المعيار أمرًا بالغ الأهمية ليس فقط للتطبيقات الفردية ولكن أيضًا لأمن النظام البيئي بأكمله. يمكن أن تتسبب إحدى نقاط الضعف في نظام واحد أو تبعية واحدة في حدوث مشكلات واسعة النطاق.

من الناحية المثالية ، سيتم تحديد المعايير رسميًا دون غموض (على سبيل المثال ، المواصفات الرسمية لـ ERC20) ، ويمكن التحقق رسميًا من كل تطبيق مقابل المواصفات القياسية. لكن من الناحية العملية ، ليس من السهل تحقيق ذلك في فترة زمنية قصيرة ، بسبب التكلفة والجهد المطلوبين من المجتمع.

تقديم خصائص ERC4626 القابلة للتنفيذ لتحديد مشكلات المطابقة 

نظرًا لأننا نعمل على تحقيق حالة مثالية (تم التحقق من كل قبو رسميًا مقابل المواصفات الرسمية الصارمة) ، فقد كتبنا معيار ERC4626 HAS لتحديد التناقضات في التفاصيل الدقيقة التي يسهل تفويتها للمتطلبات القياسية.  

يمكن لمطوري Vault إجراء الاختبارات لاكتشاف الانتهاكات القياسية المحتملة في عمليات التنفيذ الخاصة بهم قبل النشر. ويمكن للمتكامل في الخزانة التحقق مما إذا كانت الخزائن المعينة تتبع المعيار قبل دمجها في نظامهم. يمكن أيضًا اختبار الخصائص مقابل الخزائن الحية التي تم نشرها بالفعل على الشبكة الرئيسية ، عبر اختبار شوكة mainnet. قد يكون اختبار الخزائن الحية مفيدًا - خاصةً عندما تم نشر الخزائن أو ترقيتها مؤخرًا - لضمان ضبط جميع معلمات النظام بشكل صحيح. 

اخترنا الاختبارات القائمة على الخصائص - مكتوبة في Foundry وجاهزة للتشغيل بواسطة مصهرها - من أجل جعل الخصائص قابلة للتنفيذ (وبالتالي قابلة للاختبار). في المستقبل ، قد يتم تشغيلها أيضًا عن طريق التنفيذ الرمزي أو أدوات فحص النموذج للتحقق رسميًا من أن الخزنة المعينة تفي بخصائص جميع المدخلات والشروط الممكنة.

كتبنا الخصائص لتكون عامة بما يكفي لتطبيقها على مجموعة واسعة من الخزائن التي تطبق منطق عمل مختلف. استخدمنا وظائف الواجهة العامة فقط لجعلها غير مقيدة بتفاصيل التنفيذ. (بسبب هذا التقييد ، ومع ذلك ، تم حذف بعض المتطلبات القياسية التي تشير إلى البيانات الداخلية الخاصة بالتنفيذ من الخصائص.)

على سبيل المثال ، الخاصية التالية تتوافق مع أحد متطلبات convertToShares() وظيفة، "يجب ألا تظهر أي اختلافات حسب المتصل. " بالنظر إلى عنواني الحسابين والمبلغ ، فإنه يجعل كل حساب من الحسابات يتصل convertToShares() بنفس المقدار ، ويضمن تساوي قيمتي الإرجاع. هذه الخاصية مستقلة عن تفاصيل التنفيذ الخاصة بـ convertToShares()، والتي تختلف باختلاف الخزائن ويجب أن تكون راضية عن أي خزائن تطبق ERC4626. يمكن تنفيذ هذه الخاصية من خلال توفير قيم إدخال محددة (لاختبار الوحدة) ، أو العديد من المدخلات العشوائية (لاختبار الزغب) ، أو القيم الرمزية (للتنفيذ الرمزي والتحقق الرسمي). يمكن أيضًا تشغيله محليًا أو مقابل شوكة mainnet (لاختبار التكامل).

حالة الاستخدام: الخصائص التي تختبر أخطاء التقريب

أخطاء التقريب ، على سبيل المثال ، هي فئة مهمة من الأخطاء (التي تبدو ثانوية) التي يمكن أن يكون لها بعض الآثار المتسلسلة. المنطق المحاسبي الأساسي لـ ERC4626 ، على سبيل المثال ، حساب عدد الأسهم التي سيتم سكها ، أو مقدار الأصول التي سيتم سحبها ، يتم تنفيذه باستخدام حساب النقطة الثابتة - أخطاء التقريب لا مفر منها. إلى عن على أمنومع ذلك ، فإن المعيار يحدد بوضوح اتجاه التقريب المفضل لكل وظيفة واجهة ، مع ترك حدود الخطأ غير محددة وتعتمد على التنفيذ. على وجه التحديد ، فإن deposit() و redeem() يجب أن تعيد الوظائف ملف مع-تقريب القيمة الدقيقة بينما mint() و withdraw() يجب أن تعيد الوظائف ملف على مدى-تقريب. على سبيل المثال ، إذا كان سعر السهم الحالي (أي مبلغ الأصول لكل سهم) هو 2 ، إذن deposit() مع 3 وي من الأصول ، يجب فقط سك ما يصل إلى 1 وي من الأسهم (على سبيل المثال ، floor(3/2))، في حين withdraw() مع 3 وي من الأصول يجب أن يحرق ما لا يقل عن 2 وي من الأسهم (على سبيل المثال ، ceil(3/2)).

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

مقتطف من اختبارات الملكية ERC4626

في الواقع ، وجدنا أن العديد من خزائن ERC4626 على الشبكة الرئيسية تفشل في تلبية الخاصية المذكورة أعلاه بسبب أخطاء التقريب. هذا يعني أنه يمكن لأي شخص أن يكسب ، على سبيل المثال ، زوجًا من ساتوشي BTC (1 ساتوشي ~ = 0.02 سنت في وقت كتابة هذا التقرير) ببساطة (وبشكل متكرر) من السك والسحب ، واستنزاف الخزنة ببطء. قد يؤدي هذا في الواقع إلى تحقيق ربح على السلاسل التي تتمتع برسوم غاز منخفضة للغاية (على سبيل المثال ، Fantom) ، أو إذا أصبح سعر الأصل مرتفعًا بدرجة كافية في المستقبل.

اختبار معيار ERC4626 في البرية

اختبرنا خصائصنا مقابل 100 خزنة ERC4626 تقريبًا على الشبكة الرئيسية ، ووجدنا العديد من الخزائن التي فشلت في اتباع المتطلبات القياسية - غالبًا بسبب أخطاء التقريب (على سبيل المثال ، استخدام تقريب الأرضية حيث يكون السقف مطلوبًا ، كما وصفنا). على وجه التحديد ، فشلت بعض الخزائن في سك العدد الدقيق للأسهم التي طلبتها mint() وظيفة ، على الرغم من أن المعيار يتطلب صراحة . بعث بعضها أيضا غير متناسقة Deposit حدث حيث تختلف البيانات المسجلة عما تم سكه بالفعل. لدهشتنا ، لم يتم سك بعض الخزائن على الفور على الإطلاق ؛ بدلاً من ذلك ، قاموا فقط بوضع طلبات النعناع في قائمة انتظار ، ومعالجتها لاحقًا في دفعة كمعاملة منفصلة.

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

استخدام اختبارات الملكية الخاصة بنا ، والخطوات الأخرى القابلة للتنفيذ نحو التوافق القياسي

يمكن أن يؤدي اتباع المعيار بدقة إلى منع السلوكيات المتباينة (من الناحية المثالية قبل نشرها على الإطلاق). نأمل أن تساعد ممتلكاتنا ، إلى جانب بعض عناصر العمل الإضافية. بالنسبة لأولئك الذين يطورون و / أو يدمجون خزائن ERC4626:

  • نوصي بشدة بتشغيل ممتلكاتنا اختبارات ضد خزائنك. سيجدون بسرعة المشكلات إذا كان هناك أي انتهاكات واضحة للمعيار.
  • نقترح أيضًا مراجعة HAS للتحقق من فهمك للمتطلبات القياسية ، وتعديل التنفيذ إذا كان هناك أي تباين غير مقصود.
  • إذا كان يجب أن ينحرف قبوك عن المعيار ، فإننا نوصي بتوثيق السلوكيات غير القياسية بوضوح ، حتى يتمكن الآخرون من التعامل مع هذه الانحرافات بشكل صحيح عند التكامل مع قبو الخاص بك. يرجى ملاحظة أنه ينبغي اعتبار هذا كحل أخير.

***
تتمتع خزائن ERC4626 بإمكانية أن تصبح لبنة بناء مهمة لـ DeFi في المستقبل المنظور - ومن أجل قابلية التركيب ، من المهم أن تتبع الخزائن الجديدة والحالية المعيار. ستظهر تطبيقات جديدة وفقًا للمعيار ، لذلك ليس هناك وقت أفضل من الوقت الحالي لتوحيد الخزائن الحالية. 

نظرًا لأننا نعمل نحو حالة مثالية (حيث تكون الخزائن المختلفة قابلة للتكوين بشكل موحد) ، يمكن تشغيل اختبارات خصائص ERC4626 لاكتشاف الانتهاكات القياسية في تطبيقات الخزنة بسهولة أكبر. جميع اختبارات الملكية (مع الوثائق والأمثلة) متاحة للجمهور في Github الخاص بنا مستودع. نحن نرحب بملاحظاتك ومساهماتك!

***
الآراء المعبر عنها هنا هي آراء أفراد AH Capital Management، LLC ("a16z") المقتبس منهم وليست آراء a16z أو الشركات التابعة لها. تم الحصول على بعض المعلومات الواردة هنا من مصادر خارجية ، بما في ذلك من شركات محافظ الصناديق التي تديرها a16z. على الرغم من أنه مأخوذ من مصادر يُعتقد أنها موثوقة ، لم تتحقق a16z بشكل مستقل من هذه المعلومات ولا تقدم أي تعهدات حول الدقة الحالية أو الدائمة للمعلومات أو ملاءمتها لموقف معين. بالإضافة إلى ذلك ، قد يتضمن هذا المحتوى إعلانات جهات خارجية ؛ لم تقم a16z بمراجعة مثل هذه الإعلانات ولا تصادق على أي محتوى إعلاني وارد فيها.

يتم توفير هذا المحتوى لأغراض إعلامية فقط ، ولا ينبغي الاعتماد عليه كمشورة قانونية أو تجارية أو استثمارية أو ضريبية. يجب عليك استشارة مستشاريك بخصوص هذه الأمور. الإشارات إلى أي أوراق مالية أو أصول رقمية هي لأغراض توضيحية فقط ، ولا تشكل توصية استثمارية أو عرضًا لتقديم خدمات استشارية استثمارية. علاوة على ذلك ، هذا المحتوى غير موجه أو مخصص للاستخدام من قبل أي مستثمرين أو مستثمرين محتملين ، ولا يجوز الاعتماد عليه تحت أي ظرف من الظروف عند اتخاذ قرار بالاستثمار في أي صندوق تديره a16z. (سيتم تقديم عرض للاستثمار في صندوق a16z فقط من خلال مذكرة الاكتتاب الخاص واتفاقية الاشتراك والوثائق الأخرى ذات الصلة لأي صندوق من هذا القبيل ويجب قراءتها بالكامل.) أي استثمارات أو شركات محفظة مذكورة ، يشار إليها ، أو الموصوفة لا تمثل جميع الاستثمارات في السيارات التي تديرها a16z ، ولا يمكن أن يكون هناك ضمان بأن الاستثمارات ستكون مربحة أو أن الاستثمارات الأخرى التي تتم في المستقبل سيكون لها خصائص أو نتائج مماثلة. قائمة الاستثمارات التي أجرتها الصناديق التي يديرها Andreessen Horowitz (باستثناء الاستثمارات التي لم يمنحها المُصدر إذنًا لـ a16z للإفصاح علنًا عن الاستثمارات غير المعلنة في الأصول الرقمية المتداولة علنًا) على https://a16z.com/investments /.

الرسوم البيانية والرسوم البيانية المقدمة في الداخل هي لأغراض إعلامية فقط ولا ينبغي الاعتماد عليها عند اتخاذ أي قرار استثماري. الأداء السابق ليس مؤشرا على النتائج المستقبلية. المحتوى يتحدث فقط اعتبارًا من التاريخ المشار إليه. أي توقعات وتقديرات وتنبؤات وأهداف وآفاق و / أو آراء معبر عنها في هذه المواد عرضة للتغيير دون إشعار وقد تختلف أو تتعارض مع الآراء التي يعبر عنها الآخرون. يرجى الاطلاع على https://a16z.com/disclosures للحصول على معلومات إضافية مهمة

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة