Solidity 0.8.19–0.8.37 সংস্করণগুলোকে প্রভাবিত করা Yul অপটিমাইজারের একটি বাগ ঠিক করেছে
Solidity 0.8.38 সংস্করণে কম-তীব্রতার একটি Yul optimizer বাগ ঠিক করেছে। Solidity 0.8.19–0.8.37-এ Yul optimizer চালু রেখে কম্পাইল করা কনট্র্যাক্টগুলো এই বাগে প্রভাবিত হতে পারে। নির্দিষ্ট পরিস্থিতিতে, পুরোনো bookkeeping-এর কারণে Yul optimizer মেমরি বা স্টোরেজের দুটি অবস্থানকে আলাদা বলে ধরে নিতে পারে, যদিও বাস্তবে সেগুলো পরস্পরের সঙ্গে মিলে যায়। এর ফলে কনট্র্যাক্ট পুরোনো মান ফেরত দিতে পারে বা প্রয়োজনীয় কোনো write বাদ পড়তে পারে।
Daniel Boye সমস্যাটি জানান। পরে Surya Prakash Akula দেখান যে inline assembly ছাড়াই সাধারণ Solidity কোড থেকে এটি ঘটতে পারে। `--via-ir` দিয়ে কম্পাইল করা কনট্র্যাক্টগুলো বিস্তৃতভাবে প্রভাবিত হতে পারে; ডিফল্ট evm assembly pipeline-এ ঝুঁকির পরিধি তুলনামূলকভাবে সীমিত। Yul optimizer বন্ধ থাকলে এই বাগ ঘটতে পারে না।
প্রায় 283,000টি যাচাইকৃত `via-ir` কম্পাইলেশন এবং 607,000টি evm assembly কম্পাইলেশন পরীক্ষা করে, সংশোধনীসহ ও সংশোধনী ছাড়া build-এর bytecode-এ কোনো পার্থক্য পায়নি Solidity। দলের মতে, এতে বোঝা যায় বাগটি বিরল; তবে এতে নিশ্চিত হওয়া যায় না যে কোনো deployed কনট্র্যাক্টই প্রভাবিত নয়। ডেভেলপারদের Solidity 0.8.38 বা পরবর্তী সংস্করণে আপগ্রেড করা এবং প্রভাবিত সংস্করণে কম্পাইল করা deployed কনট্র্যাক্টগুলো মূল্যায়ন করা উচিত। ট্রেডারদের জন্য এটি smart-contract নির্ভরযোগ্যতা নিয়ে নির্দিষ্ট সতর্কতা—Ethereum নেটওয়ার্ক বা বাজারে ব্যাপক বিঘ্নের প্রমাণ নয়।
Neutral
এই ঘোষণাটি নিরাপত্তা ও ডেভেলপারদের আপগ্রেড-সংক্রান্ত বিজ্ঞপ্তি; এটি কোনো এক্সপ্লয়েট, নেটওয়ার্ক বিভ্রাট বা তহবিল হারানোর প্রমাণ নয়। Solidity ত্রুটিটিকে কম ঝুঁকির বলে মূল্যায়ন করেছে এবং জানিয়েছে, প্রায় ৮৯০,০০০টি যাচাইকৃত কম্পাইলেশন স্ক্যান করে ফিক্সসহ ও ফিক্স ছাড়া বিল্ডগুলোর মধ্যে বাইটকোডে কোনো পার্থক্য পাওয়া যায়নি। সমস্যাটি ঘটার জন্য অপ্টিমাইজার ও ঠিকানা পুনর্নির্ধারণ-সংক্রান্ত নির্দিষ্ট শর্তও পূরণ হতে হয়, যা এর সম্ভাব্য বিস্তার সীমিত করে। এসব কারণে ETH বা সামগ্রিক ক্রিপ্টো দামে তাৎক্ষণিক, বাজারজুড়ে প্রভাব পড়ার সম্ভাবনা কম।
স্বল্প মেয়াদে, ব্যবসায়ীরা Solidity 0.8.19–0.8.37 ব্যবহার করা প্রকল্পগুলোর ঘোষণার দিকে নজর রাখতে পারেন, বিশেষ করে যেগুলো Yul অপ্টিমাইজার বা `--via-ir` দিয়ে কম্পাইল করা হয়েছে। বহুল ব্যবহৃত কোনো প্রোটোকল যদি ঝুঁকিপূর্ণ ডিপ্লয় করা কনট্র্যাক্ট বা কাজে লাগানো সম্ভব এমন ক্ষতির কথা জানায়, তাহলে আস্থা দুর্বল হতে পারে এবং সংশ্লিষ্ট প্রকল্পের টোকেন বিক্রি বা সাময়িকভাবে অস্থিরতা বেড়ে যেতে পারে। এই নিবন্ধে এমন কোনো ঘটনার কথা জানানো হয়নি, তাই সামগ্রিকভাবে বাজারকে নেতিবাচকভাবে দেখার পক্ষে যথেষ্ট ভিত্তি নেই।
দীর্ঘ মেয়াদে, Solidity 0.8.38-এর ফিক্স এবং সুপারিশকৃত যাচাইয়ের ধাপগুলো দলগুলো আপগ্রেড ও প্রভাবিত ডিপ্লয়মেন্ট পরীক্ষা করার সঙ্গে সঙ্গে চলমান ঝুঁকি কমাবে বলে আশা করা যায়। কম্পাইলার-সংক্রান্ত অন্যান্য দুর্বলতা প্রকাশের মতোই, বাজারের মূল সংকেত হলো নিশ্চিত এক্সপ্লয়েট, প্রভাবিত প্রোটোকলের TVL, জরুরি বিরতি এবং প্রকল্পের প্রতিকারমূলক পদক্ষেপ—শুধু প্যাচ করা কম্পাইলার-সমস্যাটির অস্তিত্ব নয়। সামগ্রিকভাবে, বাজারের গতিপথের জন্য খবরটি নিরপেক্ষ, তবে স্মার্ট-কনট্র্যাক্ট ঝুঁকি পর্যবেক্ষণের ক্ষেত্রে প্রাসঙ্গিক।