paint-brush
स्मार्ट कॉन्ट्रैक्ट्स में फ्रंटरनिंग भेद्यता को कैसे हल करेंद्वारा@dansierrasam79
1,832 रीडिंग
1,832 रीडिंग

स्मार्ट कॉन्ट्रैक्ट्स में फ्रंटरनिंग भेद्यता को कैसे हल करें

द्वारा Daniel Chakraborty6m2023/03/04
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

अग्रगामी त्रुटि तब होती है जब उच्च गैस शुल्क का भुगतान करने वाले लेन-देन उन लोगों की तुलना में अधिक पसंद किए जाते हैं जो नहीं करते हैं। दोषपूर्ण प्रोग्रामिंग के कारण भेद्यता उत्पन्न नहीं होती है, लेकिन जिस तरह से लेन-देन का आदेश दिया जाता है और एक ब्लॉक में जोड़ा जाता है, उसका उपयोग करता है। एक हमलावर केवल उच्च गैस शुल्क का भुगतान करके नीलामी, व्यापार या प्रारंभिक सिक्के की पेशकश जैसी घटनाओं के परिणाम को अपने पक्ष में बदल सकता है।
featured image - स्मार्ट कॉन्ट्रैक्ट्स में फ्रंटरनिंग भेद्यता को कैसे हल करें
Daniel Chakraborty HackerNoon profile picture
0-item
1-item

भले ही सुपरमार्केट या आउटलेट्स पर जहां आप अपने उपयोगिता बिलों का भुगतान करते हैं, कतारें इतिहास हैं, हम में से कुछ जानते हैं कि जब कोई लाइन में कूदता है तो कैसा लगता है।


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


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

फ्रंट-रनिंग भेद्यता को तोड़ना

शुरुआत से ही, यह भेद्यता दोषपूर्ण प्रोग्रामिंग के कारण नहीं होती है, लेकिन जिस तरह से लेनदेन का आदेश दिया जाता है और 'मेमपूल' से एक ब्लॉक में जोड़ा जाता है, उसका उपयोग करता है।


जल्दी पैसा बनाने की चाहत रखने वाले नियमित उपयोगकर्ताओं के अलावा, खनिक इस तरह के लेन-देन से लाभ प्राप्त करते हैं और यही कारण है कि ब्लॉक में जोड़े जाने से पहले वे ऐसे लेन-देन पर नजर रखने की सबसे अधिक संभावना रखते हैं। वास्तव में, एक बार ऐसा करने के बाद, वे एक अनुचित वित्तीय इनाम के लिए अपना स्वयं का लेनदेन भेजते हैं, जो पहले भेजे गए ब्लॉक के बजाय एक ब्लॉक में जोड़ा जाता है।


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


आइए यह समझने के लिए इस सामान्य उदाहरण को देखें कि अग्रगामी भेद्यता कैसे काम करती है:

इस उदाहरण में, हमारे पास तीन अभिनेता हैं: नमन, काव्या और ऐश्वर्या। नमन पहले हैशिंग चुनौती को हल करने के लिए अन्य दो के लिए एक स्मार्ट अनुबंध के रूप में तैनात करता है। जो कोई भी इस हैशिंग पहेली को सुलझाएगा उसे इनाम के तौर पर 10 ईथर मिलेंगे।


अब, काव्या पहले हैशिंग समाधान ढूंढती है और इसे अपने स्मार्ट अनुबंध से गैस शुल्क के रूप में 10 Gwei के साथ भेजती है:


दूसरी ओर, ऐश्वर्या थोड़ी देर बाद इसका जवाब ढूंढती है और गैस शुल्क के रूप में 100 Gwei के साथ अपने स्मार्ट अनुबंध का सही उत्तर पास करती है।


उच्च गैस शुल्क का भुगतान करने के कारण, काव्या को 10 ईथर पुरस्कार प्राप्त करने के बजाय, ऐश्वर्या इसे प्राप्त करती है, जैसा कि नीचे दिखाया गया है:


सीधे शब्दों में कहें, यह अग्रगामी या लेन-देन-आदेश त्रुटि है, क्योंकि यह गैस शुल्क के मूल्य के आधार पर लेनदेन की प्रक्रिया करता है।


दूसरे शब्दों में, भले ही काव्या ने ऐश्वर्या के सामने अपना जवाब जमा कर दिया हो, उसे अपने प्रयासों के लिए कुछ नहीं मिला, जैसा कि नीचे दिखाया गया है:

चूंकि ऐश्वर्या का यह 'जंप इन लाइन' काव्या या किसी और को अच्छा नहीं लगेगा, इसलिए हमारे स्मार्ट कॉन्ट्रैक्ट कोड के लिए कुछ निवारक उपायों पर विचार किया जाना चाहिए।

अग्रगामी भेद्यता से निपटने के 3 तरीके

अब, ऐसे सुधार हैं जो इस तरह के नुकसान को रोक सकते हैं। दूसरे शब्दों में, हमें एक लेन-देन को उस लेनदेन के रूप में लॉक करने में सक्षम होना चाहिए जिसे 10 ईथर प्राप्त करना चाहिए।


विधि 1: लेन-देन काउंटर

लेन-देन काउंटर का उपयोग करना किसी अन्य को किसी अन्य माध्यम से पुरस्कार प्राप्त करने से रोकने का सबसे आसान तरीका है।


जैसा कि आप नीचे जोड़े गए कोड से बता सकते हैं, एक लेन-देन काउंटर जोड़ा गया है जो उस व्यक्ति द्वारा किए गए लेन-देन को लॉक कर देता है जिसने पहले हैशिंग चुनौती पूरी की है। चूंकि ऐसा करने वाले पहले व्यक्ति को ही पुरस्कार प्राप्त करना चाहिए, हम सभी प्रतिभागियों को उनके समाधान के साथ मान 0 जोड़ने के लिए सूचित करते हैं।


चूँकि txCounter का वर्तमान मान पहले प्रस्तुत समाधान के लिए शून्य होगा, यह लॉक हो जाता है। दूसरे शब्दों में, और जैसा कि ऊपर दिए गए उदाहरण में है, काव्या अपने समाधान के साथ-साथ शून्य के मान को 10 ईथर का पुरस्कार प्राप्त करने के लिए दर्ज करेगी। .


यदि कोई और ऐसा करता है, तो समाधान स्वीकार नहीं किया जाएगा क्योंकि लेन-देन काउंटर को एक से अधिक मूल्य में बढ़ा दिया गया है। उस समय तक, पूरे 10 ईथर इनाम, जो काव्या को जाने चाहिए, उसे सही तरीके से स्थानांतरित कर दिए जाएंगे।


विधि 2: गैस सीमा निर्धारित करना

अब, इस पद्धति के साथ, सभी लेन-देन के लिए गैस सीमा निर्धारित करने पर ध्यान केंद्रित किया गया है। दोनों, एक निचली और एक ऊपरी सीमा, यदि आवश्यक हो।


जैसा कि आप याद कर सकते हैं, लेन-देन का आदेश इस आधार पर दिया जाता है कि उक्त लेनदेन के लिए कितनी गैस फीस का भुगतान किया गया है। हालांकि यह उस आदेश को पूरी तरह से समाप्त नहीं कर सकता है, यह निश्चित रूप से इसे काफी हद तक कम कर देता है।


यदि आप नीचे दिए गए कोड को देखते हैं, तो सभी लेन-देन जो 1 या उससे कम की राशि का गैस का भुगतान करते हैं, से गुजरेंगे, लेकिन जो लोग अधिक गैस का भुगतान करके लाइन को पार करने की कोशिश करते हैं, वे गैसथ्रॉटल संशोधक के लिए धन्यवाद नहीं करेंगे। इस मामले में, 1 वीई या जीवीई इस तरह के लेनदेन को संसाधित करने की मानक लागत हो सकती है और जिसकी अनुमति दी जाएगी।


इसलिए, यदि इस थ्रॉटल के आधार पर सभी लेन-देन गैस में इतना भिन्न नहीं होते हैं, तो कुछ लेन-देन को वरीयता दिखाने का मुद्दा नहीं उठेगा। जबकि इस तरह के दृष्टिकोण के फायदे हैं, भुगतान किया गया गैस शुल्क भविष्य में बदलने के लिए बाध्य है।


आज जो ऊंचा है वह एक दो साल में नीचे हो जाएगा, इसलिए नमन को हर समय इस पर नजर रखनी होगी। या फिर, ऐश कुछ समय के लिए प्रतीक्षा करके इन बदलते मूल्यों का लाभ उठाने में सक्षम हो सकता है।


विधि 3: पनडुब्बी-भेजने का दृष्टिकोण

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


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


जब कोई इस दृष्टिकोण का उपयोग करता है, तो वे लेन-देन की जानकारी को इस तरह छिपाते हैं कि खनिक या नियमित उपयोगकर्ता वास्तव में लाभ नहीं उठा सकते। इस जानकारी की सुरक्षा में एन्क्रिप्शन एक बड़ी भूमिका निभाता है, जो कि मालिक के विवेक के आधार पर, एक ब्लॉक में जोड़े जाने के बाद प्रकट हो सकता है।

उस ने कहा, भले ही यह दृष्टिकोण सही नहीं है, सुरक्षा का स्तर जो यह प्रदान करता है वह अन्य तरीकों की तुलना में कहीं बेहतर है, वास्तविक कारण को संबोधित करने की इच्छा के कारण सामने चल रहा है - वास्तविक दुनिया में और दोनों ब्लॉकचेन पर।

आगे चल रही भेद्यता को दूर करने के लिए अन्य रणनीतियाँ

बेशक, पिछले अनुभाग में चर्चा की गई रणनीतियाँ केवल वही नहीं हैं जो स्मार्ट अनुबंधों को 'फ्रंट-रनिंग' भेद्यता से बचाती हैं।


साइड चेन के साथ, ऑर्डर ऑफ-चेन होता है, जबकि उस पर सेटलमेंट होता है। विभिन्न प्लेटफार्मों पर इन दो चरणों के साथ, यह न केवल थ्रूपुट में वृद्धि के लिए लाभ है, बल्कि खनिकों या नियमित उपयोगकर्ताओं को सामने आने वाली भेद्यता का फायदा उठाने के लिए आवश्यक जानकारी प्राप्त करने से रोकेगा।




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


अंत में, एक अन्य दृष्टिकोण में इंजेक्शन प्रोटोकॉल का कार्यान्वयन शामिल है जहां उपयोगकर्ता उस सभी महत्वपूर्ण टी-वैल्यू के लिए सत्यापन योग्य विलंब कार्यों को हल करते हैं जो यह निर्धारित करता है कि ऑर्डर किसे मिलता है। नतीजतन, अधिकांश ब्लॉकचेन का उपयोग करने वाले यादृच्छिक क्रम प्रणाली से दूर जाने में सक्षम होने से, सामने वाले हमलों की संभावना भी कम हो जाती है।