
Table of Contents
เพื่อลบการเข้าถึงโทเค็นของคุณโดย DApp คุณต้องค้นหาการอนุมัติที่มันถือและเพิกถอนในธุรกรรม on-chain แยกต่างหาก การตัดการเชื่อมต่อ DApp ไม่ได้ลบสิทธิ์ และโทเค็นของคุณยังคงถูกเปิดเผยจนกว่า allowance จะถูกตั้งค่าเป็น 0
สิ่งสำคัญที่ต้องรู้
- การอนุมัติอยู่บน on-chain การปิดแอปหรือเซสชัน WalletConnect ไม่เปลี่ยนแปลงอะไร สิทธิ์การใช้จ่ายยังคงใช้งานได้จนกว่าคุณจะเพิกถอน
- การอนุมัติแบบไม่จำกัดเพิ่มความเสียหาย สิทธิ์ไม่จำกัดครั้งเดียวอนุญาตให้สัญญาใช้จ่ายยอดเงินปัจจุบันและในอนาคตทั้งหมดของโทเค็น
- การเพิกถอนป้องกันการใช้จ่ายในอนาคต ไม่ใช่การโจรกรรมในอดีต การรีเซ็ต allowance บล็อกการโอนใหม่ แต่ไม่สามารถกู้คืนสินทรัพย์ที่ drainer ย้ายไปแล้ว
การอนุมัติโทเค็น DApp คืออะไร
การอนุมัติโทเค็น DApp คือสิทธิ์ที่เจ้าของกระเป๋ามอบให้สัญญาอัจฉริยะเพื่อใช้จ่ายโทเค็นเฉพาะเจาะจงจนถึงจำนวนที่กำหนด หากไม่มีการอนุมัตินั้น แลกเปลี่ยนแบบกระจายอำนาจ ตลาดการให้กู้ยืม หรือ DApp อื่นๆ ไม่สามารถย้ายโทเค็นของคุณได้ การอนุมัติคือสิ่งที่อนุญาตให้แลกเปลี่ยน stake หรือโอนพวกมันในนามของคุณเมื่อคุณโต้ตอบกับมัน
สัญญาอัจฉริยะคือโปรแกรมบน blockchain ที่ดำเนินการโดยอัตโนมัติเมื่อเงื่อนไขที่กำหนดไว้ล่วงหน้าเป็นจริง
การอนุมัติโทเค็น DApp ทำงานอย่างไร
การอนุมัติโทเค็นปฏิบัติตามลำดับที่แน่นอน คุณเชื่อมต่อกระเป๋าของคุณกับ DApp, DApp ขอการอนุมัติ มันถูกบันทึกบน on-chain และจากนั้น DApp ดำเนินการที่ได้รับอนุมัติโดยไม่ต้องถามอีก นี่คือวิธีที่ DApps ที่รู้จักดีเช่น Aave และ Uniswap ทำงาน เนื่องจากสิทธิ์อยู่บน blockchain และไม่ได้อยู่ในเซสชันแอป มันจึงยังคงมีผลบังคับใช้นานหลังจากคุณหยุดใช้ DApp
การอนุมัติมีรูปแบบที่แตกต่างกันไม่กี่แบบ
- Limited Approval: DApp สามารถใช้จ่ายเพียงจำนวนที่คุณกำหนด ตัวอย่างเช่น 500 USDC และต้องขอการอนุมัติใหม่เพื่อใช้จ่ายเพิ่ม
- Unlimited Approval: DApp สามารถใช้จ่ายจำนวนใดๆ ของโทเค็นที่เลือก รวมถึงโทเค็นที่มาถึงกระเป๋าของคุณในภายหลัง
- Token Approval: สัญญาอัจฉริยะได้รับสิทธิ์ในการจัดการโทเค็น fungible เฉพาะเจาะจง เช่น USDC หรือ USDT
- NFT Approval: สิทธิ์สามารถครอบคลุม NFT เดียวหรือคอลเลกชันทั้งหมด ตัวอย่างเช่นผ่าน
setApprovalForAll
การอนุมัติโทเค็นไม่เปิดเผย secret phrase ของคุณหรือให้ DApp เข้าถึงกระเป๋าทั้งหมดโดยไม่จำกัด มันใช้กับโทเค็นที่ได้รับอนุมัติ NFT จำนวนเงิน และสัญญาอัจฉริยะเท่านั้น
ผู้ใช้กระเป๋าคริปโตให้การอนุมัติโทเค็นเมื่อไหร่
การอนุมัติโทเค็นปรากฏในระหว่างการดำเนินการ DeFi ประจำวัน การแลกเปลี่ยนโทเค็น การให้กู้ยืม staking และการขาย NFTs พวกมันสามารถยังคงใช้งานได้หลังจากการดำเนินการเสร็จสิ้นหรือ DApp ถูกตัดการเชื่อมต่อ
การแลกเปลี่ยนโทเค็นบน DEX: สมมติว่าคุณกำลังแลกเปลี่ยน USDC เป็น ETH บน Uniswap ขั้นแรกคุณอนุมัติสัญญา Permit2 (ตัวจัดการสิทธิ์โดย Uniswap Labs) เพื่อใช้ USDC การอนุมัติแบบไม่จำกัดสามารถยังคงใช้งานได้หลังจากการแลกเปลี่ยนเสร็จสมบูรณ์หรือถูกยกเลิก
การจัดหาโทเค็นให้โปรโตคอลการให้กู้ยืม: เพื่อให้กู้ยืม USDT บน Aave คุณอนุมัติสัญญา Aave Pool ให้ย้ายโทเค็นออกจากกระเป๋า allowance ที่ไม่ได้ใช้สามารถยังคงอยู่หลังจากการฝากถูกถอนหรือ DApp ถูกตัดการเชื่อมต่อ
Staking โทเค็นผ่าน DApp: เมื่อ staking ผ่าน Aave Umbrella คุณอนุมัติสัญญา staking ให้ย้ายโทเค็นที่เลือกเข้าสู่พูล หากการอนุมัติเกินการฝาก allowance ที่เหลือสามารถทำงานต่อได้หลังจากคุณออกจาก staking
การลิสต์ NFT เพื่อขาย: ลิสต์ NFT บน OpenSea และตลาดอาจขอการเข้าถึง NFT เดียวหรือคอลเลกชันทั้งหมดผ่าน setApprovalForAll การอนุมัติทั้งคอลเลกชันยังคงมีผลบังคับใช้จนกว่าผู้ใช้จะเพิกถอนในธุรกรรมแยกต่างหาก
การเรียกร้องโทเค็นจาก Airdrop: เว็บไซต์ airdrop ปลอมสามารถซ่อนการอนุมัติแบบไม่จำกัดหรือลายเซ็น Permit ไว้หลังปุ่ม Claim ธรรมดา หลังจากคุณยืนยัน wallet drainer สามารถย้ายโทเค็นหรือ NFTs ที่ได้รับอนุมัติโดยไม่มีคำขอใหม่ในกระเป๋า
ความเสี่ยงของการอนุมัติโทเค็นคืออะไร
อันตรายไม่ใช่การอนุมัติเอง แต่คือสิ่งที่มันสามารถกลายเป็นเมื่อเวลาผ่านไป ความเสี่ยงสามอย่างที่สำคัญที่สุด
- Unlimited Allowance: สัญญาสามารถใช้จ่ายยอดเงินปัจจุบันและในอนาคตทั้งหมดของโทเค็นที่ได้รับอนุมัติ ไม่ใช่แค่จำนวนที่คุณต้องการใช้
- Lingering Approval: สิทธิ์ทำงานต่อหลายเดือนหรือหลายปีหลังจากคุณสัมผัส DApp ครั้งสุดท้าย ดังนั้นการอนุมัติที่ถูกลืมยังคงสามารถถูกใช้ประโยชน์ได้
- Compromised Contract: แม้แต่ DApp ที่ถูกต้องก็สามารถถูกแฮ็กหลังจากคุณให้การอนุมัติ มอบการเข้าถึงที่คุณลงนามไปแล้วให้กับผู้โจมตี
Crypto Wallet Drainers คืออะไร
crypto wallet drainer คือเครื่องมือที่เป็นอันตรายที่ใช้เว็บไซต์ phishing หรือ DApp ปลอมเพื่อหลอกคุณให้ให้สิทธิ์ในการโอนโทเค็นหรือ NFTs ของคุณ แทนที่จะเดา secret phrase ของคุณ drainer ทำให้คุณลงนามในการเข้าถึงด้วยความสมัครใจ จากนั้นใช้มันเพื่อย้ายสินทรัพย์ที่มีค่าที่สุดของคุณออก Drainers เป็นภัยคุกคามขนาดใหญ่ที่ใช้งานอยู่ พวกมันขโมย $494 ล้านจากที่อยู่กระเป๋าประมาณ 332,000 รายการในปี 2024 เพิ่มขึ้น 67% จากปีก่อน (Scam Sniffer, 2024)
Wallet Drainers ใช้ประโยชน์จากการอนุมัติโทเค็นอย่างไร
การโจมตี drainer มักทำงานผ่านลูกโซ่ขั้นตอนที่คาดการณ์ได้
- ผู้ใช้เข้าสู่เว็บไซต์ mint, airdrop หรือการลงทุนปลอม
- เว็บไซต์เตือนผู้ใช้ให้เชื่อมต่อกระเป๋าของพวกเขา
- ผู้ใช้ลงนามในการอนุมัติหรือลายเซ็น permit
- Drainer สแกนกระเป๋าและระบุสินทรัพย์ที่มีค่าที่สุด
- โทเค็นหรือ NFTs ที่ได้รับอนุมัติถูกโอนออกโดยไม่มีการยืนยันใหม่
การเชื่อมต่อกระเป๋าเพียงอย่างเดียวไม่อนุญาตให้ใครก็ตามย้ายสินทรัพย์ของคุณ อันตรายเริ่มต้นหลังจากคุณลงนามในการอนุมัติหรือธุรกรรมที่เป็นอันตรายเท่านั้น ลายเซ็นเดียวนั้นคือเส้นระหว่างการเชื่อมต่อที่ไม่เป็นอันตรายและกระเป๋าที่ถูกดูด
ทำไมการตัดการเชื่อมต่อ DApp ไม่เพิกถอนการอนุมัติ
การตัดการเชื่อมต่อและการเพิกถอนเป็นสองการดำเนินการที่แตกต่างกัน และมีเพียงหนึ่งอย่างที่ลบสิทธิ์การใช้จ่ายของสัญญา การตัดการเชื่อมต่อปิดอินเทอร์เฟซระหว่างกระเป๋าของคุณและ DApp การอนุมัติยังคงอยู่บน on-chain
| การดำเนินการ | สิ่งที่มันทำ | สิ่งที่ยังคงใช้งานได้ |
|---|---|---|
| Disconnect | ปิดการเชื่อมต่อระหว่างกระเป๋าและอินเทอร์เฟซ DApp | การอนุมัติ on-chain ที่ให้ไว้ก่อนหน้านี้ |
| Revoke | ลบหรือรีเซ็ตสิทธิ์การใช้จ่ายของสัญญาอัจฉริยะ | DApp ต้องขอการอนุมัติใหม่เพื่อเข้าถึงโทเค็นอีกครั้ง |
เพื่อแสดงความแตกต่าง เราเชื่อมต่อ Gem Wallet กับ DApp ที่ถูกต้อง Uniswap และให้ Permit2 การอนุมัติแบบไม่จำกัดบน USDC หลังจากตัดการเชื่อมต่อ Uniswap ไม่มีเซสชัน WalletConnect ที่ใช้งานอยู่ แต่ Revoke.cash ยังคงแสดงการอนุมัติด้วยยอดเงิน USDC เต็มเป็นมูลค่าที่เสี่ยง การตัดการเชื่อมต่อเพียงปิดการเชื่อมต่อกับ DApp การอนุมัติ on-chain ยังคงอยู่จนกว่าจะมีธุรกรรมเพิกถอนแยกต่างหาก
อนุมัติใน Uniswap ตัดการเชื่อมต่อ DApp และการอนุมัติยังคงใช้งานบน on-chain ใน Gem Wallet
วิธีเพิกถอนการอนุมัติโทเค็น DApp: ทีละขั้นตอน
การเพิกถอนการอนุมัติใช้เวลาไม่กี่นาที นี่คือกระบวนการทั้งหมดอย่างรวดเร็ว
- เปิดตัวตรวจสอบการอนุมัติ
- ป้อนที่อยู่กระเป๋าของคุณ
- เลือก blockchain
- ตรวจสอบการอนุมัติที่ใช้งานอยู่
- เพิกถอนหรือลด allowance
- ยืนยันธุรกรรม
- ตรวจสอบผลลัพธ์
มาดูแต่ละขั้นตอนโดยละเอียด
ขั้นตอนที่ 1: เปิดตัวตรวจสอบการอนุมัติที่เชื่อถือได้
เปิดตัวตรวจสอบการอนุมัติเช่น Revoke.cash หรือ Etherscan Token Approval Checker และพิมพ์ที่อยู่ด้วยตนเองแทนที่จะตามลิงก์ สำเนา phishing ของเครื่องมือเหล่านี้มีอยู่ ดังนั้นตรวจสอบโดเมนอีกครั้งก่อนเชื่อมต่ออะไร
ขั้นตอนที่ 2: ป้อนที่อยู่กระเป๋าคริปโตของคุณ
เริ่มในโหมดอ่านอย่างเดียวโดยวางที่อยู่กระเป๋าสาธารณะของคุณ สิ่งนี้ให้คุณเห็นทุกการอนุมัติที่ใช้งานอยู่โดยไม่ต้องเชื่อมต่อหรือลงนาม การเชื่อมต่อผ่าน WalletConnect จำเป็นเมื่อคุณพร้อมที่จะเพิกถอนเท่านั้น
ขั้นตอนที่ 3: เลือก Blockchain ที่ถูกต้อง
เลือกเครือข่ายที่การอนุมัติถูกให้ เพราะแต่ละเชนเก็บการอนุมัติของตัวเอง Ethereum, BNB Chain, Polygon, Base และเครือข่ายอื่นๆ ต้องถูกตรวจสอบแยกกัน การอนุมัติบนหนึ่งเชนมองไม่เห็นบนอีกเชนหนึ่ง
ขั้นตอนที่ 4: ตรวจสอบ Spender และ Allowance
สำหรับแต่ละรายการ ตรวจสอบโทเค็น สัญญาอัจฉริยะ (spender) จำนวนที่ได้รับอนุมัติ วันที่ที่ให้ และมูลค่าที่เสี่ยง spender ที่ไม่รู้จักหรือจำนวนไม่จำกัดบนโทเค็นที่คุณถือเป็นสัญญาณที่ชัดเจนที่สุดว่าการอนุมัติควรถูกลบ
ขั้นตอนที่ 5: เพิกถอนหรือลดการอนุมัติโทเค็น
ลบการอนุมัติที่คุณไม่ต้องการอีกต่อไปทั้งหมด หรือลด allowance เป็นจำนวนที่คุณวางแผนจะใช้จริง การแตะ Revoke สร้างธุรกรรมที่รีเซ็ต spending allowance สำหรับสัญญานั้นเป็น 0
ขั้นตอนที่ 6: ยืนยันธุรกรรมในกระเป๋าของคุณ
คำขอเปิดในกระเป๋าของคุณ เช่น Gem Wallet ผ่าน WalletConnect ก่อนที่คุณจะยืนยัน ตรวจสอบว่า
- Amount: Approved allowance เปลี่ยนเป็น 0 USDC
- Contract: USDC
- Method: Approve
- Spender: Permit2
- Network: Ethereum
การยืนยันต้องการค่าธรรมเนียมเครือข่าย (ตัวอย่างเช่น ETH) เนื่องจากนี่คือธุรกรรม on-chain ที่ลบสิทธิ์จริงๆ อนุมัติใน Gem Wallet เพื่อส่ง
ขั้นตอนที่ 7: ตรวจสอบว่าการอนุมัติถูกลบแล้ว
โหลด Revoke.cash ใหม่และยืนยันว่าการอนุมัติหายไปหรือจำนวนเงินเปลี่ยนแปลงแล้ว ในการทดสอบของเรา แดชบอร์ดอัปเดตเป็น 0 approvals, $0 value at risk และรายการอนุมัติว่าง หลักฐานว่าสัญญาไม่สามารถใช้จ่าย USDC ได้จนกว่าจะถามอีกครั้ง
แตะ Revoke ยืนยัน allowance 0 USDC ใน Gem Wallet และตรวจสอบว่าการอนุมัติหายไป
การอนุมัติโทเค็นใดที่คุณควรเพิกถอน
ไม่ใช่ทุกการอนุมัติต้องการการลบ แต่บางอย่างเป็นผู้สมัครที่ชัดเจน เพิกถอนการอนุมัติเมื่อ
- Unused DApp: คุณไม่ใช้ DApp ที่ถือมันอีกต่อไป
- Unknown Spender: คุณไม่รู้จักสัญญา spender
- Unlimited Amount: การอนุมัติถูกให้สำหรับจำนวนไม่จำกัด
- Old NFT Listing: สิทธิ์ผูกกับการลิสต์ NFT ที่คุณปิดแล้ว
- Reported Hack: โครงการได้เปิดเผยการแฮ็กหรือการใช้ประโยชน์
- Suspicious Source: การอนุมัติปรากฏหลังจาก mint หรือ airdrop ที่น่าสงสัย
- Forgotten Reason: คุณจำไม่ได้ว่าทำไมคุณให้มัน
จะทำอย่างไรถ้ากระเป๋าคริปโตของคุณถูกดูดแล้ว
เพิกถอนทุกการอนุมัติที่ใช้งานอยู่ทันที การเพิกถอนหยุดการใช้จ่ายเพิ่มเติม แต่จะไม่กู้คืนสินทรัพย์ที่ถูกขโมยไปแล้ว หาก secret phrase หรือ private key ของคุณถูกเปิดเผย สร้างกระเป๋าใหม่บนอุปกรณ์สะอาดและย้ายเงินที่เหลือไปที่นั่น หาก sweeper bot กำลังดูที่อยู่ อย่าส่งแก๊สไปยังที่อยู่ที่ถูกบุกรุกโดยไม่มีแผนช่วยเหลือสินทรัพย์แยกต่างหาก
วิธีใช้ DApps โดยไม่ถูกดูด
การเพิกถอนทำความสะอาดสิทธิ์ที่คุณให้ไปแล้ว แต่นิสัยที่ปลอดภัยกว่าคือการจับการอนุมัติที่มีความเสี่ยงก่อนที่คุณจะลงนาม กฎไม่กี่ข้อครอบคลุมกรณีส่วนใหญ่
- ตรวจสอบโดเมน: ตรวจสอบ URL ที่แน่นอนของ DApp ก่อนเชื่อมต่อ
- เพิกเฉยต่อเหยื่อการอนุมัติ: อย่าลงนามในการอนุมัติที่ไม่ชัดเจนเพียงเพื่อเรียกร้อง airdrop
- จำกัดจำนวน: จำกัดจำนวนที่ได้รับอนุมัติแทนที่จะให้แบบไม่จำกัด
- ระวัง setApprovalForAll: ปฏิบัติต่อสิทธิ์ NFT ทั้งคอลเลกชันด้วยความระมัดระวังพิเศษ
- ตรวจสอบ Spender: ยืนยันว่าที่อยู่ spender เป็นของโปรโตคอลจริง
- ตัดแต่งเป็นประจำ: ลบการอนุมัติเก่าตามกำหนดเวลา
- แยกความเสี่ยง: ใช้กระเป๋าแยกสำหรับ DApps ใหม่และไม่น่าเชื่อถือ
ใช้ DApps ข้าม blockchain มากกว่า 100 เครือข่ายด้วย Gem Wallet กระเป๋า open-source, self-custody ที่เต็มรูปแบบซึ่งเก็บ private keys บนอุปกรณ์ของคุณและไม่เก็บรวบรวมข้อมูลส่วนบุคคล ดาวน์โหลด Gem Wallet และเชื่อมต่อกับแอปที่เข้ากันได้กับ WalletConnect ในขณะที่รักษาการควบคุม keys ของคุณเต็มรูปแบบ


