ข้ามไปยังเนื้อหา

ความเสี่ยงของโทเค็นที่หักค่าธรรมเนียมเมื่อโอน

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

อัปเดต

จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

คำตอบโดยตรง

โทเค็นที่หักค่าธรรมเนียมเมื่อโอนจะตัดมูลค่าบางส่วนภายในตรรกะการโอน ผู้รับจึงอาจได้รับน้อยกว่ายอดที่ส่งเข้า 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 บทบาทที่มีสิทธิ์อื่น หรือสัญญาตั้งค่าภายนอกอาจยังควบคุมพฤติกรรมได้ จึงต้องตรวจทุกเส้นทางสิทธิ์ที่มีผลจริง

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...