← नवीनतम पेपर
💻 computer science

An empirical analysis of vulnerability detection tools for solidity smart contracts

यह शोध पत्र हाल ही में जारी किए गए, 2,182 सॉलिडिटी स्मार्ट कॉन्ट्रैक्ट्स के मैन्युअल रूप से एनोटेटेड डेटासेट पर 20 स्वचालित भेद्यता (वल्नरेबिलिटी) डिटेक्शन टूल्स और एक एलएलएम-आधारित विधि का अनुभवजन्य मूल्यांकन करता है, जो टूल की सटीकता में महत्वपूर्ण भिन्नताओं को प्रकट करता है और यह प्रदर्शित करता है कि तीन विशिष्ट टूल्स के एक सेट को संयोजित करने से एक मिनट से भी कम समय में 76.78% तक भेद्यताओं का पता लगाया जा सकता है।

मूल लेखक: Francesco Salzano, Cosmo Kevin Antenucci, Simone Scalabrino, Giovanni Rosa, Rocco Oliveto, Remo Pareschi

प्रकाशित 2026-05-19
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Francesco Salzano, Cosmo Kevin Antenucci, Simone Scalabrino, Giovanni Rosa, Rocco Oliveto, Remo Pareschi

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

ब्लॉकचेन की दुनिया की कल्पना एक विशाल, सार्वजनिक डिजिटल बाज़ार के रूप में करें। इस बाज़ार में, लोग स्वचालित व्यावसायिक सौदे चलाने के लिए स्मार्ट कॉन्ट्रैक्ट्स (Smart Contracts) का उपयोग करते हैं—जैसे कि एक वेंडिंग मशीन जो सही मात्रा में सिक्के डालने पर अपने आप स्नैक निकाल देती है, लेकिन यह लाखों डॉलरों के लिए होता है। ये कॉन्ट्रैक्ट्स सॉलिडिटी (Solidity) नामक एक भाषा में लिखे जाते हैं।

समस्या यह है कि यदि वेंडिंग मशीन के लॉजिक में एक छोटी सी भी दरार रह जाए, तो एक चोर उसके अंदर रखे सारे पैसे चुरा सकता है। क्योंकि ये कॉन्ट्रैक्ट्स सार्वजनिक हैं और अक्सर इनमें भारी मात्रा में नकदी होती है, इसलिए इन "दरारों" (कमियों/vulnerabilities) को खोजना अत्यंत महत्वपूर्ण है।

यह शोध पत्र अनिवार्य रूप से उन उपकरणों के लिए एक विशाल रिपोर्ट कार्ड है जिनका उपयोग लोग इन दरारों को खोजने के लिए करते हैं। यहाँ शोधकर्ताओं ने क्या किया, इसे सरल भाषा में समझाया गया है:

1. "गोल्ड स्टैंडर्ड" टेस्ट सेट (The "Gold Standard" Test Set)

कल्पigate कि आप यह परीक्षण करना चाहते हैं कि दबे हुए खजाने को खोजने में मेटल डिटेक्टर्स का एक समूह कितना अच्छा है। आप केवल मेटल डिटेक्टर्स से खजाना खोजने के लिए नहीं कह सकते और उनके शब्दों पर भरोसा नहीं कर सकते; आपको एक ऐसा परीक्षण चाहिए जहाँ आप जानते हों कि खजाना वास्तव में कहाँ छिपा है।

  • पुराना तरीका: पिछले अध्ययन अक्सर ऐसे टेस्ट सेट का उपयोग करते थे जहाँ "खजाने" के स्थानों का अनुमान अन्य मेटल डिटेक्टर्स द्वारा लगाया जाता था। यह एक मेटल डिटेक्टर से सिक्का खोजने के लिए कहने और फिर दूसरे मेटल डिटेक्टर से यह पुष्टि करने के लिए कहने जैसा है कि क्या उसने सिक्का ढूँढ लिया। यदि पहला वाला गलत है, तो दूसरा भी उसकी गलती से सहमत हो सकता है।
  • नया तरीका: शोधकर्ताओं ने एक नया, विशाल टेस्ट सेट बनाया। उन्होंने 2,182 वास्तविक स्मार्ट कॉन्ट्रैक्ट्स लिए और तीन मानव विशेषज्ञों से उन्हें लाइन-दर-लाइन मैन्युअल रूप से पढ़ने और बग्स (bugs) खोजने के लिए कहा। उन्होंने कोड की उस सटीक लाइन को चिह्नित किया जहाँ समस्या थी। इसे एक शिक्षक द्वारा लाल पेन से परीक्षा की कॉपियों को जाँचने जैसा समझें, जहाँ वह केवल यह नहीं कहता कि "यह पूरा उत्तर गलत है," बल्कि वह सटीक गलत उत्तर को चिह्नित करता है।

2. "मेटल डिटेक्टर्स" (उपकरणों) का परीक्षण (Testing the "Metal Detectors")

शोधकर्ताओं ने 19 अलग-अलग स्वचालित उपकरणों (मेटल डिटेक्टर्स) को अपने नए, मानव-ग्रेड किए गए टेस्ट सेट पर चलाया। उन्होंने एक लार्ज लैंग्वेज मॉडल (LLM) का भी परीक्षण किया, जो एक AI की तरह है जिसने लाखों किताबें पढ़ी हैं और पैटर्न के आधार पर यह अनुमान लगाता है कि बग्स कहाँ हो सकते हैं।

परिणाम चौंकाने वाले थे:

  • कोई एक नायक नहीं (No Single Hero): किसी भी एक टूल ने सभी बग्स को नहीं खोजा। यह एक ऐसे डॉक्टर की तरह है जो टूटी हुई हड्डियों के निदान में तो माहिर है लेकिन संक्रमण पकड़ने में बहुत खराब है।
  • "अंकगणित" की समस्या (The "Arithmetic" Problem): कुछ उपकरण गणितीय त्रुटियों को खोजने में अद्भुत थे (जैसे कि एक कैलकुलेटर जो 2+2 जोड़ता है और 5 प्राप्त करता है), लेकिन अन्य प्रकार के बग खोजने में बेकार थे।
  • "गलत अलार्म" की समस्या (The "False Alarm" Problem): कई उपकरण बहुत अधिक डरे हुए (paranoid) थे। वे सुरक्षित कोड पर भी "खतरा!" चिल्लाने लगते थे, जिससे बहुत सारे गलत अलार्म (False Positives) पैदा होते थे। यह डेवलपर्स के लिए उन्हें उपयोग करना कष्टदायक बना देता है क्योंकि उन्हें हर एक अलार्म को मैन्युअल रूप से चेक करना पड़ता है।
  • AI (ChatGPT) का सरप्राइज: AI ने बग्स के सरल, किताबी उदाहरणों (जैसे अभ्यास टेस्ट) पर ठीक-ठाक प्रदर्शन किया। हालाँकि, जब उन्होंने इसे वास्तविक दुनिया के जटिल कॉन्ट्रैक्ट्स पर परखा, तो AI का प्रदर्शन पूरी तरह गिर गया। यह एक ऐसे छात्र की तरह था जिसने अभ्यास परीक्षा में तो टॉप किया लेकिन असली परीक्षा में फेल हो गया क्योंकि असली सवाल बहुत अधिक उलझे हुए और जटिल थे। शोधकर्ताओं को संदेह है कि AI ने अभ्यास टेस्ट के उत्तरों को "रट" लिया था क्योंकि इंटरनेट पर ऐसे उदाहरण बहुत आम हैं।

3. "ड्रीम टीम" समाधान (The "Dream Team" Solution)

चूंकि कोई भी एक टूल पूर्ण नहीं है, इसलिए शोधकर्ताओं ने पूछा: क्या होगा यदि हम उन्हें मिला दें?

उन्होंने टूल्स को उनकी खूबियों के आधार पर समूहों में बांटा और साथ मिलकर काम करने के लिए सबसे अच्छे तीन को चुना:

  1. Conkas (गणित का विशेषज्ञ)
  2. Slither (एक जनरलिस्ट जो तेज़ है और कई चीज़ों में अच्छा है)
  3. Smartcheck (Denial-of-Service हमलों के लिए विशेषज्ञ)

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

4. "लाइन-बाय-लाइन" क्यों महत्वपूर्ण है? (Why "Line-by-Line" Matters)

शोधकर्ताओं ने डेवलपर्स से यह भी पूछा कि वे किस प्रकार की बग रिपोर्ट वास्तव में चाहते हैं।

  • फ़ाइल स्तर (File Level): "इस फ़ाइल में एक बग है।" (बहुत अस्पष्ट, जैसे बिना यह बताए कि कौन सा कमरा है कि "घर में एक लीकेज है")।
  • फ़ंक्शन स्तर (Function Level): "इस फ़ंक्शन में एक बग है।" (बेहतर है, लेकिन फिर भी अस्पष्ट है)।
  • लाइन स्तर (Line Level): "लाइन 42 पर एक बग है।" (परफेक्ट)।

सर्वेक्षण से पता चला कि डेवलपर्स लाइन-लेवल रिपोर्ट को अत्यधिक पसंद करते हैं क्योंकि यह उन्हें बताता है कि ठीक कहाँ सुधार (patch) करना है। यह शोध पत्र इस विशिष्ट, उच्च-परिशुद्धता स्तर के विवरण के साथ अपने जैसे सबसे बड़े डेटासेट प्रदान करता है।

सारांश (Summary)

  • समस्या: स्मार्ट कॉन्ट्रैक्ट बग खोजने वाले स्वचालित उपकरण अक्सर अविश्वसनीय होते हैं, उनमें बहुत अधिक गलत अलार्म होते हैं, या वे वास्तविक बग्स को छोड़ देते हैं।
  • समाधान: शोधकर्ताओं ने इन टूल्स को ठीक से परखने के लिए एक विशाल, मानव-सत्यापित "उत्तर कुंजी" (answer key) बनाई।
  • खोज: AI टूल्स वास्तविक दुनिया की जटिलताओं के सामने संघर्ष करते हैं, और कोई भी एक टूल हर चीज़ के लिए उपयुक्त नहीं है।
  • समाधान: मौजूदा तीन टूल्स का एक विशिष्ट संयोजन सबसे अच्छा काम करता है, जो सबसे कम समय में सबसे अधिक बग्स को खोजता है।
  • उपहार: उन्होंने अपने विशाल, मानव-सत्यापित डेटासेट को सार्वजनिक रूप से जारी किया है ताकि अन्य लोग भविष्य में बेहतर टूल्स बना सकें।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →