Solidity ជួសជុលកំហុសនៅក្នុងកម្មវិធីបង្កើនប្រសិទ្ធភាព Yul ដែលប៉ះពាល់ដល់កំណែ 0.8.19–0.8.37

Solidity បានជួសជុលកំហុសកម្រិតធ្ងន់ធ្ងរទាបមួយនៅក្នុងកម្មវិធីបង្កើនប្រសិទ្ធភាព Yul ក្នុងកំណែ 0.8.38។ កំហុសនេះប៉ះពាល់ដល់កិច្ចសន្យាដែលបានចងក្រងដោយបើកកម្មវិធីបង្កើនប្រសិទ្ធភាព Yul នៅក្នុង Solidity កំណែ 0.8.19–0.8.37។ នៅក្រោមលក្ខខណ្ឌជាក់លាក់ ព័ត៌មានកត់ត្រាដែលហួសសម័យអាចធ្វើឱ្យកម្មវិធីបង្កើនប្រសិទ្ធភាព Yul ចាត់ទុកទីតាំងពីរនៅក្នុងអង្គចងចាំ ឬកន្លែងផ្ទុកថាដាច់ដោយឡែកពីគ្នា ទោះបីវាត្រួតស៊ីគ្នាក៏ដោយ។ វាអាចធ្វើឱ្យកិច្ចសន្យាបញ្ជូនតម្លៃចាស់ត្រឡប់មកវិញ ឬខកខានការសរសេរទិន្នន័យដែលចាំបាច់។ Daniel Boye បានរាយការណ៍បញ្ហានេះ ហើយក្រោយមក Surya Prakash Akula បានបង្ហាញថា វាអាចកើតឡើងពីកូដ Solidity ធម្មតា ដោយមិនចាំបាច់ប្រើ assembly ដែលបង្កប់ក្នុងកូដឡើយ។ កិច្ចសន្យាដែលបានចងក្រងដោយប្រើ `--via-ir` អាចរងផលប៉ះពាល់ក្នុងវិសាលភាពទូលំទូលាយ ខណៈដែលហានិភ័យមានកម្រិតតូចជាងនៅក្នុងលំហូរ EVM assembly លំនាំដើម។ កំហុសនេះមិនអាចកើតឡើងទេ ប្រសិនបើបិទកម្មវិធីបង្កើនប្រសិទ្ធភាព Yul។ ការត្រួតពិនិត្យរបស់ Solidity លើការចងក្រង `via-ir` ដែលបានផ្ទៀងផ្ទាត់ប្រហែល 283,000 លើក និងការចងក្រង EVM assembly 607,000 លើក មិនបានរកឃើញភាពខុសគ្នានៃ bytecode ទេ នៅពេលប្រៀបធៀបការសាងសង់ដែលមាន និងគ្មានការកែតម្រូវ។ ក្រុមការងារបញ្ជាក់ថា នេះបង្ហាញថាកំហុសនេះកើតឡើងកម្រណាស់ ប៉ុន្តែមិនធានាថាគ្មានកិច្ចសន្យាដែលបានដាក់ឱ្យប្រើប្រាស់ណាមួយរងផលប៉ះពាល់នោះទេ។ អ្នកអភិវឌ្ឍន៍គួរធ្វើបច្ចុប្បន្នភាពទៅ Solidity 0.8.38 ឬកំណែក្រោយនេះ ហើយវាយតម្លៃកិច្ចសន្យាដែលបានដាក់ឱ្យប្រើប្រាស់ និងចងក្រងដោយកំណែដែលរងផលប៉ះពាល់។ សម្រាប់អ្នកជួញដូរ នេះជាការព្រមានជាក់លាក់អំពីភាពជឿទុកចិត្តបាននៃកិច្ចសន្យាឆ្លាតវៃ មិនមែនជាភស្តុតាងនៃការរំខានទ្រង់ទ្រាយធំដល់បណ្តាញ Ethereum ឬទីផ្សារទេ។
Neutral
សេចក្តីប្រកាសនេះជាការជូនដំណឹងអំពីសុវត្ថិភាព និងការធ្វើបច្ចុប្បន្នភាពសម្រាប់អ្នកអភិវឌ្ឍន៍ មិនមែនជាភស្តុតាងនៃការកេងប្រវ័ញ្ចចន្លោះខ្សោយ ការដាច់បណ្តាញ ឬការបាត់បង់មូលនិធិនោះទេ។ Solidity វាយតម្លៃកំហុសនេះថាមានកម្រិតធ្ងន់ធ្ងរទាប ហើយបានឱ្យដឹងថា ការស្កេនការចងក្រងដែលបានផ្ទៀងផ្ទាត់ជិត 890,000 ករណី មិនបានរកឃើញភាពខុសគ្នានៃ bytecode រវាង build ដែលមាន និងគ្មានការកែតម្រូវទេ។ បញ្ហានេះក៏តម្រូវឱ្យមានលក្ខខណ្ឌជាក់លាក់ពាក់ព័ន្ធនឹង optimizer និងការកំណត់អាសយដ្ឋានឡើងវិញ ដែលកំណត់ទំហំផលប៉ះពាល់ដែលអាចកើតមាន។ ព័ត៌មានលម្អិតទាំងនេះធ្វើឱ្យផលប៉ះពាល់ភ្លាមៗក្នុងទំហំទូលំទូលាយលើ ETH ឬតម្លៃទីផ្សារគ្រីបតូទាំងមូល ទំនងជាមិនកើតឡើងទេ។ ក្នុងរយៈពេលខ្លី អ្នកជួញដូរអាចតាមដានការប្រកាសពីគម្រោងដែលប្រើ Solidity 0.8.19–0.8.37 ជាពិសេសគម្រោងដែលបានចងក្រងដោយប្រើ Yul optimizer ឬ `--via-ir`។ ប្រសិនបើពិធីការដែលមានអ្នកប្រើប្រាស់ច្រើនរាយការណ៍ថា កិច្ចសន្យាដែលបានដាក់ឱ្យដំណើរការមានភាពងាយរងគ្រោះ ឬមានការខាតបង់ដោយសារការកេងប្រវ័ញ្ច ទំនុកចិត្តអាចធ្លាក់ចុះ ហើយបណ្តាលឱ្យមានការលក់ token របស់គម្រោងជាក់លាក់ ឬការកើនឡើងនៃភាពប្រែប្រួលក្នុងរយៈពេលខ្លី។ អត្ថបទនេះមិនបានរាយការណ៍ពីហេតុការណ៍បែបនេះទេ ដូច្នេះការបកស្រាយអវិជ្ជមានទូទៅមិនមានមូលដ្ឋានគាំទ្រឡើយ។ ក្នុងរយៈពេលវែង ការកែតម្រូវនៅក្នុង Solidity 0.8.38 និងជំហានផ្ទៀងផ្ទាត់ដែលបានណែនាំ គួរតែកាត់បន្ថយការប្រឈមនឹងហានិភ័យដែលនៅសេសសល់ នៅពេលក្រុមការងារធ្វើបច្ចុប្បន្នភាព និងសាកល្បងការដាក់ឱ្យដំណើរការដែលរងផលប៉ះពាល់។ ដូចការប្រកាសអំពីភាពងាយរងគ្រោះរបស់ compiler ផ្សេងទៀតដែរ សញ្ញាទីផ្សារសំខាន់ៗគឺការបញ្ជាក់ថាមានការកេងប្រវ័ញ្ច TVL របស់ពិធីការដែលរងផលប៉ះពាល់ ការផ្អាកប្រតិបត្តិការជាបន្ទាន់ និងវិធានការដោះស្រាយរបស់គម្រោង មិនមែនគ្រាន់តែការមានបញ្ហា compiler ដែលបានជួសជុលរួចនោះទេ។ សរុបមក ព័ត៌មាននេះមានអព្យាក្រឹតភាពចំពោះទិសដៅទីផ្សារ ប៉ុន្តែពាក់ព័ន្ធនឹងការតាមដានហានិភ័យនៃកិច្ចសន្យាឆ្លាតវៃ។