การขายจุดชนวนเบิร์นโทเคน ดูดสภาพคล่องฝั่ง TENDRIL บน BNB Chain เกือบหมด

CoinDesk รายงานว่า วันที่ 4 พ.ย. 2026 คำสั่งขายที่กระตุ้นการเผาโทเคนทำให้ฝั่ง TENDRIL ของพูลสภาพคล่อง TENDRIL บน BNB Chain เกือบว่างลง และเปิดทางให้การแลกเปลี่ยนดึง USDT ออกไปเกือบ 4.42 ล้าน USDT ยอดไหลออกสุทธิของธุรกรรมนี้อยู่ที่ 555,670.538752928908475139 USDT เนื่องจากมี USDT ไหลเข้าจำนวนมากก่อนหน้าธุรกรรมเดียวกันแล้ว กลไกการขายที่จุดชนวนการเผาเริ่มก่อน TENDRIL ส่วนที่เหลือของผู้ขายจะเข้าพูล มีการเรียกคอนโทรลเลอร์เมื่อเวลา 16:02:45 UTC การเรียก transferFrom ของ router เริ่มการขาย TENDRIL จำนวน 39,053,180,124.060957132414461269 โทเคน และกระตุ้นตรรกะค่าธรรมเนียมกับคอนโทรลเลอร์ของโทเคน การโอนเข้าพูลหลักต้องเสียภาษีขาย 30% ยกเว้นการโอนจากที่อยู่ที่กำหนดไว้สองแห่ง คือ _poolControl และ _markControl สัญญาที่ทำธุรกรรมนี้ไม่เข้าเงื่อนไขยกเว้นทั้งสอง จึงส่ง TENDRIL จำนวน 11,715,954,037.218287139724338380 โทเคนไปยัง _poolControl ก่อน จากนั้นสัญญาเรียกฟังก์ชัน sellToken ของคอนโทรลเลอร์ โดยส่งจำนวนขายเดิม ไม่ใช่เฉพาะจำนวนภาษี การเรียกนี้เสร็จสิ้นก่อนที่โทเคนจะบันทึก 70% ที่เหลือเข้าพูล ร่องรอยการเรียกย้อนหลังแสดงลำดับ transferFrom, sellToken, controlburn และ sync ก่อนการสวอปสุดท้าย ร่องรอย opcode ของคอนโทรลเลอร์ยืนยันว่ามีการคูณจำนวนขายเดิมด้วย 2 เพื่อกำหนดปริมาณที่จะถูกดึงออกจากพูลในภายหลัง controlburn ดึงโทเคนออกจากพูลโดยไม่ลดอุปทานรวม ฟังก์ชันนี้โอน TENDRIL จากยอดคงเหลือของพูลไปยังที่อยู่ dead แต่ไม่ลดอุปทานรวมที่บันทึกไว้ของโทเคน และไม่เผาโทเคนผู้ให้สภาพคล่อง การตรวจสิทธิ์กำหนดให้ผู้เรียกต้องตรงกับ _poolControl เมื่อผ่านการอนุญาต จะใช้ _basicTransfer หักโทเคนจากยอดคงเหลือของพูลและเครดิตเข้าที่อยู่ dead ไม่มีการอนุญาตจากพูลหรือการถอนสภาพคล่องในขั้นนี้ เพราะสัญญาโทเคนควบคุมบันทึกยอดคงเหลือของตัวเองโดยตรง Log 28 บันทึกการดึง TENDRIL จำนวน 78,106,360,248.121914264828922538 โทเคนออกไป เหลือเพียง 6,678 หน่วยดิบในพูล เมื่อคิดทศนิยม 18 ตำแหน่งของ TENDRIL ยอดคงเหลือจึงเท่ากับ 0.000000000000006678 TENDRIL การเผาครั้งนี้ไม่ได้ดึง USDT ออกมาพร้อมกัน TENDRIL เกือบทั้งหมดหายไป ขณะที่ USDT ในพูลยังพร้อมสำหรับการแลกเปลี่ยนครั้งถัดไป การสละกรรมสิทธิ์ไม่ได้ปิดเส้นทางนี้ ในบล็อก 131653426 ก่อนเกิดเหตุ owner() คืนค่าเป็นที่อยู่ศูนย์ แต่ controlburn ตรวจสอบคอนโทรลเลอร์ที่ตั้งค่าไว้ ไม่ได้ตรวจ owner() เส้นทางการเข้าถึงนี้จึงยังใช้ได้ ฟังก์ชันไม่ได้เปิดให้ทุกคน ผู้เรียกใดก็ตามจะไม่ผ่านการตรวจสิทธิ์ การรีเซ็ต reserve ทำให้ USDT เกือบทั้งหมดถูกถอนออกได้ คอนโทรลเลอร์เรียก sync() ทันทีหลังการทำลาย บันทึกยอด TENDRIL หลังถูกทำให้ว่างก่อนโทเคนขายส่วนที่เหลือจะมาถึง Log 29 ตั้ง reserve เป็น 4,421,023.357469283419586501 USDT และ 0.000000000000006678 TENDRIL ต่อมา TENDRIL จำนวน 27,337,226,086.842669992690122889 โทเคนเข้าพูล การสวอปสุดท้ายถอน USDT 4,421,023.357469283419586499 ออกไป เหลือ 0.000000000000000002 USDT สูตรผลคูณคงที่อธิบายขนาดผลลัพธ์นี้ หากไม่คำนึงถึงค่าธรรมเนียมและการปัดเศษเพื่อประกอบคำอธิบาย จำนวน USDT ที่ได้สามารถคำนวณได้จาก reserve USDT คูณจำนวนโทเคนขาเข้า แล้วหารด้วยผลรวมของ reserve โทเคนกับจำนวนโทเคนขาเข้า เมื่อ reserve โทเคนที่บันทึกไว้ใกล้ศูนย์ จำนวนขาเข้าจะครองตัวส่วน และผลลัพธ์เข้าใกล้ reserve USDT ทั้งหมด จำนวนที่ถอนออกในครั้งนี้ไม่ใช่จำนวนสุทธิที่ถูกดึงจากพูล ยอด USDT ไหลออกรวม 5,117,517.824288279504509510 และไหลเข้ารวม 4,561,847.285535350596034371 หักกันแล้วไหลออกสุทธิ 555,670.538752928908475139 USDT โค้ดสัญญาและเส้นทางธุรกรรมย้อนหลังถูกนำมาประกอบลำดับเหตุการณ์ทั้งหมด การเผาโทเคนที่เกิดจากการขายครั้งนี้ถูกสร้างใหม่โดยใช้ซอร์สโค้ดที่ยืนยันแล้ว การเรียกย้อนหลัง event log และร่องรอย opcode ผ่าน block explorer หลังคอมไพล์ด้วย Solidity v0.8.24+commit.e11b9ed9 โดยปิด optimization โค้ดรันไทม์ ณ บล็อก 131653426 ตรงกับ bytecode ของสัญญา หากไม่นับ metadata ของคอมไพเลอร์ พารามิเตอร์การเผาที่ถอดรหัสตรงกับจำนวนที่โอนจากพูลไปยังที่อยู่ dead การคำนวณจำนวนเต็มยังสอดคล้องกับจำนวนภาษี โทเคนที่เหลือสำหรับขาย และยอด reserve อุปทานรวมไม่เปลี่ยนแปลงระหว่างบล็อกที่อยู่ติดกันก่อนและหลังธุรกรรม ธุรกรรมที่สำเร็จนี้อยู่ในบล็อก 131653427 ใบเสร็จที่ตรวจสอบผ่าน RPC สาธารณะสองเอนด์พอยต์ของ BNB Chain ตรงกัน และเมื่อตรวจทานวันที่ 6 พ.ย. 2026 กระแส USDT ในระดับที่อยู่สอดคล้องกันทั้งหมด บทความนี้จัดทำโดยความช่วยเหลือของปัญญาประดิษฐ์และผ่านการตรวจสอบโดยทีมบรรณาธิการ