บริษัทรักษาความปลอดภัย CertiK เป็นผู้ตรวจพบธุรกรรมต้องสงสัยครั้งแรกจากสัญญา RollupProcessorV3 ซึ่งเป็นเราเตอร์หลักของระบบ Rollup ที่เลิกใช้แล้ว โดยระบุตัวตนกระเป๋าเงินของแฮกเกอร์ได้ว่า 0x0f18d8b44a740272f0be4d08338d2b165b7edd17 มูลค่าความเสียหายทั้งหมดถูกประเมินโดย CertiK ไว้ที่ประมาณ 2.19 ล้านดอลลาร์ ขณะที่ Aztec Labs ระบุตัวเลขไว้ใกล้เคียง 2.1 ล้านดอลลาร์ ทรัพย์สินที่ถูกขโมยประกอบด้วย 909 ETH, 270,000 DAI, 167 wstETH และเหรียญ Yearn Vault Tokens อีกจำนวนหนึ่ง เช่น yvDAI, yvWETH และ yvLUSD
หัวใจของการโจมตีอยู่ที่จุดเชื่อมต่อระหว่างตรรกะการตรวจสอบ 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) ที่ไม่ต้องพึ่งการควบคุมระยะยาว หากปราศจากมาตรการป้องกันเหล่านี้ โครงสร้างพื้นฐานที่ถูกทิ้งร้างแต่ไม่สามารถแก้ไขได้ ก็จะดึงดูดผู้โจมตีที่พร้อมจะค้นหาจุดบกพร่องที่ไม่มีวันถูกแก้ไขได้อย่างหลีกเลี่ยงไม่ได้
บริษัทรักษาความปลอดภัย CertiK เป็นผู้ตรวจพบธุรกรรมต้องสงสัยครั้งแรกจากสัญญา RollupProcessorV3 ซึ่งเป็นเราเตอร์หลักของระบบ Rollup ที่เลิกใช้แล้ว โดยระบุตัวตนกระเป๋าเงินของแฮกเกอร์ได้ว่า 0x0f18d8b44a740272f0be4d08338d2b165b7edd17 มูลค่าความเสียหายทั้งหมดถูกประเมินโดย CertiK ไว้ที่ประมาณ 2.19 ล้านดอลลาร์ ขณะที่ Aztec Labs ระบุตัวเลขไว้ใกล้เคียง 2.1 ล้านดอลลาร์ ทรัพย์สินที่ถูกขโมยประกอบด้วย 909 ETH, 270,000 DAI, 167 wstETH และเหรียญ Yearn Vault Tokens อีกจำนวนหนึ่ง เช่น yvDAI, yvWETH และ yvLUSD
หัวใจของการโจมตีอยู่ที่จุดเชื่อมต่อระหว่างตรรกะการตรวจสอบ 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) ที่ไม่ต้องพึ่งการควบคุมระยะยาว หากปราศจากมาตรการป้องกันเหล่านี้ โครงสร้างพื้นฐานที่ถูกทิ้งร้างแต่ไม่สามารถแก้ไขได้ ก็จะดึงดูดผู้โจมตีที่พร้อมจะค้นหาจุดบกพร่องที่ไม่มีวันถูกแก้ไขได้อย่างหลีกเลี่ยงไม่ได้