क्यों क्रिप्टो सेवाएँ स्मार्ट कॉन्ट्रैक्ट ट्रांसफर हमेशा नहीं देख पातीं

क्यों क्रिप्टो सेवाएँ स्मार्ट कॉन्ट्रैक्ट ट्रांसफर हमेशा नहीं देख पातीं

अंग्रेज़ी से अनूदित

इसे ऐसे कल्पना कीजिए। आपके पास Polymarket में USDC पड़ा हुआ है, और आप शांत, निजी भंडारण के लिए XMR चाहते हैं। आप rabbit.io पर जाते हैं, Polygon पर USDC को XMR में स्वैप करने के लिए एक ऑर्डर सेट करते हैं, डिपॉज़िट पता लेते हैं, टोकन भेजते हैं — और कुछ भी नहीं होता।

वह वॉलेट जिसका आप Polymarket पर उपयोग करते हैं, ने ट्रांज़ैक्शन साइन कर दिया था। Polygonscan पर हरा चेकमार्क दिखता है, सही पता और सही राशि भी। लेकिन स्वैप सेवा डिपॉज़िट नहीं देख पाती।

पहली नज़र में यह अजीब लगता है। ब्लॉकचेन सभी के लिए साझा होता है। अगर एक्सप्लोरर में इनकमिंग ट्रांसफर दिख रहा है, तो सेवा बस एक बटन दबाकर टोकन क्यों क्रेडिट नहीं कर सकती?

लेकिन यह किसी भी क्रिप्टो एक्सचेंज या स्वैप सेवा पर हो सकता है। कारण यह है कि एक्सचेंज और स्वैप सेवाएँ ब्लॉक एक्सप्लोरर को उसी तरह नहीं पढ़तीं जैसे आप करते हैं। वे स्वचालित डिपॉज़िट अकाउंटिंग सिस्टम्स का उपयोग करती हैं। और उन सिस्टम्स को यह समझना होता है कि ऑन‑चेन कुछ चला है, यह नहीं बल्कि यह कि वह मूवमेंट एक वास्तविक, अंतिम, समर्थित और सुरक्षित डिपॉज़िट का प्रतिनिधित्व करता है।

यही वह जगह है जहाँ आज मैं बात शुरू करना चाहता हूँ।

एक जैसी दिखने वाले दो पते

EVM नेटवर्क्स में दो प्रकार के पते होते हैं।

  1. एक यूज़र पता। आधिकारिक तौर पर इसे EOA या Externally Owned Account कहा जाता है - एक पता जिसका ट्रांज़ैक्शन वर्चुअल मशीन के बाहर कहीं साइन होता है। इसे नियंत्रित करने के लिए प्राइवेट की चाहिए।
  2. एक स्मार्ट कॉन्ट्रैक्ट पता। इस पते से होने वाले ट्रांसफर ऑन‑चेन कोड द्वारा उत्पन्न होते हैं। दूसरे शब्दों में, यह पता उस स्मार्ट कॉन्ट्रैक्ट में लिखे गए एल्गोरिथ्म द्वारा शासित होता है।
EVM पतों के दो प्रकार

दोनों प्रकार सिक्के और टोकन प्राप्त, धारण और भेज सकते हैं। सामान्य उपयोगकर्ता के लिए वे लगभग एक जैसे दिखते हैं: बस 0x से शुरू होने वाली लंबी स्ट्रिंग। लेकिन किसी भी ऐसे सिस्टम के लिए जिसे ट्रांज़ैक्शन के अंदर क्या हुआ इसका हिसाब रखना है, यह फर्क महत्वपूर्ण है।

इसे मैं Ethereum से स्पष्ट कर देता हूँ।

यदि आप एक सामान्य वॉलेट से ETH भेजते हैं, तो यह एक सरल ट्रांसफर होता है: पता A ने पता B को फंड भेजे। वह ऑपरेशन मेन Transactions टैब में आसानी से मिल जाता है।

Ethereum मुख्य ट्रांज़ैक्शन्स टैब

लेकिन यदि ETH किसी स्मार्ट कॉन्ट्रैक्ट से आता है, तो यह Internal Transaction के रूप में दिखाई दे सकता है। प्राप्तकर्ता का बैलेंस वास्तव में बढ़ता है, लेकिन वह ट्रांसफर उस कॉन्ट्रैक्ट की निष्पादन लॉजिक का हिस्सा होता है, उन नियमों के अनुसार जो कॉन्ट्रैक्ट में लिखे गए हैं।

Etherscan पर Internal Transactions

ऐसे ट्रांज़ैक्शन्स से आने वाले फंड्स को अपने आप क्रेडिट करना हमेशा सही निर्णय नहीं होता। यह पहले यह देखना कठिन हो सकता है कि फंड किस तरह के कॉन्ट्रैक्ट से आए और ट्रांज़ैक्शन के अंदर वास्तव में क्या हुआ।

लेकिन USDC हमेशा एक कॉन्ट्रैक्ट के माध्यम से जाता है!

हाँ — और यह एक महत्वपूर्ण बिंदु है।

हर ERC-20 टोकन - USDT, USDC, WBTC, LINK, आदि - अपने को परिभाषित करने वाले स्मार्ट कॉन्ट्रैक्ट के नियमों के तहत पतों के बीच चलता है। जब आप USDC भेजते हैं, तो आप उस टोकन के कॉन्ट्रैक्ट को कॉल करते हैं। कॉन्ट्रैक्ट अपनी आंतरिक बैलेंस तालिका अपडेट करता है और ब्लॉकचेन पर एक Transfer इवेंट लिखता है।

टोकन्स के लिए यह सामान्य मैकेनिक्स है। डिपॉज़िट सिस्टम इन्हें प्रोसेस करने के लिए बने होते हैं। तो मौलिक अंतर किसमें है, उस तरह के टोकन ट्रांसफर में जो आमतौर पर बिना समस्या के हो जाता है और उस में जिसमें स्वचालित रूप से प्रोसेस नहीं किया जा सकता?

उत्तर उस पर निर्भर करता है कि टोकन ट्रांसफर इवेंट में किसे सेंडर के रूप में सूचीबद्ध किया गया है।

यदि USDC आपके सामान्य EOA पते से डेबिट होकर किसी एक्सचेंज या स्वैप सेवा के पते पर भेजा गया है, तो सब कुछ संभवतः सुचारू रूप से जाएगा। समस्याएँ तब उत्पन्न हो सकती हैं जब टोकन्स को ब्रिज, वॉल्ट, रूटर, स्मार्ट वॉलेट, मल्टीसिग, या ट्रेडिंग प्लेटफ़ॉर्म कॉन्ट्रैक्ट के पते से डेबिट किया गया हो।

मैं क्यों कहता हूँ कि समस्याएँ हो सकती हैं? क्योंकि स्मार्ट कॉन्ट्रैक्ट डिपॉज़िट्स के हैंडलिंग के नियम सेवाओं के बीच भिन्न होते हैं।

Coinbase, उदाहरण के लिए, कहता है कि वह स्मार्ट कॉन्ट्रैक्ट के माध्यम से ETH और ERC-20 डिपॉज़िट्स का समर्थन करता है, लेकिन Solana पर SOL और SPL टोकन्स के समतुल्य डिपॉज़िट्स का समर्थन नहीं करता। Bybit अपनी FAQ में नोट करता है कि ETH को छोड़कर सभी कॉइन्स के लिए स्मार्ट कॉन्ट्रैक्ट डिपॉज़िट्स असमर्थित हैं। Crypto.com चेतावनी देता है कि अधिकतर नेटिव EVM‑चेन टोकन जो स्मार्ट कॉन्ट्रैक्ट से आते हैं, अपने आप क्रेडिट नहीं होते।

दूसरे शब्दों में, उद्योग के पास अभी भी कोई एकल नियम नहीं है कि किस कॉन्ट्रैक्ट‑आधारित ट्रांसफर को सामान्य डिपॉज़िट माना जाना चाहिए, किसे मैन्युअल प्रोसेसिंग की ज़रूरत है, और किसे बिल्कुल स्वीकार नहीं किया जाना चाहिए।

और बात को बदतर बनाता यह है कि उपयोगकर्ता को यह भी पता नहीं होता कि उनके टोकन्स किसी EOA के बजाय किसी और चीज़ से भेजे जा रहे हैं।

एक सामान्य उपयोगकर्ता को स्मार्ट कॉन्ट्रैक्ट कहाँ से मिल जाता है?

यदि मैंने किसी के साथ कोई कॉन्ट्रैक्ट नहीं किया है, तो स्मार्ट कॉन्ट्रैक्ट मेरे ट्रांज़ैक्शन्स से कैसे जुड़ सकता है?

दुर्भाग्यवश, ऑन‑चेन एक स्मार्ट कॉन्ट्रैक्ट बिना किसी सीधे कार्य के भी प्रकट हो सकता है। यहाँ तीन सामान्य परिदृश्य हैं जहाँ यह बिना किसी चेतावनी के दिख सकता है।

पहला परिदृश्य है — प्रेडिक्शन मार्केट, DEX एग्रीगेटर, लेंडिंग प्रोटोकॉल, या किसी अन्य dApp से फंड निकाले जाना। ये ऐप अक्सर आपकी नियमित एड्रेस पर संपत्ति नहीं रखते, बल्कि एक कॉन्ट्रैक्ट के अंदर रखते हैं — भले ही आपका Web3 वॉलेट इसे स्पष्ट न करे और आप सोचें कि संपत्तियाँ हमेशा आपके पास ही रही हैं।

सही बात यह है कि वे आपकी बैलेंस में दिखाई दे सकती हैं, लेकिन वे पूरी तरह से आपकी सीधी नियंत्रण में नहीं होतीं। उन टोकन्स को मूव करना केवल स्मार्ट कॉन्ट्रैक्ट की शर्तों के तहत संभव होता है।

तो आप Withdraw क्लिक करते हैं, ऐप फंड्स सही पते पर भेजता है — लेकिन ऑन‑चेन सेंडर आपके EOA के बजाय प्लेटफ़ॉर्म के कॉन्ट्रैक्ट के रूप में निकलता है।

दूसरा परिदृश्य ब्रिज से जुड़ा है।

ब्रिज अक्सर तब काम में आते हैं जब किसी एक्सचेंज या पेमेंट सेवा से निकासी की जा रही हो जो अपनी आंतरिक ब्लॉकचैन चलाती हो, जैसे Hyperliquid, dYdX, Paradex, Payy Network, और अन्य। उस आंतरिक ब्लॉकचैन के डेटाबेस में टोकन्स शायद आपके पते पर रहे हों, इसलिए आप मान लेते हैं कि आप उन्हें उसी पते से भेज रहे हैं — न कि किसी स्मार्ट कॉन्ट्रैक्ट से।

लेकिन जब आप उन्हें किसी अन्य ब्लॉकचैन पर ले जाते हैं, जैसे Arbitrum, Polygon, या Ethereum, तो रिसीवर को टोकन्स किसी पूरी तरह अलग पते से मिल सकते हैं। गंतव्य नेटवर्क पर आपका पता कभी उन टोकन्स को नहीं रखा था। उन्हें ब्रिज कॉन्ट्रैक्ट या ब्रिज‑सम्बन्धी इन्फ्रास्ट्रक्चर ने रखा था, जबकि आंतरिक चेन आपके बैलेंस को दूसरी तरफ प्रस्तुत कर रहा था।

इसका यह अर्थ नहीं कि हर ऐसा ट्रांसफर अनिवार्य रूप से खो जाएगा। लेकिन इसका मतलब यह हो सकता है कि रिसीविंग एक्सचेंज या स्वैप सेवा के स्वचालित सिस्टम को यह सरल ट्रांसफर जैसा नहीं दिखेगा।

तीसरा परिदृश्य अकाउंट एब्स्ट्रैक्शन वॉलेट्स से जुड़ा है।

ये वास्तविक रूप से उपयोगी होते हैं: वे आपको पेमेंट्स बैच करने, गैस स्टेबलकॉइन्स में भुगतान करने, किसी तीसरे पक्ष से गैस शुल्क उठवाने, कस्टम वॉलेट रिकवरी शर्तें सेट करने, और अन्य सुविधाएँ देते हैं। लेकिन वह सुविधा अक्सर आपके वॉलेट को स्मार्ट कॉन्ट्रैक्ट में बदल कर हासिल की जाती है।

ध्यान देने योग्य: इस प्रकार के सबसे लोकप्रिय वॉलेट्स में से एक के डेवलपर्स - OKX Wallet - स्पष्ट रूप से बताते हैं कि ऐसे वॉलेट स्मार्ट कॉन्ट्रैक्ट होते हैं और इन्हें सीड फ्रेज़ या प्राइवेट की के जरिए किसी अन्य ऐप में इम्पोर्ट नहीं किया जा सकता।

उपयोगकर्ता को यह अपने निजी वॉलेट जैसा ही दिखता है। रिसीविंग सेवा के लिए, सेंडर एक स्मार्ट कॉन्ट्रैक्ट हो सकता है।

एक्सचेंज और स्वैप सेवाएँ इन ट्रांसफरों से क्यों सतर्क रहती हैं

सबसे सरल कारण तकनीकी है। एक स्वचालित डिपॉज़िट स्कैनर गैर‑मानक ब्लॉकचैन इवेंट्स को ट्रैक नहीं कर सकता।

यह सीमितता ठीक की जा सकती है। लेकिन यह आकस्मिक नहीं है। इसके पीछे एक गहरी सुरक्षा चिंता है।

हर Transfer इवेंट पर भरोसा नहीं किया जा सकता सिर्फ इसलिए कि वह एक्सप्लोरर में अच्छा दिखता है। क्रिप्टो इतिहास में पहले से ही fake deposit attacks शामिल हैं, जहाँ एक अटैकर डिपॉज़िट का दिखावा बनाता है और रिसीवर गलती से उसे असली मान लेता है।

छह साल पहले प्रकाशित DEPOSafe रिसर्च ने 7,000 से अधिक कॉन्ट्रैक्ट्स को ऐसी संभावित भेद्यता के साथ पाया था। वे कॉन्ट्रैक्ट्स अब तक मौजूद हैं। वे अभी भी Ethereum पर डिप्लॉय हैं। और पिछले छह वर्षों में, निश्चित रूप से और भी नए भेद्य कॉन्ट्रैक्ट्स जुड़ चुके हैं, अन्य नेटवर्क्स में भी।

इन अटैक्स का सार गलत सिग्नल पर भरोसा करना है।

प्राप्तकर्ता एक इवेंट देखता है जो टोकन्स के आने जैसा दिखता है और मान लेता है कि फंड अब उनके हैं। लेकिन कॉन्ट्रैक्ट लॉजिक वास्तविक परिणाम को बहुत अलग बना सकता है: फंड्स वापस किए जा सकते हैं, जलाए जा सकते हैं, कहीं और रीडायरेक्ट किए जा सकते हैं, या कभी भी उस तरीके से प्राप्तकर्ता के नियंत्रण में नहीं आ पाते जैसा कि डिपॉज़िट सिस्टम ने उम्मीद की थी।

इसलिए एक्सचेंज और स्वैप सेवाओं द्वारा दिखाया गया सावधानीवाद नौकरशाही नहीं है, और न ही अजीब ट्रांज़ैक्शन्स से निपटने में आलस्य है। स्मार्ट कॉन्ट्रैक्ट जटिल होते हैं, और एक भरोसेमंद डिपॉज़िट को fake deposit attack से अलग करना हमेशा सरल नहीं होता।

कैसे पता करें कि आप स्मार्ट कॉन्ट्रैक्ट से भेज रहे हैं या नहीं

जिस ऐप से आप भेज रहे हैं उसका इंटरफेस कभी‑कभी आपको बिल्कुल भी संकेत नहीं देता कि फंड वास्तविकता में किस प्रकार के पते से आएंगे। आप अक्सर यह केवल बाद में ही एक्सप्लोरर में जाकर आकलन कर सकते हैं कि क्या हुआ।

यदि आप ETH, AVAX, BNB, या HYPE जैसे नेटिव एसेट भेज रहे हैं, तो जांचें कि इनकमिंग ट्रांसफर कहाँ दिखाई देता है। यदि यह Transactions के अंतर्गत दिखता है, तो आप शायद ठीक हैं। लेकिन यदि मूवमेंट Internal Transactions या Internal Transfers टैब में है, तो यह पहले से ही एक कॉन्ट्रैक्ट‑आधारित परिदृश्य है।

Internal Transfers टैब

यदि आप एक ERC-20 टोकन भेज रहे हैं, तो Token Transfers खोलें और From फ़ील्ड को देखें। वहाँ सूचीबद्ध पते पर जाएँ। Etherscan और समान एक्सप्लोरर्स में, स्मार्ट कॉन्ट्रैक्ट्स आमतौर पर एक Contract टैब, सत्यापित कोड, एक कॉन्ट्रैक्ट नाम, या एक लेबल रखते हैं। पता Tagged भी हो सकता है जैसे Contract, Bridge, Router, Proxy, Safe, Vault, EntryPoint, Settlement, आदि।

ब्लॉक एक्सप्लोरर पर कॉन्ट्रैक्ट लेबल

यह सब तभी दिखाई देता है जब ट्रांज़ैक्शन पहले से मौजूद हो। इसलिए किसी नए प्लैटफ़ॉर्म से महत्वपूर्ण राशि भेजने से पहले, पहले खुद को एक छोटा टेस्ट ट्रांसफर भेजें और जांचें कि क्या वह स्मार्ट कॉन्ट्रैक्ट पते से आया था। अगर ऐसा नहीं था, तो उस प्लैटफ़ॉर्म से बाद के ट्रांसफर सबसे अधिक संभावना के साथ सामान्य ट्रांज़ैक्शन्स या टोकन ट्रांसफर्स की तरह ही जाएंगे।

ऐसे भी मामले हैं जहाँ आप अग्रिम में स्मार्ट कॉन्ट्रैक्ट सेंड को पहचान सकते हैं। सबसे स्पष्ट संकेत है जब आपका वॉलेट आपको गैस स्टेबलकॉइन्स में भुगतान करने देता है। बिना स्मार्ट कॉन्ट्रैक्ट लॉजिक के, यह संभव नहीं होगा।

एक और उपयोगी चेतावनी संकेत: अगर आपने किसी ऐप से ब्रिज के जरिए फंड निकाले, तो गंतव्य नेटवर्क में सेंडर ब्रिज कॉन्ट्रैक्ट या ब्रिज‑सम्बन्धी इन्फ्रास्ट्रक्चर हो सकता है, न कि आपकी अपनी EOA।

अगर आप स्मार्ट कॉन्ट्रैक्ट से भेजते हैं तो क्या हो सकता है

पहली संभावना: ट्रांसफर अपने आप प्रोसेस हो जाता है। स्मार्ट कॉन्ट्रैक्ट से आने वाला ट्रांसफर अपने आप में समस्या नहीं होना चाहिए। कई प्रसिद्ध, भरोसेमंद कॉन्ट्रैक्ट्स एक्सचेंज और स्वैप सेवाओं द्वारा व्हाइटलिस्ट किए जाते हैं, और स्वचालित डिपॉज़िट स्कैनर्स इन ट्रांसफरों को सही तरीके से संभाल सकते हैं।

दूसरी संभावना: डिपॉज़िट अपने आप प्रोसेस नहीं होता, लेकिन खोजकर मैन्युअल रूप से हैंडल किया जा सकता है। ऐसा कहने का अर्थ है कि क्रेडिट उसकी उम्मीद के मुताबिक उतनी जल्दी नहीं आ सकता, क्योंकि सुरक्षित मैन्युअल प्रोसेसिंग के लिए स्मार्ट कॉन्ट्रैक्ट और ट्रांज़ैक्शन की आंतरिक संरचना की सावधानीपूर्वक समीक्षा आवश्यक होती है।

हाल ही में Bitcointalk पर एक उपयोगकर्ता ने साझा किया कि HTX ने उन्हें Polymarket से भेजे गए 15,759 USDT को मैन्युअल रूप से क्रेडिट करने के लिए 40 बिज़नेस‑डेज़ का टाइमलाइन दिया।

तीसरी संभावना: ट्रांज़ैक्शन की समीक्षा के बाद रिसीवर तय कर सकता है कि जोखिम बहुत अधिक है और टोकन्स क्रेडिट करने से इनकार कर दे। उस स्थिति में वे फंड्स आपको वापस कर सकते हैं।

अंत में चौथी संभावना है: फंड रिसीवर तक पहुँच जाते हैं, लेकिन स्मार्ट कॉन्ट्रैक्ट प्राप्तकर्ता को अपेक्षित तरीके से टोकन्स का उपयोग या मूव करने से रोकता है। उस स्थिति में, यहाँ तक कि रिफंड भी असंभव हो सकता है - न कि इसलिए कि रिसीवर बेईमान है, बल्कि इसलिए कि सेंडर के स्मार्ट कॉन्ट्रैक्ट की संरचना ऐसी है।

इसीलिए, एक्सचेंज या स्वैप सेवा को पहली बार ट्रांसफर करने से पहले यह जानने के लिए एक पल लेना सार्थक है कि वास्तविक ऑन‑चेन सेंडर कौन होगा।

यदि आप सुनिश्चित नहीं हैं कि ट्रांज़ैक्शन आपकी अपनी एड्रेस से एक सादा ट्रांसफर होगा या नहीं, तो अपनी हिस्ट्री में कोई पिछला आउटगोइंग ट्रांज़ैक्शन ढूँढें और ब्लॉक एक्सप्लोरर में पुष्टि करें कि वह किसी स्मार्ट कॉन्ट्रैक्ट से उत्पन्न नहीं हुआ था। अगर जाँचने के लिए कोई ट्रांज़ैक्शन इतिहास नहीं है, तो पहले एक टेस्ट राशि भेजें ताकि सुनिश्चित हो सके कि सब कुछ सुचारू रूप से जाता है।

rabbit.io पर, भले ही आप गलती से हमें किसी स्मार्ट कॉन्ट्रैक्ट से क्रिप्टो ऐसट्स भेज दें, निश्चिंत रहें कि हम ट्रांसफर को यथाशक्ति जल्दी से प्रोसेस करने की कोशिश करेंगे — या, सबसे खराब स्थिति में, फंड्स आपको वापस कर देंगे।