لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.
الإجابة المباشرة
يستخدم ERC-2612 توقيع EIP-712 لضبط حد allowance لرمز ERC-20 من دون معاملة approve منفصلة. تشرح هذه المقالة فحص Owner وSpender وValue وNonce وDeadline ثم التحقق من الحالة على السلسلة.
عند تعدين permit صحيح، يضبط العقد allowance(owner, spender) إلى value ويزيد nonce بمقدار 1. يمكن لمرحل أو طرف ثالث إرسال التوقيع، لذلك لا يحتاج المالك إلى إرسال المعاملة أو دفع الغاز. يُفحص deadline عند إرسال permit فقط؛ ولا يجعل الحد الموجود ينتهي تلقائياً بعد ذلك. ما دام الحد غير صفري، يستطيع Spender استدعاء transferFrom ضمنه.
إن استكمال هذه المراجعة لا يثبت أن الأصل أو المعاملة أو النظام آمن.
آلية العمل
ترتبط رسالة التصريح بـ 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٪. إذا انضممت ليوم واحد آخر، فلن تتمكن من الخروج. وإذا لم تتمكن العائدات الأسبوعية أو الشهرية من تغطية هذه الاحتكاكات، فإن ما يسمى بالعائدات المرتفعة لا يوفر تعويضا كافيا. لا ينبغي لأي فشل في بروتوكول واحد أن يجعل المحفظة بأكملها غير قادرة على دفع الغاز أو تحويل الأصول.
مفاهيم خاطئة شائعة
-
الخرافة الأولى: شاشة العرض الأمامية هي حقيقة موجودة في السلسلة. قد يتم تخزين الواجهة الأمامية مؤقتًا أو فهرستها في وقت متأخر أو توصيلها بشبكة خاطئة ويجب التحقق من صحتها.
-
الخرافة الثانية: زيادة الغاز أو الانزلاق يمكن أن يحل أي فشل. يؤثر الغاز فقط على الفرز، كما أن الانزلاق يؤدي إلى انخفاض الأسعار فقط؛ لن يتم إصلاح أخطاء الإذن والرقم وأخطاء شروط العقد تلقائيًا.
-
الخرافة الثالثة: الاختبار الناجح بكمية صغيرة يعني الأمان الدائم. ستؤدي ترقيات المسؤول والمعلمات الديناميكية وتغييرات السيولة إلى تغيير النتائج ويجب مراجعتها قبل كل توسيع للصفقة.
مواضيع ذات صلة
- EIP-712 التوقيع المنظم
- Light Node Light Client
- توقيع تصريح 2
- تعارض تخزين عقد الوكيل: لماذا قد يفسد الرصيد بعد الترقية
- ترخيص المحفظة
المصادر
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (accessed: 2026-07-28)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (accessed: 2026-07-28)