आपका वॉलेट आपको «0xa9059cbb…» दिखाकर मंज़ूरी माँग रहा है। प्रयोगशाला इसे समझ में आने वाले एक वाक्य में बदल देती है: कौन-सा फ़ंक्शन, किन तर्कों के साथ बुलाया जा रहा है। साथ में छह और विश्लेषण टूल हैं जो उन सवालों को देखते हैं जिनका जवाब हाथ से देना मुश्किल है।
यहाँ का हर टूल एक ही सवाल का जवाब देता है — और यह भी बताता है कि किसका जवाब वह नहीं दे सकता।
calldata, चार बाइट का सिलेक्टर या फ़ंक्शन का नाम पेस्ट कीजिए। चार बाइट एक से ज़्यादा सिग्नेचर से मिल सकते हैं — कभी-कभी जानबूझकर — इसलिए हम आपको एक नतीजा नहीं, सारे नतीजे दिखाते हैं।
आजकल के ट्रांज़ैक्शन चार बाइट का एक ऐसा कस्टम एरर लौटाते हैं जिसे कोई पढ़ नहीं सकता। हम उसे असली संदेश में बदलते हैं और panic कोड को हेक्स संख्या छोड़ने के बजाय उसके नाम से पुकारते हैं।
ज़्यादातर ERC-20 दरअसल OpenZeppelin और उसके ऊपर कुछ दर्जन पंक्तियाँ हैं। हम पहले लाइब्रेरी के निशान अलग करते हैं; जो बचता है वही है जो प्रोजेक्ट के मालिक ने सचमुच लिखा — और बदलाव वहीं छिपाए जाते हैं।
वेरिएबल के नाम बदल देने और फ़ाइल की सजावट बदल देने से कुछ नहीं छिपता — तुलना टेक्स्ट पर नहीं, टोकन-संरचना पर चलती है। यह ओवरलैप की मात्रा बताता है; यह कभी नहीं बताता कि किसने किससे नक़ल की।
यह किसी पते को पहली बार फ़ंड करने वाले तक तीन क़दम पीछे तक चलता है और हर क़दम को सिद्ध करने वाला ट्रांज़ैक्शन दिखाता है। नज़दीकी होना अपराध नहीं है, और पेज यह साफ़ लिखता है।
दोनों पते आप लाते हैं; बीच में कोई सूची नहीं, कोई दावा नहीं। यह तीन क़दम तक सीमित है — «इन सीमाओं के भीतर कोई रास्ता नहीं मिला» एक सही वाक्य है; «कोई रास्ता है ही नहीं» ऐसा वाक्य है जो यह टूल बना ही नहीं सकता।
फ़ाइलों की सूची हम खोलते हैं, पर फ़ाइलें GitHub से खींचकर स्थानीय रूप से विश्लेषण आपका ब्राउज़र करता है — कोड हमारे सर्वर से होकर नहीं गुज़रता। केवल खुली रिपॉज़िटरी: कोई ऑथराइज़ेशन हेडर नहीं भेजा जाता।
टूल स्वयं (स्कैनर, कंट्रोल पैनल, SAFI वर्कस्पेस) फ़िलहाल अंग्रेज़ी इंटरफ़ेस में चलते हैं। ये पेज वहाँ जाने से पहले हर चीज़ हिन्दी में समझाते हैं।
ट्रैकिंग टूल का इल्ज़ाम लगाने की मशीन बन जाना आसान है। यह टूल उसी को ठुकराने पर बना है।
दो पतों के बीच का एक क़दम नेटवर्क का वर्णन करता है, लोगों का नहीं। किसी बड़े एक्सचेंज से निकासी करने वाला कोई भी वॉलेट हज़ारों पतों से एक ही क़दम दूर होता है — और उनमें बुरे लोग होना लाज़मी है।
इसीलिए यह टूल हर क़दम को सिद्ध करने वाला ट्रांज़ैक्शन दिखाता है और फ़ैसला आप पर छोड़ देता है। यह किसी पते को «ठग» नहीं कहता, क्योंकि वह नीयत के बारे में निष्कर्ष है और चेन नीयत दर्ज नहीं करती।
चार बाइट का सिलेक्टर एक से ज़्यादा सिग्नेचर से मिल सकता है, और यह टकराव कभी-कभी जल्दी में पढ़ने वाले को धोखा देने के लिए जानबूझकर बनाया जाता है। इसीलिए हम सारे मिलान दिखाते हैं; उनमें से एक को आत्मविश्वास के साथ दिखा देना ठीक वही ग़लती है जिसका फ़ायदा हमलावर उठाता है।
रास्ते की खोज तीन क़दम और एक तय संख्या की क्वेरी तक सीमित है। जब हमें कुछ नहीं मिलता, तो सही वाक्य यह है कि उन सीमाओं के भीतर हमें नहीं मिला।
इन दो वाक्यों का फ़र्क़ ही उस टूल और उस टूल के बीच का फ़र्क़ है जिस पर आप भरोसा कर सकें, और जो आपको वही सुनाए जो आप सुनना चाहते हैं।
दो ERC-20 के बीच का कच्चा समानता स्कोर असल में यही मापता है कि OpenZeppelin कितना आम है। हम पहले लाइब्रेरी के निशान अलग करते हैं ताकि नतीजा सचमुच उस कोड के बारे में हो जो इस प्रोजेक्ट के लिए लिखा गया।
तब भी यह टूल सिर्फ़ ओवरलैप की मात्रा बताता है। किसने किससे नक़ल की, यह सवाल कोड का जवाब देने वाला नहीं है — उसका जवाब तारीख़ें देती हैं और उन्हें पढ़ने वाले आप हैं।
कॉन्ट्रैक्ट का पता पेस्ट करें; जोखिम में पड़ने से पहले मालिक की शक्तियाँ, लिक्विडिटी और बिक्री-सिमुलेशन का नतीजा देखें। प्रति स्कैन एक छोटा शुल्क हस्ताक्षर से पहले दिखाया जाता है — और किसी भी सदस्यता में यह असीमित रूप से शामिल है।