เมื่อใช้ Mnemonic เพื่อกู้คืนกระเป๋าเงินของคุณ มีโอกาสน้อยมากที่คุณจะป้อนคำผิด (ไม่อยู่ในข้อมูลสำรอง แต่อยู่ในฐานข้อมูล Mnemonic) และยังคงสามารถกู้คืนได้โดยใช้กระเป๋าเงินบล็อกเชน
นี่คือตัวอย่างและคำอธิบายของสถานการณ์ที่ไม่น่าจะเกิดขึ้นได้
ก่อนอื่น เราต้องเข้าใจกระบวนการสร้าง Mnemonic เพื่อที่จะเข้าใจว่าเหตุใด Mnemonic จึงสามารถใช้งานได้แม้ว่าจะป้อนข้อมูลผิดก็ตาม
การสร้าง Mnemonic:
โดยใช้กระบวนการทำให้เป็นปกติ (normalization) ตามที่ระบุไว้ใน BIP-39 กระเป๋าเงินจะสร้าง Mnemonic โดยอัตโนมัติ กระเป๋าเงินจะเริ่มต้นด้วยแหล่งที่มาของเอนโทรปี (entropy) จากนั้นจึงเพิ่มเช็คซัม (checksum) ก่อนที่จะจับคู่ตัวเลขสุ่มกับรายการคำ:
1. สร้างตัวเลขสุ่ม 128 ถึง 256 บิต 2. ใช้เช็คซัมของตัวเลขสุ่มนี้เป็นบิตแรกๆ ของ SHA256 hash (สี่บิตแรกนำมาจากบิตช่วย 12 บิต) 3. ที่ส่วนท้ายของลำดับสุ่ม ให้เพิ่มเช็คซัม 4. แยกชุดข้อมูลออกเป็นส่วนๆ ละ 11 บิต 5. ตัวเลขแต่ละตัวที่แสดงส่วนประกอบ 11 บิต จะตรงกับพจนานุกรมที่มีอยู่แล้ว 2048 คำ 6. Mnemonic คือลำดับของพยางค์ที่ได้
และเมื่อป้อนคำผิด เช่นในตัวอย่างต่อไปนี้ (ป้อนตำแหน่งแรกผิดเท่านั้น)
กระเป๋าเงินสร้าง Mnemonic เป็น: ribbon voice frame black oppose galaxy divide either tube maximum tired obvious
Hash ของ SHA256: 00101011 11111111
Mnemonic ที่ป้อนผิดโดยการสร้างขึ้นคือ: rib voice frame black oppose galaxy divide either tube maximum tired obvious
Hash ของ SHA256: 00101011 11101010
สี่บิตแรกของ SHA256 แต่ละคู่จะเหมือนกัน ซึ่งบ่งชี้ว่าเช็คซัมก็เหมือนกัน
เนื่องจาก Mnemonic ทั้งสองคู่เป็นไปตาม BIP39 จึงสามารถกู้คืนได้โดยใช้กระเป๋าเงินบล็อกเชน
หากเราอธิบายพื้นฐานในแง่ของความน่าจะเป็น: ขั้นแรก เลือกคำสุ่มเป็นคำ Mnemonic สุดท้าย และจากนั้นสุ่มเลือกคำ Mnemonic อีก 11 คำเมื่อ Mnemonic มี 12 บิต เราสามารถหาชุดที่ถูกต้องได้ 16 ครั้ง ในขณะที่คำช่วย 24 บิตคือ 256 ครั้ง
ดังนั้นจึงเป็นเรื่องปกติที่จะ "ป้อนคำผิดและได้รับ Mnemonic ที่ใช้งานได้" แต่นั่นไม่ได้หมายความว่าความปลอดภัยของ Mnemonic นั้นไม่ถูกต้อง
Mnemonic บางครั้งถูกเข้าใจผิดว่าเป็น "Brain Wallets" แม้ว่ามันจะไม่เหมือนกันก็ตาม
ความแตกต่างหลักคือ Brain Wallets ประกอบด้วยคำที่ผู้ใช้เลือก ในขณะที่ Mnemonic จะถูกสร้างขึ้นแบบสุ่มและแสดงให้ผู้ใช้เห็น
ความแตกต่างที่สำคัญที่สุดระหว่างทั้งสองคือแง่มุมที่ทำให้ Mnemonic ปลอดภัยยิ่งขึ้น ท้ายที่สุดแล้วมนุษย์มีความสามารถจำกัดในการสร้างตัวเลขสุ่ม
ซึ่งหมายความว่าเพียงเพราะ Mnemonic ที่เป็นไปตาม BIP39 ได้รับการทดสอบอย่างผิดธรรมชาติ ไม่ได้หมายความว่าการใช้ Mnemonic ที่สร้างจากกระเป๋าเงินนั้นไม่ปลอดภัย Mnemonic สองประเภทนี้แตกต่างกันในด้านความปลอดภัย ในขณะที่ Mnemonic ที่สร้างจากกระเป๋าเงินนั้นมีความสุ่มมากกว่า (เช่น ปลอดภัยกว่า) ในขณะที่ Brain Wallet (ด้วย Mnemonic ที่ผิด) มีโอกาสน้อยที่จะถูกสร้างขึ้นแบบสุ่มและนำมาใช้
กระเป๋าเงินสร้างตัวเลขสุ่มที่แท้จริงโดยใช้วิธีการที่ปลอดภัยจากการเข้ารหัส (เช่น TRNG ของฮาร์ดแวร์) ดังนั้นคุณภาพของความสุ่มจึงไม่สามารถรับประกันได้จากการเลือก Mnemonic ทั่วไปของผู้ใช้


