Identifying and Characterizing Semantic Clones of Solidity Functions
यह शोध पत्र कोड और टिप्पणियों (comments) का विश्लेषण करके सॉलिडिटी (Solidity) स्मार्ट कॉन्ट्रैक्ट्स में सिमेंटिक क्लोन (semantic clones) की पहचान करने के लिए एक स्केलेबल कार्यप्रणाली प्रस्तुत करता है, जो संरचनात्मक डिज़ाइन विकल्पों का अन्वेषण करते हुए और बिना टिप्पणी वाले कोड में दस्तावेज़ीकरण के अंतराल को पाटने के लिए लार्ज लैंग्वेज मॉडल्स (LLMs) का लाभ उठाते हुए उच्च परिशुद्धता (precision) और रिकॉल (recall) प्राप्त करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
स्मार्ट कॉन्ट्रैक्ट्स (डिजिटल समझौते जो इथेरियम जैसे ब्लॉकचेन पर चलते हैं) की दुनिया की कल्पना एक विशाल, सार्वजनिक पुस्तकालय के रूप में करें। एक बार जब कोई पुस्तक (अनुबंध) लिखी जाती है और शेल्फ पर रख दी जाती है, तो उसे कभी मिटाया या बदला नहीं जा सकता। क्योंकि ये पुस्तकें सार्वजनिक होती हैं, इसलिए लेखक समय बचाने के लिए अक्सर दूसरी पुस्तकों के अंशों को कॉपी-पेस्ट करते हैं। इसे "क्लोनिंग" कहा जाता है।
ज्यादातर समय, नकल को पहचानना आसान होता है। यदि आप किसी पैराग्राफ को शब्द-दर-शब्द कॉपी करते हैं, तो यह स्पष्ट है। लेकिन क्या होगा यदि कोई व्यक्ति पूरी तरह से अलग शब्दों का उपयोग करके पैराग्राफ को फिर से लिखता है, वाक्य की संरचना बदल देता है, और कुछ पर्यायवाची शब्दों को बदल देता है, लेकिन अर्थ बिल्कुल वही रहता है? कोडिंग की दुनिया में, इसे सिमेंटिक क्लोन (या टाइप-4 क्लोन) कहा जाता है।
यह शोध पत्र इन छिपे हुए, पुनर्गठित प्रतियों को खोजने के लिए एक बेहतर "लाइब्रेरियन" बनाने के बारे में है, जो सॉलिडिटी (वह भाषा जिसका उपयोग इन अनुबंधों को लिखने के लिए किया जाता है) में काम करता है, क्योंकि खराब लॉजिक (तर्क) को कॉपी करना सुरक्षा खामियों को फैलाने में उतना ही सक्षम है जितना कि अच्छी लॉजिक को कॉपी करना।
यहाँ उनके कार्य का सरल उपमाओं (analogies) का उपयोग करके विवरण दिया गया है:
1. समस्या: "पुनर्गठित रेसिपी" का जाल
कल्पना कीजिए कि दो शेफ "चॉकलेट केक" की रेसिपी लिख रहे हैं।
- शेफ A लिखता है: "मैदा, चीनी और अंडे मिलाएं। 350°F पर बेक करें।"
- शेफ B लिखत है: "गीली सामग्री के साथ सूखी सामग्री मिलाएं। ओवन में 175°C पर रखें।"
एक कंप्यूटर के लिए जो सटीक मिलान खोज रहा है, वे पूरी तरह से अलग दिखते हैं। लेकिन एक इंसान के लिए, वे एक ही रेसिपी हैं। ब्लॉकचेन की दुनिया में, यदि शेफ A की रेसिपी में एक छिपी हुई खामी है (जैसे यह जांचना भूल जाना कि ओवन गर्म है या नहीं), और शेफ B उस खामी पर ध्यान दिए बिना उस विचार को कॉपी करता है, तो पूरा किचन खतरे में पड़ सकता है।
लेखकों ने पाया कि मौजूदा उपकरण उन रोबोटों की तरह हैं जो केवल सटीक शब्द मिलान देखते हैं। वे इन "पुनर्गठित रेसिपी" को मिस कर देते हैं।
2. समाधान: "शेफ के नोट्स" को पढ़ना
शोधकर्ताओं ने महसूस किया कि जबकि कोड (सामग्री और चरण) अलग दिख सकता है, कमेंट्स (रेसिपी के ऊपर शेफ द्वारा लिखे गए नोट्स) अक्सर बहुत समान तरीकों से इरादे (intent) को समझाते हैं।
- उपमा: कोड को कार्रवाई (actions) के रूप में और कमेंट्स को वॉयसओवर के रूप में समझें जो यह समझाता है कि क्रियाएं क्या कर रही हैं।
- विधि: उन्होंने दो चीजों की तुलना करने वाला एक सिस्टम बनाया:
- कोड: वे जांचते हैं कि क्या कोड अलग है (कम समानता)।
- कमेंट्स: वे जांचते हैं कि क्या लिखित विवरण बहुत समान हैं (उच्च समानता)।
यदि कोड अलग दिखता है लेकिन वॉयसओवर समान सुनाई देता है, तो वे इसे एक "सिमेंटिक क्लोन" के रूप में चिह्नित करते हैं।
3. परिणाम: एक अत्यधिक सटीक जासूस
उन्होंने लगभग 3,00,000 आधुनिक स्मार्ट कॉन्ट्रैक्ट्स के विशाल डेटासेट पर इस पद्धति का परीक्षण किया।
- सफलता दर: जब उन्होंने 1,155 जोड़ों का मैन्युअल रूप से निरीक्षण किया, तो उनकी विधि कुल मिलाकर 59% बार सही थी।
- "समान नाम" का बोनस: यदि फंक्शन के नाम समान थे (जैसे दोनों का नाम
transferथा), तो सटीकता बढ़कर 84% हो गई। - सुरक्षा जाल: उन्होंने यह भी जांचा कि क्या उन्होंने कुछ मिस किया। उन्होंने पाया कि वे वास्तविक क्लोन के केवल 3% को ही मिस कर पाए (97% "रिकॉल रेट")।
उन्होंने पाया कि ये "पुनर्गठित रेसिपी" केवल दुर्घटनाएं नहीं हैं; वे अक्सर डिज़ाइन विकल्प होते हैं। डेवलपर्स उन्हें अधिक सुरक्षित बनाने के लिए, "गैस" (फीस जो अनुबंध चलाने के लिए दी जाती है) बचाने के लिए, या कोड को बेहतर ढंग से व्यवस्थित करने के लिए फिर से लिखते हैं।
4. चुनौती: "शांत" पुस्तकालय
एक बड़ी समस्या जो उन्होंने पाई वह यह है कि 75% फंक्शन में कोई कमेंट्स नहीं हैं। यह एक ऐसी लाइब्रेरी की तरह है जहाँ तीन-चौथाई किताबों में कोई शीर्षक या सारांश नहीं है। बिना कमेंट्स के, उनकी "वॉयसओवर" विधि काम नहीं कर सकती।
5. समाधान: "AI लिपिक" (LLMs)
"शांत लाइब्रेरी" की समस्या को हल करने के लिए, उन्होंने लार्ज लैंग्वेज मॉडल्स (AI) का उपयोग एक लिपिक (scribe) के रूप में किया।
- उपमा: यदि किसी पुस्तक में सारांश नहीं है, तो उन्होंने AI को कोड पढ़ने और उसके लिए एक सारांश लिखने के लिए कहा।
- प्रयोग: उन्होंने AI को कोड दिया, उससे एक विवरण लिखने को कहा, और फिर अपने सिस्टम का उपयोग करके AI-जनरेटेड विवरणों की तुलना की।
- परिणाम: बिना मानव-लिखित नोट्स के भी, AI-जनरेटेड सारांशों ने उन्हें 75% छिपे हुए क्लोन को सही ढंग से खोजने में सक्षम बनाया।
उन्होंने विभिन्न "प्रॉम्प्ट्स" (AI को दिए जाने वाले निर्देश) का भी परीक्षण किया। उन्होंने पाया कि AI से एक सरल, सीधा सारांश मांगना एक जटिल, संरचित रिपोर्ट मांगने की तुलना में बेहतर काम करता है। जटिल रिपोर्टों ने बहुत अधिक "फालतू बातें" जोड़ दीं जिससे सिस्टम भ्रमित हो गया, जबकि सरल सारांशों ने मुख्य अर्थ पर ध्यान केंद्रित रखा।
6. यह क्यों महत्वपूर्ण है
लेखक निष्कर्ष निकालते हैं कि यह केवल डुप्लिकेट खोजने के बारे में नहीं है; यह विकल्पों को खोजने के बारे में है।
- यदि आप एक सुरक्षित कॉन्ट्रैक्ट बना रहे हैं, तो आप केवल एक तरीके को नहीं चाहते। आप देखना चाहते हैं कि अन्य लोगों ने उसी समस्या को हल करने के कितने अलग-अलग तरीके अपनाए हैं।
- इन सिमेंटिक क्लोन को खोजकर, डेवलपर्स अलग-अलग "पुनर्गठित रेसिपी" की तुलना कर सकते हैं ताकि यह देख सकें कि अपना खुद का निर्माण करने से पहले कौन सी रेसिपी अधिक सुरक्षित, सस्ती या कुशल है।
संक्षेप में: यह शोध पत्र कोड के सिंटैक्स (संरचना) के बजाय उसके इरादे (कमेंट्स) की तुलना करके "छिपे हुए जुड़वा बच्चों" को खोजने का एक नया तरीका प्रस्तुत करता है। जब कमेंट्स गायब होते हैं, तो वे लिखने के लिए AI का उपयोग करते हैं, जिससे छिपे हुए डिज़ाइन विकल्पों को सफलतापूर्वक उजागर किया जाता है जो ब्लॉकचेन कॉन्ट्रैक्ट्स को सुरक्षित और अधिक कुशल बनाने में मदद कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।