Crypto Wallet เรื่องง่ายๆ ที่ทำให้สูญเสียเงินได้
Crypto wallet คืออะไร
ในโลกของ blockchain นั้น wallet จะมีเลขบัญชีที่ไม่ซ้ำกันเลย และเลขบัญชีก็จะยาวเป็นหน้าตาประมาณแบบนี้ 0x0577a79cfc63bbc0df38833ff4c4a3bf2095b404 ซึ่งแน่นอนว่าไม่มีใครจำได้แน่นอน และก็ไม่มีใครจำกันด้วย เขาจะใช้การ copy หรือส่งเป็นรูป QR ให้กันเท่านั้น เวลาจะโอนหากันก็ต้องโอนหากันด้วยเลขที่บัญชีหน้าตาแบบนี้เท่านั้น ในปัจจุบันมีคนพยายามจะทำให้มันสั้นลงแต่ก็ยังไม่ได้รับความนิยม สิ่งที่เปรียบเหมือนเลขที่บัญชีนี้ในทางเทคนิคเราเรียกว่า wallet address (public key ในบางกรณี)
ความสูญเสีย จาก Crypto wallet ที่อาจเกิดขึ้นได้
สิ่งที่น่ากลัวก็คือความสูญเสียที่เกิดขึ้นจากการใช้งานในแบบที่ไม่ถูกต้อง ซึ่งความสูญเสียในหลายเคสที่ได้ประสบพบเจอมา คือ ทำให้สูญเสีย Digital Assets ที่มีทั้งหมดไปในเวลาชั่วพริบตา ซึ่งอาจจะเกิดเหตุจากความประมาทในการใช้งานด้าน Technical ที่ไม่ถูกต้อง หรือความประมาทในการใช้งานส่วนบุคคลเองได้ทั้งคู่เช่นกัน
ตัวอย่าง กรณีที่สูญเสียจากความประมาทในด้าน Technical เช่น ส่ง Seed word (recovery phrase) ไปให้เพื่อนผ่านโปรแกรมแชท หรือเก็บเอาไว้ใน iCloud/Google drive หรือเคยเจอแม้กระทั่ง Private note ใน facebook ทั้งหลายเหล่านี้ ทำให้เกิดความสูญเสียได้ง่ายจากความประมาทในด้านการใช้งานเชิง Technical ที่ไม่ถูกต้อง
ตัวอย่าง กรณีที่สูญเสียจากความประมาทในด้านการใช้งานส่วนบุคคลเอง เช่น ต้องการความช่วยเหลือ เพราะติดขัดบางประการ จากนั้น มีคนปลอมตัวเป็น customer support เข้ามาทัก เพื่อแสดงจนช่วยเหลือ และหลอกถาม Seed word (recovery phrase) หรือส่งลิ้งค์เพื่อหลอกล่อถาม Seed word โดยลิ้งค์นั้นแสดงหน้าตา เหมือนเว็บของ platform ที่ถูกต้องทุกอย่าง (ยกเว้น URL ที่แตกต่างไป แต่อาจจะดูคล้ายๆกันได้)
ทั้งหลายเหล่านี้ล้วนทำให้เกิดความเสียหายต่อ Digital Assets ที่เราเก็บเอาไว้ได้ทั้งหมดในเวลาอันรวดเร็ว ไม่ว่าเราจะเก็บแบบเป็น Hardware / Software ก็ตาม
รู้จัก Crypto Wallet แบบลึกซึ้ง
เราต้องไม่ปฏิเสธว่าการจะใช้งานได้อย่างถูกต้องนั้นจำเป็นจะต้องเข้าใจการทำงานอย่างลึกซึ้งด้วยเช่นเดียวกัน ซึ่งเราจะอธิบายให้เข้าใจในแบบที่ไม่ยากจนเกินไป เพราะเดี๋ยวจะท้อกันไปเสียก่อน
สิ่งแรกที่ต้องทำความรู้จัก คือ Seed word หรือบางครั้งเรียกว่า Seed phrase หรือ Recovery phrase ก็ได้ ล้วนเป็นสิ่งเดียวกันทั้งหมด หน้าตาจะเป็นกลุ่มคำประมาณนี้ ตัวอย่าง seed word : habit blanket awful damage say chase spot supreme plunge waste cry fringe video hidden old
เจ้า Seed Word เปรียบได้เสมือนกับ Master key (ลูกกุญแจ หรือ private key ที่ไขได้ทุก แม่กุญแจ หรือ public key ที่เราสร้างขึ้นภายหลัง) โดย Seed Word เพียงชุดเดียวเราสามารถสร้างแม่กุญแจคู่กับลูกกุญแจ (public key คู่ private key) ได้มากมายเป็นพันชุด และแต่ละชุดที่คู่กันเปรียบได้กับ 1 กระเป๋า ของ Crypto wallet ดังนั้นเราจึงต้องเข้าใจว่า Seed word คือ กลุ่มคำที่มีความสำคัญมากๆ เพราะถ้ามีใครรู้ที่เราใช้งานอยู่ เขาจะสามารถสร้างลูกกุญแจเพื่อไปไขทุกกระเป๋าและขโมย Digital Assets ทั้งหมดออกไปได้ในเวลาอันสั้นเลย ดังนั้นหลักการสำคัญก็คือ อย่าให้ใครล่วงรู้เป็นอันขาด และอย่าส่งผ่านโปรแกรมใดๆ รวมถึงการเก็บไว้ในรูปแบบ Soft file / digital format ก็ด้วยเช่นกันล้วนต้องห้ามทั้งนั้น
สิ่งที่ 2 ที่ต้องทำความรู้จัก คือ Crypto wallet ไม่ได้เก็บ Digital Assets จริงๆ เพราะว่า Digital Assets จริงๆ นั้นเป็นเพียงตัวเลข ที่บันทึกอยู่บนระบบ Blockchain เท่านั้น นี่คือหลักการที่สำคัญอีกเรื่องหนึ่งที่ต้องทำความเข้าใจ ซึ่งหลายคนอาจจะสับสนในเรื่องนี้ เพราะทุกครั้งที่เราเปิด Crypto wallet ดู เราก็เห็นว่า เราเป็นเจ้าของ Token อะไร อยู่จำนวนเท่าไรทุกครั้ง แต่ถ้าจะอธิบายให้ถูกต้อง ต้องอธิบายว่าตัวเลข Token ต่างๆ ที่เราเห็นเป็นเพียงการแสดงผลข้อมูลที่ถูกบันทึกอยู่ในระบบ Blockchain เท่านั้นเอง ไม่ได้มีหน่วย Token หรือ ข้อมูล Token มาเก็บใน Crypto wallet เราจริงๆ เพราะว่าเราต้องเชื่อข้อมูลที่ถูกบันทึกอยู่ใน Blockchain เท่านั้น ไม่อย่างนั้น จะเป็นเพียงข้อมูลตัวเลข Digital ธรรมดาอันหนึ่ง เหมือนอย่างระบบ Wallet ทั่วไปที่เราคุ้นเคยกันเท่านั้นเอง
สิ่งที่ 3 ที่ต้องทำความรู้จัก ธุรกรรมบางอย่าง เราทำได้คนเดียว และ ธุรกรรมบางอย่าง เราให้อนุญาต smart contract ทำแทนเราได้(โดยที่เราไม่รู้ตัวอีกเลยเมื่อเกิดธุรกรรมขึ้นแล้ว)
ตัวอย่างธุรกรรมที่เราทำได้เพียงคนเดียว ก็คือการ sign transaction หรือ ลงลายมือเพื่อยืนยันการทำธุรกรรม (หมายถึง การเข้ารหัส ในรูปแบบ digital) ด้วยลูกกุญแจย่อย (private key) ที่สร้างขึ้นมาจาก Seed word อีกที นี้ จะมีเพียงเราคนเดียวเท่านั้นที่ครอบครอง Seed word จึงมีเพียงเราที่สามารถทำธุรกรรมนี้ได้ (เพราะถ้ามีคนอื่นรู้ ลูกกุญแจนี้ เค้าจะทำธุรกรรม แทนเราได้ทันที หรืออีกความหมายคือ ขโมยของเราออกไปได้ทั้งหมด)
แต่มีธุรกรรมอีกประเภทหนึ่งที่เราได้ให้ความยินยอมกับ Smart contract เข้ามาดำเนินการใน Digital Assets หรือ Token ตามวงเงินที่เรากำหนด เช่น การ Allowance (Approve) ให้ Smart contract เข้าถึง Token (เช่น stable coin) ในกระเป๋าของเรา ด้วย วงเงินที่ไม่จำกัด (หรืออาจจะกำกัด ในบางกรณี) เหตุการณ์นี้มักจะเกิดขึ้นทุกครั้งตอนที่เรากำลังจะเข้าไปลงทุนใน DeFi ซึ่งหลายคนไม่ทันได้สังเกต หรือไม่เข้าใจเพียงพอว่าการให้ความยินยอมนั้น จะส่งผลให้ในอนาคต Smart Contract นั้นๆ สามารถสั่งโอน Token นั้น ด้วยจำนวนไม่เกินวงเงินที่เราเคยกำหนดเอาไว้ ออกไปจากกระเป๋าเราได้ทันที โดยที่เราไม่ต้อง confirm อะไรอีกแล้ว เนื่องจากการให้ความยินยอม ได้เกิดขึ้นไปในการ Allowance (Approve) ครั้งแรกแล้ว ทั้งนี้เหตุการณ์นี้จะเกิดขึ้นได้ก็จะต้องมีอีกองค์ประกอบหนึ่งร่วมด้วยก็คือ Smart contract นั้นจะต้องถูกเขียนเพื่อรองรับการดึง Token ของเราออกไปแล้วในนั้นด้วย(หรือมีช่องโหว่ของโค้ดที่ทำได้) แต่ในเรื่องนี้เราสามารถป้องกันได้ด้วยการ Revoke ออก ซึ่งก็มีเครื่องมือสำหรับการ Revoke ให้เราใช้งานได้ฟรีมากมาย หรือการไปแก้ไข Allowance (Approve) ให้เหลือ 0 เท่านั้น ก็ใช้ได้เช่นกัน
Hardware wallet ปลอดภัยกว่าจริงมั้ย
ถ้าให้ตอบแบบสั้นๆ ก็คือมีส่วนจริงและส่วนที่ไม่จริงด้วยเช่นกัน หลายคนเข้าใจผิดว่าการใช้งาน Hardware wallet เราต้องกด ยืนยันที่ตัว hardware เองทุกครั้งตลอดไป จึงเป็นความปลอดภัย เพราะถ้าเราไม่กดยินยอม ก็จะไม่มีใครทำธุรกรรมแทนเราได้อีก แต่กรณีนี้ไม่เป็นจริงหากเราได้เคยให้ความยินยอม Allowance / Approve เอาไว้ใน Smart contract ที่ไม่ปลอดภัยและถูกเจาะเพื่อสั่งโอน Token ออกได้เป็นการเฉพาะ เขาจะสามารถดำเนินการโอนออกจากกระเป๋าเราได้ทันทีโดยที่เราไม่ทันรู้ตัวเลย และเราก็ไม่ได้กด ยืนยันที่ Hardware เลยด้วยซ้ำ (เพราะอย่างที่บอก เราได้ให้ความยินยอมกับ smart contract นั้นไปล่วงหน้าก่อนแล้วนั่นเอง จึงไม่ต้องยืนยันซ้ำอีก)
แต่ Hardware wallet ก็ช่วยเพิ่มความปลอดภัย เพราะกระบวนการสร้าง Seed word นั้น เกิดขึ้นแบบ Offline เท่านั้น และ ไม่มีการเก็บเอาไว้ที่ไหนอีก นอกจากใน Hardware เท่านั้น (การที่เราจดออกมาในตอนแรกที่สร้างกระเป๋านั่นคือสำเนาชุดที่ 1 และมีเพียงชุดเดียวเท่านั้นที่เราต้องเก็บเอาไว้ให้ดีที่สุด)
ดังนั้นถ้าเราเข้าใจในการทำงานพื้นฐานของ Crypto wallet ดังย่อหน้าบนที่ได้อธิบายไปแล้วนั้น ก็จะสามารถใช้งานได้อย่างปลอดภัยไม่ว่าจะเป็น Software wallet / Hardware wallet เองก็ตาม
วิธีใช้งาน Crypto wallet แบบถูกต้อง
เมื่อเราเข้าใจวิธีการทำงานของ Crypto wallet ดังที่อธิบายไปในย่อหน้าบนแล้วเราจะเข้าใจได้ว่าเราต้องใช้งานอย่างไรจึงจะปลอดภัยซึ่งจะสรุปให้อีกครั้งดังนี้
- อย่าให้ใครรู้ Seed word / Seed phrase / Recovery phrase นอกจากตัวเราเพียงคนเดียวเป็นอันขาด ยกเว้นแต่คนที่ เราต้องการให้เขาเข้าจัดการ Digital Assets ในทุกกระเป๋าของเราได้เท่านั้น
- อย่าเก็บ Seed word / Seed phrase / Recovery phrase ในรูปแบบ Digital file / soft file ไม่ว่าจะเก็บในเครื่อง หรือ on cloud โดยผู้ให้บริการด้วยระบบใดๆ ก็ตาม เว้นแต่ได้ทำด้วยความเข้าใจขั้นสูง (เช่น ระบบที่ถูกสร้างขึ้นมา เพื่อเก็บ secret key / code และมีการเข้ารหัสเป็นการเฉพาะอีกที รวมถึงการถอดรหัสที่แทบจะเป็นไปไม่ได้เว้นแต่เราคนเดียวเท่านั้นที่รู้ และ มีองค์ประกอบช่วยในการถอดรหัสอีกครั้งร่วมด้วย)
- ไม่มี web ไหน ที่ขอ Seed word / Seed phrase / Recovery phrase ถ้ามี 99.99% จะเป็นเว็บที่หลอกลวงอย่างแน่นอน Metamask เอง ก็ไม่ใช่ web ที่มี URL online แต่เป็น Add on เสริมบน Browser ที่แสดงผลเหมือนเว็บ แต่ไม่มี URL ที่รันได้เป็นของตนเอง ดังนั้น ต้องระวังและตรวจสอบให้ดีๆ ก่อนกรอก seed word ทุกครั้ง
- ทุกครั้ง ที่จะ Sign transaction / Confirm transaction ให้เราอ่าน และทำความเข้าใจก่อนเสมอ ว่าเรากำลังจะทำอะไร และคิดต่ออีกนิดว่า อาจจะมีความเสี่ยงอะไรตามมาได้บ้าง
- พิจารณาก่อนการให้ Allowance / Approve กับ Smart Contract ที่ความน่าเชื่อถือต่ำ หรือมีช่องว่างในโค้ด อาจจะทำให้โดนดึง Token ออกไปภายหลังได้โดยที่เราไม่รู้ตัว ถ้าเราอ่าน Smart contract ไม่เข้าใจ อาจจะลองดูว่าได้ผ่านการ Audit มาแล้วหรือยัง ก็จะพอช่วยได้ระดับหนึ่ง (smart contract บางส่วน สามารถ upgrade หรือเปลี่ยนแปลงหลังจากการ audit ได้ ซึ่งอาจจะทำให้ระดับความปลอดภัย เปลี่ยนไปจากเดิม)
- ระวัง “ผู้หวังดี” ที่เข้ามาทักทายเราก่อน เพื่อให้ความช่วยเหลือ หรือเสนอสิ่งตอบแทนใดๆ เพราะมักจะเป็นการหลอกลวงเป็นส่วนใหญ่ ในการขอรับความช่วยเหลือจากแต่ละ platform มักจะเป็นการที่เราต้องเข้าไปทัก คนที่เค้าได้แนะนำให้เท่านั้น
- การทำธุรกรรม ในโลกของ Decentralize บนพื้นฐาน Blockchain เราต้องเป็นคนดำเนินการสิ่งต่างๆ ด้วยตัวเราเอง การที่เราส่งข้อมูลอะไรให้ใครนั้น เป็นสิ่งที่เค้าไม่ทำกัน และนั่นไม่ใช่พื้นฐานของการทำงานบนระบบนี้ด้วย ถ้ามีใครขอข้อมูลอะไรเรา ถ้าเป็นไปได้ ไม่ควรให้หรือบอกใครเลย แต่ถ้าต้องให้ จะมีเพียงสิ่งเดียวเท่านั้นคือ “Wallet address” หรือ “Public keys” ถ้าให้มากกว่านั้นไม่ว่าจะเป็นอะไรก็ตามจะนำเราไปสู่ความเสี่ยงทันที
- มีสติทุกครั้ง ก่อนการทำธุรกรรมใดๆ หรือวางแผนก่อนได้ก็จะดี เพราะธุรกรรมที่ได้ยืนยันและบันทึกลง Blockchain แล้ว จะไม่มีการ revert กลับหรือยกเลิกได้อีกตลอดไป
ขอให้ทุกท่านนำแง่คิด และแนวทางปฏิบัติ ไปใช้งานอย่างต่อเนื่อง เพื่อให้เกิดความคุ้นชิน และไม่ตกเป็นเหยื่อโดยง่ายในลำดับต่อไปครับ
อมรเดช คีรีพัฒนานนท์
กรรมการสมาคมสินทรัพย์ดิจิทัลไทย
Co-Founder
บริษัท ออมแพลทฟอร์ม จำกัด