ప్రధాన కంటెంట్‌కు దాటవేయి

స్మార్ట్ కాంట్రాక్ట్ భద్రతా చెక్‌లిస్ట్

స్మార్ట్ కాంట్రాక్ట్‌లు
భద్రత
solidity
మధ్యస్థ స్థాయి
Trailofbits
7 సెప్టెంబర్, 2020
2 నిమిషాల పఠనం
పేజీని సవరించండి (opens in a new tab)

స్మార్ట్ కాంట్రాక్ట్ డెవలప్‌మెంట్ చెక్‌లిస్ట్

మీరు మీ స్మార్ట్ కాంట్రాక్ట్‌లను రాసేటప్పుడు అనుసరించాలని మేము సిఫార్సు చేస్తున్న ఉన్నత-స్థాయి ప్రక్రియ ఇక్కడ ఉంది.

తెలిసిన భద్రతా సమస్యల కోసం తనిఖీ చేయండి:

  • స్లిదర్ (opens in a new tab)తో మీ కాంట్రాక్ట్‌లను సమీక్షించండి. ఇది సాధారణ దుర్బలత్వాల కోసం 40 కంటే ఎక్కువ అంతర్నిర్మిత డిటెక్టర్‌లను కలిగి ఉంది. కొత్త కోడ్‌తో ప్రతి చెక్-ఇన్‌లో దీన్ని రన్ చేయండి మరియు ఇది క్లీన్ రిపోర్ట్‌ను పొందుతుందని నిర్ధారించుకోండి (లేదా నిర్దిష్ట సమస్యలను నిశ్శబ్దం చేయడానికి ట్రియేజ్ మోడ్‌ను ఉపయోగించండి).
  • Crytic (opens in a new tab)తో మీ కాంట్రాక్ట్‌లను సమీక్షించండి. స్లిదర్ చేయని 50 సమస్యల కోసం ఇది తనిఖీ చేస్తుంది. GitHubలోని పుల్ రిక్వెస్ట్‌లలో భద్రతా సమస్యలను సులభంగా చూపడం ద్వారా మీ బృందం ఒకరికొకరు అప్‌డేట్‌గా ఉండటానికి కూడా Crytic సహాయపడుతుంది.

మీ కాంట్రాక్ట్ యొక్క ప్రత్యేక లక్షణాలను పరిగణించండి:

  • మీ కాంట్రాక్ట్‌లు అప్‌గ్రేడ్ చేయదగినవా? slither-check-upgradeability (opens in a new tab) లేదా Crytic (opens in a new tab)తో లోపాల కోసం మీ అప్‌గ్రేడబిలిటీ కోడ్‌ను సమీక్షించండి. అప్‌గ్రేడ్‌లు తప్పుదారి పట్టే 17 మార్గాలను మేము డాక్యుమెంట్ చేసాము.
  • మీ కాంట్రాక్ట్‌లు ERCలకు అనుగుణంగా ఉన్నాయని పేర్కొంటున్నాయా? వాటిని slither-check-erc (opens in a new tab)తో తనిఖీ చేయండి. ఈ సాధనం ఆరు సాధారణ స్పెసిఫికేషన్‌ల నుండి వ్యత్యాసాలను తక్షణమే గుర్తిస్తుంది.
  • మీరు 3వ పక్ష టోకెన్‌లతో అనుసంధానం చేస్తున్నారా? బాహ్య కాంట్రాక్ట్‌లపై ఆధారపడే ముందు మా టోకెన్ ఇంటిగ్రేషన్ చెక్‌లిస్ట్ను సమీక్షించండి.

మీ కోడ్ యొక్క క్లిష్టమైన భద్రతా లక్షణాలను దృశ్యమానంగా తనిఖీ చేయండి:

  • స్లిదర్ యొక్క ఇన్‌హెరిటెన్స్-గ్రాఫ్ (opens in a new tab) ప్రింటర్‌ను సమీక్షించండి. అనుకోకుండా షాడోయింగ్ మరియు C3 లీనియరైజేషన్ సమస్యలను నివారించండి.
  • స్లిదర్ యొక్క ఫంక్షన్-సమ్మరీ (opens in a new tab) ప్రింటర్‌ను సమీక్షించండి. ఇది ఫంక్షన్ విజిబిలిటీ మరియు యాక్సెస్ నియంత్రణలను నివేదిస్తుంది.
  • స్లిదర్ యొక్క వార్స్-అండ్-ఆత్ (opens in a new tab) ప్రింటర్‌ను సమీక్షించండి. ఇది స్థితి వేరియబుల్స్‌పై యాక్సెస్ నియంత్రణలను నివేదిస్తుంది.

క్లిష్టమైన భద్రతా లక్షణాలను డాక్యుమెంట్ చేయండి మరియు వాటిని అంచనా వేయడానికి ఆటోమేటెడ్ టెస్ట్ జనరేటర్‌లను ఉపయోగించండి:

  • మీ కోడ్ కోసం భద్రతా లక్షణాలను డాక్యుమెంట్ చేయడం నేర్చుకోండి. ఇది మొదట కష్టంగా ఉంటుంది, కానీ మంచి ఫలితాన్ని సాధించడానికి ఇది అత్యంత ముఖ్యమైన చర్య. ఈ ట్యుటోరియల్‌లోని ఏదైనా అధునాతన పద్ధతులను ఉపయోగించడానికి ఇది ఒక ముందస్తు అవసరం కూడా.
  • ఎకిడ్నా (opens in a new tab) మరియు మాంటికోర్ (opens in a new tab)తో ఉపయోగించడానికి, Solidityలో భద్రతా లక్షణాలను నిర్వచించండి. మీ స్థితి యంత్రం, యాక్సెస్ నియంత్రణలు, అంకగణిత కార్యకలాపాలు, బాహ్య పరస్పర చర్యలు మరియు ప్రమాణాల అనుగుణ్యతపై దృష్టి పెట్టండి.
  • స్లిదర్ యొక్క Python APIతో భద్రతా లక్షణాలను నిర్వచించండి. ఇన్‌హెరిటెన్స్, వేరియబుల్ డిపెండెన్సీలు, యాక్సెస్ నియంత్రణలు మరియు ఇతర నిర్మాణపరమైన సమస్యలపై దృష్టి పెట్టండి.
  • Crytic (opens in a new tab)తో ప్రతి కమిట్‌పై మీ ప్రాపర్టీ పరీక్షలను రన్ చేయండి. Crytic భద్రతా ప్రాపర్టీ పరీక్షలను వినియోగించి, అంచనా వేయగలదు, తద్వారా మీ బృందంలోని ప్రతి ఒక్కరూ అవి GitHubలో పాస్ అవుతున్నాయని సులభంగా చూడగలరు. విఫలమైన పరీక్షలు కమిట్‌లను నిరోధించగలవు.

చివరగా, ఆటోమేటెడ్ సాధనాలు సులభంగా కనుగొనలేని సమస్యల గురించి అప్రమత్తంగా ఉండండి:

  • గోప్యత లేకపోవడం: మీ లావాదేవీలు పూల్‌లో క్యూలో ఉన్నప్పుడు ఇతరులందరూ వాటిని చూడగలరు
  • ఫ్రంట్ రన్నింగ్ లావాదేవీలు
  • క్రిప్టోగ్రాఫిక్ కార్యకలాపాలు
  • బాహ్య వికేంద్రీకృత ఫైనాన్స్ (DeFi) భాగాలతో ప్రమాదకరమైన పరస్పర చర్యలు

సహాయం అడగండి

ఎథీరియం ఆఫీస్ అవర్స్ (opens in a new tab) ప్రతి మంగళవారం మధ్యాహ్నం నడుస్తాయి. ఈ 1-గంట, 1-ఆన్-1 సెషన్‌లు భద్రత గురించి మీకు ఉన్న ఏవైనా ప్రశ్నలను మమ్మల్ని అడగడానికి, మా సాధనాలను ఉపయోగించి ట్రబుల్‌షూట్ చేయడానికి మరియు మీ ప్రస్తుత విధానం గురించి నిపుణుల నుండి అభిప్రాయాన్ని పొందడానికి ఒక అవకాశం. ఈ గైడ్ ద్వారా పని చేయడంలో మేము మీకు సహాయం చేస్తాము.

మా స్లాక్‌లో చేరండి: Empire Hacking (opens in a new tab). మీకు ఏవైనా ప్రశ్నలు ఉంటే మేము ఎల్లప్పుడూ #crytic మరియు #ethereum ఛానెల్‌లలో అందుబాటులో ఉంటాము.

పేజీ చివరి నవీకరణ: 3 మార్చి, 2026