PoCo: Agentic Proof-of-Concept Exploit Generation for Smart Contracts
यह शोध पत्र PoCo को प्रस्तुत करता है, जो एक एजेंटिक फ्रेमवर्क है जो प्राकृतिक भाषा में दी गई भेद्यता (vulnerability) विवरणों से स्वायत्त रूप से निष्पादन योग्य (executable) Foundry-संगत प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट्स उत्पन्न करता है, जिससे स्मार्ट कॉन्ट्रैक्ट सुरक्षा ऑडिट के लिए आवश्यक समय और प्रयास में काफी कमी आती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बिल्डिंग इंस्पेक्टर (एक स्मार्ट कॉन्ट्रैक्ट ऑडिटर) हैं जिसने अभी-अभी एक गगनचुंबी इमारत के डिज़ाइन में एक खतरनाक खामी पाई है। आप जानते हैं कि यदि कोई एक विशिष्ट बटन दबाता है तो लिफ्ट गिर सकती है, लेकिन यह साबित करने के लिए कि यह सच है, कि आप बिल्डिंग के मालिक और निर्माण दल को बता सकते हैं, "यह गिर सकती है," आपको केवल इतना कहना नहीं होगा, "यह गिर सकती है।" आपको लिफ्ट का एक छोटा, सुरक्षित मॉडल बनाना होगा और वास्तव में इसे नियंत्रित तरीके से गिराकर दिखाना होगा ताकि आप कह सकें, "देखिये, यह असली है, और इसे तोड़ने का सटीक तरीका यह है।"
ब्लॉकचेन की दुनिया में, इस "ड्रॉप टेस्ट" (PoC) को एक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) कहा जाता है। यह कोड का एक टुकड़ा है जो किसी भेद्यता (vulnerability) को प्रदर्शित करता है।
समस्या:
इन "ड्रॉप टेस्ट" (PoCs) को हाथ से लिखना ऐसा ही है जैसे आँखों पर पट्टी बाँधकर एक जटिल मॉडल हवाई जहाज बनाने की कोशिश करना। इसमें बहुत समय लगता है, गलती होने की संभावना अधिक होती है, और ऑडिटर अक्सर एक टिक-टिक करती घड़ी के खिलाफ दौड़ रहे होते हैं। यदि वे मॉडल को जल्दी नहीं बना पाते हैं, तो वे शायद यह साबित नहीं कर पाएंगे कि इमारत असुरक्षित है इससे पहले कि उसे बनाया जा चुका हो।
समाधान: PoCo
यह पेपर PoCo के बारे में है, जिसका अर्थ है "प्रूफ-ऑफ-कॉन्सेप्ट"। PoCo को एक साधारण कैलकुलेटर के रूप में नहीं, बल्कि एक रोबोटिक प्रशिक्षु (apprentice) के रूप में सोचें जिसके पास एक बहुत ही विशिष्ट कार्य है।
- इनपुट: आप (ऑडिटर) रोबोट को अंग्रेजी में एक नोट देते हैं जिसमें समस्या का वर्णन किया गया है। उदाहरण के लिए: "यदि कोई उपयोगकर्ता एड्रेस ज़ीरो (address zero) पर पैसे भेजता है, तो फीस फंस जाती है और गायब हो जाती है।"
- रोबोट का मस्तिष्क (एजेंटिक AI): पुराने टूल्स के विपरीत जो केवल एक बार उत्तर का अनुमान लगाते हैं, PoCo एक "एजेंटिक" सिस्टम है। इसका मतलब है कि यह एक लूप में सोचता है, कार्य करता है और सीखता है, ठीक वैसे ही जैसे एक इंसान करता है।
- तर्क (Reason): यह आपके नोट को पढ़ता है और इमारत के ब्लूप्रिंट (कोड) को देखता है।
- कार्य (Act): यह लिफ्ट को तोड़ने के लिए एक स्क्रिप्ट लिखने का प्रयास करता है।
- अवलोकन (Observe): यह स्क्रिप्ट को चलाता है। क्या यह क्रैश हो गई? क्या यह कंपाइल होने में विफल रही?
- संशोधन (Revise): यदि यह विफल हो जाता है, तो रोबोट हार नहीं मानता। यह त्रुटि संदेश (error message) को देखता है, यह पता लगाता है कि क्या गलत हुआ (जैसे, "मैंने गलत टूल का उपयोग किया"), और फिर से प्रयास करता है।
- आउटपुट: अंततः, रोबोट आपको एक काम करने योग्य, निष्पादन योग्य (executable) स्क्रिप्ट सौंप देता है जो सफलतापूर्वक खामी को प्रदर्शित करती है। यह आधिकारिक रिपोर्ट में डाले जाने के लिए तैयार है।
उन्होंने इसका परीक्षण कैसे किया
शोधकर्ताओं ने केवल यह उम्मीद नहीं की कि यह काम करेगा; उन्होंने रोबोट को एक कठोर परीक्षा से गुजारा:
- डेटासेट: उन्होंने वास्तविक ब्लॉकचेन प्रोजेक्ट्स (जैसे टूटी हुई लिफ्टों का एक संग्रह) से 23 वास्तविक दुनिया की सुरक्षा खामियों को इकट्ठा किया।
- परीक्षण: उन्होंने PoCo से प्रत्येक के लिए एक "ड्रॉप टेस्ट" बनाने के लिए कहा।
- बेसलाइन्स (Baselines): उन्होंने PoCo की तुलना दो अन्य तरीकों से की:
- एक "वन-शॉट" दृष्टिकोण: एक स्मार्ट AI से एक ही बार में पूरा कोड लिखने के लिए कहना बिना अपना काम चेक किए। (यह ज्यादातर समय विफल रहा, जैसे कि कोई छात्र गणित के टेस्ट पर अनुमान लगाता है)।
- एक "वर्कफ़्लो" दृष्टिकोण: AI को एक कठोर, चरण-दर-चरण चेकलिस्ट देना। (यह बेहतर था, लेकिन तब भी अटक जाता था जब समस्या के लिए चेकलिस्ट से बाहर देखने की आवश्यकता होती थी)।
- परिणाम: PoCo स्पष्ट विजेता था। इसने 69 प्रयासों में से 50 को सफलतापूर्वक काम करने वाले "ड्रॉप टेस्ट" बनाए (विभिन्न AI मॉडल्स के माध्यम से), जबकि अन्य तरीके काफी संघर्ष करते रहे।
"पैच" ट्रिक
उन्हें कैसे पता चला कि रोबोट के "ड्रॉप टेस्ट" वास्तव में सही थे या केवल किस्मत से सही निकले? उन्होंने पैच-आधारित सत्यापन (Patch-Based Validation) नामक एक चतुर ट्रिक का उपयोग किया।
- कल्पना कीजिए कि निर्माण दल लिफ्ट को ठीक कर देता है (पैच)।
- शोधकर्ताओं ने रोबोट के "ड्रॉप टेस्ट" को लिया और उसे ठीक की गई लिफ्ट के विरुद्ध चलाया।
- तर्क: यदि रोबोट का टेस्ट ठीक की गई लिफ्ट को तोड़ने में विफल रहता है, तो इसका मतलब है कि टेस्ट वास्तव में अच्छा था—यह सफलतापूर्वक पुरानी टूटी हुई वर्ज़न का फायदा उठा रहा था, और सुधार (fix) काम कर गया। यदि टेस्ट अभी भी ठीक की गई लिफ्ट पर काम करता, तो इसका मतलब होता कि रोबोट वास्तविक समस्या को खोजने में विफल रहा।
पेपर के मुख्य निष्कर्ष
- स्वायत्तता (Autonomy) महत्वपूर्ण है: कोड का पता लगाने, त्रुटि संदेश पढ़ने और अपनी योजना को बदलने की रोबोट की क्षमता, उपलब्ध सबसे "स्मार्ट" AI मॉडल का उपयोग करने से अधिक महत्वपूर्ण थी। यहाँ तक कि एक थोड़ा कम शक्तिशाली AI मॉडल भी बेहतर प्रदर्शन करता था जब उसके पास इटरेशन (iteration) करने की स्वतंत्रता थी।
- विवरण मायने रखते हैं: ऑडिटर का नोट जितना विस्तृत होगा, रोबोट उतना ही बेहतर करेगा। हालाँकि, रोबोट को इसे तोड़ने के तरीके के बारे में एक कठोर, चरण-दर-चरण स्क्रिप्ट देना कभी-कभी उसे भ्रमित कर देता है। यह बेहतर है कि आप रोबोट को बताएं कि क्या टूटा हुआ है और क्यों, और फिर रोबोट को कैसे का पता लगाने दें।
- सुरक्षा: रोबोट एक सुरक्षित, अलग सैंडबॉक्स (एक डिजिटल "गैरेज") में काम करता है ताकि वह गलती से वास्तविक पैसे या वास्तविक कॉन्ट्रैक्ट्स को नुकसान न पहुँचा सके।
सारांश में
PoCo एक ऐसा टूल है जो मानव द्वारा वर्णित सुरक्षा छेद (security hole) को एक काम करने योग्य, स्वचालित परीक्षण में बदल देता है जो साबित करता है कि वह छेद मौजूद है। यह ऑडिटर्स का समय बचाता है, त्रुटियों को कम करता है, और डेवलपर्स को कमजोरियों को तेज़ी से ठीक करने में मदद करता है, जिससे ब्लॉकचेन इकोसिस्टम अधिक सुरक्षित बनता है। यह पेपर सिद्ध करता है कि एक AI एजेंट जो "सोच, कार्य और सीख" सकता है, वह उन टूल्स से कहीं बेहतर है जो केवल एक स्थिर स्क्रिप्ट का पालन करते हैं या एक बार में अनुमान लगाते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।