WAX Chain กลายเป็น Chain ที่มีคนทำเกมไปลงเยอะมากด้วยคุณสมบัติที่ Gas มันฟรีและทุกอย่างเร็วมาก รวมถึงทีมพัฒนา WAX Chain สร้างทุกอย่างมาเพื่อรองรับ Game NFT โดยสมบูรณ์ด้วย
แน่นอนว่าเมื่อความนิยมสูงขึ้น โจรและผู้ไม่หวังดีก็จะไปหามากขึ้น หากเราจะเล่นเกมบน Chain นี้ต่อไป เราจะต้องเข้าใจระบบและความปลอดภัยทั้งหมด ไม่อย่างนั้นของราคาหลักล้านของเราอาจจะหายวับไปโดยที่เราไม่มีโอกาสตามกลับมาได้เลยนะ
บล็อกนี้เลยขอเขียนไว้เพื่อเป็น Reference สำหรับคนที่จะเล่นเกมบน WAX Chain ครับ จะได้ไม่พลาดจนเกิดความเสียหายที่ไม่มีใครต้องการ
WAX Chain และความปลอดภัย
WAX Chain เป็นตัวที่ถูกก็อปมาพัฒนาต่อจาก EOS ในแง่ความปลอดภัยของตัว WAX Chain เองถือว่าปลอดภัยตามมาตรฐาน และคนที่จะทำธุรกรรมใด ๆ จากกระเป๋าได้จะต้องมี Private Key ซึ่งเอาไว้แสดงความเป็นเจ้าของของกระเป๋านั้น ๆ ทุกอย่างเป็นไปตามพื้นฐานของ Blockchain ทั่วไป
ความจริง EOS เคยถูกโจมตีครั้งใหญ่มาแล้วด้วยการ Spam เพื่อให้ทุกอย่างหยุดทำงานแล้วสอนแทรกบางอย่างไปจนเกิดความเสียหายเป็นพันล้าน แต่ปัญหาก็ถูกแก้ไปแล้วและยังไม่เคยเกิดเหตุอะไรแรง ๆ บน WAX Chain จนถึงตอนนี้
แต่สิ่งที่สร้างความไม่ปลอดภัยและมีช่องโหว่ให้คนโจมตีอยู่เรื่อย ๆ คือ Smart Contract ซึ่งถ้าเขียนมาไม่ดีก็อาจจะทำให้เกิดความเสียหายได้ทั้งตั้งใจและไม่ตั้งใจ ดังนั้นก่อนจะไปเล่นเกมไหนหรือกดคลิกบนเว็บอะไร อย่าลืมตรวจสอบทุกอย่างให้แน่ชัดว่าเค้าขอสิทธิ์อะไรบ้าง มีอะไรถูกโอนออกไปบ้างใน Transaction นั้น ๆ หากมีอะไรที่เราไม่มั่นใจขอให้ปิดทันที
แต่ถามว่าถ้าเราไปกดมั่ว ๆ สักเว็บนึงแล้วเค้าจะมาล้วงของเราจากกระเป๋าเราระหว่างเรานอนนั้นทำได้มั้ย อันนี้ทำไม่ได้นะครับ บน Ethereum หรือ BSC อาจจะทำได้ แต่บน WAX Chain ไม่ได้ออกแบบมาแบบนั้น ดังนั้นถ้าเราไม่ได้กดโอนออกเองก็ไม่มีทางที่ของจะถูกขโมยไปได้ครับ
รู้จัก WAX Cloud Wallet
อย่างที่บอกว่าทีมพัฒนา WAX Chain ตั้งใจทำเชนนี้มาเพื่อตลาดเกมโดยเฉพาะ และพวกเขาเข้าใจดีว่าตลาดเกมมัน Mass และคงคาดหวังให้ทุกคน Geek ไม่ได้ เค้าก็เลยทำทุกอย่างให้ง่ายที่สุด รวมถึงสิ่งที่ถือว่ายากมากใน Blockchain ทุกตัวอย่างการ "เปิดและรักษากระเป๋า" เค้าก็ทำให้มันง่ายสุด ๆ ด้วยการที่เราใช้ Email และ Password ในการ Login ได้เลยผ่านเว็บสร้างกระเป๋าที่ชื่อว่า WAX Cloud Wallet
เชื่อว่ามีผู้เล่นกว่า 99% ที่ใช้ WAX Cloud Wallet เล่นเกม แต่เชื่อว่ามีแค่เสี้ยวเดียวเท่านั้นที่รู้ว่า WAX Cloud Wallet ทำงานยังไง เราเลยขอมาอธิบายให้ฟังในบล็อกนี้
อย่างที่บอกด้านบน WAX Chain ก็เหมือน Blockchain ตัวอื่น ๆ คือสิทธิ์ทุกอย่างในกระเป๋าแอดเดรสนั้น ๆ อยู่ที่คนถือ "Private Key" ตัวอย่าง Private Key ก็
5JutS4gcbpBQmbfiQV8oGdK3PKQ2CN4AFUwpeyUQ5EBkhz92MHo
เรียกว่าถ้าไม่มีรหัสยาว ๆ ตัวนี้ก็ไม่สามารถทำธุรกรรมใด ๆ ได้เลย และทุกกระเป๋าจะมี Private Key นี้เป็นของตัวเองไม่ซ้ำกัน
คราวนี้คนที่ใช้ WAX Cloud Wallet คงสงสัยว่านี่มันรหัสอะไรกันนี่ ไม่เห็นเคยเห็นมาก่อนแต่ทุกวันนี้ก็ทำธุรกรรมได้หนิ ?
นั่นแหละครับ
WAX Cloud Wallet นั้นถูกเรียกว่า Custodial Wallet หรือกระเป๋าที่เค้าเก็บ Private Key ให้เรา
ที่ทำแบบนี้ก็เพราะว่า Private Key เป็นเรื่องที่ Geek มาก หากหายไปก็จะเข้าถึงกระเป๋าไม่ได้อีก หรือถ้าคีย์หลุดก็โดนขโมยของไปได้เลย ต้องเปลี่ยนกระเป๋าเท่านั้น
ทางทีมพัฒนา WAX Cloud Wallet เลยตัดปัญหานี้ด้วยการให้เราเปิดกระเป๋าด้วย Email และ Password แบบเว็บทั่วไปได้ง่าย ๆ เลย แล้วเค้าจะจัดการที่เหลือให้
นั่นเป็นสาเหตุว่าเวลาเราจะทำธุรกรรมอะไรก็ตาม เว็บจะเด้งหน้าจอ WAX Cloud Wallet มาให้เรากด Approve นั่นเป็นเพราะเว็บจะต้องเป็นคนทำธุรกรรมให้เรานั่นเองเนื่องจากเว็บเป็นคนถือ Private Key อยู่
ข้อดีคือมันก็ง่ายและสะดวกดี แต่ข้อเสียคือเราไม่ได้มีสิทธิ์ในกระเป๋านั้นจริง ๆ ถ้าเว็บปิดไป เราก็เข้าถึงของในกระเป๋าไม่ได้อีกเลยนะ หรือถ้าเว็บโดนแฮค กระเป๋าเราก็โดนไปด้วยนะ ดังนั้นเราจะต้องเชื่อใจเว็บนั้นมาก ๆ ว่ามันจะไม่ปิดหนีหรือทำไม่ดีกับกระเป๋าเรา
ย้ำอีกทีว่า WAX Cloud Wallet มีสิทธิ์ในกระเป๋าเราทุกอย่างนะ และกระเป๋านั้นไม่ใช่ของเรา แต่เป็นของ WAX Cloud Wallet ที่เรายืมเค้าใช้เฉย ๆ แต่ก็แลกกับความสะดวกนั่นแหละ
สร้าง Private Key เองปลอดภัยกว่าแต่ยากกว่า
แล้วถามว่าถ้าเราไม่อยากใช้ WAX Cloud Wallet แต่เป็นทางสร้าง Private Key เองแล้วคุมทุกอย่างเองนี่ทำได้มั้ย ? ตอบว่าทำได้ครับ เราสามารถใช้แอป ฯ ชื่อว่า EOSKeyIO เพื่อสร้าง Private Key แล้วทำธุรกรรมผ่านแอป ฯ ชื่อ Anchor ได้ และนั่นเป็นวิธีที่เราแนะนำกว่า WAX Cloud Wallet แต่ก็แลกมากับความยุ่งยากและความรับผิดชอบอันยิ่งใหญ่นะ
อีกข้อดีของการสร้างกระเป๋าจาก Private Key เองคือเราสามารถตั้งชื่อกระเป๋าเองได้ด้วยนะ โดยเป็นภาษาอังกฤษยาว 12 ตัวอักษร ตั้งชื่อสวย ๆ ได้เลย ^__^
อย่าใช้ Password ของเว็บอื่นบน WAX Cloud Wallet
เว็บต่าง ๆ ถูกแฮคแล้วเอา Username/Password ไปขายในตลาดมืดแทบทุกวัน ข้อห้ามเลยคือ
เราห้ามใช้ Password บนเว็บ WAX Cloud Wallet ซ้ำกับเว็บอื่น
เพราะถึงแม้ WAX Cloud Wallet จะไม่ได้ถูกแฮค แต่กระเป๋าเราก็อาจถูกเข้าถึงได้จากการที่เว็บอื่นถูกแฮคแล้วเอา Password มาใช้ที่นี่ก็ได้
ความจริงวิธีที่ดีที่สุดคือทุกเว็บต้องห้ามใช้ Password ซ้ำกันครับ ทุกเว็บเลย อันนั้นปลอดภัยที่สุด
แต่จนถึงตอนนี้ WAX Cloud Wallet ก็ยังปลอดภัยอยู่
ถึง WAX Cloud Wallet จะควบคุมทุกอย่างให้แต่จนถึงตอนนี้ก็ยังไม่มีเคสว่า Private Key หลุดหรือโดนแฮคใด ๆ แถมยังมีพวก 2FA ให้ใช้ด้วยทำให้ทุกอย่างค่อนข้างปลอดภัยครับ ต่อให้ Username/Password หลุด เราก็ต้องเช็คเมลเพื่อใส่ Confimation Code อยู่ดี ดังนั้นสบายใจได้ ไม่โดนแฮคง่าย ๆ แน่นอน
แต่ Session Token มีสิทธิ์ทำทุกอย่าง !
จนถึงตอนนี้ยังไม่เห็นช่องโหว่อะไรจากทาง WAX Chain และ WAX Cloud Wallet เองเท่าไหร่ แต่จุดอ่อนใหญ่ที่ทุกคนไม่รู้ว่ามันอันตรายมากแต่ทำกันเพียบเลยคือ
"เอา Session Token ไปให้บอทรัน"
เกมบน WAX Chain กับบอทแทบจะเป็นของคู่กัน มีเกมต้องมีบอทอะไรแบบนั้นเลย และเนื่องจากบอทจะต้องมีสิทธิ์ในการทำธุรกรรมทุกอย่าง ไม่งั้นก็จะเล่นเกมให้เราไม่ได้ ดังนั้นบอทจึงต้องขอสิ่งที่เรียกว่า Session Token ซึ่งได้รับมาตอนเรา Login WAX Cloud Wallet และบอทจะใช้ Session Token นี้ร้องขอไปยัง Server เพื่อทำธุรกรรม
พูดง่าย ๆ ผู้ที่มี Session Token ของเราจะสามารถทำทุกอย่างแทนเราได้ทันที และทุกอย่างที่ว่าคือเอาไปเล่นเกมให้เรารวมถึงโอนของทุกอย่างออกจากกระเป๋าเราก็ทำได้
เจ้าของบอทอาจจะไม่ทำอะไรแบบนั้น แต่สิ่งที่น่ากังวลกว่าคือถ้าบอทนั้น ๆ ทำ Session Token ของเราหลุดไปไม่ว่าจะวิธีใดก็ตาม (เช่นโดนแฮค) กระเป๋าเราก็จะโดนเข้าควบคุมและขโมยของออกไปได้ทันที
เราจะไม่บอกว่าบอทเจ้าไหนดีเจ้าไหนไม่ดี เจ้าไหนไว้ใจได้หรือไม่ได้เพราะเราไม่มีข้อมูลอะไร แต่สิ่งที่อยากจะเตือนไว้คือการที่เรามอบ Session Token ให้เค้าไปคือเรามอบกระเป๋าให้เค้าไปเลยนะ คำถามคือ
เราไว้ใจเค้าแค่ไหนที่จะดูแลของในกระเป๋าเราทั้งหมด ?
และให้ตัดสินใจประเมินความเสี่ยงเอาเองครับ ส่วนตัวเขียนบอทเองก็เลยไม่มีข้อมูลเรื่องเจ้าต่าง ๆ ในตลาด แต่บอกเลยว่าเรามี Concern เรื่องนี้ค่อนข้างสูงมากถึงมากที่สุด และเชื่อว่านี่น่าจะเป็นสาเหตุหลักที่มีแอคเค้าท์ถูกแฮคด้วยซ้ำไป ก็ดูในเชิงเทคนิคกันด้วยว่าเจ้าไหนเอา Session Token เราไป เจ้าไหนให้เราเก็บไว้เอง ฯลฯ ประเมินเอาเองเพราะอย่างที่บอก ผมไม่รู้เลยว่าเจ้าไหนทำงานยังไง
อีกกรณีนึงคือกรณีเว็บหลอกลวงให้เราเอา Session Token ไปกรอก อันนั้นก็ถือว่าเราเอาไปให้เค้าเองและโดนขโมยของแน่นอนครับ ดังนั้นอย่าเอา Session Token ไปให้ใครง่าย ๆ เป็นอันขาด มันสำคัญมาก
ย้ำอีกทีก่อนจบ
"การมอบ Session Token ให้ใครไป มันคือการที่เรามอบกระเป๋าให้เค้าเลย ทำก็ต่อเมื่อคุณไว้ใจเค้ามาก ๆ เท่านั้น"
99% ของการโดนแฮคคือเราเอากระเป๋าไปให้เค้าเอง
สรุปแล้วจะบอกว่าทุกกรณีของการที่กระเป๋า WAX โดนแฮคเอาของไปล้วนเกิดจากการที่เราเอากระเป๋าไปประเคนให้เค้าทั้งสิ้น เพียงแต่เราไม่รู้ตัวว่าสิ่งที่เรามอบไปมันคือกระเป๋าทั้งใบ
หวังว่าอ่านบล็อกนี้จบแล้วทุกคนจะเข้าใจระบบมากขึ้น ป้องกันตัวเองมากขึ้นและคิดหลาย ๆ ตลบก่อนจะทำอะไรสักอย่างครับ