Decoupling Reentrancy Protection from Smart Contract Implementation Logic
यह शोधपत्र सेंटिनल (Sentinel) को प्रस्तुत करता है, जो एक नवीन प्रॉक्सी-आधारित ढांचा है जो मेजर रीएंट्रेंसी हमलों (रीड-ओनली वेरिएंट सहित) के विरुद्ध 100% कवरेज प्राप्त करने के लिए स्मार्ट कॉन्ट्रैक्ट लॉजिक से रीएंट्रेंसी सुरक्षा को अलग करता है, जो एक ड्यूल-मोड सुरक्षा प्रणाली के साथ प्रॉक्सी लेयर पर कॉल्स को इंटरसेप्ट करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
ब्लॉकचेन की दुनिया की कल्पना एक हलचल भरी, उच्च-दांव वाली बैंक के रूप में करें जहाँ हर कोई पैसे के लेन-देन के लिए अपने स्वयं के नियम लिख सकता है। इन नियमों को स्मार्ट कॉन्ट्रैक्ट्स (Smart Contracts) कहा जाता है। हालांकि वे शक्तिशाली हैं, लेकिन उनमें एक प्रसिद्ध कमजोरी है जिसे रीएंट्रेंसी (Reentrancy) कहा जाता है।
समस्या: "डबल-बुक" डकैती
समस्या को समझने के लिए, कल्पना करें कि एक बैंक टेलर (स्मार्ट कॉन्ट्रैक्ट) है जिसे यह करना है:
- आपका बैलेंस चेक करना।
- आपको आपके पैसे देना।
- फिर लेजर (बहीखाता) को अपडेट करना ताकि यह दिखाया जा सके कि आपके पास अब शून्य डॉलर बचे हैं।
एक सामान्य दुनिया में, यह सुरक्षित है। लेकिन ब्लॉकचेन की दुनिया में, "टेलर" एक रोबोट है जिसे बीच में ही रोका जा सकता है। एक चालाक चोर (हमलावर) टेलर को पैसे निकालने के लिए कॉल कर सकता है। इससे पहले कि टेलर चरण 3 (लेजर अपडेट करना) पूरा करे, चोर का रोबोट कॉन्ट्रैक्ट टेलर को और अधिक पैसे निकालने के लिए फिर से कॉल करता है।
क्योंकि लेजर अभी तक अपडेट नहीं हुआ है, टेलर अभी भी सोचता है कि चोर के पास पूरा पैसा है। चोर एक सेकंड के भीतर दर्जनों बार इस लूप को दोहरा सकता है, जिससे टेलर कुछ भी समझने से पहले ही बैंक का तिजोरी खाली हो जाती है। यह एक रीएंट्रेंसी अटैक (Reentrancy Attack) है।
पुराने समाधान: "परेशान न करें" का बोर्ड
पहले, डेवलपर्स ने टेलर की मेज पर "परेशान न करें" का साइन (लॉक) लगाकर इसे ठीक करने की कोशिश की।
- खामी: ये साइन अक्सर विशिष्ट डेस्क (विशिष्ट फंक्शन्स) से चिपके होते थे। यदि चोर को कोई बैक डोर (दूसरा फंक्शन) मिल जाता जिसमें साइन नहीं था, तो वह फिर भी अंदर घुस सकता था।
- सीमा: यदि बैंक के कई ब्रांच (कई कॉन्ट्रैक्ट्स) थे जो एक-दूसरे से बात करते थे, तो एक ब्रांच पर लगा साइन दूसरी ब्रांच में भागकर सिस्टम को भ्रमित करने वाले चोर को नहीं रोक पाता था।
- अंधा मोड़: ये साइन वैध "केवल देखने वाले" अनुरोधों (जैसे बिना खर्च किए बैलेंस चेक करना) को भी ब्लॉक कर देते थे, जिससे बैंक धीमा और बोझिल हो जाता था।
नया समाधान: सेंटिनल (द स्मार्ट डोरमैन)
इस पेपर के लेखक, शशांक जोशी और वोयत्सेक गोलाब, सेंटिनल (Sentinel) नामक एक नई प्रणाली प्रस्तावित करते हैं। टेलर की मेज को पैच करने के बजाय, वे बैंक के प्रवेश द्वार पर एक स्मार्ट डोरमैन (प्रॉक्सी) खड़ा करते हैं।
सेंटिनल कैसे काम करता है, इसके सरल उदाहरण यहाँ दिए गए हैं:
1. डोरमैन सभी को रोकता है
चाहे कोई भी बैंक में प्रवेश करने की कोशिश करे या जो भी करना चाहे, उन्हें पहले सेंटिनल डोरमैन से गुजरना होगा। डोरमैन को बैंक के जटिल नियमों की परवाह नहीं है; वह केवल सुरक्षा पर ध्यान केंद्रित करता है। इसका मतलब है कि बैंक के आंतरिक नियमों (बिजनेस लॉजिक) को सुरक्षित बनाने के लिए फिर से लिखने की आवश्यकता नहीं है।
2. संचालन के दो मोड
स्थिति कितनी जोखिम भरी है, इसके आधार पर डोरमैन की दो अलग-अलग वर्दी, या "मोड" होते हैं:
ऑप्टिमाइज्ड मोड (सिंगल-डेस्क गार्ड):
यदि बैंक छोटा है और इसमें केवल एक ही ब्रांच है, तो डोरमैन दरवाजे पर एक साधारण, तेज़ लॉक का उपयोग करता है। यह सस्ता और त्वरित है। यदि कोई दरवाजा लॉक होने के दौरान दोबारा घुसने की कोशिश करता है, तो उसे तुरंत वापस भेज दिया जाता है। यह सरल, सिंगल-कॉन्ट्रैक्ट स्थितियों के लिए बेहतरीन है।हाई-सिक्योरिटी मोड (ग्लोबल सिक्योरिटी नेटवर्क):
यदि बैंक एक विशाल नेटवर्क का हिस्सा है, तो डोरमैन एक सेंट्रल सिक्योरिटी हब (जिसे लॉक रजिस्ट्री कहा जाता है) से जुड़ जाता है।- कल्पना करें कि डोरमैन सेंट्रल हब को कॉल करता है: "क्या ब्रांच A अभी व्यस्त है?"
- यदि हब कहता है "हाँ," तो डोरमैन प्रवेश को ब्लॉक कर देता है।
- यह चोरों को सिस्टम को धोखा देने के लिए अलग-अलग ब्रांचों के बीच भागने से रोकता है। यह पूरे नेटवर्क में सुरक्षा का समन्वय करता है, न कि केवल एक कमरे का।
3. "केवल देखने वाला" अपवाद
ब्लॉकचेन में एक पेचीदा चीज़ यह है कि कभी-कभी लोग बिना खर्च किए केवल बैलेंस देखना चाहते हैं (जिसे staticcall कहा जाता है)।
- पुराने लॉक इन देखने वालों को भी ब्लॉक कर देते थे, जिससे देरी होती थी।
- सेंटिनल स्मार्ट है और पहचान सकता है कि कोई केवल "देख" रहा है। यदि वे ऐसा कर रहे हैं, तो डोरमैन उन्हें खिड़की से झांकने की अनुमति देता है, लेकिन वह फिर भी करीब से नजर रखता है कि वे देखने के दौरान पीछे के दरवाजे से घुसने की कोशिश तो नहीं कर रहे।
यह क्यों मायने रखता है
लेखकों ने सेंटिनल का परीक्षण 70 अलग-अलग स्मार्ट कॉन्ट्रैक्ट्स के खिलाफ किया जो इन हमलों के प्रति संवेदनशील माने जाते थे।
- परिणाम: सेंटिनल ने 100% हमलों को रोका, जिसमें वे जटिल हमले भी शामिल हैं जो अलग-अलग कॉन्ट्रैक्ट्स के बीच होते हैं या जिनमें "केवल देखने वाले" के ट्रिक्स शामिल होते हैं।
- तुलना: पुराने मानक उपकरण (जैसे ओपनज़ीलिन का गार्ड) केवल लगभग 73% हमलों को ही रोक पाए। वे जटिल, क्रॉस-कॉन्ट्रैक्ट डकैतियों में विफल रहे।
- लागत: "डोरमैन" को चलाने के लिए थोड़ी अतिरिक्त ऊर्जा (गैस) लगती है, लेकिन लेखकों का कहना है कि लाखों डॉलर की चोरी रोकने के लिए यह एक छोटा सा मूल्य है।
निचोड़
यह पेपर स्मार्ट कॉन्ट्रैक्ट की सुरक्षा को उसके बिजनेस लॉजिक से अलग करने का एक तरीका पेश करता है। कॉन्ट्रैक्ट के सामने एक स्मार्ट, अनुकूलन योग्य "डोरमैन" रखकर, वे चोरों को सिस्टम के टाइमिंग गैप का फायदा उठाने से रोक सकते हैं, चाहे कॉन्ट्रैक्ट के आंतरिक नियम कितने भी जटिल क्यों न हों। यह दीवार में हर छेद को ठीक करने के बजाय एक अभेद्य गेट बनाने की ओर एक बदलाव है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।