لماذا تطلب تطبيقات dApp الموافقة أصلاً
لتوكنات ERC-20 خاصية تشكّل نصف تجربة استخدام Web3: لا يستطيع العقد الذكي ببساطة أخذ التوكنات من عنوانك، حتى عندما تريد ذلك. منصة DEX التي تبدّل USDC الخاص بك تحتاج أولاً إلى إذنك الصريح. لهذا تتكون تفاعلات كثيرة من خطوتين — معاملة approve أولاً، ثم المبادلة أو الإيداع الفعلي. الموافقة ليست إجراءً شكلياً؛ إنها تفويض إنفاق دائم، يعيش أطول من المعاملة التي منحته لأجلها.
ما الذي يمنحه approve() فعلاً
عندما توقّع موافقة، يسجّل عقد التوكن allowance: يمكن للعنوان X (عقد الـ dApp) إنفاق ما يصل إلى N من توكناتك، وقتما يشاء، حتى تُستهلك الـ allowance أو تتغير. خاصيتان مهمتان هنا. الأولى: الـ allowance يملكها العقد الذي وافقت عليه، لا الموقع الذي زرته — قد تختفي الواجهة ويبقى الإذن. الثانية: لا شيء في الـ allowance يتطلب مشاركتك لحظة الإنفاق — فبمجرد منحها، يستطيع العقد المعتمد سحب التوكنات في أي معاملة لاحقة دون توقيع آخر منك. هذا بالضبط ما يجعل الموافقات مفيدة — وهذا بالضبط ما يجعلها سطح هجوم.
الموافقات غير المحدودة: مريحة، وخطر دائم
لأن كل موافقة تكلّف غازاً، تطلب dApps كثيرة allowance غير محدودة عملياً كي لا تضطر للموافقة مجدداً أبداً. الراحة حقيقية، وكذلك الصفقة: allowance غير محدودة لعقدٍ ما تعني أن كامل رصيدك من ذلك التوكن يعتمد إلى الأبد على أمان ذلك العقد. إذا استُغل العقد بعد سنوات — أو كان خبيثاً منذ البداية — فلن يحتاج المهاجم إلى مفتاحك ولا توقيعك؛ يكفيه الـ allowance الذي منحته. كثير من أكبر حوادث إفراغ المحافظ لم تكن سرقة مفاتيح، بل صرف موافقات قديمة.
Permit وPermit2: موافقات بالتوقيع
التحسين الحديث هو Permit (EIP-2612): بدلاً من معاملة approve على السلسلة، توقّع رسالة خارج السلسلة تقدّمها الـ dApp مع إجرائها — معاملة واحدة بدل اثنتين، بلا غاز موافقة منفصل، ويمكن تحديد الإذن بمهلة زمنية. أما Permit2 فيعمّم الفكرة على التوكنات التي لم تنفّذ EIP-2612 قط، عاملاً كمركز موافقات مشترك بتفويضات منتهية الصلاحية ومحدودة المقدار. هذه تحسينات حقيقية، لكن انتبه لما تغيّره: التوقيعات تؤدي الآن العمل الذي كانت تؤديه المعاملات. موقع تصيّد يجعلك توقّع رسالة Permit الخاطئة يحقق النتيجة نفسها التي تحققها موافقة خبيثة — لذا فإن قراءة ما توقّعه أهم من أي وقت مضى، لا أقل.
سطح الهجوم: أدوات الإفراغ والـ allowances الراكدة
إساءة استخدام الموافقات تأتي بنكهتين. نشطة: مواقع drainer تنتحل صفة dApps حقيقية وتطلب موافقات (أو توقيعات Permit) متنكرة في هيئة إجراءات بريئة مثل «المطالبة» أو «التحقق من المحفظة». وخاملة: allowances منحتها قبل سنوات لعقود مشروعة تظل نائمة حتى يُخترق العقد أو مفاتيح إدارته أو مسار ترقيته. كلاهما سبب لمعاملة تدفق الاتصال-والموافقة بوصفه اللحظة الحرجة أمنياً في Web3 — نغطي الطريقة الآمنة في كيفية توصيل محفظتك بتطبيق dApp.
نظافة موافقات تعمل فعلاً
ثلاث عادات تغطي معظم الخطر. وافق على مقادير محددة عندما تسمح الـ dApp بذلك، خصوصاً للأرصدة الكبيرة — الموافقة الإضافية لاحقاً تأمين رخيص. راجع وألغِ الـ allowances دورياً عبر أداة فحص موافقات موثوقة، معاملاً كل ما لم تعد تستخدمه كوزن ميت يجب إزالته (الإلغاء نفسه معاملة). واحتفظ بالحيازات الجادة في عنوان لا يوقّع الموافقات إطلاقاً، منفصل عن محفظة dApp النشطة. عادات أكثر تعمقاً في أفضل ممارسات أمان المحافظ.
أين تقع WATS من هذا
الموافقات توقيعات، والتوقيعات أرض المحفظة. WATS غير وصائية بالكامل — أنت تحتفظ بمفاتيحك، وWATS لا تحتفظ بمفتاح أبداً — لذا فإن كل موافقة وتوقيع Permit وإلغاء لا يحدث إلا حين يوقّعه مفتاحك أنت، من امتداد المتصفح أو تطبيق الجوال، عبر EVM وسولانا وTON. جانب الرسوم هو ما يجعل WATS لا تشبه شيئاً آخر: كل إجراء، بما فيه معاملات الموافقة والإلغاء، يُحتسب برمز واحد هو ATS بدلاً من الغاز الأصلي للسلسلة — عبر paymaster بمعيار ERC-4337 على EVM ودافع رسوم/مرحّل مكافئ على سولانا وTON — بحيث لا يتوقف تنظيف الـ allowances القديمة أبداً لأن رمز الغاز نفد لديك على تلك الشبكة. يُحرق ما يُجمع من ATS من معروض 100 مليون نحو أرضية 30 مليوناً، ولأن ATS هو OFT من LayerZero، يغطي رصيد واحد كل السلاسل. WATS هي المحفظة الأولى والوحيدة التي تجمع رسوم الرمز الواحد عبر ERC-4337 وOFT مع هذا الحرق — التفاصيل على صفحة رسوم ATS.
الأسئلة الشائعة
ما هي allowance التوكن؟
الـ allowance إذن دائم مسجّل في عقد توكن ERC-20: ينص على أن عقداً محدداً يمكنه إنفاق ما يصل إلى مقدار محدد من توكناتك. تنشأ عندما توقّع معاملة approve وتستمر — بمعزل عن الموقع الذي استخدمته — حتى تُستهلك أو تُغيَّر أو تُلغى. ولحظة الإنفاق، لا يحتاج العقد المعتمد إلى أي توقيع إضافي منك.
هل الموافقات غير المحدودة (اللانهائية) آمنة؟
إنها مريحة لكنها تحمل خطراً ذيلياً دائماً: كامل رصيدك من ذلك التوكن يعتمد على ألا يُستغل العقد المعتمد وألا يكون خبيثاً، إلى أجل غير مسمى. للأرصدة النشطة الصغيرة غالباً ما تفوز الراحة؛ أما للحيازات الكبيرة ففضّل المقادير المحددة، وألغِ دورياً الـ allowances التي لم تعد تستخدمها. كثير من حوادث الإفراغ الكبرى كانت موافقات قديمة مستغلة، لا مفاتيح مسروقة.
ما الفرق بين Permit والموافقة العادية؟
الموافقة العادية معاملة مستقلة على السلسلة تكلّف غازاً قبل أن تتمكن الـ dApp من التصرف. يستبدلها Permit (EIP-2612) بتوقيع خارج السلسلة تدمجه الـ dApp في معاملتها — خطوة واحدة، مع مهل اختيارية؛ ويوسّع Permit2 النمط ليشمل التوكنات بلا دعم أصلي لـ Permit. ويتحول نموذج الأمان تبعاً لذلك: صار بإمكان التوقيع منح سلطة إنفاق، فافحص طلبات التوقيع تماماً كما تفحص الموافقة.

