ถึงตลาด Cryptocurrency จะมืดมนอยู่ในช่วงนี้ แต่ก็ยังจะเขียนบล็อกเรื่องนี้อยู่ จุดยืนต้องมี ฮ่า ๆ เผื่อตอนไหนตลาดฟื้นบล็อกพวกนี้จะได้เป็นความรู้พื้นฐานสำหรับทุกคนโนะ
แต่บล็อกวันนี้ไม่ยาว เป็นเรื่องสั้น ๆ ที่อยากเอามาเตือน ว่าด้วยเรื่องของ "Seed" และวิธีการเก็บที่ถูกต้อง
ที่อยากเขียนเรื่องนี้ไม่ใช่เพราะอะไร เป็นความตั้งใจที่อยากจะเขียนเรื่องความปลอดภัย (Security) ของการใช้งาน Cryptocurrency ให้เยอะที่สุดเท่าที่เป็นไปได้ เพราะตลาดนี้กำลังเริ่มเข้าสู่ Mass และมันเป็นเรื่องเงิน ๆ ทอง ๆ หากทำอะไรพลาดไปก็อาจจะเสียรู้ Hacker และเสียเงินไปทั้งหมดได้ง่าย ๆ
และเนื้อหาวันนี้ก็น่ากลัวในระดับที่เงินทั้งหมดในกระเป๋าคุณอาจจะหายวับไปได้เลย เลยขอเขียนเป็นความรู้ไว้ครับ
เพื่อไม่ให้เป็นการเสียเวลา เริ่มเลยละกันนะ
อะไรคือ Seed
ย้อนไปเรื่องพื้นฐานของ Blockchain ทั้งหลาย สิ่งที่เอาไว้ควบคุมและยืนยันสิทธิ์ในการเข้าถึงเงินในกระเป๋าใด ๆ คือสิ่งที่เรียกว่า "Private Key" หากใครมีเจ้า Private Key นี้ก็จะสามารถโอนเงินออกจากกระเป๋าได้ทันที ดังนั้นเราจึงต้องเก็บไว้คนเดียวให้เป็นความลับที่สุด ห้ามให้คนอื่นรู้เป็นอันขาด (ก็ตามชื่อเลย)
อย่างไรก็ตาม Private Key นี้จำได้ยากมาก ๆ เป็นรหัสยาว ๆ ที่ไม่มีทางจำได้ เช่น
17d08f5fe8c77af811caa0c9a187e668ce3b74a99acc3f6d976f075fa8e0be55
และในชีวิตจริงเราก็จะต้องนำรหัสยาว ๆ ตัวนี้ไปใช้หลายที่ เช่น ตอนใช้งาน Mobile Wallet ก็ต้องคีย์รหัสนี้เข้าไปเพื่อเคลมสิทธิ์ในการใช้งาน Wallet ของเรา แต่ถ้านั่งพิมพ์ทีละตัวแบบนี้นี่ก็ลำบากมาก โอกาสผิดนี่สูงลิบมากกว่าพิมพ์ถูกอีก เอาแล้วหละสิ ดูท่า Private Key แบบนี้จะไม่ค่อยเวอร์คเท่าไหร่สำหรับคนหมู่มาก แล้วจะทำยังไงให้เจ้า Private Key นี้มันดูง่ายขึ้นแต่ยังปลอดภัยดีหละ ?
จึงเกิดเป็นเทคนิคใหม่(ที่คิดค้นมานานมากแล้ว)ที่ทำให้การเก็บ Private Key ทำได้ง่ายขึ้น ก็คือสิ่งที่เรียกว่า "Seed" ซึ่งก็แปลว่าเมล็ดพันธุ์นั่นแหละ ความหมายในทางคอมพิวเตอร์ของคำนี้คือ "ค่าที่เอาไว้สำหรับสร้างค่าอื่น ๆ ใหม่ขึ้นมา" เหมือนที่เมล็ดถูกนำไปปลูกออกมาเป็นต้นไม้ต้นใหญ่ ๆ นั่นเอง
สำหรับชีวิตจริงของ Seed ในโลก Cryptocurrency มันคือ "กลุ่มคำที่เอาไว้สร้างเป็น Private Key อีกที" แต่แทนที่จะจำเป็นรหัสยาว ๆ ก็ให้จำหรือจดเป็นคำต่าง ๆ ที่จำได้ง่ายกว่าและโอกาสสะกดผิดต่ำกว่าแทน
ยกตัวอย่างเช่นรหัสยาว ๆ ด้านบน อันนี้ไม่ต้องจำละ แต่ให้จำเป็น Seed สามคำแทนว่า
I am sparta
แล้วกระบวนการมาตรฐานทางคอมพิวเตอร์จะแปลงสามคำนี้ให้เป็นรหัสว่า
17d08f5fe8c77af811caa0c9a187e668ce3b74a99acc3f6d976f075fa8e0be55
ให้โดยอัตโนมัติครับ
คราวนี้พอใช้งาน Wallet ต่าง ๆ ก็ไม่ต้องพิมพ์เข้าไปเป็นรหัสยาว ๆ อีกต่อไป แค่พิมพ์ว่า I am sparta
เป็นอันจบ ใช้งานได้เลย อย่างไรก็ตาม Wallet นั้น ๆ จำต้องสนับสนุนระบบ Seed ด้วย มิฉะนั้นก็จะพิมพ์เป็น Seed เข้าไปไม่ได้ครับ แต่ว่าตอนนี้ Wallet ส่วนใหญ่ก็จะสนับสนุน Seed หมดแล้ว จึงไม่ใช่ปัญหาเท่าไหร่
อันนี้ก็น่าจะพอเห็นภาพแล้วเนอะว่า Seed คืออะไรและทำไมถึงสำคัญ พวก Hardware Wallet ทั้งหลาย เช่น Ledger Nano S หรือ Trezor ก็ล้วนใช้ Seed ในการสร้าง Private Key ทั้งสิ้นครับ ในขั้นตอนการสร้าง Wallet ระบบก็จะมีคำมาให้เราจดเผื่อกรณีที่ Hardware พัง จะได้สามารถใช้ Seed เหล่านี้ในการเคลม Wallet กลับมาได้
เช่นเดียวกันกับพวกแอป ฯ Mobile Wallet เช่น Eidoo, Samurai ฯลฯ เวลากด Create Wallet มันก็จะสร้าง Seed ออกมาให้ Backup เหมือนกันครับ
Seed จริงต้องมีหลายคำหน่อยและต้องเดาไม่ได้
ถ้าได้เคยใช้พวก Wallet ที่สร้างกระเป๋าโดยใช้ Seed ก็จะรู้ว่ากระเป๋าเหล่านั้นจะให้คำมาจดอย่างน้อย 12 คำ และแต่ละคำจะไม่สัมพันธ์กันเลย เป็นคำที่สุ่ม ๆ ขึ้นมา ไม่ใช่เป็นรูปประโยคแต่อย่างใด นั่นเป็นเพราะว่า Seed ที่ดีต้องมีคุณสมบัติสองอย่าง
1) ต้องเป็นคำที่เดาไม่ได้ - หากเราบอกว่า โอยยยย อยากจำง่าย ๆ จัง งั้นเดี๋ยวเราพิมพ์เป็นประโยคไปเลยละกัน เช่น I am a happy penguin living in the north pole
โอย จำง่ายจุง แต่นั่นแหละ ความอันตรายของมัน อาจจะมีแฮคเกอร์หัวใสพยายามสร้างรูปประโยคแบบต่าง ๆ และลองไปเรื่อย ๆ จนมาเจอกระเป๋าเราได้ ดังนั้น Seed ที่ดีควรจะอยู่ในรูปแบบที่เดาไม่ได้ ไม่ใช่ประโยค แต่เป็นคำมั่ว ๆ สุ่ม ๆ แทนครับ
2) คำใน Seed จะต้องมีเยอะพอ - ปกติ Seed ก็จะเป็นเซตของคำที่ถูกกำหนดมาไว้ล่วงหน้า คราวนี้ถ้าคำในเซตมีน้อย โอกาสที่มันจะถูกสลับไปมาและสุ่มเป็น Wallet ก็จะสูง ไม่ปลอดภัยอีก อันนี้ก็ต้องมั่นใจหน่อยว่ากระเป๋านั้นถูกสร้างมาด้วยระบบสร้าง Seed ที่ได้มาตรฐาน ไม่งั้นก็อาจจะเสียว ๆ โดนแฮคได้เหมือนกัน (เหมือนที่ IOTA เคยโดนมาเมื่อปลายปีที่แล้ว)
3) Seed จะต้องมีหลายคำ - ถ้า Seed ไม่ยาว มีอยู่ไม่กี่คำ โอกาสที่จะถูกสุ่มเจอก็สูงอีกเช่นกัน ดังนั้น Seed ที่ดีจะต้องมีอย่างน้อย 12 คำครับ
อันนี้เป็นตัวอย่างของ Seed ที่ดีครับ
robot retire camera sail flush riot junior exotic clump faint nothing merry immune wait muscle
โอเค เริ่มเข้ารูปเข้ารอยแล้ว หลาย ๆ คนคงจะเคยจดรหัสอะไรยาว ๆ แบบด้านบนนี้ อันนี้ก็รู้แล้วเนอะว่ามันถูกสร้างมายังไงและทำไมถึงเป็นรูปแบบนี้ สุดท้ายตอนใช้งานจริงมันก็จะถูกแปลงเป็นรหัสยาว ๆ ที่เรียกว่า Private Key และนำไปใช้อีกทีนั่นแหละครับ
ทำไมถึงห้ามถ่ายรูป Seed เก็บไว้ในมือถือ
จากที่อธิบายไปด้านบนก็จะเห็นว่าจริง ๆ แล้ว Seed ก็คือ Private Key นั่นแหละ แค่อยู่ในรูปแบบที่จำง่ายและพิมพ์ผิดยาก และแน่นอน ... Seed เลยเป็นค่าที่ต้องเก็บไว้เป็นความลับเช่นเดียวกัน ห้ามหลุดไปไหน ห้ามให้ใครเห็น มิฉะนั้นเงินหายวับแน่นอน !
แต่คราวนี้หลายคนก็อยากจะสะดวก พอเห็นว่าคำมันยาวจุง ขี้เกียจจดลงกระดาษอ่ะ งั้นถ่ายรูปเก็บเอาเลยละกัน ง่ายดี
อย่า !!! เพราะทันทีที่คุณถ่ายรูป รูปนั้น ๆ จะถูกบันทึกเป็นไฟล์ภาพใน Gallery ซึ่งเป็นส่วน "สาธารณะ (Public)" ทันที
คำว่าสาธารณะก็คือ ทุกแอป ฯ ที่ได้รับสิทธิ์การเข้าถึงภาพใน Gallery ก็จะสามารถเข้าถึงไฟล์รูปนั้นได้ทันทีนั่นเอง และโอกาสที่รูปนั้นจะถูกแอป ฯ ไม่ประสงค์ดีดูดรูปแล้วขโมยไปใช้ก็สูงมาก
อันนี้ขอหยิบเอาวีดีโอเก่าที่เคยทำไว้เมื่อหลายปีที่แล้วแต่ยังใช้งานได้อยู่มาให้ดู จะรู้ว่าแอป ฯ มือถือนั้น หากเค้าตั้งใจจะขโมยแล้ว เค้าก็ดูดรูปคุณไปแอบเก็บไว้ง่ายมาก ๆ
ถ้าคุณเคยใช้ Mobile Wallet คุณจะรู้ว่าแอป ฯ พวกนั้นจะล็อคไม่ให้คุณ Capture หน้าจอที่มีเขียน Seed ไว้เลยด้วยซ้ำ หากใครสงสัยว่าทำไมถึงไม่ให้แคป อันนี้น่าจะตอบคำถามให้ได้แล้วนะครับ เหตุผลตามนี้แหละ เค้าไม่อยากให้เก็บภาพลงใน Gallery
ควรเก็บ Seed ไว้ที่ไหน
สถานที่ที่เก็บแล้วปลอดภัยที่สุดคือที่ที่ไม่ใช่ดิจิตอลครับ จดใส่กระดาษหรือถ้ากลัวจางหรือไหม้ไฟ ก็เก็บใส่ Plate โลหะก็ได้ มีขายอยู่หลายเจ้า หน้าตาแบบนี้
หรือถ้าอยากเก็บใส่ดิจิตอลจริง ๆ ก็แนะนำให้ข้อมูลไป Encrypt ก่อน เช่น เซฟลงไฟล์แล้วก็ ZIP พร้อมใส่รหัสไว้ แล้วก็เก็บไว้ในอีเมล ก็จะช่วยให้ปลอดภัยได้ครับ
ถ้าถ่ายไว้แล้วจะทำยังไง
สร้างกระเป๋าใหม่เท่านั้นครับ อย่าปล่อยไว้จนสุดท้ายเกิดความเสียหาย โอนพวก Coin และ Token ไปกระเป๋าใหม่ให้หมด พอสร้างใหม่ก็อย่าลืมทำให้ถูกด้วยเน้อ
จบแล้น หวังว่าจากนี้จะใช้งานพวกนี้ด้วยความเข้าใจขึ้นกันนะคร้าบ เทคโนโลยีวิ่งไว เราต้องวิ่งตามให้ทันนะ ไม่งั้นอาจจะเสร็จโจรได้ทุกเมื่อ =)