หัวใจของการโจมตีอยู่ที่จุดเชื่อมต่อระหว่างตรรกะการตรวจสอบ Zero-Knowledge Proof (ZK Proof) และกระบวนการชำระเงินบน Ethereum Layer 1 ตามรายงานของ CertiK ฟังก์ชันการตรวจสอบหนึ่งในสัญญาตรวจสอบเพียง ส่วนเริ่มต้น ของ Proof ที่ถูกส่งเข้ามา ทำให้พารามิเตอร์ที่ใช้ในการอนุมัติการถอนโทเค็นไม่เคยถูกตรวจสอบอย่างสมบูรณ์ นั่นหมายความว่าแฮกเกอร์สามารถสร้าง Proof ที่ผ่านการตรวจสอบขั้นต้นได้ แต่ภายในกลับมีคำสั่งถอนเงินที่ถูกซ่อนไว้ในส่วนลึกของข้อมูล
ต่อมา SlowMist บริษัทความปลอดภัยบล็อกเชน ได้วิเคราะห์และพบต้นตอของช่องโหว่ที่ ขีดจำกัดการวนซ้ำในกระบวนการชำระเงินบน L1 ของสัญญา RollupV3 แฮกเกอร์ใช้ประโยชน์จากความต่างระหว่างค่า numRealTxs และ decoded_slots ทำให้สามารถส่งช่องข้อมูลว่างเปล่า 31 ช่องไปยัง L2 State Root ผ่าน ZK Proof โดยหลีกเลี่ยงการตรวจสอบเต็มรูปแบบที่เลเยอร์สัญญา L1 ได้ ในการโจมตีครั้งนี้ แฮกเกอร์สร้าง ZK-Rollup Proof ทั้งหมด 14 ชิ้น โดย 7 ชิ้นสุดท้ายแต่ละชิ้นใช้ดูดสินทรัพย์ต่างชนิดกันออกจากสัญญา
สิ่งที่ทำให้เรื่องนี้พิเศษคือการโจมตีนั้น ไม่สามารถหยุดยั้งได้ตั้งแต่ต้น – โดยการออกแบบของตัวมันเอง Aztec Connect ถูกยุติการใช้งานในเดือนมีนาคม 2023 และเปิดโอกาสให้ผู้ใช้ถอนเงินมานานกว่าหนึ่งปี ต่อมาในปี 2024 Aztec Labs ได้ก้าวไปอีกขั้นด้วยการ สละกุญแจผู้ดูแลและสิทธิ์การควบคุมทั้งหมด อย่างจงใจ ทำให้สัญญากลายเป็น Immutable อย่างสมบูรณ์ ไม่มีกลไกให้อัปเกรด ไม่มีเจ้าของ และที่สำคัญที่สุดคือ ไม่มีฟังก์ชันหยุดฉุกเฉิน (Pause)
“Aztec Connect ถูกยุติการใช้งานเมื่อ 3 ปีที่แล้ว Aztec Labs ไม่ได้ถือกุญแจผู้ดูแลหรือมีอำนาจควบคุมใดๆ เหนือระบบอีกต่อไป ไม่สามารถหยุดหรืออัปเกรดได้” ทีมงานระบุบน X หลังจากเหตุการณ์ไม่กี่ชั่วโมง พร้อมยืนยันว่าเครือข่าย Aztec Network และโทเค็น AZTEC ในปัจจุบันไม่ได้รับผลกระทบ แต่พวกเขาก็ยอมรับว่าไม่มีกลไกใด ๆ ที่จะกู้คืนเงินที่สูญเสียไปกลับคืนมาได้
แม้จะมีช่วงเวลาให้ถอนเงินที่ยาวนาน แต่ก็ยังมีทรัพย์สินมูลค่ากว่า 2.1 ล้านดอลลาร์ที่ถูกทิ้งค้างอยู่ในสัญญาเก่าในขณะที่เกิดการโจมตีขึ้น เงินเหล่านั้นตกอยู่ในสภาพที่เรียกว่า 'ห้องนิรภัยที่ไร้กุญแจ' ไม่มีใครสามารถนำออกมาได้อย่างถูกต้องหากไม่ใช้ระบบ Rollup ที่เลิกใช้แล้ว และเมื่อเกิดช่องโหว่ ก็ไม่มีใครสามารถเข้าไปแทรกแซงอะไรได้เลย
การโจมตี Aztec Connect คือตัวอย่างที่สมบูรณ์แบบของปัญหา "Zombie Contract" ในโลก DeFi สัญญาอัจฉริยะที่ไม่สามารถแก้ไขได้จะไม่หายไปเฉย ๆ เมื่อโปรเจกต์ปิดตัวลง พวกมันจะยังคงอยู่บนบล็อกเชน พร้อมด้วยตรรกะและมูลค่าที่มีอยู่ภายในตัวมัน และมักจะเก็บทรัพย์สินของผู้ใช้ไว้ตลอดกาล เมื่อกุญแจผู้ดูแลถูกทำลายเพื่อเป้าหมายในการกระจายอำนาจที่สมบูรณ์ สัญญาก็จะกลายเป็นกับดักน้ำผึ้ง (Honeypot) ที่ถาวร ช่องโหว่ใด ๆ ที่ยังไม่ถูกค้นพบจะกลายเป็นระเบิดเวลาที่สามารถถูกจุดชนวนได้ในอีกหลายปีให้หลัง โดยไม่มีทางแก้ไขอะไรได้เลย
ความเสี่ยงนี้เกิดขึ้นอย่างไม่สมมาตร โปรเจกต์ที่สละสิทธิ์การควบคุมจะได้รับความน่าเชื่อถือว่าไม่มีประตูหลัง ในขณะที่ผู้ใช้ที่ไม่สามารถถอนทรัพย์สินออกมาได้ทันในช่วงเวลาเปลี่ยนผ่าน กลับต้องเป็นผู้แบกรับความเสียหายทั้งหมด กรณีของ Aztec แสดงให้เห็นว่าต่อให้เวลาผ่านไปสามปี เงินนับล้านดอลลาร์ก็ยังสามารถติดอยู่ในสัญญาที่ทุกคนคิดว่ามันตายไปแล้วได้
สำหรับทีมพัฒนาโปรโตคอล DeFi ที่วางแผนจะยุติการใช้งาน บทเรียนนี้ชัดเจนมาก ก่อนที่จะสละกุญแจผู้ดูแล โปรเจกต์จำเป็นต้อง บังคับถอนทรัพย์สินให้เสร็จสมบูรณ์ทั้งหมด หรือไม่ก็ต้องใช้กลไกฉุกเฉินแบบมีกำหนดเวลา (Timelock) ที่ไม่ต้องพึ่งการควบคุมระยะยาว หากปราศจากมาตรการป้องกันเหล่านี้ โครงสร้างพื้นฐานที่ถูกทิ้งร้างแต่ไม่สามารถแก้ไขได้ ก็จะดึงดูดผู้โจมตีที่พร้อมจะค้นหาจุดบกพร่องที่ไม่มีวันถูกแก้ไขได้อย่างหลีกเลี่ยงไม่ได้
Comments
0 comments