स्टेकिंग प्रोटोकॉल के ऑडिटिंग के लिए दिशानिर्देश

स्टेकिंग प्रोटोकॉल के ऑडिटिंग के लिए दिशानिर्देश

समय पढ़ें: 6 मिनट

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

लिक्विडिटी स्टेकिंग क्या है?

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

स्टेकिंग प्रोटोकॉल प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के ऑडिट के लिए दिशानिर्देश। लंबवत खोज. ऐ.

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

आइए हिस्सेदारी अनुबंधों का ऑडिट करना शुरू करें:

अनुबंध कोड शुरू करने से पहले उपलब्ध सभी ऑडिट विशिष्टताओं की जांच करें। यह एक श्वेत पत्र, README फ़ाइलें, या कुछ और के रूप में हो सकता है। इनसे आपको पता चल जाएगा कि अनुबंध कोड में क्या होगा।

स्टेकिंग अनुबंध के लिए ऑडिट विनिर्देश दस्तावेज़ को देखते समय, इन बिंदुओं पर गौर करें:

  • आधारित फीस के प्रकार और उनकी गणना।
  • दांव पर लगाए गए टोकन के लिए पुरस्कार तंत्र
  • स्वामी की शक्तियाँ
  • क्या अनुबंध में ETH रहेगा?
  • अनुबंध में कौन से टोकन होंगे?
  • मूल अनुबंध जिससे इसे बनाया गया है

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

देखने लायक संवेदनशील स्थान?

1. इनाम वापसी तंत्र:

जांचें कि दांव पर लगाए गए टोकन पुरस्कार तंत्र को सही ढंग से लागू किया गया है और पुरस्कार सभी हितधारकों को उचित और आनुपातिक रूप से वितरित किए गए हैं। परियोजनाएँ दो तरीकों से पुरस्कार वितरित कर सकती हैं: या तो स्वचालित रूप से, आवधिक आधार पर, या स्वयं उपयोगकर्ताओं के अनुरोध पर। एक निकासी फ़ंक्शन को प्रोटोकॉल के व्यावसायिक तर्क के अनुसार कार्यान्वित और अनुकूलित किया जा सकता है।
नीचे कुछ चौकियाँ दी गई हैं:

  • जांचें कि क्या कोई उपयोगकर्ता अपने इनाम + दांव पर लगी राशि से अधिक निकालने में सक्षम है।
  • राशि गणना में अतिप्रवाह/अंडरफ्लो की जाँच करें
  • जांचें कि क्या गणना के दौरान कुछ पैरामीटर पुरस्कारों पर नकारात्मक प्रभाव डाल सकते हैं।
  • यदि इस फ़ंक्शन में ब्लॉक.टाइमस्टैम्प या ब्लॉक.नंबर का उपयोग किया जाता है। जांचें कि क्या इसका किसी भी तरह से शोषण किया जा सकता है।

2. शुल्क तर्क:

यदि जमा और निकासी कुछ शुल्क के अधीन है, तो सत्यापित करें कि कोई भी एकल उपयोगकर्ता शुल्क को बायपास नहीं कर सकता है। इसके अतिरिक्त, किसी भी संभावित ओवरफ़्लो या अंडरफ़्लो समस्या के प्रति सतर्क रहें। शुल्क सेटिंग में परिवर्तन करने के लिए केवल व्यवस्थापक या स्वामी को ही अधिकृत किया जाना चाहिए। यह भी सत्यापित करें कि अधिकतम शुल्क के लिए एक सीमा स्थापित की गई है, जिससे व्यवस्थापक को इसे अत्यधिक उच्च राशि पर निर्धारित करने से रोका जा सके।

3. एलपी टोकन की ढलाई/जलाने की व्यवस्था:

सत्यापित करें कि खनन और दहन तंत्र सही ढंग से कार्यान्वित किया गया है या नहीं। बर्न फ़ंक्शन को मिंट फ़ंक्शन द्वारा किए गए सभी राज्य परिवर्तनों को उलट देना चाहिए। इसके अतिरिक्त, यह सत्यापित करना महत्वपूर्ण है कि पूल खाली होने पर उपयोगकर्ताओं को पहली हिस्सेदारी के दौरान उचित मात्रा में टोकन प्राप्त होते हैं।

किसी भी छिपी हुई भेद्यता को उजागर करने के लिए खनन और जलने के कार्यों के तर्क को गणितीय रूप से सत्यापित किया जा सकता है। साथ ही, खनन किए गए एलपी टोकन की कुल आपूर्ति दांव पर लगी संपत्तियों से अधिक नहीं होनी चाहिए।

4. पूर्णांकन त्रुटियाँ:

यद्यपि कुछ छोटी-मोटी गोलाई संबंधी गलतियाँ आम तौर पर अपरिहार्य होती हैं और चिंता का विषय नहीं होती हैं, फिर भी जब उन्हें गुणा करना संभव हो तो वे काफी बढ़ सकती हैं। ऐसे किनारे के मामलों की तलाश करें जहां कोई व्यक्ति बार-बार स्टेकिंग और अनस्टेकिंग द्वारा त्रुटियों को पूरा करने से लाभ उठा सकता है।

यह निर्धारित करने के लिए कि क्या पूर्णांकन त्रुटियाँ समय की विस्तारित अवधि में पर्याप्त मात्रा में जमा हो सकती हैं, हम गणितीय रूप से संभावित पूर्णांकन त्रुटियों की सीमा की गणना कर सकते हैं।

5. दांव लगाने की अवधि:

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

6. बाहरी कॉल और टोकन हैंडलिंग:

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

7. मूल्य हेरफेर जाँच:

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

8. कुछ अतिरिक्त जाँचें:

  • लूप्स: यदि अनुबंध तर्क में सरणियों पर लूपिंग शामिल है, तो यह सुनिश्चित करना महत्वपूर्ण है कि ब्लॉक गैस सीमा पार न हो। यह तब हो सकता है जब सरणी का आकार बहुत बड़ा हो, इसलिए आपको जांच करनी चाहिए कि कौन से फ़ंक्शन सरणी के आकार को बढ़ा सकते हैं और क्या कोई उपयोगकर्ता DoS हमले का कारण बनने के लिए इसका फायदा उठा सकता है। इसकी जांच करो रिपोर्ट.
  • संरचनाएँ: स्टेकिंग अनुबंध उपयोगकर्ता या पूल डेटा को संग्रहीत करने के लिए संरचना प्रकार का उपयोग करते हैं। किसी फ़ंक्शन के भीतर किसी संरचना की घोषणा या एक्सेस करते समय, यह निर्दिष्ट करना महत्वपूर्ण है कि "मेमोरी" या "स्टोरेज" का उपयोग किया जाए या नहीं। इससे हमें कुछ गैस बचाने में मदद मिल सकती है। अधिक जानकारी के लिए कृपया देखें इस लेख के लिए.
  • दौड़ रहा है: ऐसे किसी भी परिदृश्य की तलाश करें जहां दुर्भावनापूर्ण अभिनेता अपने लाभ के लिए किसी भी लेनदेन को आगे बढ़ा सकते हैं।
  • फ़ंक्शन दृश्यता/अभिगम नियंत्रण जांच: कोई भी फ़ंक्शन जिसे बाहरी या सार्वजनिक घोषित किया गया है, उस तक कोई भी पहुंच सकता है। इसलिए, यह सुनिश्चित करना महत्वपूर्ण है कि कोई भी सार्वजनिक समारोह कोई संवेदनशील कार्य नहीं कर सके। यह सत्यापित करना महत्वपूर्ण है कि स्टेकिंग प्रोटोकॉल ने स्टेक किए गए सिक्कों और सिस्टम के बुनियादी ढांचे दोनों तक अनधिकृत पहुंच को रोकने के लिए उचित नियंत्रण लागू किया है।
  • केंद्रीकरण जोखिम: यह महत्वपूर्ण है कि मालिक को अत्यधिक शक्तियाँ न दी जाएँ। यदि व्यवस्थापक पते से छेड़छाड़ की जाती है, तो इससे प्रोटोकॉल को महत्वपूर्ण नुकसान हो सकता है। सत्यापित करें कि स्वामी या व्यवस्थापक विशेषाधिकार उचित हैं और सुनिश्चित करें कि प्रोटोकॉल में उन स्थितियों से निपटने के लिए एक योजना है जहां व्यवस्थापक की निजी कुंजी लीक हो गई है।
  • ETH/WETH हैंडलिंग: अनुबंधों में अक्सर ईटीएच को संभालने के लिए विशिष्ट तर्क शामिल होते हैं। उदाहरण के लिए, जब msg.value > 0, एक अनुबंध ETH को WETH में परिवर्तित कर सकता है जबकि WETH को सीधे प्राप्त करने की अनुमति देता है। जब कोई उपयोगकर्ता WETH को मुद्रा के रूप में निर्दिष्ट करता है लेकिन कॉल के साथ ETH भेजता है, तो यह कुछ अपरिवर्तनीयताओं को तोड़ सकता है और गलत व्यवहार को जन्म दे सकता है।

अब तक, हमने तरलता हिस्सेदारी प्रोटोकॉल और ऐसे प्रोटोकॉल के लिए ऑडिटिंग दिशानिर्देशों पर चर्चा की है। संक्षेप में, लिक्विडिटी स्टेकिंग उपयोगकर्ताओं को लिक्विडिटी का त्याग किए बिना स्टेकिंग पुरस्कार अर्जित करने की अनुमति देता है। हमने स्टेकिंग अनुबंधों में कमजोर स्थानों की रूपरेखा तैयार की है, जिन पर ऑडिटरों को ध्यान देना चाहिए, जैसे निकासी तंत्र, शुल्क तर्क, एलपी टोकन मिंटिंग/बर्निंग मैकेनिज्म, राउंडिंग त्रुटियां, स्टेकिंग अवधि, बाहरी कॉल और मूल्य हेरफेर जांच। 

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


11 दृश्य

समय टिकट:

से अधिक क्विलश