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

การอนุญาตกระเป๋าเงิน

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

อัปเดต

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

คำตอบโดยตรง

การอนุญาตกระเป๋าเงินหรือการอนุมัติโทเคนคือ allowance บนเชนจากเจ้าของไปยัง spender หนึ่งราย approve(spender, amount) บันทึกสิทธิ์ ERC-20 และ transferFrom ใช้ได้ภายในยอดเหลือ ไม่ได้ให้คีย์ส่วนตัวหรือโทเคนอื่น การอนุมัติเปลี่ยนสถานะ ส่วนลายเซ็นเข้าสู่ระบบมักอยู่นอกเชน permit ของ ERC-2612 เป็นข้อมูลลงนามที่สร้าง allowance โดยไม่ให้เจ้าของจ่ายแก๊ส แต่ยังเป็นสิทธิ์อนุญาต ETH ไม่ใช้ ERC-20 allowance ตรวจโทเคน spender จำนวน ระยะเวลา และเชน; การเชื่อมเว็บไซต์ไม่ใช่สิทธิ์ใช้จ่าย

การอนุญาตกระเป๋าเงิน
0 / 5
0 ตรวจสอบรายการแล้ว; 5 รายการยังไม่ได้รับการแก้ไข

การเสร็จสิ้นการตรวจสอบนี้ไม่ได้พิสูจน์ว่าสินทรัพย์ ธุรกรรม หรือระบบมีความปลอดภัย

วิธีการทำงาน

  1. ผู้ใช้ส่ง approve; 0 หมายถึงไม่เหลือสิทธิ์ และค่ามากจะแสดงว่าไม่จำกัด
  2. Spender ใช้ transferFrom ภายหลัง สัญญาตรวจยอดและ allowance โอนโทเคน และลด allowance ตามที่ใช้
  3. การเปลี่ยน allowance เป็นสถานะบนเชน ค่าบวกสองค่าจะแข่งขันใน mempool ได้ จึงใช้ศูนย์ก่อนหลังยืนยันเมื่อจำเป็น
  4. permit ของ ERC-2612 เป็นข้อความลงนาม ตรวจ token, chain ID, nonce, deadline, spender และจำนวน เพราะผู้อื่นส่งได้
  5. อนุมัติเฉพาะ spender ที่ตรวจแล้วและจำนวนจำเป็น จำลองการเรียก ตรวจ receipt เหตุการณ์ ยอด และ allowance; เพิกถอนด้วย 0 บนเครือข่ายถูกต้อง และไม่ย้อนการโอนที่ยืนยันแล้ว

ตัวอย่าง

Alice มี 100 USDC และอนุมัติเราเตอร์ที่ตรวจสอบแล้ว 40 ใช้ได้สูงสุด 40 ไม่รวม ETH หรือโทเคนอื่น หลังใช้ 15 เหลือ 25 การอนุมัติไม่จำกัดครอบคลุมเงินฝากอนาคต จึงตรวจสัญญา ใช้จำนวนจำกัด และส่ง approve(router, 0) เมื่อเลิกใช้

ความเสี่ยง

  • Spender ที่เป็นอันตรายหรืออัปเกรดใช้โทเคนทั้งหมดได้
  • การอนุมัติไม่จำกัดครอบคลุมเงินฝากอนาคต
  • เชน สัญญา ที่อยู่ ทศนิยม หรือ calldata ผิดทำให้คำขออันตรายดูปกติ
  • การเปลี่ยนหรือเพิกถอนที่ค้างแข่งกับ transferFrom ได้ ศูนย์ที่ยืนยันไม่ย้อนการโอน
  • ลายเซ็น permit ส่งภายหลังได้ และตัดการเชื่อมต่อไม่ทำให้เป็นโมฆะ
  • โทเคนไม่มาตรฐาน มีค่าธรรมเนียม rebasing หยุด หรือ callback อาจต่างกัน ต้องตรวจสถานะสุดท้าย

ความเข้าใจผิดที่พบบ่อย

  • “เชื่อมกระเป๋าแล้วให้สิทธิ์ใช้เงิน” สิทธิ์เกิดจาก approval, permit หรือธุรกรรมยืนยันแล้ว
  • “ลายเซ็นไม่แสดงแก๊สปลอดภัย” relayer ส่งภายหลังได้
  • “ตัดการเชื่อมต่อเพิกถอน approval” สถานะเชื่อมต่อแยกจาก allowance
  • “ไม่จำกัดคือถอนทั้งหมดทันที” ยังต้องมีการเรียก ยอดพอ และโค้ดเข้ากันได้ แต่ไม่มีขีดจำกัด
  • “จำลองสำเร็จพิสูจน์ความปลอดภัย” ตรวจเชน calldata ผู้รับ โค้ด receipt และยอดด้วย

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

แหล่งที่มา

การนำทาง

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