मुख्य आशयावर जा

स्मार्ट कॉन्ट्रॅक्ट सुरक्षा चेकलिस्ट

स्मार्ट कॉन्ट्रॅक्ट्स
सुरक्षा
solidity
मध्यम
ट्रेलऑफबिट्स
7 सप्टेंबर, 2020
2 मिनिटांचे वाचन

स्मार्ट कॉन्ट्रॅक्ट विकास चेकलिस्ट

तुम्ही तुमचे स्मार्ट कॉन्ट्रॅक्ट्स लिहिताना आम्ही खालील उच्च-स्तरीय प्रक्रियेचे अनुसरण करण्याची शिफारस करतो.

ज्ञात सुरक्षा समस्या तपासा:

  • स्लिदर (नवीन टॅबमध्ये उघडते) सह तुमच्या कॉन्ट्रॅक्ट्सचे पुनरावलोकन करा. यात सामान्य असुरक्षांसाठी 40 पेक्षा जास्त अंगभूत डिटेक्टर्स आहेत. नवीन कोडसह प्रत्येक चेक-इनवर ते चालवा आणि त्याला स्वच्छ अहवाल मिळेल याची खात्री करा (किंवा काही समस्या शांत करण्यासाठी ट्रायज मोड वापरा).
  • Crytic (नवीन टॅबमध्ये उघडते) सह तुमच्या कॉन्ट्रॅक्ट्सचे पुनरावलोकन करा. हे स्लिदर करत नसलेल्या 50 समस्या तपासते. GitHub वरील पुल रिक्वेस्ट्समध्ये सुरक्षा समस्या सहजपणे समोर आणून Crytic तुमच्या टीमला एकमेकांच्या संपर्कात राहण्यास मदत करू शकते.

तुमच्या कॉन्ट्रॅक्टच्या विशेष वैशिष्ट्यांचा विचार करा:

  • तुमचे कॉन्ट्रॅक्ट्स अपग्रेड करण्यायोग्य आहेत का? slither-check-upgradeability (नवीन टॅबमध्ये उघडते) किंवा Crytic (नवीन टॅबमध्ये उघडते) सह त्रुटींसाठी तुमच्या अपग्रेडिबिलिटी कोडचे पुनरावलोकन करा. अपग्रेड्स चुकीच्या मार्गाने जाऊ शकतील अशा 17 पद्धती आम्ही दस्तऐवजीकरण केल्या आहेत.
  • तुमचे कॉन्ट्रॅक्ट्स ERCs चे पालन करण्याचा दावा करतात का? त्यांना slither-check-erc (नवीन टॅबमध्ये उघडते) सह तपासा. हे साधन सहा सामान्य वैशिष्ट्यांमधील विचलन त्वरित ओळखते.
  • तुम्ही तृतीय पक्ष टोकन्ससह समाकलित करता का? बाह्य कॉन्ट्रॅक्ट्सवर अवलंबून राहण्यापूर्वी आमच्या टोकन एकत्रीकरण चेकलिस्टचे पुनरावलोकन करा.

तुमच्या कोडच्या गंभीर सुरक्षा वैशिष्ट्यांची दृश्यमानपणे तपासणी करा:

गंभीर सुरक्षा गुणधर्मांचे दस्तऐवजीकरण करा आणि त्यांचे मूल्यांकन करण्यासाठी स्वयंचलित चाचणी जनरेटर्स वापरा:

  • तुमच्या कोडसाठी सुरक्षा गुणधर्मांचे दस्तऐवजीकरण करायला शिका. हे सुरुवातीला कठीण असते, परंतु चांगला परिणाम साध्य करण्यासाठी ही सर्वात महत्त्वाची क्रिया आहे. या ट्यूटोरियलमधील कोणत्याही प्रगत तंत्रांचा वापर करण्यासाठी ही एक पूर्वअट देखील आहे.
  • एकिडना (नवीन टॅबमध्ये उघडते) आणि मॅन्टिकोर (नवीन टॅबमध्ये उघडते) सोबत वापरण्यासाठी, Solidity मध्ये सुरक्षा गुणधर्म परिभाषित करा. तुमची स्थिती मशीन, ऍक्सेस कंट्रोल्स, अंकगणितीय ऑपरेशन्स, बाह्य परस्परसंवाद आणि मानकांचे पालन यावर लक्ष केंद्रित करा.
  • स्लिदरच्या Python API सह सुरक्षा गुणधर्म परिभाषित करा. इनहेरिटन्स, व्हेरिएबल अवलंबित्व, ऍक्सेस कंट्रोल्स आणि इतर संरचनात्मक समस्यांवर लक्ष केंद्रित करा.
  • Crytic (नवीन टॅबमध्ये उघडते) सह प्रत्येक कमिटवर तुमच्या प्रॉपर्टी चाचण्या चालवा. Crytic सुरक्षा प्रॉपर्टी चाचण्या वापरू शकते आणि त्यांचे मूल्यांकन करू शकते जेणेकरून तुमच्या टीममधील प्रत्येकजण GitHub वर त्या पास झाल्याचे सहज पाहू शकेल. अयशस्वी चाचण्या कमिट्स ब्लॉक करू शकतात.

शेवटी, स्वयंचलित साधने सहजपणे शोधू शकत नाहीत अशा समस्यांबद्दल सावध रहा:

  • गोपनीयतेचा अभाव: तुमचे व्यवहार पूलमध्ये रांगेत असताना इतर सर्वजण ते पाहू शकतात
  • फ्रंट रनिंग व्यवहार
  • क्रिप्टोग्राफिक ऑपरेशन्स
  • बाह्य विकेंद्रित वित्त (DeFi) घटकांसह धोकादायक परस्परसंवाद

मदत मागा

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

आमच्या Slack मध्ये सामील व्हा: Empire Hacking (नवीन टॅबमध्ये उघडते). तुम्हाला काही प्रश्न असल्यास आम्ही #crytic आणि #ethereum चॅनेल्समध्ये नेहमी उपलब्ध असतो.