จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้
คำตอบโดยตรง
โทเค็นที่หักค่าธรรมเนียมเมื่อโอนจะตัดมูลค่าบางส่วนภายในตรรกะการโอน ผู้รับจึงอาจได้รับน้อยกว่ายอดที่ส่งเข้า transfer หรือ transferFrom ส่วนที่หักอาจถูกเผา แจกจ่ายใหม่ ส่งไปยังกระเป๋าอื่น หรือนำเข้าสภาพคล่อง กฎอาจขึ้นอยู่กับผู้ส่ง ผู้รับ หรือบริบทของธุรกรรมด้วย
ความเสี่ยงหลักไม่ได้มีเพียงอัตราที่ประกาศ อัตราซื้อ ขาย และโอนระหว่างกระเป๋าอาจต่างกัน บางที่อยู่อาจได้รับยกเว้นหรือถูกบล็อก และบัญชีที่มีสิทธิ์อาจเปลี่ยนกฎได้ ดังนั้นใบเสนอราคาหรือการซื้อที่สำเร็จจึงไม่ยืนยันว่าจะขายภายหลังได้ด้วยต้นทุนที่สมเหตุสมผล
กลไกการทำงาน
router ของผู้ดูแลสภาพคล่องอัตโนมัติทั่วไปอาจคำนวณยอดออกแต่ละช่วงจากยอดเข้าตามคำสั่ง แต่ Uniswap V2 Router02 มีฟังก์ชัน swap สำหรับโทเค็นประเภทนี้โดยเฉพาะ โดยอนุมานยอดเข้าจริงจากการเปลี่ยนแปลงยอดคงเหลือของคู่ซื้อขาย แล้วเปรียบเทียบยอดที่ผู้รับเพิ่มขึ้นกับ amountOutMin ความเข้ากันได้จึงขึ้นอยู่กับ router เส้นทาง และพฤติกรรมจริงของโทเค็น ไม่ใช่แค่สัญลักษณ์โทเค็น
ค่าธรรมเนียมโทเค็นทบกับค่าธรรมเนียม pool และผลกระทบต่อราคา เส้นทางหลาย hop อาจเรียกตรรกะการโอนมากกว่าหนึ่งครั้ง ขณะที่การยกเว้นหรือการตรวจว่าเป็นซื้อหรือขายอาจทำให้อัตราจริงต่างกันตามทิศทาง ควรประเมินต้นทุนเข้าและออกแยกกันจากสถานะ on-chain ปัจจุบัน
ตัวอย่าง
สมมติว่าผู้ซื้อขายใช้ 1,000 USDC ค่าธรรมเนียม pool และผลกระทบต่อราคาลดมูลค่า 2% จากนั้นหักค่าธรรมเนียมซื้อ 5%: 1,000 × 0.98 × 0.95 = 931 หากราคาตลาดไม่เปลี่ยน ค่าธรรมเนียมขาย 10% แล้วมีต้นทุนซื้อขายอีก 2% จะได้รับกลับประมาณ US$821: 931 × 0.90 × 0.98 ≈ 821 การซื้อแล้วขายกลับขาดทุนประมาณ 18% แม้ราคาตลาดไม่ลดลง
ตัวเลขนี้เป็นเพียงตัวอย่าง ไม่ใช่ใบเสนอราคา ลำดับการหักอาจต่างออกไป และอัตรา สภาพคล่อง เส้นทาง รวมถึงสถานะสัญญาอาจเปลี่ยนระหว่างธุรกรรม ควรอ่านสัญญาและสถานะ pool ปัจจุบัน แล้วจำลองเส้นทางจริงด้วยกระเป๋าเดียวกันก่อนใช้ค่าประมาณ
ความเสี่ยงและรายการตรวจสอบ
- ตรวจที่อยู่สัญญาและโค้ดที่ deploy แล้ว ระบุตรรกะค่าธรรมเนียม ข้อยกเว้น รายการบล็อก เพดานค่าธรรมเนียม บทบาทเจ้าของ การควบคุม upgrade และสิทธิ์ pause
- เปรียบเทียบยอดออกที่เสนอราคากับการเปลี่ยนแปลงยอดผู้รับในการจำลอง ยืนยันว่า router และทุก hop ในเส้นทางรองรับพฤติกรรมหักค่าธรรมเนียมเมื่อโอนอย่างชัดเจน
- จำลองการขายจากกระเป๋าเดียวกัน แล้วทดสอบซื้อและขายกลับด้วยยอดเล็กที่ยอมเสียทั้งหมดได้เท่านั้น การทดสอบสำเร็จไม่รับประกันว่ากฎหรือสภาพคล่องภายหลังจะคงเดิม
- ตั้ง
amountOutMinตามขีดจำกัดการขาดทุนที่ยอมรับจริง การตั้งเป็น 0 หรือขยาย slippage ซ้ำ ๆ จะตัดการป้องกันราคา แต่ไม่สามารถข้าม revert รายการบล็อก หรือค่าธรรมเนียมโทเค็นที่รุนแรงได้ - กำหนดขนาดสถานะจากมูลค่าออกสุทธิในกรณีเลวร้ายที่น่าเชื่อถือ อย่าดำเนินการต่อเมื่อจำลองการขายไม่ผ่าน โค้ดไม่ผ่านการยืนยัน สิทธิ์ไม่โปร่งใส หรือผู้ดูแลเพิ่มค่าธรรมเนียมหรือบล็อกการโอนได้โดยไม่มีระยะหน่วงที่มีผล
ความเข้าใจผิดที่พบบ่อย
- ความเข้าใจผิด 1: ยอดโอนหรือ event ยืนยันยอดที่ได้รับจริง ควรตรวจการเปลี่ยนแปลงยอดคงเหลือของผู้รับ การเชื่อมต่อโทเค็นประเภทนี้ใช้ส่วนต่างยอดคงเหลือด้วยเหตุผลนี้
- ความเข้าใจผิด 2: เพิ่ม Gas หรือ slippage แล้วจะขายได้ทุกครั้ง Gas มีผลต่อการนำธุรกรรมเข้า block ส่วน slippage ผ่อนราคาขั้นต่ำ แต่ทั้งสองอย่างไม่ข้ามตรรกะของสัญญา
- ความเข้าใจผิด 3: การสละสิทธิ์เจ้าของทำให้โทเค็นแก้ไขไม่ได้ ผู้ดูแล proxy บทบาทที่มีสิทธิ์อื่น หรือสัญญาตั้งค่าภายนอกอาจยังควบคุมพฤติกรรมได้ จึงต้องตรวจทุกเส้นทางสิทธิ์ที่มีผลจริง
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- Uniswap V2 Router02 - Uniswap (เข้าถึงเมื่อ: 2026-08-20)
- FeeOnTransferDetector.sol - Uniswap (เข้าถึงเมื่อ: 2026-08-20)
- SC01:2026 Access Control Vulnerabilities - OWASP (เข้าถึงเมื่อ: 2026-08-20)