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

Assessing Vulnerability in Smart Contracts: The Role of Code Complexity Metrics in Security Analysis

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

मूल लेखक: Masoud Jamshidiyan Tehrani

प्रकाशित 2026-01-26
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Masoud Jamshidiyan Tehrani

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

कल्पना कीजिए कि एक स्मार्ट कॉन्ट्रैक्ट (Smart Contract) एक ब्लॉकचेन पर बनी एक ऑटोमैटिक वेंडिंग मशीन की तरह है। एक बार जब आप उसमें पैसे डालते हैं और बटन दबाते हैं, तो वह अपने आप आपको स्नैक दे देती है। आप बाद में मशीन के आंतरिक गियर (gears) को बदलने के लिए पीछे नहीं जा सकते; यह "इम्यूटेबल" (अपरिवर्तनीय) है। यदि गियर्स में कोई खामी है, तो एक हैकर इसके अंदर का सारा पैसा चुरा सकता है, और इसे ठीक करने का कोई तरीका नहीं है जब तक कि आप पूरी नई मशीन न बना लें।

यह पेपर उन टूटे हुए गियर्स को मशीन तैनात (deploy) करने से पहले खोजने की कोशिश के बारे में है। शोधकर्ताओं ने एक सरल प्रश्न पूछा: "क्या हम केवल यह देखकर बता सकते हैं कि एक वेंडिंग मशीन के खराब होने की संभावना है या नहीं, कि उसके ब्लूप्रिंट कितने जटिल हैं?"

यहाँ उनके निष्कर्षों का रोजमर्रा के उदाहरणों के साथ विवरण दिया गया है:

1. मुख्य विचार: जटिलता एक "खतरे का संकेत" है

शोधकर्ताओं ने यह मापने के 21 अलग-अलग तरीके देखे कि कोड कितना "अव्यवस्थित" या "जटिल" है। इन मेट्रिक्स (metrics) को आप ऐसे समझ सकते हैं जो चीज़ों को मापते हैं जैसे:

  • SLOC (Source Lines of Code): निर्देश पुस्तिका (instruction manual) के कितने पन्ने हैं?
  • Nesting: "यदि यह, तो वह" वाले बॉक्स एक दूसरे के अंदर कितने स्तरों (layers) पर हैं? (जैसे कि एक रूसी नेस्टिंग डॉल)।
  • Coupling: इस एक मशीन को काम करने के लिए अन्य कितनी मशीनों से बात करने की आवश्यकता है?

निष्कर्ष: उन्होंने पाया कि अव्यवस्थित ब्लूप्रिंट का मतलब आमतौर पर टूटी हुई मशीनें होती हैं।
जब उन्होंने उन कॉन्ट्रैक्ट्स को देखा जिन्हें हैक किया गया था (कमजोर/vulnerable), तो उनके ब्लूप्रिंट लगभग हमेशा सुरक्षित कॉन्ट्रैक्ट्स के ब्लूप्रिंट की तुलना में अधिक जटिल, लंबे और उलझे हुए थे।

2. "क्रिस्टल बॉल" की समस्या (व्यक्तिगत मेट्रिक्स)

शोधकर्ताओं ने यह देखने की कोशिश की कि क्या कोई एक विशिष्ट माप किसी हैक की भविष्यवाणी कर सकता है।

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

3. "टीम वर्क" की सफलता (संयुक्त मेट्रिक्स)

हालाँकि, जब उन्होंने सभी मापों को एक साथ देखा, तो तस्वीर बहुत स्पष्ट हो गई।

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

4. आश्चर्यजनक अपवाद

वहाँ तीन चीजें थीं जो "अधिक जटिलता = अधिक खतरा" के नियम के विपरीत गईं:

  1. कमेंट्स (CLOC): सुरक्षित कॉन्ट्रैक्ट्स में अधिक कमेंट्स (प्रोग्रामर द्वारा कोड समझाने के लिए लिखे गए नोट्स) थे। कमजोर कॉन्ट्रैक्ट्स में कम कमेंट्स थे।
    • सीख: अपने ब्लूप्रिंट पर नोट्स लिखना आपकी मशीन को सुरक्षित रखने में मदद करता है।
  2. डिसेंडेंट्स (NOD): सुरक्षित कॉन्ट्रैक्ट्स में अधिक "डिसेंडेंट्स" (संस्करण या चाइल्ड कॉन्ट्रैक्ट्स) थे। कमजोर कॉन्ट्रेक्ट्स में कम थे।
  3. पैरामीटर्स (Parameters): कमजोर कॉन्ट्रैक्ट्स में औसतन वास्तव में थोड़े कम इनपुट्स/पैरामीटर्स थे।

5. डेवलपर्स के लिए इसका क्या अर्थ है

पेपर निष्कर्ष निकालता है कि जटिलता हैक का कारण नहीं है (जैसे कि कोई वायरस), लेकिन यह एक बहुत ही स्पष्ट चेतावनी का संकेत है।

  • उदाहरण: यदि आप तारों का एक उलझा हुआ जाल, खुले पाइप और एक भ्रमित करने वाला फ्लोर प्लान वाला घर देखते हैं, तो आप निश्चित रूप से नहीं जानते कि उसमें आग लगेगी, लेकिन आप जानते हैं कि व्यवस्थित वायरिंग वाले घर की तुलना में इसमें आग लगने की संभावना बहुत अधिक है।
  • सलाह: डेवलपर्स को अपने कोड को सरल रखने की कोशिश करनी चाहिए। यदि कोई कॉन्ट्रैक्ट बहुत अधिक जटिल होता जा रहा है, तो यह रुकने और सुरक्षा खामियों की जांच करने का एक संकेत है। साथ ही, अधिक कमेंट्स लिखें; डेटा बताता है कि अच्छी तरह से प्रलेखित (documented) कोड अधिक सुरक्षित होता है।

सारांश

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

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

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

Digest आज़माएँ →