โฆษณาบน KripZen — นำแบรนด์ของคุณไปอยู่ต่อหน้าผู้ชมคริปโตทั่วโลกติดต่อเรา →

รายการอภิธานศัพท์

Reentrancy Attack (การโจมตีแบบเรียกซ้ำ)

วอลเล็ตและความปลอดภัย

Reentrancy attack เรียกกลับเข้าสัญญาก่อนที่ยอดคงเหลือจะถูกอัปเดต ทำให้ผู้โจมตีถอนเงินซ้ำได้หลายรอบในธุรกรรมเดียว

คำจำกัดความ

Reentrancy attack คือการโจมตีสัญญาอัจฉริยะที่ส่งเงินออกไปก่อนจะอัปเดตบันทึกยอดคงเหลือภายในของตัวเอง สัญญาฝ่ายรับจะฉวยจังหวะนั้นเรียกกลับเข้าไปยังฟังก์ชันเดิม ซึ่งยังเห็นยอดเก่าอยู่ แล้วถอนเงินซ้ำหลายรอบภายในธุรกรรมเดียว นี่คือช่องโหว่ของสัญญาอัจฉริยะประเภทที่เก่าแก่และเป็นที่รู้จักมากที่สุด และมีส่วนกำหนดแนวปฏิบัติการเขียน Solidity ในปัจจุบัน แนวป้องกันมาตรฐานคือรูปแบบ checks-effects-interactions ที่บันทึกสถานะก่อนเรียกภายนอกเสมอ และตัวป้องกัน reentrancy ที่ล็อกฟังก์ชันระหว่างทำงาน บทเรียนของช่องโหว่นี้คือในโค้ดที่ประกอบร่วมกันได้ ทุกการเรียกภายนอกอาจยกการควบคุมให้ฝ่ายที่ไว้ใจไม่ได้ การตรวจสอบจึงเน้นลำดับการเรียกเป็นพิเศษ

ขั้นต่อไป

คำที่เกี่ยวข้อง

เพิ่มเติมใน วอลเล็ตและความปลอดภัย