การปิดแอปหรือตัดการเชื่อมต่อกระเป๋าไม่ได้ลบสิทธิ์ใช้โทเคนที่เคยให้ไว้ แม้ถอนโทเคนออกจากแอปแล้ว สัญญาเดิมก็อาจยังมีสิทธิ์อยู่ สิ่งที่ต้องรู้คือ บนเครือข่ายนี้ สัญญาใดใช้สินทรัพย์ชนิดไหนของที่อยู่เราได้ และใช้ได้มากเท่าไร
บทความนี้ขยายวิธีตรวจสิทธิ์เดิมให้ครอบคลุมการตรวจหลังเพิกถอน ธุรกรรมที่ไม่สำเร็จ และลายเซ็นที่ยังไม่ถูกส่งขึ้นเชน ใช้กับสิทธิ์โทเคนและ NFT ที่พบบ่อยบนเครือข่าย EVM ไม่ใช่วิธีล้างอำนาจทุกประเภทของกระเป๋า การอ่านข้อมูลไม่ต้องใช้วลีสำรอง คีย์ส่วนตัว หรือเชื่อมกระเป๋ากับเว็บไซต์นี้ หากสินทรัพย์กำลังถูกโอนออกเอง ให้ข้ามไปอ่าน กรณีเกิดเหตุแล้ว ก่อน
ตรวจที่อยู่และเครือข่ายให้ถูกก่อนอ่านรายการสิทธิ์
คัดลอกที่อยู่สาธารณะแบบเต็มจากหน้าบัญชีในกระเป๋าของตัวเอง เปิดเครื่องมือตรวจสิทธิ์จากบุ๊กมาร์กที่รู้จัก ไม่ใช้โฆษณาหรือข้อความส่วนตัวที่อ้างว่าต้องรีบเพิกถอน ในเครื่องมือที่รองรับเครือข่ายนั้น เช่น Revoke.cash สามารถใส่ที่อยู่เพื่ออ่านรายการโดยยังไม่ลงลายเซ็น ผลของบัญชีเก่าหรือบัญชีอื่นย่อมไม่อธิบายสถานะของบัญชีที่กำลังใช้งาน
ที่อยู่เดียวกันอาจมีรูปแบบเหมือนกันบนหลายเชน EVM แต่สินทรัพย์และสิทธิ์แยกกัน การค้นหาบน Ethereum ไม่ได้ครอบคลุมสิทธิ์บน BNB Smart Chain เลือกเครือข่ายที่เคยทำรายการ แยกเครือข่ายหลักกับเครือข่ายทดสอบ แล้วตรวจสัญญาโทเคน หากยังไม่แน่ใจ ให้ดู วิธีตรวจเครือข่ายและ RPC
หนึ่งรายการมีที่อยู่คนละหน้าที่
- Owner คือบัญชีเจ้าของสินทรัพย์ ต้องตรงกับที่อยู่ที่เรากำลังตรวจ
- Token คือสัญญาโทเคนหรือคอลเลกชัน NFT ชื่อและรูปไอคอนเลียนแบบได้
- Spender / Operator คือผู้ได้รับสิทธิ์ใช้สินทรัพย์ อาจเป็นสัญญา router ที่ไม่ได้ใช้ชื่อเดียวกับแบรนด์แอป
เปิดธุรกรรมที่ให้สิทธิ์ครั้งเดิม เทียบกับแอปที่เคยใช้และที่อยู่สัญญาที่โครงการเผยแพร่ในเอกสารทางการ ป้ายชื่อใน explorer และโค้ดที่ตรวจสอบแหล่งที่มาแล้วเป็นเพียงข้อมูลประกอบ ไม่รับประกันว่าสัญญาไม่มีช่องโหว่ อย่ามองข้ามที่อยู่ที่ต่างกันเพราะชื่อคล้ายกัน และอย่าตัดสินว่าถูกขโมยแล้วเพียงเพราะไม่คุ้นชื่อสัญญา
รายการไหนควรตรวจเป็นอันดับแรก
เริ่มจากโทเคนที่มีมูลค่าและถืออยู่จริง แอปที่เลิกใช้ spender ที่ยืนยันความเสี่ยงได้แล้ว และวงเงินไม่จำกัดที่ไม่จำเป็น ไม่ต้องเสีย gas ไล่ลบทุกโทเคนขยะเพื่อให้รายการว่าง และอย่าเปิดลิงก์แลกรางวัลที่ฝังในชื่อโทเคน พิจารณาด้วยว่าอาจรับสินทรัพย์ชนิดเดียวกันเข้าที่อยู่นี้อีกหรือไม่
วงเงินโทเคน สิทธิ์ NFT ชิ้นเดียว และทั้งคอลเลกชันต่างกัน
| ประเภท | ขอบเขต | ผลที่ต้องตรวจ |
|---|---|---|
| ERC-20 allowance | วงเงินที่ spender ใช้โทเคนได้ คำว่าไม่จำกัดไม่ได้หมายถึงเฉพาะธุรกรรมนี้ | allowance ของ owner–token–spender ชุดเดิมเป็น 0 |
| ERC-721 รายชิ้น | เฉพาะ token ID ที่ระบุ | ที่อยู่ที่อนุมัติแยกสำหรับ token ID นั้นถูกล้างแล้ว |
| setApprovalForAll | สิทธิ์ operator ต่อสินทรัพย์ของ owner ในคอลเลกชัน ERC-721 / ERC-1155 | สิทธิ์ owner–operator ของคอลเลกชันนั้นเป็น false |
| Permit / Permit2 | อาจยังเป็นลายเซ็น หรือกลายเป็นสิทธิ์บนเชนแล้ว | ตรวจตามชนิดของสิทธิ์ ไม่ดูเฉพาะ allowance ปกติ |
เพิกถอนสิทธิ์ของ NFT หนึ่งชิ้นไม่ได้แปลว่าสิทธิ์ operator ทั้งคอลเลกชันถูกลบด้วย และต้องตรวจแยกในทางกลับกันเช่นกัน โทเคนพิเศษ smart account หรือการมอบอำนาจบัญชีอาจมีกฎอื่น หากไม่เข้าใจประเภทคำขอ ให้หยุดแทนการลองกดปุ่มที่ชื่อคล้ายกัน
ตอนเพิกถอน กระเป๋าควรขอเปลี่ยนอะไร
เมื่อการตรวจแบบอ่านอย่างเดียวชัดเจนแล้ว จึงค่อยเชื่อมกระเป๋าเพื่อเปลี่ยนสิทธิ์ที่จำเป็น ขั้นตอนนี้เป็นการเพิกถอนทีละรายการด้วยตัวเอง ไม่ใช่การให้อำนาจเพิ่มแก่บริการอัตโนมัติ
- เลือกรายการในเครื่องมือที่ตรวจโดเมนแล้ว เชื่อมบัญชีเจ้าของสินทรัพย์และตั้งเครือข่ายให้ตรงกันทั้งเครื่องมือและกระเป๋า
- ตรวจว่ามีสินทรัพย์พื้นฐานสำหรับ gas ของเชนนั้นเพียงพอ อย่าใช้ยอดเหรียญจากอีกเชนหรือค่าธรรมเนียมตายตัวจากบทความเก่า ให้ดูค่าประเมินปัจจุบันในกระเป๋า
- กดเพิกถอนและเปิดรายละเอียด ERC-20 มักเป็น
approve(spender, 0)ส่วน operator ของ NFT มักเป็นsetApprovalForAll(operator, false)ตัวอย่างนี้ช่วยอ่านความหมาย ไม่ได้ให้มือใหม่กรอกพารามิเตอร์สัญญาเอง - เทียบบัญชี เครือข่าย สัญญา spender / operator และสิทธิ์ที่จะเปลี่ยน ช่อง
Toของธุรกรรมมักเป็นสัญญาโทเคนหรือ NFT ส่วน spender อยู่ในพารามิเตอร์ ทั้งสองจึงไม่จำเป็นต้องเป็นที่อยู่เดียวกัน อย่าเปลี่ยนการเพิกถอนที่ถูกต้องให้กลายเป็นการโอนหา spender - ปฏิเสธคำขอให้ย้ายสินทรัพย์ไป “ที่อยู่ปลอดภัย” จ่ายเงินประกัน รับโทเคน ส่งวลีสำรอง เพิ่มวงเงิน มอบอำนาจบัญชี หรือทำหลายรายการที่อธิบายไม่ได้
- เมื่อรายละเอียดตรงกับเจตนา จึงยืนยันด้วยตัวเองในกระเป๋า เก็บแฮชธุรกรรมและรอผลบนเชน ไม่อาศัยเพียงข้อความสำเร็จของเว็บไซต์
การเพิกถอนอาจเสีย gas และเรียกคืนสินทรัพย์ที่ถูกโอนไปแล้วไม่ได้ ค่าธรรมเนียมต่ำไม่ใช่เหตุผลให้ลงลายเซ็นคำขอที่ไม่รู้จัก
ขึ้นว่าสำเร็จแล้ว ยังต้องอ่านสถานะปัจจุบันซ้ำ
เปิดแฮชการเพิกถอนใน explorer ของเครือข่ายที่ถูกต้อง ตรวจบัญชีและสถานะว่าธุรกรรมสำเร็จ Pending คือยังรออยู่ ส่วน Failed / Reverted คือการเปลี่ยนแปลงไม่สำเร็จ แม้เสีย gas ไปแล้วก็ตาม
จากนั้นอ่านสิทธิ์ของเครือข่าย owner สัญญาโทเคน และ spender ชุดเดิมอีกครั้ง ERC-20 ต้องเห็น allowance เป็น 0 ส่วน NFT ต้องแยกตรวจ token ID และ operator ของคอลเลกชัน เลข 0 ของอีกโทเคนหนึ่งไม่ได้พิสูจน์ว่าสิทธิ์นี้ถูกลบแล้ว
ถ้าธุรกรรมสำเร็จแต่รายการยังแสดงวงเงินเก่า ให้ตรวจเครือข่าย บัญชี และสัญญาก่อนรีเฟรช อาจมีความล่าช้าของแคชหรือการจัดทำดัชนี ลองเทียบสถานะปัจจุบันกับ explorer ที่เชื่อถือได้หรือเครื่องมืออ่านข้อมูลอีกแห่ง การอ่านสัญญาไม่เหมือนการส่งธุรกรรม มือใหม่ไม่จำเป็นต้องเข้า Write Contract เพื่อยืนยันผล
เหตุการณ์ Approval เก่าเป็นบันทึกการเปลี่ยนในเวลานั้น ไม่จำเป็นต้องเป็นสิทธิ์ล่าสุด อาจมีการอนุมัติใหม่หลังจากนั้น เก็บแฮชและเวลาที่ตรวจเพื่อแยกว่าเพิกถอนไม่สำเร็จ หรือเพิกถอนแล้วแต่ให้สิทธิ์ใหม่ภายหลัง
แม้ allowance เป็น 0 หากจำได้ว่าเพิ่งเซ็น Permit ที่น่าสงสัย ให้ตรวจต่อในหัวข้อถัดไป รายการบนเชนที่สะอาดไม่ได้แสดงข้อความนอกเชนทุกฉบับที่เราเคยเซ็น
ลายเซ็น Permit ที่ยังไม่ถูกใช้ อาจยังมีผล
approve ปกติเป็นธุรกรรมบนเชน แต่ ERC-2612 Permit สามารถเซ็นข้อความไว้ก่อน แล้วผู้ถือลายเซ็นส่งตามมาภายหลัง ความถูกต้องเกี่ยวข้องกับเครือข่าย สัญญาโทเคน owner spender จำนวน deadline และ nonce การไม่เสีย gas ตอนเซ็นไม่ได้แปลว่าไม่ได้ให้สิทธิ์ใช้สินทรัพย์
ERC-2612 ผูกความใช้ได้ของลายเซ็นกับ nonce และกำหนดเวลา การเปลี่ยน allowance ปัจจุบันเป็น 0 จึงไม่พิสูจน์โดยตัวมันเองว่า Permit ที่ยังไม่ถูกใช้หมดผลแล้ว หากลายเซ็นยังใช้ได้ อาจถูกส่งเพื่อสร้างสิทธิ์ขึ้นใหม่ วิธีทำให้ใช้ไม่ได้ขึ้นกับการออกแบบของโทเคน อย่าคิดว่ามีปุ่มเดียวที่ยกเลิกได้ทุกลายเซ็น
เก็บรายละเอียดที่กระเป๋าแสดง ได้แก่ ชนิดข้อความ เครือข่าย verifying contract spender จำนวนและวันหมดอายุ อย่าเผยแพร่ลายเซ็นดิบที่ยังนำไปใช้ได้ และอย่าให้วลีสำรองแก่ใคร คำอธิบาย Permit ของ Revoke.cash ระบุว่าเครื่องมือไม่สามารถรู้ลายเซ็นนอกเชนทั้งหมดของเราได้ หน้าสำหรับยกเลิกจึงไม่ใช่ประวัติการเซ็นครบทุกฉบับ เมื่อรู้ว่ามีคำขอน่าสงสัยจริง ให้ใช้วิธีที่โทเคนและเครื่องมือรองรับแล้วตรวจผลบนเชน
Permit2 มีสิทธิ์สองส่วน
ต้องแยก allowance ที่โทเคนให้แก่สัญญา Permit2 ออกจากสิทธิ์ของแอปภายใน Permit2 เอกสาร Permit2 อธิบายความต่างนี้ การลบส่วนหนึ่งไม่พิสูจน์ว่าสิทธิ์และลายเซ็นทุกอย่างหมดผลแล้ว
ก่อนให้ allowance แก่ Permit2 อีกครั้ง ให้ทบทวนสิทธิ์ภายในและลายเซ็นที่อาจยังใช้ได้ หากไม่ทราบชนิดคำขอ อย่าเพิ่มสิทธิ์จากที่อยู่นี้ เก็บหลักฐานแล้วติดต่อฝ่ายความปลอดภัยทางการของกระเป๋าหรือโปรโตคอล เว็บไซต์นี้ไม่สามารถรับรองจากระยะไกลว่าลายเซ็นใดหมดผลแล้ว
เพิกถอนไม่จบ ให้แยกอาการก่อน
รายการว่างหรือไม่มีเครือข่ายนั้น
ตรวจที่อยู่ เครือข่าย ประเภทสินทรัพย์และขอบเขตที่เครื่องมือรองรับ รายการว่างอาจเกิดจากการอ่านล้มเหลว ไม่ใช่ใบรับรองว่าไม่มีความเสี่ยง อย่านำคีย์ส่วนตัวเข้าเว็บแปลกเพื่อให้รายการปรากฏ
กระเป๋าแจ้งว่า gas ไม่พอ
แยกให้ได้ว่าขาดสินทรัพย์พื้นฐานสำหรับ gas ของเชนนั้น หรือขาดโทเคนที่กำลังเพิกถอน หากไม่มีสัญญาณคีย์รั่วหรือถูกโอนออกอัตโนมัติ จึงเตรียมค่าธรรมเนียมที่จำเป็นด้วยวิธีปกติ หากเติม gas แล้วถูกกวาดออกทันทีทุกครั้ง ให้หยุดเติมและอ่านหัวข้อเกิดเหตุ
ธุรกรรมค้าง Pending หรือ Failed
ระหว่าง Pending สิทธิ์เดิมอาจยังอยู่ ตรวจแฮชและธุรกรรมก่อนหน้าที่ค้างในบัญชีเดียวกันให้เข้าใจ ก่อนใช้คำแนะนำทางการของกระเป๋าเรื่องแทนที่หรือเร่งธุรกรรม อย่ากดเพิกถอนซ้ำ ๆ หาก Failed / Reverted ให้เก็บข้อความผิดพลาดและตรวจสิทธิ์เดิม แล้วหาสาเหตุจากยอดเงิน ข้อจำกัดสัญญา หรือเครือข่ายก่อนตัดสินใจลองใหม่
แอปทำรายการไม่ได้หลังเพิกถอน
อาจเป็นผลปกติเมื่อสิทธิ์ลดลง ไม่ได้หมายความว่าต้องคืนวงเงินไม่จำกัด หากต้องใช้แอปจริง ให้ตรวจโดเมนและ spender ใหม่ แล้วให้เพียงสิทธิ์ที่จำเป็น หากตั้งใจเลิกใช้แอป ก็หยุดตรงนี้ได้
สินทรัพย์ไหลออกเอง อย่าเติมเงินให้ที่อยู่เดิมซ้ำ
ปฏิเสธคำขอที่เหลือและออกจากหน้าที่น่าสงสัย เก็บแฮชสาธารณะ เวลา เครือข่ายและรายละเอียดสิทธิ์ การตัดการเชื่อมต่อช่วยลดการโต้ตอบใหม่ แต่ไม่ได้ลบสิทธิ์บนเชน หากระบุได้ว่าเป็นปัญหา token approval ให้จัดการสิทธิ์ที่เกี่ยวข้องและตรวจผล ธุรกรรมเพิกถอนอาจแข่งกับธุรกรรมผู้โจมตี จึงรับประกันไม่ได้ว่าจะทันเสมอ
หากเคยกรอกวลีสำรองหรือคีย์ส่วนตัวในหน้าแปลก ส่งให้คนอื่น หรือมีหลายสินทรัพย์ถูกโอนออกเองต่อเนื่อง ให้ถือว่าอาจรั่วถึงอำนาจควบคุมบัญชี การลบสิทธิ์รายการเดียวแก้คีย์ที่ถูกคัดลอกไม่ได้ อย่าตอบรับข้อความ “เติม gas อีกนิดเพื่อกู้คืน” และอย่าให้ผู้ช่วยทางไกลควบคุมคอมพิวเตอร์
เตรียมแผนกู้สถานการณ์บนอุปกรณ์ที่เชื่อถือได้และไม่ถูกกระทบ ในสภาพแวดล้อมกระเป๋าทางการ หากยืนยันว่าคีย์รั่ว บัญชีใหม่ต้องใช้วลีสำรองที่สร้างใหม่ ไม่ใช่เพิ่มอีกที่อยู่จากวลีเดิม การย้ายสินทรัพย์ยังต้องตรวจผู้รับ เครือข่าย และการโจมตีที่กำลังเกิดขึ้น หากมีสัญญาณโปรแกรมกวาดเหรียญอัตโนมัติ ให้ปรึกษาฝ่ายความปลอดภัยทางการก่อนทดลองโอนหรือเติม gas อีก เก็บบันทึกความเสียหายและขอความช่วยเหลือที่ถูกต้อง อย่าจ่ายเงินเพราะมีคนรับประกันว่าจะตามทรัพย์คืนได้แน่นอน
จดเฉพาะสิ่งที่จำเป็นสำหรับการให้สิทธิ์ครั้งต่อไป
บันทึกเหตุผลที่ให้สิทธิ์ เครือข่าย สัญญาโทเคน spender และยังจำเป็นอยู่หรือไม่ก็พอ ไม่ต้องเสียเงินล้างโทเคนขยะทุกชิ้นตามปฏิทินตายตัว หรือซื้อคะแนนความปลอดภัยที่ไม่ชัดเจน ตรวจสิทธิ์ที่เกี่ยวข้องอีกครั้งเมื่อเลิกใช้แอป เปลี่ยนวัตถุประสงค์กระเป๋า หรือพบประกาศความปลอดภัยที่ตรวจสอบแล้ว
เทียบคำขอครั้งต่อไปกับสิ่งที่ตั้งใจทำ การดูยอดเงินไม่ต้องให้สิทธิ์ใช้โทเคน การเพิ่มเครือข่ายไม่ใช่เหตุให้เซ็น Permit การเพิกถอนลดอำนาจที่เรารู้จัก ไม่ใช่หลักประกันว่าคำขอหลังจากนี้ปลอดภัยทั้งหมด
เอกสารต้นฉบับสำหรับตรวจเพิ่มเติม
- ethereum.org: เพิกถอนสิทธิ์สัญญา
- ERC-2612: Permit และ nonce
- Revoke.cash: ลายเซ็น Permit
- Revoke.cash: Permit2
บทความความปลอดภัยอิสระจาก chainsentry ปรับปรุง 2026-09-08 กฎสิทธิ์อาจต่างกันตามสัญญา ไม่ใช่การรับประกันความปลอดภัยบัญชี