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 แบบ inline สัญญาที่คอมไพล์ด้วย `--via-ir` อาจได้รับผลกระทบในวงกว้าง ส่วนการใช้กระบวนการคอมไพล์ EVM assembly แบบค่าเริ่มต้นมีขอบเขตความเสี่ยงแคบกว่า บั๊กนี้จะไม่เกิดขึ้นเมื่อปิดใช้ตัวปรับแต่งประสิทธิภาพ Yul การตรวจสอบของ Solidity ซึ่งครอบคลุมการคอมไพล์ `via-ir` ที่ผ่านการยืนยันประมาณ 283,000 รายการ และการคอมไพล์ EVM assembly 607,000 รายการ ไม่พบความแตกต่างของไบต์โค้ดเมื่อเปรียบเทียบการสร้างโปรแกรมที่มีและไม่มีการแก้ไข ทีมงานระบุว่าสิ่งนี้บ่งชี้ว่าบั๊กเกิดขึ้นได้ยาก แต่ไม่ได้รับประกันว่าจะไม่มีสัญญาที่นำไปใช้งานแล้วได้รับผลกระทบ นักพัฒนาควรอัปเกรดเป็น Solidity 0.8.38 หรือใหม่กว่า และประเมินสัญญาที่นำไปใช้งานแล้วซึ่งคอมไพล์ด้วยเวอร์ชันที่ได้รับผลกระทบ สำหรับเทรดเดอร์ นี่คือการแจ้งเตือนเฉพาะเรื่องความน่าเชื่อถือของสัญญาอัจฉริยะ ไม่ใช่หลักฐานว่ามีการหยุดชะงักในวงกว้างของเครือข่าย Ethereum หรือตลาด
Neutral
ประกาศนี้เป็นการแจ้งเตือนด้านความปลอดภัยและการอัปเกรดสำหรับนักพัฒนา ไม่ใช่หลักฐานว่ามีการโจมตีช่องโหว่ เครือข่ายขัดข้อง หรือเงินสูญหาย Solidity จัดระดับข้อบกพร่องนี้ว่ามีความรุนแรงต่ำ และระบุว่าการสแกนชุดคอมไพล์ที่ได้รับการยืนยันเกือบ 890,000 รายการไม่พบความแตกต่างของไบต์โค้ดระหว่างบิลด์ที่มีและไม่มีการแก้ไข นอกจากนี้ ปัญหานี้ยังต้องอาศัยเงื่อนไขเฉพาะเกี่ยวกับตัวปรับแต่งประสิทธิภาพและการกำหนดที่อยู่ใหม่ ซึ่งจำกัดขอบเขตผลกระทบที่อาจเกิดขึ้น รายละเอียดเหล่านี้ทำให้ไม่น่าจะส่งผลทันทีในวงกว้างต่อ ETH หรือราคาตลาดคริปโตโดยรวม ในระยะสั้น เทรดเดอร์อาจติดตามประกาศจากโครงการที่ใช้ Solidity 0.8.19–0.8.37 โดยเฉพาะโครงการที่คอมไพล์ด้วยตัวปรับแต่งประสิทธิภาพ Yul หรือใช้ `--via-ir` หากโปรโตคอลที่มีผู้ใช้งานจำนวนมากรายงานว่าสัญญาที่นำไปใช้งานแล้วมีช่องโหว่ หรือเกิดความสูญเสียจากการถูกโจมตี ความเชื่อมั่นอาจลดลงและทำให้เกิดการขายโทเคนของบางโครงการ หรือความผันผวนเพิ่มขึ้นชั่วคราว บทความนี้ไม่ได้รายงานเหตุการณ์เช่นนั้น จึงไม่มีเหตุผลรองรับการตีความเชิงลบในวงกว้าง ในระยะยาว การแก้ไขใน Solidity 0.8.38 และขั้นตอนการตรวจสอบที่แนะนำควรช่วยลดความเสี่ยงที่ยังคงมีอยู่ เมื่อทีมต่าง ๆ อัปเกรดและทดสอบการนำไปใช้งานที่ได้รับผลกระทบ เช่นเดียวกับการเปิดเผยช่องโหว่ของคอมไพเลอร์กรณีอื่น สัญญาณตลาดที่สำคัญคือการยืนยันว่ามีการโจมตี มูลค่ารวมที่ล็อกไว้ (TVL) ของโปรโตคอลที่ได้รับผลกระทบ การหยุดระบบฉุกเฉิน และการแก้ไขของโครงการ ไม่ใช่เพียงการมีปัญหาในคอมไพเลอร์ที่ได้รับการแก้ไขแล้ว โดยรวมแล้ว ข่าวนี้ไม่มีทิศทางชี้นำตลาด แต่มีความสำคัญต่อการติดตามความเสี่ยงของสัญญาอัจฉริยะ