ٹوکن انضمام کی چیک لسٹ
کسی بھی ٹوکنز کے ساتھ تعامل کرتے وقت اس چیک لسٹ پر عمل کریں۔ یقینی بنائیں کہ آپ ہر آئٹم سے وابستہ خطرات کو سمجھتے ہیں، اور ان اصولوں میں کسی بھی استثنیٰ کا جواز پیش کریں۔
سہولت کے لیے، تمام Slither یوٹیلیٹیز (opens in a new tab) کو براہ راست ٹوکن ایڈریس پر چلایا جا سکتا ہے، جیسے کہ:
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 # requires configuration, and use of Echidna and Manticoreعمومی غور و فکر
- کنٹریکٹ کا سیکیورٹی جائزہ لیا گیا ہے۔ ایسے کنٹریکٹس کے ساتھ تعامل سے گریز کریں جن کا سیکیورٹی جائزہ نہیں لیا گیا ہو۔ جائزے کی طوالت (یعنی "کوشش کی سطح")، سیکیورٹی فرم کی ساکھ، اور نتائج کی تعداد اور شدت کو چیک کریں۔
- آپ نے ڈیولپرز سے رابطہ کیا ہے۔ آپ کو کسی واقعے کے بارے میں ان کی ٹیم کو آگاہ کرنے کی ضرورت پڑ سکتی ہے۔ blockchain-security-contacts (opens in a new tab) پر مناسب رابطے تلاش کریں۔
- ان کے پاس اہم اعلانات کے لیے ایک سیکیورٹی میلنگ لسٹ ہے۔ ان کی ٹیم کو صارفین (جیسے آپ!) کو مشورہ دینا چاہیے۔ جب اہم مسائل پائے جاتے ہیں یا جب اپ گریڈ ہوتے ہیں۔
ERC مطابقت
Slither میں ایک یوٹیلیٹی، slither-check-erc (opens in a new tab) شامل ہے، جو بہت سے متعلقہ ERC معیارات کے ساتھ ایک ٹوکن کی مطابقت کا جائزہ لیتی ہے۔ اس کا جائزہ لینے کے لیے slither-check-erc کا استعمال کریں:
- Transfer اور transferFrom ایک بولین واپس کرتے ہیں۔ کئی ٹوکنز ان فنکشنز پر بولین واپس نہیں کرتے ہیں۔ نتیجے کے طور پر، کنٹریکٹ میں ان کی کالز ناکام ہو سکتی ہیں۔
- اگر استعمال کیا جائے تو name، decimals، اور symbol فنکشنز موجود ہوتے ہیں۔ یہ فنکشنز ERC20 معیار میں اختیاری ہیں اور ہو سکتا ہے موجود نہ ہوں۔
- Decimals ایک uint8 واپس کرتا ہے۔ کئی ٹوکنز غلط طور پر ایک uint256 واپس کرتے ہیں۔ اگر ایسا ہے، تو یقینی بنائیں کہ واپس کی گئی قدر 255 سے کم ہے۔
- ٹوکن معروف ERC20 ریس کنڈیشن (opens in a new tab) کو کم کرتا ہے۔ ERC20 معیار میں ایک معروف ERC20 ریس کنڈیشن ہے جسے حملہ آوروں کو ٹوکن چوری کرنے سے روکنے کے لیے کم کیا جانا چاہیے۔
- ٹوکن ایک ERC777 ٹوکن نہیں ہے اور transfer اور transferFrom میں کوئی بیرونی فنکشن کال نہیں ہے۔ ٹرانسفر فنکشنز میں بیرونی کالز دوبارہ داخلے کا باعث بن سکتی ہیں۔
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) کے ساتھ پراپرٹیز چیک کریں۔
آخر میں، کچھ خصوصیات ایسی ہیں جن کی خود بخود شناخت کرنا مشکل ہے۔ ان شرائط کا دستی طور پر جائزہ لیں:
- Transfer اور transferFrom کو فیس نہیں لینی چاہیے۔ ڈیفلیشنری ٹوکنز غیر متوقع رویے کا باعث بن سکتے ہیں۔
- ٹوکن سے حاصل ہونے والے ممکنہ سود کو مدنظر رکھا جاتا ہے۔ کچھ ٹوکنز ٹوکن ہولڈرز میں سود تقسیم کرتے ہیں۔ اگر اسے مدنظر نہ رکھا جائے تو یہ سود کنٹریکٹ میں پھنس سکتا ہے۔
کنٹریکٹ کی ساخت
- کنٹریکٹ غیر ضروری پیچیدگی سے بچتا ہے۔ ٹوکن ایک سادہ کنٹریکٹ ہونا چاہیے؛ پیچیدہ کوڈ والے ٹوکن کو جائزے کے اعلیٰ معیار کی ضرورت ہوتی ہے۔ پیچیدہ کوڈ کی شناخت کے لیے Slither کے human-summary printer (opens in a new tab) کا استعمال کریں۔
- کنٹریکٹ SafeMath کا استعمال کرتا ہے۔ جو کنٹریکٹس SafeMath کا استعمال نہیں کرتے ہیں انہیں جائزے کے اعلیٰ معیار کی ضرورت ہوتی ہے۔ SafeMath کے استعمال کے لیے کنٹریکٹ کا دستی طور پر معائنہ کریں۔
- کنٹریکٹ میں صرف چند غیر ٹوکن سے متعلق فنکشنز ہیں۔ غیر ٹوکن سے متعلق فنکشنز کنٹریکٹ میں کسی مسئلے کے امکان کو بڑھاتے ہیں۔ کنٹریکٹ میں استعمال ہونے والے کوڈ کا وسیع پیمانے پر جائزہ لینے کے لیے Slither کے contract-summary printer (opens in a new tab) کا استعمال کریں۔
- ٹوکن کا صرف ایک ایڈریس ہے۔ بیلنس اپ ڈیٹس کے لیے متعدد انٹری پوائنٹس والے ٹوکنز ایڈریس کی بنیاد پر اندرونی بک کیپنگ کو توڑ سکتے ہیں (مثال کے طور پر،
balances[token_address][msg.sender]اصل بیلنس کی عکاسی نہیں کر سکتا)۔
مالک کے مراعات
- ٹوکن اپ گریڈ کے قابل نہیں ہے۔ اپ گریڈ کے قابل کنٹریکٹس وقت کے ساتھ اپنے اصول بدل سکتے ہیں۔ یہ تعین کرنے کے لیے کہ کنٹریکٹ اپ گریڈ کے قابل ہے یا نہیں، Slither کے human-summary printer (opens in a new tab) کا استعمال کریں۔
- مالک کے پاس محدود منٹنگ کی صلاحیتیں ہیں۔ بدنیتی پر مبنی یا سمجھوتہ کرنے والے مالکان منٹنگ کی صلاحیتوں کا غلط استعمال کر سکتے ہیں۔ منٹنگ کی صلاحیتوں کا جائزہ لینے کے لیے Slither کے human-summary printer (opens in a new tab) کا استعمال کریں، اور کوڈ کا دستی طور پر جائزہ لینے پر غور کریں۔
- ٹوکن روکا نہیں جا سکتا۔ بدنیتی پر مبنی یا سمجھوتہ کرنے والے مالکان روکے جانے والے ٹوکنز پر انحصار کرنے والے کنٹریکٹس کو پھنسا سکتے ہیں۔ روکے جانے والے کوڈ کی دستی طور پر شناخت کریں۔
- مالک کنٹریکٹ کو بلیک لسٹ نہیں کر سکتا۔ بدنیتی پر مبنی یا سمجھوتہ کرنے والے مالکان بلیک لسٹ والے ٹوکنز پر انحصار کرنے والے کنٹریکٹس کو پھنسا سکتے ہیں۔ بلیک لسٹنگ کی خصوصیات کی دستی طور پر شناخت کریں۔
- ٹوکن کے پیچھے کی ٹیم معروف ہے اور اسے غلط استعمال کے لیے ذمہ دار ٹھہرایا جا سکتا ہے۔ گمنام ڈیولپمنٹ ٹیموں والے کنٹریکٹس، یا جو قانونی پناہ گاہوں میں رہتے ہیں، کو جائزے کے اعلیٰ معیار کی ضرورت ہوتی ہے۔
ٹوکن کی کمی
ٹوکن کی کمی کے مسائل کے جائزے کے لیے دستی جائزے کی ضرورت ہوتی ہے۔ ان شرائط کو چیک کریں:
- کوئی بھی صارف زیادہ تر سپلائی کا مالک نہیں ہے۔ اگر چند صارفین زیادہ تر ٹوکنز کے مالک ہیں، تو وہ ٹوکن کی تقسیم کی بنیاد پر آپریشنز کو متاثر کر سکتے ہیں۔
- کل سپلائی کافی ہے۔ کم کل سپلائی والے ٹوکنز میں آسانی سے ہیرا پھیری کی جا سکتی ہے۔
- ٹوکنز چند سے زیادہ ایکسچینجز میں موجود ہیں۔ اگر تمام ٹوکنز ایک ہی ایکسچینج میں ہیں، تو ایکسچینج کا سمجھوتہ ٹوکن پر انحصار کرنے والے کنٹریکٹ سے سمجھوتہ کر سکتا ہے۔
- صارفین بڑے فنڈز یا فلیش لونز کے متعلقہ خطرات کو سمجھتے ہیں۔ ٹوکن بیلنس پر انحصار کرنے والے کنٹریکٹس کو بڑے فنڈز والے حملہ آوروں یا فلیش لونز کے ذریعے حملوں کو احتیاط سے مدنظر رکھنا چاہیے۔
- ٹوکن فلیش منٹنگ کی اجازت نہیں دیتا ہے۔ فلیش منٹنگ بیلنس اور کل سپلائی میں خاطر خواہ اتار چڑھاؤ کا باعث بن سکتی ہے، جس کے لیے ٹوکن کے آپریشن میں سخت اور جامع اوور فلو چیک کی ضرورت ہوتی ہے۔
صفحہ کی آخری تازہ کاری: 21 اکتوبر، 2025