پوسٹس
avatar

ری اینٹرینسی کو سمجھیں - 2026 میں بھی اسمارٹ کنٹریکٹ کا یہ بگ ملینز کو خالی کر رہا ہے، اور وہ چیکس-ایفیکٹس-انٹر ایکشن پیٹرن جو اسے کوڈ میں روک دیتا ہے ری اینٹرینسی جادو نہیں ہے۔ یہ ایک آرڈرنگ بگ ہے: آپ کا کنٹریکٹ اپنا اسٹیٹ اس وقت اپڈیٹ کرتا ہے جب کہ وہ باہری کال بنانے کے بعد ہوتا ہے، نہ کہ اس سے پہلے، اور حملہ آور وہ فاصلے کے دوران واپس کال کر دیتا ہے۔ آرڈر درست کر دیں اور بگ ختم ہو جائے گا۔ 17 جون، 2016 کو، دی ڈی او نے اسی غلطی کی وجہ سے تقریباً 3.6M ETH (تقریباً 60 ملین امریکی ڈالر، جو وقت کے لحاظ سے تمام ETH کا تقریباً 5% تھا) کھو دیا۔ اس کے نتائج میں ایتھریم ETH اور ETC میں تقسیم ہو گیا۔ دس سال بعد بھی، یہ فنڈز خالی کر رہا ہے۔ 5 مارچ، 2026 کو سولو پروٹوکول نے ری اینٹرینسی کی وجہ سے $2.73M کھو دیا، اور مئی 2026 میں آن چین پروٹوکولز پر تقریباً $52M چوری ہوئے (DeFiLlama، CryptoTimes، 31 مئی، 2026)۔ ناقص پیٹرن: بیلنس پڑھیں، کم لول کال کے ذریعے ETH بھیج دیں، پھر بیلنس صفر پر سیٹ کر دیں۔ حملہ آور کا receive() فنکشن اس صفر تک پہنچنے سے پہلے withdraw() میں دوبارہ داخل ہو جاتا ہے، اور اس طرح لُوپ جاری رکھتا ہے جب تک کنٹریکٹ خالی نہ ہو جائے۔ دو حل، جو اکٹھے استعمال کئے جائیں: چیکس-ایفیکٹس-انٹر ایکشن۔ تصدیق کریں، تمام اسٹیٹ اپڈیٹ کر دیں، پھر باہری کال آخر میں کریں۔ بیلنسز[msg.sender] = 0 کو کال سے پہلے منتقل کر دیں، اور ری اینٹرینٹ کال صفر پڑھتی ہے اور منسوخ ہو جاتی ہے۔ OpenZeppelin کا nonReentrant گارڈ۔ اسٹورج ميوٹکس (NOT_ENTERED سے ENTERED تک) جو ری اینٹری پر منسوخ ہو جاتا ہے۔ اسے استعمال کریں اور CEI بھی استعمال کریں، صرف ایک نہیں۔ دو چیزیں جنہیں زائد تر ڈوولپرز اب بھی غلط سمجھتے ہیں۔ 1. .transfer() اب شیرد نہیں رہا: EIP-1884 نے 2019 میں SLOAD gas بڑھا دیا تو 2300 gas stipend کا محفوظ فرض نہ رہا۔ CEI کے ساتھ .call{value:}("") استعمال کریں۔ 2. رِید-اوںلِ رِاینٹرینسِ سٹینڈرڈ گارڈ کو بائypass کرتا ہے، کیونکہ اپڈیٹ کے دوران وِو فنکشن پڑھنے سے خراب اسٹیٹ واپس آتا ہے اور قِمَت آرکل (dForce, $3.64M) کو زہر دے سکتا ہے۔ صرف تعلیمی مقاصد کے لئے۔ مالی مشورہ نہیں۔ روزانہ انگائزز کے لئے فالو کریں - جہاں بلاکچین AI سے ملتا ہے، ایک خوشگوار سوائپ پر۔ #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation

یہ مواد صرف معلوماتی اور تعلیمی مقاصد کے لیے ہے۔ اس میں فریقِ ثالث کے تجزیے، اسپانسر شدہ مواد، یا تشہیری مواد شامل ہو سکتا ہے جس کے لیے تخلیق کار کو معاوضہ مل سکتا ہے۔ اس فیڈ میں موجود کوئی بھی چیز سرمایہ کاری کا مشورہ یا منافع کی ضمانت نہیں ہے۔ آپ اپنے سرمایہ کاری کے فیصلوں کے لیے خود ذمہ دار ہیں۔ تجارت سے پہلے ہمیشہ اپنی تحقیق کریں اور احتیاط برتیں۔ ہم فریقِ ثالث کی معلومات کی درستگی کی ضمانت نہیں دیتے اور کسی بھی نقصان کے ذمہ دار نہیں ہیں۔ ماضی کی کارکردگی مستقبل کے نتائج کی ضمانت نہیں ہے۔ براہ کرم تفصیلات کے لیے ہماری کمیونٹی شرائط اور خطرے کے انکشاف کا بیان ملاحظہ کریں۔

avatarاپنا جواب پوسٹ کریں۔

تبصرہ