क्यों "टोकन अनुमोदन" DeFi में सबसे खराब विचार है।
ERC-20 ने टोकन को सही तरीके से लिया, लेकिन कठिन हिस्से को गलत तरीके से। इसने बैलेंस और ट्रांसफ़र को मानकीकृत किया, लेकिन कभी एक साफ़ तरीका नहीं दिया कि कोई कॉन्ट्रैक्ट आपके टोकन का वास्तविक उपयोग कैसे करे। एक साधारण कॉन्ट्रैक्ट को ट्रांसफ़र करने से उसे पता भी नहीं चलता कि कुछ आया है। इसलिए उन्होंने एक हॉटफिक्स जोड़ दिया: approve + transferFrom।
इस हॉटफिक्स के आप पर क्या प्रभाव पड़ता है, देखिए। किसी कॉन्ट्रैक्ट को आपके टोकन खर्च करने की अनुमति देने के लिए, आपको या तो:
- एक बार, एक बहुत बड़ी या अनंत रकम के लिए approve करना पड़ता है, और अब यह कभी भी, हमेशा, आपके वॉलेट में प्रवेश कर सकता है, जब तक कि आप पुनः समाप्त करने की याद न करें। आप एक कॉन्ट्रैक्ट पर भरोसा करते हैं, जिसे आपने संभवतः कभी पढ़ा ही नहीं।
- OR हर कार्रवाई से पहले, सटीक रकम के लिए approve करें, जिसका मतलब है हर संचालन पर एक दूसरा लेन-देन और एक दूसरा गैस शुल्क।
एक अजनबी पर भरोसा करें, या हर कदम पर कर का प्रभार दें। ये हैं मात्र दो विकल्प, और मानक कुछ भी बेहतर प्रदान नहीं करता। इसलिए सभी दरवाज़ा एक चुनते हैं, "अनंत" पर क्लिक करते हैं, और श्रृंखला में सभी प्रकार के वॉलेट सड़ते हुए हथियारों से सजे हुए होते हैं।
यह कल्पना मात्र नहीं है। jaredfromsubway MEV bot सिर्फ़ इसी माध्यम से मिलियनों कोखोबैठा। कुछ हैक हुआ ही नहीं। इसने fake trades की पीछा करते हुए approvals प्रदान किए, और किसीने transferFrom का प्रयोग करके पैसे को सामने से हटा लिया।
सबसे खराब हिस्सा: पूरे समय,एकबेहतरडिज़ाइनमौजूदथा। transfer-and-call (ERC-223, ERC-1363) सटीक मात्रा को स्थानांतरित करता हैऔरएकहीलेन-देनमेंप्राप्तकर्ताकोसूचितकरताहै।कोईस्थायीअनुमोदननहीं,कोईअतिरिक्तtxनहीं,कोईअजनबीआपकेखातेकाचाबीधारणनहींकरता।यहERC-20केशुरुआतीलाभसेहारगयाऔरअबअनंतअनुमोदनDeFiकेसभीआधारभूतहिस्सेहैं।permit, permit2, account abstraction, हर "फिक्स"एकऐसेप्रारंभिकपरपैचहैजोकभीशिपनेकेलिएनहींहोनाचाहिएथा।
हमें सुरक्षितविकल्पनहींमिलाहमेंआसानविकल्पमिलाऔरहमइसकेलिएउससमयसेभुगतानकररहेहैं