Ledger Nano S Plus

Token Approval เป็นกลไกพื้นฐานที่ทำให้ระบบ DeFi บนเครือข่าย Ethereum และเชนที่ใช้มาตรฐาน ERC-20 ทำงานได้ ไม่ว่าจะเป็นการสวอปเหรียญบน DEX หรือการฝากสินทรัพย์เข้า Lending Protocol ล้วนต้องผ่านขั้นตอนนี้ทั้งสิ้น แต่ปัญหาคือผู้ใช้จำนวนมากเห็นป๊อปอัพขอ "Approve" แล้วกดยืนยันทันทีโดยไม่เข้าใจว่าตนเองกำลังให้สิทธิ์อะไรไปบ้าง และในหลายกรณี Approval ที่ให้ไว้แบบไม่จำกัดจำนวนนี้เองที่กลายเป็นช่องทางให้แฮกเกอร์เข้ามาโอนสินทรัพย์ทั้งหมดออกจากกระเป๋าไปได้ในภายหลัง บทความนี้จะพาไปทำความเข้าใจกลไกของ Token Approval จุดที่มักถูกโจมตี และวิธีป้องกันตัวเองอย่างเป็นรูปธรรม รวมถึงการใช้เครื่องมืออย่าง Revoke.cash เพื่อตรวจสอบและยกเลิกสิทธิ์ที่ไม่ปลอดภัย

Token Approval คืออะไร

เมื่อใช้งาน DeFi Protocol ส่วนใหญ่ ไม่ว่าจะเป็น DEX (Decentralized Exchange) หรือ Lending Protocol ผู้ใช้จำเป็นต้องให้สิทธิ์แก่ Smart Contract นั้นในการเข้าถึง Token ของตัวเองก่อน สิทธิ์นี้เรียกว่า "Approval" ซึ่งเป็นส่วนหนึ่งของมาตรฐาน ERC-20 บนเครือข่าย Ethereum


มาตรฐาน ERC-20 กำหนดฟังก์ชันชื่อ approve() ไว้ ซึ่งช่วยให้เจ้าของ Token สามารถระบุกับ Smart Contract หนึ่ง ๆ ได้ว่า "คุณสามารถใช้จ่าย Token ของฉันได้สูงสุดไม่เกินจำนวน X" โดยที่ยังไม่มีการโอนเงินเกิดขึ้นจริงในขั้นตอนนี้ การโอนจริงจะเกิดขึ้นภายหลังเมื่อ Contract เรียกใช้ฟังก์ชัน transferFrom() ต่างหาก


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

Approval ≠ Transfer — การอนุมัติเป็นเพียงการให้สิทธิ์เท่านั้น ไม่ใช่การส่งเงินทันที

Unlimited Approval: ดาบสองคมที่มาพร้อมความสะดวก

เมื่อใช้งาน DeFi หลายผู้ให้บริการมักตั้งค่าเริ่มต้นของป๊อปอัพขอ Approval ไว้ที่ "Unlimited Approval" หรือการอนุมัติแบบไม่จำกัดจำนวน ซึ่งในทางเทคนิคคือการตั้งค่าตัวเลข Approval ไว้ที่ค่าสูงสุดที่ตัวแปรชนิด uint256 ใน Solidity รองรับได้ นั่นคือ 2^256-1 ซึ่งเป็นตัวเลขที่มากเกินกว่าจะใช้หมดได้จริงในทางปฏิบัติ


เหตุผลที่ Protocol ส่วนใหญ่เลือกใช้ Unlimited Approval เป็นค่าเริ่มต้นคือความสะดวกในการใช้งาน ผู้ใช้ไม่ต้องกังวลว่าจะต้องกลับมาอนุมัติซ้ำอีกเมื่อยอดใกล้หมด และ Protocol เองก็ลดจำนวนธุรกรรม (และค่า Gas) ที่ผู้ใช้ต้องจ่ายลงได้ในระยะยาว เพราะอนุมัติเพียงครั้งเดียวก็ใช้งานได้ตลอดไป


แต่นี่คือจุดที่ความเสี่ยงเกิดขึ้น เพราะหากผู้ใช้ให้ Unlimited Approval กับ Smart Contract ที่ภายหลังกลายเป็นอันตราย ไม่ว่าจะเพราะถูกแฮกหรือถูกออกแบบมาเพื่อหลอกลวงตั้งแต่ต้น เจ้าของ Contract นั้นจะสามารถโอน Token ประเภทดังกล่าวออกไปได้ทั้งหมดเท่าที่ผู้ใช้มีอยู่ในกระเป๋า ไม่ใช่แค่จำนวนที่ตั้งใจจะใช้ในธุรกรรมแรกเท่านั้น ความสะดวกในวันนั้นจึงอาจกลายเป็นความเสี่ยงที่ค้างอยู่ในกระเป๋าไปอีกนาน หากผู้ใช้ไม่เคยกลับมาตรวจสอบหรือยกเลิกสิทธิ์นี้เลย

ช่องโหว่และช่องทางที่พบบ่อย

ช่องโหว่ของระบบ Approval ไม่ได้เกิดจากข้อบกพร่องในมาตรฐาน ERC-20 เอง แต่เกิดจากวิธีที่ผู้ใช้ให้สิทธิ์ Approval ออกไป และจากเหตุการณ์ที่ Smart Contract ปลายทางกลายเป็นอันตรายในภายหลัง โดยรูปแบบที่พบบ่อยมีดังนี้


Smart Contract ถูกแฮก: DEX หรือ Protocol ที่ผู้ใช้เคยเชื่อถือและเคยให้ Approval ไว้ ถูกผู้ไม่หวังดีเจาะช่องโหว่และเข้าควบคุม Contract ได้ แฮกเกอร์จึงใช้ Approval เดิมที่ผู้ใช้เคยให้ไว้เพื่อโอน Token ออกไปโดยไม่ต้องขอลายเซ็นใหม่


Phishing / เว็บไซต์ปลอม: ผู้ใช้เข้าเว็บไซต์ที่เลียนแบบหน้าตาของ DEX หรือ Protocol ชื่อดังจนแยกไม่ออก และลงนาม Approval บนเว็บปลอมนั้นโดยไม่รู้ตัว ซึ่งจริง ๆ แล้วเป็นการให้สิทธิ์แก่ Malicious Contract ของแฮกเกอร์โดยตรง


Fake Token / Airdrop หลอกลวง: ผู้ใช้ได้รับ Token แปลกหน้าเข้ากระเป๋าโดยอ้างว่าเป็น Airdrop ฟรี เมื่อพยายามเข้าเว็บไซต์ที่แนบมาเพื่อ "เคลม" หรือแลกเปลี่ยน Token นั้น กลับถูกพาไปเซ็น Approval ให้กับ Malicious Contract ที่ซ่อนอยู่เบื้องหลังแทน


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

Phishing เป็นสาเหตุหลักของกลโกง Approval ส่วนใหญ่ — ตรวจสอบ URL ให้ละเอียดทุกครั้งก่อนเชื่อมต่อ Wallet

ลักษณะการโจมตี: ขั้นตอนการขโมย Token ทีละขั้น

เพื่อให้เข้าใจกลไกของการโจมตีผ่าน Approval อย่างชัดเจน สามารถแบ่งออกเป็นลำดับขั้นตอนได้ดังนี้


ขั้นที่ 1 — สร้าง Malicious Contract: แฮกเกอร์เขียน Smart Contract ที่ออกแบบมาโดยเฉพาะเพื่อรอรับ Approval จากเหยื่อ และมีฟังก์ชันสำหรับดึงเงินออกในภายหลัง


ขั้นที่ 2 — ล่อลวงให้เหยื่อลงนาม Approval: ผ่านหลายช่องทาง เช่น เว็บไซต์ Phishing ที่เลียนแบบของจริง ข้อความ Airdrop ปลอม หรือแม้แต่การปลอมเป็นทีมซัพพอร์ตของ Protocol ที่มีชื่อเสียง


ขั้นที่ 3 — เหยื่อกดยืนยัน Approval โดยไม่รู้ตัวว่ากำลังให้สิทธิ์กับใคร: Wallet ของเหยื่อส่งลายเซ็นยืนยันไปยัง Smart Contract ของแฮกเกอร์โดยตรง ในขั้นตอนนี้ยังไม่มีเงินเคลื่อนไหวใด ๆ


ขั้นที่ 4 — แฮกเกอร์เรียกใช้ transferFrom(): เมื่อพร้อม แฮกเกอร์จะสั่งให้ Contract ของตนเรียกฟังก์ชัน transferFrom() ซึ่งอาศัยสิทธิ์ Approval ที่มีอยู่เพื่อโอน Token จาก Wallet ของเหยื่อไปยังที่อยู่ของตนเองโดยตรง โดยไม่ต้องขอลายเซ็นจากเหยื่ออีกครั้ง


ขั้นที่ 5 — Token หายไปจากกระเป๋า: เหยื่อมักไม่รู้ตัวจนกระทั่งเปิด Wallet มาตรวจสอบและพบว่า Token บางส่วนหรือทั้งหมดหายไปอย่างไม่ทราบสาเหตุ ซึ่งในจุดนี้มักสายเกินกว่าจะป้องกันความเสียหายที่เกิดขึ้นแล้ว

ระดับความเสี่ยงของ Approval แต่ละประเภท

ไม่ใช่ทุก Approval ที่ผู้ใช้เคยให้ไว้จะมีความเสี่ยงเท่ากัน สามารถแบ่งระดับความเสี่ยงออกเป็นสามกลุ่มคร่าว ๆ ได้ดังนี้


ความเสี่ยงสูง: Approval ที่ให้กับที่อยู่ Contract ที่ไม่รู้จักหรือตรวจสอบไม่ได้ โดยเฉพาะหากเป็น Unlimited Approval นี่คือกรณีที่อันตรายที่สุด เพราะไม่มีทางรู้ได้เลยว่า Contract ปลายทางจะถูกใช้งานอย่างไรในอนาคต


ความเสี่ยงปานกลาง: Approval ที่ให้กับ Smart Contract ของ Protocol ที่มีชื่อเสียงและถูกใช้งานมานาน แต่ก็ยังคงมีความเสี่ยงตกค้างอยู่ เช่น ความเป็นไปได้ที่ Contract จะถูกแฮกในอนาคต หรือมีการอัปเกรดโค้ดในลักษณะที่เป็นอันตรายหากทีมพัฒนามีสิทธิ์ Upgradeable Contract


ความเสี่ยงต่ำ: Approval ที่ให้กับ Smart Contract ซึ่งผ่านการตรวจสอบโดยบริษัท Audit ที่มีชื่อเสียง มีประวัติการใช้งานยาวนานโดยไม่มีเหตุการณ์ผิดปกติ และเป็น Immutable Contract ที่ไม่สามารถแก้ไขโค้ดภายหลังได้ อย่างไรก็ตาม แม้จะผ่าน Audit แล้วก็ไม่ได้แปลว่าไม่มีความเสี่ยงเลยแม้แต่น้อย เพราะ Audit เป็นเพียงการลดความเสี่ยง ไม่ใช่การรับประกันความปลอดภัย 100%


การแบ่งระดับความเสี่ยงเช่นนี้ช่วยให้ผู้ใช้จัดลำดับความสำคัญได้ว่าควรรีบยกเลิก Approval ตัวไหนก่อน แทนที่จะต้องยกเลิกทั้งหมดพร้อมกันซึ่งอาจไม่จำเป็นและเสียค่า Gas โดยใช่เหตุ

วิธีตรวจสอบ Approval ที่คุณเคยให้ไว้

ขั้นตอนที่สำคัญที่สุดก่อนจะป้องกันตัวเองได้คือการรู้ว่าตนเองเคยให้ Approval อะไรไว้กับใครบ้าง ซึ่งสามารถตรวจสอบได้ผ่านหลายช่องทาง


ตรวจสอบผ่าน Blockchain Explorer: เข้า Etherscan (หรือ Block Explorer ของเชนอื่นตามที่ใช้งาน) ใส่ที่อยู่ Wallet ของตนเอง แล้วมองหาแท็บที่แสดงประวัติ Token Approval โดยตรง ข้อเสียของวิธีนี้คือค่อนข้างช้าและต้องคุ้นเคยกับการอ่านข้อมูลบน Explorer พอสมควร


ตรวจสอบผ่าน Web3 Portfolio Scanner: มีเว็บไซต์และแอปพลิเคชันจำนวนหนึ่ง เช่น DeBank, Zerion หรือฟีเจอร์ Portfolio ในบาง Wallet ที่แสดงรายการ Approval ทั้งหมดในรูปแบบที่อ่านง่ายกว่า Explorer ทั่วไป ข้อเสียคือผู้ใช้ต้องเชื่อใจว่าเว็บไซต์เหล่านี้แสดงข้อมูลถูกต้องและไม่มีความเสี่ยงด้านความปลอดภัยของตัวเอง


คำแนะนำคือควรตรวจสอบ Approval อย่างน้อยเดือนละครั้ง หรือทุกครั้งหลังใช้งาน Protocol ใหม่ที่ไม่คุ้นเคย เพื่อให้แน่ใจว่าไม่มีสิทธิ์ที่ให้ไว้โดยไม่ตั้งใจหรือลืมยกเลิกตกค้างอยู่

Revoke.cash — เครื่องมือยกเลิก Approval

Revoke.cash เป็นเว็บไซต์ที่ออกแบบมาโดยเฉพาะเพื่อให้ผู้ใช้สามารถตรวจสอบและยกเลิก Approval ที่เคยให้ไว้ได้อย่างสะดวกในที่เดียว โดยรองรับหลายเครือข่ายที่ใช้มาตรฐาน EVM ไม่ใช่เฉพาะ Ethereum เท่านั้น


ขั้นตอนการใช้งาน Revoke.cash โดยสรุป: เข้าเว็บไซต์ revoke.cash โดยตรง เชื่อมต่อ Wallet ของตนเอง ระบบจะดึงข้อมูลที่อยู่ Wallet และแสดงรายการ Approval ทั้งหมดที่เคยให้ไว้บนเครือข่ายที่เลือก จากนั้นกดปุ่ม "Revoke" ข้าง Approval รายการที่ต้องการยกเลิก ลงนามยืนยันธุรกรรมผ่าน Wallet ของตนเอง แล้วรอให้ธุรกรรมได้รับการยืนยันบน Blockchain


ข้อดีของเครื่องมือนี้คือใช้งานง่ายมาก แม้ผู้ใช้ที่ไม่ถนัดด้านเทคนิคก็สามารถทำตามได้โดยไม่ต้องเข้าใจโค้ดเบื้องหลัง อีกทั้งยังเป็นเครื่องมือแบบ non-custodial คือไม่มีการเก็บ Private Key หรือควบคุมสินทรัพย์ของผู้ใช้แต่อย่างใด เพียงช่วยสร้างธุรกรรมยกเลิกที่ผู้ใช้ต้องลงนามเองทุกครั้ง


ข้อเสียเพียงอย่างเดียวคือธุรกรรม Revoke แต่ละครั้งต้องเสียค่า Gas Fee ของเครือข่ายตามปกติ เช่นเดียวกับธุรกรรมอื่น ๆ บน Blockchain ดังนั้นหากมี Approval จำนวนมากที่ต้องยกเลิก ควรพิจารณายกเลิกเฉพาะรายการที่มีความเสี่ยงสูงก่อนเป็นลำดับแรก

Revoke.cash ไม่มีค่าบริการเพิ่มเติมจากตัวเว็บไซต์ — ผู้ใช้จ่ายเพียงค่า Gas Fee ของธุรกรรม Revoke เท่านั้น

วิธีป้องกันตัวเองจากกลโกง Approval

ต่อไปนี้เป็นแนวทางปฏิบัติที่ช่วยลดความเสี่ยงจากกลโกง Approval ตั้งแต่ต้นทาง


1. ตรวจสอบ URL ก่อนลงนามทุกครั้ง: ตรวจสอบให้แน่ใจว่า URL ที่กำลังเข้าใช้งานถูกต้องตรงกับเว็บไซต์จริง เพราะตัวอักษรที่ผิดเพียงตัวเดียวก็อาจนำไปสู่เว็บไซต์ปลอมที่ออกแบบมาเลียนแบบได้แนบเนียน


2. เลือกใช้ Limited Approval แทน Unlimited เมื่อทำได้: อนุมัติเฉพาะจำนวนที่ตั้งใจจะใช้จริงในธุรกรรมนั้น ๆ เช่น หากต้องการสวอป 100 USDC ก็อนุมัติในจำนวนที่ใกล้เคียงกัน แทนที่จะปล่อยให้เป็นค่า Unlimited ตามค่าเริ่มต้นของ Wallet บาง Wallet มีตัวเลือกให้ปรับแก้จำนวน Approval ได้ก่อนยืนยัน ควรใช้ฟีเจอร์นี้เสมอเมื่อมี


3. ยกเลิก Approval เก่าที่ไม่ได้ใช้แล้วเป็นประจำ: ตรวจสอบรายการ Approval ของตนเองผ่านเครื่องมือที่กล่าวถึงข้างต้น และยกเลิกสิทธิ์ที่ไม่ได้ใช้งานอีกต่อไป โดยเฉพาะ Protocol ที่เลิกใช้งานไปแล้วหรือไม่แน่ใจในความน่าเชื่อถือ


4. หลีกเลี่ยงการคลิกลิงก์จาก Social Media โดยตรง: ลิงก์ที่แนบมากับโพสต์บน Twitter/X หรือ Discord มักถูกใช้เป็นช่องทาง Phishing ควรพิมพ์ URL ของเว็บไซต์ที่ต้องการเข้าใช้งานด้วยตนเอง หรือใช้ Bookmark ที่บันทึกไว้ล่วงหน้าแทน


5. พิจารณาใช้ Hardware Wallet: อุปกรณ์อย่าง Ledger หรือ Trezor กำหนดให้ผู้ใช้ต้องกดยืนยันธุรกรรมบนอุปกรณ์จริงทุกครั้ง ซึ่งช่วยเพิ่มโอกาสที่ผู้ใช้จะสังเกตเห็นรายละเอียดผิดปกติก่อนลงนามจริง เมื่อเทียบกับการกดยืนยันผ่านหน้าจอมือถือหรือเบราว์เซอร์เพียงอย่างเดียว


6. พิจารณาใช้ Multi-signature Wallet สำหรับสินทรัพย์ก้อนใหญ่: เครื่องมืออย่าง Gnosis Safe กำหนดให้ต้องมีผู้ลงนามหลายคนก่อนธุรกรรมจะสำเร็จ ช่วยลดความเสี่ยงจากการที่บุคคลเดียวถูกหลอกให้เซ็น Approval อันตรายโดยลำพัง


7. ตรวจสอบข้อมูล Smart Contract ก่อนใช้งาน: หากเป็นไปได้ ควรตรวจสอบว่า Contract ผ่านการ Audit จากบริษัทที่มีชื่อเสียงหรือไม่ มีประวัติการใช้งานมานานเพียงใด และมีรายงานปัญหาด้านความปลอดภัยมาก่อนหรือไม่ ก่อนตัดสินใจให้ Approval

หากถูกขโมย Token แล้ว ควรทำอะไรต่อจากนี้

หากพบว่า Token ในกระเป๋าถูกขโมยไปเรียบร้อยแล้ว นี่คือขั้นตอนที่ควรทำทันที


1. ยกเลิก Approval ที่เหลือทั้งหมดโดยด่วน: เข้า Revoke.cash หรือเครื่องมือลักษณะเดียวกัน แล้วยกเลิก Approval ทุกรายการที่ไม่มั่นใจหรือไม่รู้จัก แม้ Token ส่วนหนึ่งจะถูกขโมยไปแล้ว การยกเลิก Approval ที่เหลือช่วยหยุดความเสียหายเพิ่มเติมไม่ให้ลุกลามไปยัง Token ประเภทอื่นที่ยังอยู่ในกระเป๋า


2. ย้าย Token ที่เหลือไปยัง Wallet ใหม่: สร้าง Wallet ใหม่ที่มี Private Key และ Seed Phrase ไม่เคยถูกเปิดเผยมาก่อน แล้วโอนสินทรัพย์ที่เหลือทั้งหมดไปเก็บไว้ที่นั่น เพราะ Wallet เดิมอาจมีความเสี่ยงตกค้างอยู่หากสาเหตุการถูกขโมยเกี่ยวข้องกับการรั่วไหลของ Seed Phrase


3. บันทึกหลักฐานที่เกี่ยวข้องไว้ให้ครบถ้วน: จดบันทึกหรือแคปหน้าจอ Transaction Hash ที่เกี่ยวข้องกับการโจมตี ที่อยู่ Wallet ของแฮกเกอร์ และ Contract ที่ใช้ในการโจมตี ข้อมูลเหล่านี้อาจเป็นประโยชน์ต่อการติดตามหรือแจ้งเตือนผู้อื่นในภายหลัง


4. แจ้งเตือนไปยังทีมที่เกี่ยวข้อง: หากการโจมตีเกิดขึ้นผ่าน Protocol หรือ Wallet ที่มีชื่อเสียง ควรรายงานเหตุการณ์ไปยังทีมความปลอดภัยของ Protocol นั้นโดยตรง เพื่อให้พวกเขาสามารถแจ้งเตือนผู้ใช้รายอื่นและอาจช่วยติดตามเส้นทางเงินได้ในบางกรณี


5. ทำใจว่าโอกาสกู้คืนสินทรัพย์มีจำกัดมาก: ธรรมชาติของ Blockchain คือการบันทึกธุรกรรมแบบถาวรและย้อนกลับไม่ได้ (immutable) การเรียกคืนสินทรัพย์ที่ถูกโอนออกไปแล้วแทบเป็นไปไม่ได้ในทางปฏิบัติ บทเรียนสำคัญที่สุดหลังเหตุการณ์เช่นนี้คือการนำแนวทางป้องกันที่กล่าวมาข้างต้นไปใช้อย่างเคร่งครัดกับ Wallet ใหม่ เพื่อไม่ให้เกิดเหตุการณ์ซ้ำอีก

คำถามที่พบบ่อย

Approval กับ Transfer แตกต่างกันอย่างไร
Approval เป็นเพียงการให้ 'สิทธิ์' แก่ Smart Contract ในการใช้จ่าย Token แทนเรา ไม่ใช่การส่งเงินออกจากกระเป๋าทันที เงินจะถูกเคลื่อนย้ายจริงก็ต่อเมื่อ Smart Contract ที่ได้รับสิทธิ์นั้นเรียกใช้ฟังก์ชัน transferFrom() เท่านั้น การกดยืนยัน Approval จึงไม่เท่ากับการโอนเงิน แต่เป็นการเปิดประตูทิ้งไว้ให้ Contract นั้นเข้ามาใช้ Token ของเราได้ในภายหลัง
ควรอนุมัติ Approval จำนวนเท่าไหร่จึงจะปลอดภัย
หลักการทั่วไปคือ Limited Approval ปลอดภัยกว่า Unlimited Approval เสมอ หากตั้งใจจะสวอป 100 USDC ให้พิจารณาอนุมัติในจำนวนที่ใกล้เคียงกับที่จะใช้จริง เช่น เผื่อไว้เล็กน้อยสำหรับความผันผวนของราคา แทนที่จะกดอนุมัติแบบไม่จำกัดจำนวนซึ่งเป็นค่าเริ่มต้นของ Wallet หลายตัว วิธีนี้จำกัดความเสียหายสูงสุดได้หากมีเหตุ Contract ถูกแฮกหรือกลายเป็นอันตรายในภายหลัง
ทำไม Token ถึงหายไปทั้งที่เราไม่ได้กดส่งเงินเอง
เพราะก่อนหน้านี้เราเคยให้ Unlimited Approval ไว้กับ Smart Contract ที่ภายหลังกลายเป็นอันตราย ไม่ว่าจะเพราะถูกแฮกหรือถูกสร้างขึ้นมาเพื่อหลอกลวงตั้งแต่ต้น สิทธิ์ที่เคยให้ไว้นั้นทำให้เจ้าของ Contract สามารถเรียก transferFrom() เพื่อโอน Token ออกจาก Wallet ของเราได้โดยไม่ต้องขอลายเซ็นเพิ่มเติมอีกครั้ง
Revoke.cash ปลอดภัยหรือไม่
Revoke.cash เป็นเครื่องมือที่ได้รับความนิยมและรู้จักกันอย่างกว้างขวางในชุมชน Web3 ทำงานแบบ non-custodial คือไม่มีการเก็บ Private Key หรือควบคุมสินทรัพย์ของผู้ใช้แต่อย่างใด เว็บไซต์เพียงช่วยสร้างธุรกรรมยกเลิก Approval ที่ผู้ใช้ต้องเป็นคนลงนามเองผ่าน Wallet ของตัวเองทุกครั้ง ค่าใช้จ่ายเดียวที่ต้องเสียคือ Gas Fee ของเครือข่าย ไม่ใช่ค่าบริการ อย่างไรก็ตาม ผู้ใช้ควรตรวจสอบ URL ให้ถูกต้อง (revoke.cash) ทุกครั้งเพื่อป้องกันเว็บปลอมที่แอบอ้างชื่อเดียวกัน
ถ้าถูกขโมย Token ไปแล้ว สามารถกู้คืนได้หรือไม่
โดยทั่วไปแล้วไม่สามารถทำได้ เพราะธุรกรรมบน Blockchain มีลักษณะถาวรและย้อนกลับไม่ได้ (immutable) การเรียกคืนสินทรัพย์แทบเป็นไปไม่ได้เว้นแต่ในกรณีพิเศษที่หาได้ยากมาก สิ่งที่ทำได้ทันทีคือการยกเลิก Approval ที่เหลือทั้งหมดเพื่อป้องกันความเสียหายเพิ่มเติม และย้าย Token ส่วนที่เหลือไปยัง Wallet ใหม่ที่ปลอดภัย

ติดตามข่าว Crypto ล่าสุด

รับบทวิเคราะห์และข่าวสาร Bitcoin, Altcoins ทุกวันจาก 678.in.th

ดูบทความทั้งหมด

สรุป

Token Approval เป็นกลไกที่จำเป็นต่อการใช้งาน DeFi แทบทุกรูปแบบ ตั้งแต่การสวอปเหรียญบน DEX ไปจนถึงการฝากสินทรัพย์เข้า Lending Protocol แต่ในขณะเดียวกันมันก็เป็นดาบสองคมที่แฮกเกอร์ใช้เป็นช่องทางหลักในการขโมยสินทรัพย์จากผู้ใช้ที่ไม่ระมัดระวัง สิ่งสำคัญที่สุดคือการเข้าใจว่า Approval คืออะไร ตรวจสอบ URL ทุกครั้งก่อนเชื่อมต่อ Wallet เลือกใช้ Limited Approval แทน Unlimited เมื่อทำได้ และหมั่นตรวจสอบ-ยกเลิก Approval เก่าที่ไม่ได้ใช้งานแล้วเป็นประจำ เครื่องมืออย่าง Revoke.cash ช่วยให้ขั้นตอนนี้ทำได้ง่ายแม้ผู้ใช้ทั่วไปที่ไม่ถนัดด้านเทคนิค การป้องกันตัวเองในโลก Web3 ไม่ได้ขึ้นอยู่กับใครมาช่วยกู้คืนเงินให้ภายหลัง เพราะธุรกรรมบน Blockchain ถาวรและย้อนกลับไม่ได้ ความปลอดภัยของสินทรัพย์จึงอยู่ในมือของผู้ใช้เองตั้งแต่ต้นทาง เริ่มตรวจสอบ Approval ของคุณวันนี้ ก่อนที่มันจะสายเกินไป

บทความนี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น ไม่ถือเป็นคำแนะนำทางการเงิน