Smart Contract Vulnerabilities, Tools, and Benchmarks: an Updated Systematic Literature Review
यह शोध पत्र 222 उच्च-गुणवत्ता वाले अध्ययनों की एक अद्यतित व्यवस्थित साहित्य समीक्षा प्रस्तुत करता है जो 192 एथेरियम स्मार्ट कॉन्ट्रैक्ट कमजोरियों का एक पदानुक्रमित वर्गीकरण स्थापित करता है, 219 डिटेक्शन टूल्स को सूचीबद्ध करता है, और वर्तमान स्वचालित सुरक्षा समाधानों की स्थिति का मूल्यांकन करने तथा भविष्य के अनुसंधान को मार्गदर्शन देने के लिए 133 बेंचमार्क संकलित करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
स्मार्ट कॉन्ट्रैक्ट्स (Smart Contracts) की दुनिया की कल्पना एक विशाल, स्वचालित वेंडिंग मशीन के रूप में करें जो कभी नहीं सोती, कभी नहीं थकती और कभी कुछ नहीं भूलती। एक बार जब आप इसमें पैसे डालते हैं, तो यह स्वचालित रूप से आपका स्नैक (या इस मामले में डिजिटल पैसा, ऋण, या कला) प्रदान करती है। समस्या क्या है? एक बार जब आप इस मशीन को बना लेते हैं और इसे एक सार्वजनिक चौक की दीवार से कस देते हैं (ब्लॉकचेन - Blockchain), तो आप किसी ढीले पेंच को ठीक करने के लिए इसे नीचे नहीं उतार सकते। यदि इसके डिज़ाइन में कोई खामी है, तो एक चोर आकर, गलत जगह पर तार लगा सकता है, और पूरी मशीन को खाली कर सकता है।
यह पेपर इन वेंडिंग मशीनों के लिए एक विशाल, अपडेटेड रिपेयर मैनुअल (मरम्मत निर्देशिका) की तरह है। लेखक, गेरार्डो और डारियो ने यह समझने के लिए हजारों शोध पत्रों का अध्ययन किया कि:
- ये मशीनें किन-किन तरीकों से टूट सकती हैं?
- उन टूटे हुए हिस्सों को खोजने के लिए हमारे पास कौन से उपकरण हैं?
- क्या वे उपकरण वास्तव में सही कमियों को खोजने में सक्षम हैं?
यहाँ उनके निष्कर्षों का विवरण दिया गया है, जिसमें कुछ रोजमर्रा के उपमाओं (analogies) का उपयोग किया गया है।
1. "टूटे हुए पुर्जों" की सूची (Vulnerabilities)
अतीत में, लोगों के पास "टूटे हुए पुर्जों" की अलग-अलग सूचियाँ थीं। किसी ने इसे "लीकी पाइप" कहा, किसी ने इसे "फंसा हुआ वाल्व" कहा, लेकिन वे एक ही चीज़ के बारे में बात कर रहे थे। इससे भ्रम की स्थिति पैदा होती थी।
लेखकों ने एक ब्रोकेज का मास्टर एनसाइक्लोपीडिया (Master Encyclopedia of Breakage) बनाया।
- बड़ी तस्वीर: उन्होंने पाया कि इन कॉन्ट्रैक्ट्स के विफल होने के 192 अलग-अलग तरीके हैं।
- संगठन: उन्होंने केवल एक अव्यवस्थित ढेर नहीं बनाया। उन्होंने उन्हें 13 बड़े श्रेणियों (जैसे "चोरी", "लॉजिक एरर", या "खराब गणित") में व्यवस्थित किया और फिर उन्हें छोटी, विशिष्ट समस्याओं में विभाजित किया।
- "सिनोनिम" (समानार्थी शब्द) की समस्या: उन्होंने देखा कि शोधकर्ता अक्सर एक ही बग को तीन अलग-अलग नामों से बुलाते हैं। लेखकों ने एक लाइब्रेरियन की तरह काम किया, यह कहते हुए, "इसे 'द घोस्ट इन द मशीन' और 'द फैंटम ग्लिच' कहना बंद करें। आइए इसे रीएंट्रेंसी (Reentrancy) कहें।" इससे सुरक्षा गार्डों (ऑडिटर्स) के लिए यह जानना बहुत आसान हो जाता है कि वे वास्तव में क्या ढूंढ रहे हैं।
मुख्य अंतर्दृष्टि: उन्होंने पाया कि जबकि हम प्रसिद्ध बग्स (जैसे रीएंट्रेंसी, जहाँ एक चोर मशीन को अपना बैलेंस चेक करने से पहले दो बार भुगतान करने के लिए धोखा देता है) के बारे में बहुत कुछ जानते हैं, हम एक विशाल "लॉन्ग टेल" (long tail) की अनदेखी कर रहे हैं—यानी वे दुर्लभ, अजीब बग्स जिन्हें कोई भी चेक नहीं कर रहा है।
2. "डिटेक्टिव टूल्स" (सॉफ्टवेयर)
इन बग्स को खोजने के लिए, डेवलपर्स विशेष सॉफ्टवेयर टूल्स (जैसे कोड के लिए एंटीवायरस स्कैनर) का उपयोग करते हैं। लेखकों ने 219 अलग-अलग डिटेक्टिव टूल्स का दस्तावेजीकरण किया।
- वे कैसे काम करते हैं: कुछ टूल्स कोड को एक इंसान की तरह पढ़ते हैं (स्टैटिक एनालिसिस), जबकि अन्य कोड को एक टेस्ट किचन में चलाकर देखते हैं कि क्या होता है (डायनेमिक एनालिसिस)।
- रुझान: पिछले कुछ वर्षों में, इन टूल्स ने कोड को पढ़ने के लिए AI और लार्ज लैंग्वेज मॉडल्स (LLMs) (जैसे ChatGPT के पीछे की तकनीक) का उपयोग करना शुरू कर दिया है। यह एक सुपर-स्मार्ट इंटर्न को काम पर रखने जैसा है जिसने लाइब्रेरी की हर किताब पढ़ी है ताकि वह त्रुटियों को पहचान सके।
- अंतराल (The Gap): हालांकि हमारे पास 219 टूल्स हैं, लेकिन वे सभी एक ही 10 प्रसिद्ध बग्स के प्रति जुनूनी हैं। यह 200 अग्निशामक यंत्र (fire extinguishers) रखने जैसा है, लेकिन वे सभी केवल किचन की आग के लिए डिज़ाइन किए गए हैं। यदि आपका घर अटारी में बिजली के दोष के कारण जल जाता है, तो उनमें से कोई भी मदद नहीं करेगा।
3. "टेस्ट किचन" (Benchmarks)
हम कैसे जानते हैं कि एक डिटेक्टिव टूल वास्तव में अच्छा है? हम इसे एक "टेस्ट किचन" के विरुद्ध टेस्ट करते हैं—उन कॉन्ट्रैक्ट्स का संग्रह जिनमें हमें पता है कि बग्स मौजूद हैं।
- समस्या: लेखकों ने पाया कि इनमें से अधिकांश "टेस्ट किचन" आउटडेटेड (पुराने) हैं। वे पुराने व्यंजनों (कोडिंग भाषा के पुराने संस्करण, विशेष रूप से वर्षों पुराना Solidity 0.4.x) से भरे हुए हैं।
- वास्तविकता: आज के डेवलपर्स नवीनतम, सबसे शानदार सामग्री (Solidity 0.8.x) के साथ खाना बना रहे हैं।
- उपमा: कल्पना कीजिए कि आप 1990 की एक मोमबत्ती पर एक नया, हाई-टेक स्मोक डिटेक्टर टेस्ट कर रहे हैं। यह काम कर सकता है, लेकिन क्या यह आधुनिक गैस स्टोव पर काम करेगा? शायद नहीं। लेखक चेतावनी देते हैं कि कई टूल्स गलत अलार्म दे सकते हैं या वास्तविक खतरों को मिस कर सकते हैं क्योंकि उन्हें "प्राचीन" कोड पर प्रशिक्षित किया गया था जो अब बहुत कम अस्तित्व में है।
4. "क्रॉस-चेन" का खतरा
पेपर एक नए, डरावने क्षेत्र की ओर भी इशारा करता है: क्रॉस-चेन सिस्टम्स (Cross-Chain Systems)।
- उपमा: कल्पना कीजिए कि आपकी वेंडिंग मशीन दूसरे देश में स्थित एक वेंडिंग मशीन से जुड़ी हुई है। यदि उनके बीच का कनेक्शन कमजोर है, तो एक चोर एक मशीन को यह विश्वास दिलाने के लिए धोखा दे सकता है कि दूसरी मशीन ने भुगतान कर दिया है, जिससे वह दोनों मशीनों से पैसा चुरा सकता है।
- निष्कर्ष: हमारे पास इन "ब्रिज" हमलों का पता लगाने के लिए बहुत कम टूल्स हैं। यह हमारे सुरक्षा तंत्र में एक अंधा बिंदु (blind spot) है।
5. हमें आगे क्या करना चाहिए?
लेखक भविष्य के लिए कुछ सुझावों के साथ समाप्त करते हैं:
- अजीब बग्स को अनदेखा करना बंद करें: हमें ऐसे टूल्स बनाने की आवश्यकता है जो दुर्लभ, जटिल त्रुटियों को पकड़ सकें, न कि केवल प्रसिद्ध बग्स को।
- टेस्ट किचन को अपडेट करें: हमें पुराने कोड पर परीक्षण करना बंद करना चाहिए और उस आधुनिक कोड पर परीक्षण करना शुरू करना चाहिए जिसे लोग वास्तव में आज उपयोग कर रहे हैं।
- "सिक्योर बाय डिज़ाइन" (Secure by Design) बनाएं: मशीन बनाने और फिर उसे ठीक करने की कोशिश करने के बजाय, हमें इसे ऐसा बनाना चाहिए कि इसे तोड़ना असंभव हो। इससे पैसा और ऊर्जा बचती है (क्योंकि टूटे हुए ब्लॉकचेन कोड को ठीक करने के लिए अक्सर एक नया संस्करण बनाने के लिए बहुत अधिक डिजिटल ऊर्जा खर्च करनी पड़ती है)।
सारांश
यह पेपर स्मार्ट कॉन्ट्रैक्ट सुरक्षा की दुनिया के लिए एक स्टेट-ऑफ-द-आर्ट मैप (अत्याधुनिक मानचित्र) है। यह हमें बताता है:
- हमारे पास क्या गलत हो सकता है, इसके लिए एक स्पष्ट, एकीकृत शब्दकोश है।
- हमारे पास समस्याओं को खोजने के लिए कई टूल्स हैं, लेकिन वे "आसान" वाली समस्याओं पर बहुत अधिक केंद्रित हैं।
- हमारी परीक्षण विधियाँ पुरानी हैं और उन्हें एक गंभीर अपग्रेड की आवश्यकता है।
यह डेवलपर्स और शोधकर्ताओं के लिए एक आह्वान है कि वे पुराने बग्स के साथ पिछड़ने के बजाय भविष्य के लिए बेहतर, स्मार्ट रक्षा प्रणाली बनाने पर ध्यान दें।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।