
একটি চুক্তি যা একটি ব্যর্থ কলের পরেও চলতে থাকে, আজকের দিনে এটি নির্ভরযোগ্যভাবে বুঝতে পারে না যে কল করা পক্ষটি ইচ্ছাকৃতভাবে রিভার্ট করেছে নাকি শুধুমাত্র গ্যাস শেষ হয়ে গেছে—এটি প্রেরক বেছে নিয়েছিল। এই ফাঁকই অপর্যাপ্ত গ্যাস গ্রীফিং-এর মূল কারণ, এবং একটি নতুন খসড়া প্রস্তাব EVM-এর স্তরে এটি বন্ধ করার চেষ্টা করছে। সোমবার Ethereum Magicians-এ আলোচনার জন্য খোলা EIP-8456, 2 গ্যাসের জন্য 0xA5-এর সম্ভাব্য opcode-এ CALLSTATUS নামক একটি নির্দেশনা যোগ করে। এটি বর্তমান ফ্রেমের সর্বশেষ call বা create অপারেশনের সম্পন্নতা অবস্থা তিনটি bit-এর মাধ্যমে পুশ করে। Bit 0-এর অর্থ revert, bit 1-এর অর্থ গ্যাস শেষ হওয়াসহ কোনো exceptional halt, এবং bit 2-এর অর্থ নিচের কোনো frame-এর মধ্যে halt হয়েছে। লেখকটি উল্লেখ করেন যে, আজকের একমাত্রপ্রমাণ হল call-এরপর gasleft() arithmetic, এবংপ্রতিটি repricing fork-এইসীমাগুলোভাঙিয়েছে। EIP-8037-এরপ্রস্তাবিতদুইমাত্রিকগ্যাসএইarithmeticকেআরওদুর্বলকরেতুলবে,কারণএটিরreservoirGASopcode-এরমধ্যদিয়েদৃশ্যমাননয়। তাহলেতৃতীয়bitটিকেকেনযোগকরাহল? অধিকাংশবাস্তবcallগুলিproxy, OpenZeppelin-এরfunctionCallwrapper, Multicall3বাERC-1271signaturechecker-এরমধ্যদিয়েযায়। যদিশুধুমাত্রসরাসরিকলকৃতপক্ষেরশেষঅবস্থাটিইপ্রতিবেদনকরাহয়,তবেএকটিওয়াপারযাout-of-gashaltধরেনিয়েকারণসহrevertকরবে,সেটিসরাসরিভাবেrevertহওয়ারমতোদেখাবে। খসড়াটিএকটিস্টিকিফ্ল্যাগবজায়রাখেযাপ্রতিটিফ্রেমউপরেযায়,যাতেশুধুমাত্রগ্যাসনিয়ন্ত্রণকারীপ্রেরককখনওকলারকেসাধারণrevertপড়তেদিতেপারবেনা। এটিকারণগুলিনয়,ফলাফলগুলিকেপ্রতিবেদনকরে,এবংএকজনcalleeঅভিপ্রায়ভাবেINVALIDদিয়েহল্টতৈরিকরতেপারবে। এটিশুধুমাত্রএটিরশিপিং-এরপরলিখিতকোডকেসুরক্ষিতকরবে,কারণডিপ্লয়কৃতকনট্রাক্টগুলিএটিreadকরবেনা। এখনওকোনোবহিরঙ্গনপরীক্ষা(external review)নেই, opcode-এরসংখ্যাএখনওখোলা,এবং58টিলিস্টকৃতকেসগুলিরজন্যপ্রোটোটাইপএবংটেস্টগুলিঅপেক্ষায়আছে। লিঙ্ক - https://t.co/KnByUBgWrY
