الانتقال إلى المحتوى

ERC-2612 تصريح التوقيع: كيفية التحقق من الرقم والموعد النهائي

ERC-2612 يسمح لك التصريح بتعيين ترخيص الرمز المميز بالتوقيع. تشرح هذه المقالة فحص كل عنصر على حدة للمالك والمنفق والقيمة والرقم والموعد النهائي.

آخر تحديث

لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.

الإجابة المباشرة

يستخدم ERC-2612 توقيع EIP-712 لضبط حد allowance لرمز ERC-20 من دون معاملة approve منفصلة. تشرح هذه المقالة فحص Owner وSpender وValue وNonce وDeadline ثم التحقق من الحالة على السلسلة.

عند تعدين permit صحيح، يضبط العقد allowance(owner, spender) إلى value ويزيد nonce بمقدار 1. يمكن لمرحل أو طرف ثالث إرسال التوقيع، لذلك لا يحتاج المالك إلى إرسال المعاملة أو دفع الغاز. يُفحص deadline عند إرسال permit فقط؛ ولا يجعل الحد الموجود ينتهي تلقائياً بعد ذلك. ما دام الحد غير صفري، يستطيع Spender استدعاء transferFrom ضمنه.

ERC-2612 تصريح التوقيع: كيفية التحقق من الرقم والموعد النهائي
0 / 5
0 العناصر التي تمت مراجعتها; 5 العناصر لا تزال دون حل

إن استكمال هذه المراجعة لا يثبت أن الأصل أو المعاملة أو النظام آمن.

آلية العمل

ترتبط رسالة التصريح بـ owner وspender وvalue وnonce وdeadline، ويربط نطاق EIP-712 التوقيع بعقد الرمز وسلسلة الكتل المقصودين. يقبل العقد التوقيع فقط عندما يكون block.timestamp <= deadline؛ وعند النجاح يكتب الحد ويزيد nonce، بينما لا يقلل الموعد اللاحق حداً كُتب سابقاً. قد تستبدل الصفحات الضارة Spender بعقد هجوم أو تضبط value على 2^256-1 أو تجعل الموعد بعيداً جداً.

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

مثال

يريد المستخدم تفويض 100 USDC فقط، لكن value الموقّع هو 2^256-1 وdeadline بعد عشر سنوات. يضبط الاستدعاء الناجح الحد الأقصى ويزيد nonce؛ وحتى إن نقلت المعاملة الحالية 100 فقط، يستطيع المهاجم نقل USDC المودع لاحقاً ما دام الحد قائماً. بعد الموعد لا يمكن إرسال تصريح غير مستخدم، لكن الحد الذي كُتب بنجاح لا يصبح 0 تلقائياً. أبطله عبر approve(spender, 0) أو تغيير موثوق آخر.

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

المخاطر

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

مفاهيم خاطئة شائعة

  • الخرافة الأولى: شاشة العرض الأمامية هي حقيقة موجودة في السلسلة. قد يتم تخزين الواجهة الأمامية مؤقتًا أو فهرستها في وقت متأخر أو توصيلها بشبكة خاطئة ويجب التحقق من صحتها.

  • الخرافة الثانية: زيادة الغاز أو الانزلاق يمكن أن يحل أي فشل. يؤثر الغاز فقط على الفرز، كما أن الانزلاق يؤدي إلى انخفاض الأسعار فقط؛ لن يتم إصلاح أخطاء الإذن والرقم وأخطاء شروط العقد تلقائيًا.

  • الخرافة الثالثة: الاختبار الناجح بكمية صغيرة يعني الأمان الدائم. ستؤدي ترقيات المسؤول والمعلمات الديناميكية وتغييرات السيولة إلى تغيير النتائج ويجب مراجعتها قبل كل توسيع للصفقة.

مواضيع ذات صلة

المصادر

التنقل

ابحث في الويكي...