Solidity نے Yul آپٹیمائزر کا وہ بگ ٹھیک کر دیا ہے جو 0.8.19–0.8.37 ورژنز کو متاثر کرتا ہے
Solidity نے ورژن 0.8.38 میں کم شدت والا Yul optimizer بگ درست کیا ہے۔ یہ بگ Solidity 0.8.19–0.8.37 میں Yul optimizer فعال رکھ کر کمپائل کیے گئے کنٹریکٹس کو متاثر کرتا ہے۔ مخصوص حالات میں، پرانی bookkeeping کی وجہ سے Yul optimizer میموری یا اسٹوریج کے دو مقامات کو الگ سمجھ سکتا ہے، حالانکہ وہ حقیقت میں ایک دوسرے پر متداخل ہوتے ہیں۔ اس سے کنٹریکٹ پرانی قدر واپس کر سکتا ہے یا ضروری لکھائی نہیں کر پاتا۔
یہ مسئلہ Daniel Boye نے رپورٹ کیا، اور بعد میں Surya Prakash Akula نے دکھایا کہ یہ inline assembly کے بغیر عام Solidity کوڈ سے بھی پیدا ہو سکتا ہے۔ `--via-ir` کے ذریعے کمپائل کیے گئے کنٹریکٹس وسیع پیمانے پر متاثر ہو سکتے ہیں؛ جبکہ ڈیفالٹ evm assembly pipeline میں اس کا دائرۂ اثر محدود ہے۔ Yul optimizer غیر فعال ہو تو یہ بگ پیش نہیں آ سکتا۔
Solidity کی جانب سے تقریباً 283,000 تصدیق شدہ `via-ir` کمپائلیشنز اور 607,000 evm assembly کمپائلیشنز کی جانچ میں، فکس کے ساتھ اور بغیر بنائے گئے builds کے bytecode میں کوئی فرق نہیں ملا۔ ٹیم کے مطابق اس سے ظاہر ہوتا ہے کہ یہ بگ نایاب ہے، لیکن یہ اس بات کی ضمانت نہیں کہ کوئی deployed کنٹریکٹ متاثر نہیں ہوا۔ ڈیولپرز کو Solidity 0.8.38 یا اس کے بعد کے ورژن پر اپ گریڈ کرنا چاہیے اور متاثرہ ورژنز سے کمپائل کیے گئے deployed کنٹریکٹس کا جائزہ لینا چاہیے۔ ٹریڈرز کے لیے یہ smart-contract reliability سے متعلق ایک مخصوص انتباہ ہے، نہ کہ Ethereum نیٹ ورک یا مارکیٹ میں بڑے پیمانے پر خلل کا ثبوت۔
Neutral
یہ اعلان سکیورٹی اور ڈویلپرز کے لیے اپ گریڈ سے متعلق اطلاع ہے، کسی استحصال، نیٹ ورک کی بندش یا فنڈز کے نقصان کا ثبوت نہیں۔ Solidity اس بگ کو کم شدت کا قرار دیتا ہے اور کہتا ہے کہ تقریباً 890,000 تصدیق شدہ کمپائلیشنز کے اسکین میں فکس والے اور فکس کے بغیر بنائے گئے بلڈز کے بائٹ کوڈ میں کوئی فرق نہیں ملا۔ اس مسئلے کے لیے آپٹمائزر اور ایڈریس کی دوبارہ تخصیص سے متعلق مخصوص شرائط بھی درکار ہیں، جس سے اس کے ممکنہ دائرۂ اثر محدود ہو جاتا ہے۔ ان تفصیلات کے باعث ETH یا وسیع تر کرپٹو قیمتوں پر فوری اور پورے بازار کو متاثر کرنے والا اثر غیر متوقع ہے۔
قلیل مدت میں، ٹریڈرز ان منصوبوں کے انکشافات پر نظر رکھ سکتے ہیں جو Solidity 0.8.19–0.8.37 استعمال کرتے ہیں، بالخصوص وہ جنہیں Yul optimizer یا `--via-ir` کے ساتھ کمپائل کیا گیا ہو۔ اگر وسیع پیمانے پر استعمال ہونے والا کوئی پروٹوکول کمزور ڈپلائے کیے گئے کنٹریکٹس یا قابلِ استحصال نقصانات کی اطلاع دے، تو اعتماد کمزور ہو سکتا ہے اور اس مخصوص منصوبے کے ٹوکن کی فروخت یا عارضی طور پر اتار چڑھاؤ میں اضافہ ہو سکتا ہے۔ اس مضمون میں ایسا کوئی واقعہ رپورٹ نہیں ہوا، اس لیے مجموعی طور پر مندی کی تشریح کی تائید نہیں ہوتی۔
طویل مدت میں، Solidity 0.8.38 میں موجود فکس اور تجویز کردہ تصدیقی اقدامات سے جاری خطرے میں کمی آنی چاہیے، کیونکہ ٹیمیں اپ گریڈ کریں گی اور متاثرہ ڈپلائمنٹس کی جانچ کریں گی۔ کمپائلر کی کمزوریوں کے دیگر انکشافات کی طرح، بازار کے اہم اشارے تصدیق شدہ استحصال، متاثرہ پروٹوکول کا TVL، ہنگامی توقف اور منصوبوں کی اصلاحی کارروائیاں ہیں—صرف یہ حقیقت نہیں کہ کمپائلر کے مسئلے کا پیچ جاری کیا گیا ہے۔ مجموعی طور پر، یہ خبر بازار کی سمت کے حوالے سے غیر جانب دار ہے، تاہم اسمارٹ کنٹریکٹ کے خطرات کی نگرانی کے لیے اہم ہے۔