मुख्य सामग्री पर जाएं

स्मार्ट अनुबंध सुरक्षा चेकलिस्ट

स्मार्ट अनुबंध
सुरक्षा
solidity
मध्यवर्ती
Trailofbits
7 सितंबर 2020
3 मिनट पढ़ें

स्मार्ट अनुबंध विकास चेकलिस्ट

यहाँ एक उच्च-स्तरीय प्रक्रिया दी गई है जिसका पालन करने की हम अनुशंसा करते हैं जब आप अपने स्मार्ट अनुबंध लिखते हैं।

ज्ञात सुरक्षा समस्याओं की जाँच करें:

  • स्लिथर (एक नए टैब में खुलता है) के साथ अपने अनुबंधों की समीक्षा करें। इसमें सामान्य कमजोरियों के लिए 40 से अधिक अंतर्निहित डिटेक्टर हैं। नए कोड के साथ हर चेक-इन पर इसे चलाएं और सुनिश्चित करें कि इसे एक स्वच्छ रिपोर्ट मिले (या कुछ समस्याओं को शांत करने के लिए ट्राइएज मोड का उपयोग करें)।
  • Crytic (एक नए टैब में खुलता है) के साथ अपने अनुबंधों की समीक्षा करें। यह 50 ऐसी समस्याओं की जाँच करता है जो स्लिथर नहीं करता। Crytic आपकी टीम को एक-दूसरे के साथ तालमेल बिठाने में भी मदद कर सकता है, क्योंकि यह GitHub पर पुल रिक्वेस्ट (Pull Requests) में सुरक्षा समस्याओं को आसानी से सामने लाता है।

अपने अनुबंध की विशेष विशेषताओं पर विचार करें:

अपने कोड की महत्वपूर्ण सुरक्षा विशेषताओं का दृश्य रूप से निरीक्षण करें:

महत्वपूर्ण सुरक्षा गुणों का दस्तावेजीकरण करें और उनका मूल्यांकन करने के लिए स्वचालित परीक्षण जनरेटर का उपयोग करें:

  • अपने कोड के लिए सुरक्षा गुणों का दस्तावेजीकरण करना सीखें। यह शुरुआत में कठिन होता है, लेकिन एक अच्छा परिणाम प्राप्त करने के लिए यह सबसे महत्वपूर्ण गतिविधि है। यह इस ट्यूटोरियल में किसी भी उन्नत तकनीक का उपयोग करने के लिए एक पूर्व शर्त भी है।
  • एकिड्ना (एक नए टैब में खुलता है) और मैन्टिकोर (एक नए टैब में खुलता है) के साथ उपयोग के लिए, Solidity में सुरक्षा गुणों को परिभाषित करें। अपनी स्थिति मशीन (state machine), एक्सेस नियंत्रण, अंकगणितीय संचालन, बाहरी इंटरैक्शन और मानकों के अनुरूपता पर ध्यान केंद्रित करें।
  • स्लिथर के Python API के साथ सुरक्षा गुणों को परिभाषित करें। इनहेरिटेंस, चर (variable) निर्भरता, एक्सेस नियंत्रण और अन्य संरचनात्मक समस्याओं पर ध्यान केंद्रित करें।
  • Crytic (एक नए टैब में खुलता है) के साथ हर कमिट पर अपने प्रॉपर्टी परीक्षण चलाएं। Crytic सुरक्षा प्रॉपर्टी परीक्षणों का उपभोग और मूल्यांकन कर सकता है ताकि आपकी टीम का हर व्यक्ति आसानी से देख सके कि वे GitHub पर पास हो गए हैं। विफल परीक्षण कमिट को रोक सकते हैं।

अंत में, उन समस्याओं के प्रति सचेत रहें जिन्हें स्वचालित टूल आसानी से नहीं खोज सकते:

  • गोपनीयता की कमी: जब आपके लेन-देन पूल में कतारबद्ध होते हैं तो हर कोई उन्हें देख सकता है
  • फ्रंट रनिंग (Front running) लेन-देन
  • क्रिप्टोग्राफ़िक संचालन
  • बाहरी विकेंद्रीकृत वित्त (DeFi) घटकों के साथ जोखिम भरे इंटरैक्शन

मदद मांगें

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

हमारे Slack से जुड़ें: Empire Hacking (एक नए टैब में खुलता है)। यदि आपके कोई प्रश्न हैं तो हम हमेशा #crytic और #ethereum चैनलों में उपलब्ध हैं।