ప్రధాన కంటెంట్‌కి స్కిప్ చేయండి

టోకెన్ ఇంటిగ్రేషన్ చెక్‌లిస్ట్

దృఢత్వం
స్మార్ట్ కాంట్రాక్టులు
భద్రత
టోకెన్లు
మధ్యస్థ
Trailofbits
13 ఆగస్టు, 2020
4 నిమిషం పఠనం

ఏకపక్ష టోకెన్‌లతో ఇంటరాక్ట్ అయ్యేటప్పుడు ఈ చెక్‌లిస్ట్‌ను అనుసరించండి. ప్రతి అంశంతో ముడిపడి ఉన్న ప్రమాదాలను మీరు అర్థం చేసుకున్నారని నిర్ధారించుకోండి మరియు ఈ నియమాలకు ఏవైనా మినహాయింపులను సమర్థించుకోండి.

సౌలభ్యం కోసం, అన్ని Slither యుటిలిటీలను (opens in a new tab) నేరుగా టోకెన్ చిరునామాపై అమలు చేయవచ్చు, ఉదాహరణకు:

Slither ట్యుటోరియల్‌ను ఉపయోగించడం

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

ఈ చెక్‌లిస్ట్‌ను అనుసరించడానికి, మీరు టోకెన్ కోసం Slither నుండి ఈ అవుట్‌పుట్‌ను కలిగి ఉండాలి:

- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # కాన్ఫిగరేషన్ అవసరం, మరియు Echidna మరియు Manticore వాడకం

సాధారణ పరిగణనలు

  • కాంట్రాక్ట్‌కు భద్రతా సమీక్ష ఉంది. భద్రతా సమీక్ష లేని కాంట్రాక్ట్‌లతో ఇంటరాక్ట్ అవ్వవద్దు. అంచనా యొక్క నిడివి (అకా “ప్రయత్న స్థాయి”), భద్రతా సంస్థ యొక్క కీర్తి, మరియు కనుగొన్న విషయాల సంఖ్య మరియు తీవ్రతను తనిఖీ చేయండి.
  • మీరు డెవలపర్‌లను సంప్రదించారు. మీరు ఒక సంఘటన గురించి వారి బృందాన్ని హెచ్చరించాల్సి రావచ్చు. blockchain-security-contacts (opens in a new tab) పై తగిన పరిచయాల కోసం చూడండి.
  • వారికి క్లిష్టమైన ప్రకటనల కోసం ఒక భద్రతా మెయిలింగ్ జాబితా ఉంది. వారి బృందం వినియోగదారులకు (మీలాంటి వారికి!) సలహా ఇవ్వాలి క్లిష్టమైన సమస్యలు కనుగొనబడినప్పుడు లేదా అప్‌గ్రేడ్‌లు జరిగినప్పుడు.

ERC అనుగుణ్యత

Slither లో slither-check-erc (opens in a new tab) అనే ఒక యుటిలిటీ ఉంది, ఇది ఒక టోకెన్ అనేక సంబంధిత ERC ప్రమాణాలకు అనుగుణంగా ఉందో లేదో సమీక్షిస్తుంది. వీటిని సమీక్షించడానికి slither-check-ercని ఉపయోగించండి:

  • ట్రాన్స్ఫర్ మరియు ట్రాన్స్ఫర్ ఫ్రమ్ ఒక బూలియన్‌ను తిరిగి ఇస్తాయి. అనేక టోకెన్‌లు ఈ ఫంక్షన్‌లపై బూలియన్‌ను తిరిగి ఇవ్వవు. ఫలితంగా, కాంట్రాక్ట్‌లో వాటి కాల్స్ విఫలం కావచ్చు.
  • పేరు, దశాంశాలు మరియు చిహ్నం ఫంక్షన్‌లు ఉపయోగించినట్లయితే ఉంటాయి. ఈ ఫంక్షన్‌లు ERC20 ప్రమాణంలో ఐచ్ఛికం మరియు ఉండకపోవచ్చు.
  • దశాంశాలు ఒక uint8 ను తిరిగి ఇస్తాయి. అనేక టోకెన్‌లు తప్పుగా ఒక uint256 ను తిరిగి ఇస్తాయి. ఇదే జరిగితే, తిరిగి వచ్చిన విలువ 255 కంటే తక్కువగా ఉందని నిర్ధారించుకోండి.
  • టోకెన్ తెలిసిన ERC20 రేస్ కండిషన్‌ను (opens in a new tab) తగ్గిస్తుంది. ERC20 ప్రమాణంలో తెలిసిన ERC20 రేస్ కండిషన్ ఉంది, దీనిని దాడి చేసేవారు టోకెన్‌లను దొంగిలించకుండా నిరోధించడానికి తగ్గించాలి.
  • టోకెన్ ఒక ERC777 టోకెన్ కాదు మరియు ట్రాన్స్ఫర్ మరియు ట్రాన్స్ఫర్ ఫ్రమ్‌లో బాహ్య ఫంక్షన్ కాల్ లేదు. ట్రాన్స్ఫర్ ఫంక్షన్‌లలో బాహ్య కాల్స్ రీఎంట్రాన్సీలకు దారితీయవచ్చు.

Slither లో slither-prop (opens in a new tab) అనే ఒక యుటిలిటీ ఉంది, ఇది అనేక సాధారణ ERC లోపాలను కనుగొనగల యూనిట్ టెస్ట్‌లు మరియు భద్రతా లక్షణాలను ఉత్పత్తి చేస్తుంది. వీటిని సమీక్షించడానికి slither-propని ఉపయోగించండి:

  • కాంట్రాక్ట్ slither-prop నుండి అన్ని యూనిట్ టెస్ట్‌లు మరియు భద్రతా లక్షణాలను పాస్ చేస్తుంది. ఉత్పత్తి చేయబడిన యూనిట్ టెస్ట్‌లను అమలు చేయండి, ఆపై Echidna (opens in a new tab) మరియు Manticore (opens in a new tab)తో లక్షణాలను తనిఖీ చేయండి.

చివరగా, కొన్ని లక్షణాలను స్వయంచాలకంగా గుర్తించడం కష్టం. ఈ పరిస్థితుల కోసం చేతితో సమీక్షించండి:

  • ట్రాన్స్ఫర్ మరియు ట్రాన్స్ఫర్ ఫ్రమ్ రుసుము తీసుకోకూడదు. ప్రతి ద్రవ్యోల్బణ టోకెన్‌లు అనూహ్య ప్రవర్తనకు దారితీయవచ్చు.
  • టోకెన్ నుండి సంపాదించిన సంభావ్య వడ్డీని పరిగణనలోకి తీసుకుంటారు. కొన్ని టోకెన్‌లు టోకెన్ హోల్డర్‌లకు వడ్డీని పంపిణీ చేస్తాయి. ఈ వడ్డీని పరిగణనలోకి తీసుకోకపోతే కాంట్రాక్ట్‌లో చిక్కుకుపోవచ్చు.

కాంట్రాక్ట్ కూర్పు

  • కాంట్రాక్ట్ అనవసరమైన సంక్లిష్టతను నివారిస్తుంది. టోకెన్ ఒక సాధారణ కాంట్రాక్ట్ అయి ఉండాలి; సంక్లిష్టమైన కోడ్‌తో ఉన్న టోకెన్‌కు ఉన్నత స్థాయి సమీక్ష అవసరం. సంక్లిష్టమైన కోడ్‌ను గుర్తించడానికి Slither యొక్క హ్యూమన్-సమ్మరీ ప్రింటర్‌ను (opens in a new tab) ఉపయోగించండి.
  • కాంట్రాక్ట్ SafeMathను ఉపయోగిస్తుంది. SafeMathను ఉపయోగించని కాంట్రాక్ట్‌లకు ఉన్నత స్థాయి సమీక్ష అవసరం. SafeMath వాడకం కోసం కాంట్రాక్ట్‌ను చేతితో తనిఖీ చేయండి.
  • కాంట్రాక్ట్‌లో టోకెన్‌కు సంబంధం లేని కొన్ని ఫంక్షన్‌లు మాత్రమే ఉన్నాయి. టోకెన్‌కు సంబంధం లేని ఫంక్షన్‌లు కాంట్రాక్ట్‌లో సమస్య వచ్చే సంభావ్యతను పెంచుతాయి. కాంట్రాక్ట్‌లో ఉపయోగించిన కోడ్‌ను విస్తృతంగా సమీక్షించడానికి Slither యొక్క కాంట్రాక్ట్-సమ్మరీ ప్రింటర్‌ను (opens in a new tab) ఉపయోగించండి.
  • టోకెన్‌కు ఒకే చిరునామా ఉంది. బ్యాలెన్స్ అప్‌డేట్‌ల కోసం బహుళ ఎంట్రీ పాయింట్లు ఉన్న టోకెన్‌లు చిరునామా ఆధారంగా అంతర్గత బుక్‌కీపింగ్‌ను విచ్ఛిన్నం చేయగలవు (ఉదాహరణకు, balances[token_address][msg.sender] వాస్తవ బ్యాలెన్స్‌ను ప్రతిబింబించకపోవచ్చు).

యజమాని అధికారాలు

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

టోకెన్ కొరత

టోకెన్ కొరత సమస్యల కోసం సమీక్షలకు మాన్యువల్ సమీక్ష అవసరం. ఈ పరిస్థితుల కోసం తనిఖీ చేయండి:

  • ఏ వినియోగదారుడు కూడా సరఫరాలో ఎక్కువ భాగాన్ని కలిగి ఉండరు. కొద్దిమంది వినియోగదారులు చాలా టోకెన్‌లను కలిగి ఉంటే, వారు టోకెన్ పునఃపంపిణీ ఆధారంగా కార్యకలాపాలను ప్రభావితం చేయగలరు.
  • మొత్తం సరఫరా సరిపోతుంది. తక్కువ మొత్తం సరఫరాతో ఉన్న టోకెన్‌లను సులభంగా మానిప్యులేట్ చేయవచ్చు.
  • టోకెన్‌లు కొన్ని ఎక్స్చేంజ్‌ల కంటే ఎక్కువ వాటిలో ఉన్నాయి. అన్ని టోకెన్‌లు ఒకే ఎక్స్చేంజ్‌లో ఉంటే, ఎక్స్చేంజ్ యొక్క రాజీ టోకెన్‌పై ఆధారపడిన కాంట్రాక్ట్‌ను రాజీ చేయగలదు.
  • వినియోగదారులు పెద్ద నిధులు లేదా ఫ్లాష్ లోన్‌లతో సంబంధం ఉన్న ప్రమాదాలను అర్థం చేసుకుంటారు. టోకెన్ బ్యాలెన్స్‌పై ఆధారపడిన కాంట్రాక్ట్‌లు పెద్ద నిధులతో ఉన్న దాడి చేసేవారిని లేదా ఫ్లాష్ లోన్‌ల ద్వారా జరిగే దాడులను జాగ్రత్తగా పరిగణనలోకి తీసుకోవాలి.
  • టోకెన్ ఫ్లాష్ మింటింగ్‌ను అనుమతించదు. ఫ్లాష్ మింటింగ్ బ్యాలెన్స్ మరియు మొత్తం సరఫరాలో గణనీయమైన మార్పులకు దారితీయవచ్చు, దీనికి టోకెన్ ఆపరేషన్‌లో కఠినమైన మరియు సమగ్రమైన ఓవర్‌ఫ్లో తనిఖీలు అవసరం.

పేజీ చివరి అప్‌డేట్: 21 అక్టోబర్, 2025

ఈ ట్యుటోరియల్ ఉపయోగపడిందా?