สัญญาอัจฉริยะที่ถูกทิ้งร้างจากโปรโตคอล DeFi ที่ล้มละลายอย่าง Aztec Connect ถูกโจมตีเพื่อดูดเงิน 2 ล้านดอลลาร์ในสัปดาห์นี้ — หลังจากที่แพลตฟอร์มหยุดดำเนินงานไปมากกว่าสามปี เหตุการณ์นี้ตอกย้ำถึงอันตรายที่คงอยู่ในการเงินแบบกระจายศูนย์: เมื่อสัญญาถูกปรับใช้บนบล็อกเชนแล้ว จะไม่สามารถแก้ไขหรือทำลายได้ ทำให้เป็นเป้าหมายที่คงอยู่สำหรับผู้โจมตี แม้หลังจากโปรเจกต์นั้นหายไปแล้วก็ตาม
วิธีการโจมตี
ผู้โจมตีดูดเงินประมาณ 2 ล้านดอลลาร์จากสัญญาที่ไม่ถูกแตะต้องตั้งแต่ Aztec Connect หยุดดำเนินงานในปี 2024 เนื่องจากสัญญาไม่สามารถเปลี่ยนแปลงได้ — ซึ่งเป็นคุณสมบัติหลักของโปรโตคอล DeFi หลายตัว — จึงไม่มีใครสามารถอัปเดตเพื่อล็อกเงินหรือปิดการทำงานหลังจากปิดตัวได้ การโจมตีดูเหมือนจะใช้ประโยชน์จากช่องโหว่ที่รู้จัก หรือเพียงแค่ถอนเงินที่ยังคงเข้าถึงได้เนื่องจากสิทธิ์ดั้งเดิมของสัญญา
ทำไมสัญญาที่ไม่สามารถเปลี่ยนแปลงได้จึงเป็นความเสี่ยง
ความไม่สามารถเปลี่ยนแปลงได้มักถูกยกย่องว่าเป็นคุณสมบัติด้านความปลอดภัยในโค้ดบล็อกเชน: ไม่มีใครสามารถเปลี่ยนกฎได้หลังจากการปรับใช้ แต่ลักษณะเดียวกันนี้กลับกลายเป็นภาระเมื่อโปรเจกต์ปิดตัวลง หากสัญญาถือเงินของผู้ใช้ ให้สิทธิ์การถอน หรือโต้ตอบกับโปรโตคอลอื่น ฟังก์ชันเหล่านั้นจะยังคงทำงานตลอดไป กรณีของ Aztec Connect เป็นตัวอย่างที่ชัดเจน: ทีมงานเดินจากไป แต่สัญญายังคงทำงาน — และในที่สุดผู้โจมตีก็พบมัน
ช่องว่างในกลยุทธ์การออกจากระบบ
การโจมตีนี้ชี้ให้เห็นถึงสิ่งที่ขาดหายไปในแผนการปิดตัวของโปรเจกต์ DeFi หลายแห่ง มีโปรโตคอลไม่กี่ตัวที่ออกแบบมาเพื่อปิดการทำงานของสัญญาอัจฉริยะอย่างสะอาดและไม่สามารถย้อนกลับได้ ขั้นตอนง่ายๆ — เช่น การเพิ่มฟังก์ชันหยุดชั่วคราว ตัวเลือกทำลายตัวเอง (ในกรณีที่รองรับ) หรือกลไกการโยกย้าย — สามารถลดความเสี่ยงได้ แต่ต้องมีการมองการณ์ไกลในระหว่างการพัฒนา ในกรณีของ Aztec Connect ไม่มีมาตรการป้องกันดังกล่าวเมื่อโปรเจกต์สิ้นสุดลง
การสูญเสีย 2 ล้านดอลลาร์นี้ไม่น่าจะสามารถเรียกคืนได้ เนื่องจากบล็อกเชนบังคับใช้ตรรกะสัญญาดั้งเดิม จึงไม่มีหน่วยงานกลางที่จะย้อนกลับธุรกรรมหรือดึงเงินคืน เงินหายไปแล้ว และผู้โจมตียังคงไม่เปิดเผยตัวตน
สิ่งที่ DeFi สามารถเรียนรู้ได้
หน่วยงานกำกับดูแลและนักวิจัยด้านความปลอดภัยเตือนมาหลายปีแล้วว่าสัญญาที่ถูกทิ้งร้างสร้างระเบิดเวลาที่รอการระเบิด การโจมตี Aztec Connect ไม่ใช่ครั้งแรก — และอาจไม่ใช่ครั้งสุดท้าย — ของตัวอย่างสัญญาที่หลับใหลถูกปล้น คำถามตอนนี้คือว่านักพัฒนาจะปฏิบัติต่อความไม่สามารถเปลี่ยนแปลงได้ของสัญญาเป็นคุณสมบัติที่ต้องปิดหลังจากโปรเจกต์ตาย หรือจะยังคงมองการปิดตัวว่าเป็นการปิดเว็บไซต์เท่านั้น หากไม่มีการเปลี่ยนแปลงในวิธีที่โปรโตคอลวางแผนสำหรับจุดจบของตัวเอง การสูญเสียที่คล้ายกันก็มีแนวโน้มจะเกิดขึ้นอีก




