เหรียญประหลาดโผล่ใน Wallet เราได้ยังไง แล้วต้องทำอะไรกับมัน?

Kongpon Charanwattanakit
SCB 10X OFFICIAL PAGE
5 min readAug 2, 2021

แน่นอนว่าเรา ๆ ชาว DeFi มือใหม่ย่อมต้องสงสัยกันเป็นแน่ เมื่ออยู่ดี ๆ ก็มีเหรียญประหลาดโผล่มาอยู่ใน Wallet ของเรา ทำให้นั่งเฉย ๆ ก็เป็นเศรษฐีกันไปโดยไม่รู้ตัว 🤑

เหรียญเหล่านี้จริง ๆ แล้วก็มีหลายจุดประสงค์ บ้างก็เป็นรางวัล Airdrop ที่เราได้จากการเข้าร่วมกิจกรรมบางอย่าง หรืออาจเป็นการโฆษณาเหรียญเปิดใหม่ของเค้า แต่ 90% มันก็มักจะเป็นเหรียญ Scam ที่สร้างโดยผู้ไม่หวังดี กะจะมาขโมยเงินเรานั่นเอง! ก็แหงล่ะ นั่งเฉย ๆ ได้เงินร้อยล้าน มีที่ไหน 😅 …ว่าแต่เค้าทำไปทำไมนะ? แล้วเราควรจะทำอะไรกับเหรียญพวกนี้ดี… ถ้าไปยุ่งกับมันแล้วจะเป็นอะไรมั้ย? วันนี้เรามาหาคำตอบกันครับ 🙊

ไม่แนะนำให้อ่านแค่สรุปย่อนะครับ เพราะหลาย ๆ Concept เป็นเรื่องที่ควรรู้ ไม่งั้นการใช้งานบนโลก DeFi ของคุณจะอันตรายมาก!

สรุปย่อ

  1. เหรียญเข้ามาในกระเป๋าเราได้ยังไง ?— มีหลายกรณี บางทีมิจฉาชีพก็โอนเข้ามาให้เราจริง ๆ เพราะใน Blockchain หา Address กันง่ายอยู่แล้ว แค่เคย Swap ใน PancakeSwap ก็มีใน Log แล้ว หรือบางทีอาจจะไม่ได้โอนเข้ามาด้วยซ้ำ แต่ Smart Contract ของเหรียญมิจฉาชีพบอกว่าเราถือเหรียญเค้าอยู่
  2. ทำอะไรกับมันได้บ้าง ?— แล้วแต่เหรียญ บางเหรียญก็โอนทิ้งได้ บางเหรียญก็ทำไม่ได้ ทางที่ดีแค่ซ่อนมันไปก็พอครับ
  3. มีเหรียญเข้ามา = โดนแฮค? — ไม่ใช่ครับ ไม่มีใครแฮคเราได้ถ้าเราไม่ได้ให้ Seed Phrase / Private Key หรือ Approve Transaction มั่ว ๆ ถ้าทำไปแล้วจังหวะนี้ Hardware Wallet ก็ช่วยอะไรไม่ได้ครับ
  4. เคยพยายามกดขายแล้ว จะโดนแฮคมั้ย ?— ถ้า Swap ในเว็บน่าเชื่อถือก็ไม่เป็นไรครับ แต่ถ้า Swap ที่เว็บมิจฉาชีพก็อาจจะโดนได้

เห็นหลายคนถามกันมาเยอะมาก ว่าเหรียญพวกนี้ เข้ามาในกระเป๋าเราได้ยังไง หรือจะเอาออกจากกระเป๋าเรายังไง ซึ่งการจะตอบคำถามเหล่านี้ ผมต้องย้อนกลับไปอธิบายพื้นฐานของ Smart Contract กันก่อนครับ ว่าสิ่งที่เราเรียกกันว่า เหรียญ หรือ Token เนี่ย จริง ๆ แล้วมันถูกเก็บอยู่ที่ไหน?

ในโลกของ Blockchain (โดยส่วนใหญ่) สิ่งที่เป็น “เงิน” หรือ Currency จริง ๆ ในกระเป๋าเรานั้น มักจะมีแค่ “Native Token” เท่านั้น เช่น ใน Bitcoin จะใช้เป็น BTC ใน Ethereum Chain จะใช้เป็น ETH หรือใน Binance Smart Chain จะใช้เป็น BNB

แล้วเหรียญอื่น ๆ อย่าง USDT, CAKE, SUSHI นี่มันคืออะไรกันนะ มันเก็บที่ไหนล่ะ?

เหรียญอื่น ๆ ที่ไม่ใช่ Native Token จะอยู่ในรูปแบบของ “Smart Contract” หรือโค้ดที่เขียนตาม Standard ที่ชื่อว่า “ERC20” (ใน Ethereum) หรือใน Binance Smart Chain จะเรียกอีกชื่อว่า “BEP20”

เวลาที่เราจะสร้างเหรียญใหม่ขึ้นมา เราจะต้องเขียน Smart Contract ที่มีฟังก์ชันตามที่ Standard ERC20 ได้ระบุไว้ โดยใน Standard นั้นจะมีฟังก์ชันหลัก ๆ เช่น

  • transfer(address to, uint tokens) — โอนเหรียญจากผู้เรียกใช้คำสั่งไปให้ปลายทาง
  • transferFrom(address from, address to, uint tokens) — โอนเงินจาก A ไป B (ผู้เรียกใช้คำสั่งไม่จำเป็นต้องเป็นเจ้าของ Wallet แต่เจ้าของ Wallet ต้อง Approve ก่อน)
  • balanceOf(address tokenOwner)— เรียกดูจำนวนเหรียญที่ Address นั้นถืออยู่
ตัวอย่างการทำงานของ balanceOf และ transfer [https://docs.ethhub.io/guides/a-straightforward-guide-erc20-tokens/]

โดยส่วนมาก Smart Contract ของเหรียญนั้น ๆ (เช่น USDT, CAKE) จะมี Table ที่จดว่า Address ไหนมีเงินเท่าไหร่ เพื่อเอาไว้เรียกดูตอนใช้คำสั่ง balanceOf หรือแก้ไข Table นั้นเวลาที่เรียกคำสั่ง transfer เพราะฉะนั้นเหรียญจะถูกจัดเก็บไว้ใน Smart Contract ของเหรียญนั้น ๆ ไม่ได้ถูกเก็บในกระเป๋าเรา

เช็ค Balance ของเหรียญทั้งหมด ด้วยคำสั่ง balanceOf

จากรูปจะเห็นได้ว่าจริง ๆ แล้วตัวเราที่เป็นเจ้าของ Wallet Address นั้น ไม่ได้มีเหรียญ “อยู่ในกระเป๋า” ของเราจริง ๆ แต่เราจะรู้ได้ว่าเรามีเหรียญ CAKE หรือ USDT จำนวนเท่าไหร่ได้จากการเรียกคำสั่ง balanceOf ผ่าน Smart Contract ของเหรียญนั้น ๆ

ด้วยเหตุนี้ มันจึงเป็นเรื่องที่ยากมากที่เราจะบอกว่า เรามีเหรียญทั้งหมดอะไรบ้าง และมีอยู่เท่าไหร่ เพราะเราต้องเรียกคำสั่ง balanceOf ดูทีละเหรียญ ในทุกเหรียญที่มีอยู่ใน Blockchain เลย เป็นสาเหตุที่ว่าใน MetaMask เราต้องคอยกด Add Token เพื่อเพิ่ม Token ที่เราต้องการจะ Track ด้วยตัวเองอยู่เสมอ

วิธีการทำงานของ MetaMask

DeFi Wallet หรือ Dashboard ต่าง ๆ อย่างเช่น DeBank หรือ Ape Board จะทำให้เราเห็นเหรียญมากกว่าใน MetaMask เพราะว่าเค้ามี List ของเหรียญต่าง ๆ เอาไว้ระดับนึงแล้ว เราจะได้ไม่ต้อง Add เอาเองทีละอันใน MetaMask (แต่แน่นอนว่าไม่ได้มีครบทุกเหรียญบนโลก)

Scam Token, Fake Airdrop คืออะไร?

ด้วยความที่ใครก็สามารถสร้าง Token ได้ ขอแค่มีฟังก์ชันครบตามที่ ERC20 Standard ได้บอกไว้ (เช่น transfer, transferFrom, balanceOf) ก็ถือว่าเป็น Token แล้ว แต่! Standard ERC20 บอกไว้แค่ว่าต้องมีฟังก์ชันพวกนี้นะ ไม่ได้บอกว่าในฟังก์ชันพวกนี้ มันจะทำงานยังไง 🤔

แปลว่าผู้สร้างเหรียญสามารถเขียนโค้ดอะไรลงไปบนฟังก์ชันเหล่านั้นก็ได้ เช่น เมื่อเรียกฟังก์ชัน transfer แล้ว แทนที่จะไปแก้ Table เพื่อปรับจำนวนเหรียญของผู้ส่งและผู้รับให้ถูกต้อง กลับไม่ทำอะไรเลย หรือแม้กระทั่งเขียนให้ฟังก์ชัน balanceOf คืนค่าเป็น 150,000 Token เสมอ คนที่เรียกใช้คำสั่งก็จะพบว่าเรามีเหรียญนี้ตั้ง 150,000 เหรียญแหนะ! ทั้ง ๆ ที่ไม่เคยยุ่งกับเหรียญนี้ หรือซื้อเหรียญนี้ด้วยซ้ำ

ตัวอย่าง balanceOf ของเหรียญ Scam VELO

จากรูปเป็นตัวอย่าง Smart Contract ของเหรียญปลอมที่ชื่อ VELO (ตั้งชื่อเลียนแบบเหรียญ VELO ที่มีอยู่จริง) ที่หลายคนน่าจะเคยเจอมันใน Wallet จะเห็นได้ว่า ไม่ว่าใครจะเรียก balanceOf ก็จะได้ค่า 150,000 ไปเสมอ 😂

ถ้าไป Swap เหรียญ Scam พวกนี้จะเป็นอะไรมั้ย?

ถ้าเกิดเราไป Swap เหรียญพวกนี้ที่ Exchange ที่น่าเชื่อถืออย่าง PancakeSwap หรือ Uniswap ก็ไม่มีอะไรน่ากลัวครับ อาจจะแค่เสีย Gas ฟรี ๆ เพราะ Swap ไปแล้วเกิด Error หรือไม่ก็ Swap ไม่ได้เพราะ Liquidity ต่ำเกินไป

Swap บน PancakeSwap แล้ว Fail

แต่! ถ้าเกิดว่าเราดันไป Swap เหรียญบน Platform ที่ไม่น่าเชื่อถือ หรือเป็น Platform ของมิจฉาชีพผู้สร้างเหรียญแล้วล่ะก็ เวลาที่เรากด Swap มันอาจจะไม่ได้ทำอย่างที่ PancakeSwap ทำก็ได้ มันอาจจะไปเรียกคำสั่งโอน BUSD ทั้งหมดของเราไปให้ Wallet มิจฉาชีพซะเอง! จะเห็นได้ว่าวิธีนี้ เราไม่ได้ใส่ Seed Phrase อะไรของเราเลยด้วยซ้ำ

อย่างไรก็ตาม การที่มิจฉาชีพจะเรียกคำสั่ง transferFrom ของ BUSD Smart Contract ได้นั้น เราจำเป็นต้องสั่ง “Approve” ก่อน เพื่อเป็นการบอก Smart Contract ของ BUSD ว่า เราอนุญาตให้ Address ของมิจฉาชีพสามารถเรียกคำสั่ง transferFrom แทนเราได้ (โดยที่เราไม่ได้เรียกเอง) เพราะฉะนั้นก่อนจะกด Approve อะไรใน MetaMask ควรจะอ่านให้ดี ๆ ก่อน ว่าใช่การ Approve เหรียญที่เราต้องการรึเปล่า!

แล้ว Scam พวกนี้ทำงานยังไง?

ก็ในเมื่อ Swap บน PancakeSwap ไม่ได้ แล้วเค้ามิจฉาชีพพวกนี้เค้าจะได้อะไร?

เป้าหมายของ Scam ประเภทนี้มักจะไม่ได้จบที่ PancakeSwap เพราะเมื่อเหยื่อสงสัยว่าทำไม Swap แล้ว Fail ก็มักจะสืบต่อจนไปพบกับเว็บของมิจฉาชีพ! ไม่ว่าจะเป็นการค้นหาผ่าน Google หรือไปดู Transaction Log ใน Etherscan/BscScan ก็ตาม

มี YouTube สอนวิธี Claim เหรียญ (แต่ 2 Link แรกเป็นวิดิโอเตือนเฉย ๆ)
ใน Error Log ก็มี Link ไปที่เว็บมิจฉาชีพ

ยกตัวอย่างเหรียญ Scam อันนึงเช่น เหรียญ VELO ปลอม กับเหรียญ FLUX (คาดว่าคนทำคนเดียวกัน) เมื่อเข้าไปในเว็บของมันจะพบว่ามีปุ่ม “RECEIVED 150,000 VELO? CLICK HERE” ด้วย สะดวกสุด ๆ 😂

RECEIVED 150,000 VELO? CLICK HERE 😂

(จากนี้จะขอใช้ตัวอย่างจากเว็บของเหรียญ FLUX แทน เพราะเว็บ VELO ปลอมปิดหนีไปแล้ว แต่ Flow เดียวกันเป๊ะ)

เมื่อกดปุ่ม Claim เหรียญ ก็จะพบกับหน้าต่างหน้าตาคล้าย PancakeSwap ที่คุ้นเคย

กดเพื่อ Unlock/ขาย เหรียญ FLUX

เอาล่ะ รวยล่ะสิทีนี้! กด Approve เล้ยยยย

หน้าต่าง MetaMask เมื่อกด Approve

Allow fluxblockchain.com to spend your BUSD

ดะ… เดี๋ยวนะ ไหนบอกว่า Unlock FLUX ไง ทำไมขอ Permission เหรียญ BUSD ล่ะ!!

จะเห็นได้ว่า Scam ในตัวอย่างนี้จะเป็นลักษณะหลอกให้มากด Approve เพื่อมอบสิทธิ์โอนเหรียญ BUSD ให้กับมิจฉาชีพ ถ้ากด Confirm ไปเมื่อไหร่ รับรองว่า BUSD หายหมดแน่นอน 💸

เราทำอะไรกับเหรียญ Scam พวกนี้ได้บ้าง?

อย่างที่ได้อธิบายไปในด้านบน ว่าจริง ๆ แล้ว “กระเป๋าของเรา” ไม่ได้เก็บว่าเรามีเหรียญนั้นเท่าไหร่ แต่สิ่งที่บอกว่าเรามีเหรียญนั้นเท่าไหร่ อยู่ใน Smart Contract ของเหรียญนั้น ๆ เพราะฉะนั้นคำตอบคือ “ไม่ต้องทำอะไร” หรือบางเหรียญก็อาจจะทำอะไรไม่ได้เลยด้วยซ้ำ (เพราะโอนทิ้งยังไงเค้าก็จะบอกว่าเราถือเหรียญเค้าอยู่ดี 😂)

ในโลกของ Blockchain นั้น การที่เราจะดูว่าเราถือเหรียญ ERC20 เหล่านี้อยู่เท่าไหร่ ขึ้นอยู่กับ Client หรือ App ที่เราเอาไว้ดู Wallet ของเรานี่เอง ว่า App ที่เราใช้จะเรียกคำสั่ง balanceOf ไปที่เหรียญไหนบ้าง

ถ้าเหรียญปลอมพวกนี้มาป่วนทำให้ Net Worth บน Portfolio ของเราเพี้ยน สิ่งที่เราทำได้ก็คือหาวิธี “ซ่อน” เหรียญพวกนี้ไปเท่านั้นเอง (ก็คือไม่ต้องไปเรียก balanceOf) ซึ่งวิธีการซ่อนเหรียญก็ขึ้นอยู่กับ Wallet Client/App ที่เราใช้ ว่าจะมีฟีเจอร์ในการซ่อนเหรียญรึเปล่า

ยกตัวอย่างเช่น MetaMask ก็จะมีปุ่ม Hide ไว้ให้

วิธีซ่อนเหรียญใน MetaMask

หรือใน Ape Board ก็สามารถกดที่ปุ่ม ❗️ เพื่อ Report เหรียญนั้นให้ Admin และซ่อนออกจาก Wallet ของเรา ส่วนใหญ่เหรียญ Scam ที่โผล่มาใน Ape Board แปปเดียวก็จะหายไปครับ เพราะมี Admin คอย Monitor อยู่ตลอดเวลา

วิธีซ่อนเหรียญใน Ape Board

และในบาง Wallet/Dashboard ก็อาจจะไม่มีฟีเจอร์ในการซ่อนเหรียญด้วยเหมือนกัน ในกรณีนี้เราก็ทำอะไรไม่ได้นอกจากต้องแจ้งทางผู้พัฒนาให้นำเหรียญเหล่านี้ออกจากการแสดงผลครับ

ทำไม Dashboard บางเจ้ามีเหรียญนี้ แต่บางเจ้าไม่มี?

เอ๊ะอันนี้เป็นบัครึเปล่า หรือ Dashboard พวกนี้มันกะจะโกง ส่งเหรียญแปลก ๆ มาให้เรา 😱

โดยส่วนมากมักจะไม่ใช่บัค หรือโดน Dashboard แฮคข้อมูลเราหรอกครับ Portfolio Dashboard โดยส่วนใหญ่จะขอให้เราใส่แค่ Wallet Address ซึ่งเป็น Address ที่ Public อยู่แล้ว และไม่สามารถทำอะไรกับ Wallet ของเราได้ นอกจากดูข้อมูลที่เป็น Public ใน Blockchain อยู่แล้ว (แต่ก็ระวัง Dashboard บางเจ้าที่มีให้ Approve อะไรแปลก ๆ หรือหลอกขอ Seed Phrase ด้วยนะ!)

วิธีในการแสดงผลว่าเราถือ Token อะไรบ้างก็จะมีเทคนิคแตกต่างกันไป แต่โดยส่วนมากก็จะเป็นวิธีที่ผู้พัฒนามี List ของเหรียญต่าง ๆ แล้วเรียกใช้คำสั่ง balanceOf แบบที่เราเข้าใจกันนั่นแหละครับ ซึ่งบางเจ้าอาจจะมี List ของเหรียญน้อย ทำให้แสดงผล Token เราได้ไม่ครบ หรือบางเจ้าอาจจะมีให้ Community ช่วยกัน Add เหรียญเข้ามาในระบบ จะได้มีเหรียญเยอะ ๆ ไม่ต้องรอผู้พัฒนา Add ให้ เป็นผลให้ Dashboard แต่ละเจ้ามีเหรียญที่แสดงไม่เท่ากัน

การโจมตีแบบนี้เรียก Dusting Attack รึเปล่า?

คำตอบคือ ไม่ใช่ ครับ Dusting Attack นั้นคือการโจมตีที่จะส่งเศษเหรียญเล็ก ๆ ไปให้เป้าหมาย โดยจุดประสงค์หลักคือเพื่อทำลายความเป็นส่วนตัว และระบุตัวตนที่แท้จริงของเป้าหมาย (De-anonymize) นำไปสู่การวิเคราะห์ หรือข่มขู่ด้วยข้อมูลส่วนตัวของเป้าหมายนั่นเอง (รายละเอียดค่อนข้างเยอะ ขอข้ามไปก่อนละกันครับ)

ซึ่งเหรียญ Scam ที่กล่าวมาในบทความนี้ ไม่ได้มีเป้าหมายแบบนั้น เพียงแต่ต้องการให้เหยื่อโดนหลอกไปเสียเงินอย่างเดียว การ Scam ลักษณะนี้น่าจะยังไม่มีชื่อเรียกเป็นทางการ บางทีก็เรียก Fake Airdrop, Scam Airdrop, Scam Token, Fake Token, Fake Airdrop Token หรือตามแต่จะเอาคำมาผสมกัน 😂

Hardware Wallet ช่วยอะไรได้มั้ย?

ไม่ได้ และไม่เกี่ยวอะไรกันครับ Hardware Wallet เป็นตัวช่วยในการเก็บ Private Key ของเราให้ไม่ไปอยู่ในที่ที่ไม่ปลอดภัย เช่น ในคอมพิวเตอร์ บนโลกอินเทอร์เน็ต หรือใน Browser ที่อาจโดนแฮ็คได้

ถ้าเราไปกด Approve Smart Contract หรือนำ Seed Phrase ไปใส่ในเว็บของมิจฉาชีพ ก็เท่ากับเรามอบกุญแจในการเข้าถึง Wallet ของเราไปให้โจรด้วยตัวเราเองนั่นเอง

สุดท้ายนี้หวังว่าเพื่อน ๆ จะได้ความรู้เกี่ยวกับวิธีการป้องกันอันตรายในโลก DeFi/Blockchain กันมากขึ้นนะคร้าบบบ 🐵

--

--