สารบัญ

เมื่อช่วงปลายเดือนกรกฎาคมที่ผ่านมา วงการ Bitcoin และ Self-Custody ต้องสั่นสะเทือนจากข่าวใหญ่เรื่องช่องโหว่การสุ่ม Entropy เพื่อสร้าง Seed Phrase ของ Hardware Wallet ค่ายดังอย่าง Coldcard ซึ่งเกิดจากความผิดพลาดของโค้ดในเฟิร์มแวร์ที่ทำให้ระบบสุ่มสร้างกุญแจความปลอดภัยที่สุ่มออกมาผิดพลาด จนส่งผลกระทบต่อผู้ใช้งานจำนวนมากทั่วโลก

แต่ในข่าวร้ายนั้น กลับมีข้อเท็จจริงสำคัญข้อหนึ่งที่ได้รับการยืนยันว่า "ผู้ใช้ที่สร้าง Seed Phrase ด้วยการทอยลูกเต๋าด้วยตัวเองตั้งแต่ 50 ครั้งขึ้นไป ปลอดภัยและไม่ได้รับผลกระทบจากช่องโหว่นี้"

เหตุการณ์นี้กลายเป็นจุดเปลี่ยนสำคัญที่ทำให้สาย Self-Custody ตระหนักว่า แม้ Hardware Wallet ยุคปัจจุบันจะมีชิปสุ่มความปลอดภัยสูง แต่เราก็ไม่ควรมอบความไว้วางใจให้ระบบอิเล็กทรอนิกส์หรือเฟิร์มแวร์ของค่ายใดค่ายหนึ่งเพียงอย่างเดียว ตามหลักคิด "Don't Trust, Verify" (อย่าเชื่อ แต่จงตรวจสอบ)

วันนี้ แอดจะพาเพื่อน ๆ มาทำความเข้าใจกับการสร้าง Seed Phrase ด้วย ลูกเต๋า (Dice Roll Entropy) แบบละเอียดและถูกต้องกันครับ

ทำไมต้องลูกเต๋า? (สร้าง Entropy ด้วยมือของเรา)

โดยทั่วไป Hardware Wallet แต่ละค่ายต่างใส่ชิปสุ่มอย่าง Hardware TRNG (True Random Number Generator) หรือใช้แหล่งกำเนิดความสุ่มทางฮาร์ดแวร์ผสมผสานกันเพื่อสร้าง Seed Phrase ให้เราอยู่แล้ว

แต่สาเหตุที่ผู้ใช้งานระดับสูง(หรือที่เราเลือกว่าคนที่เขามีความ paranoid ที่สูง) มักเลือกวิธีการที่จะใช้ลูกเต๋า (Dice Roll Entropy) สร้าง Entropy เองไม่ใช่เพราะระบบสุ่มของเครื่องไม่ดี แต่เป็นเพราะต้องการ ขจัดความเสี่ยงจากการพึ่งพาผู้ผลิต (Vendor Trust Model) และเปลี่ยนมาใช้ Entropy จริง ๆ และมาจากภายนอกที่ไม่มีซอฟต์แวร์หรือโค้ดเฟิร์มแวร์ใด ๆ มาเกี่ยวข้อง

(หมายเหตุ: จริง ๆ แล้ว เราสามารถใช้สิ่งของทางฟิสิกส์อื่น ๆ มาสร้าง Entropy ได้เช่นกัน ไม่ว่าจะเป็นการโยนเหรียญ หัว/ก้อย, การใช้ไพ่ หรือลูกเต๋า RPG เช่น d12, d16, d20 แต่ที่เราเลือกใช้ ลูกเต๋า 6 หน้า (D6) เป็นหลัก ก็เพราะว่าหาง่าย ราคาถูก ทุกบ้านมี และสะดวกต่อการใช้งานที่สุดครับ)

ข้อเท็จจริงทางเทคนิค ถึงแม้เราจะสุ่มเพื่อสร้างคำขึ้นมาได้ 11/23คำ แต่สำหรับคำสุดท้ายแล้วไม่สามารถคิดขึ้นมาเองได้

คำสุดท้ายของ Seed Phrase ไม่ได้เป็น Entropy จากการสุ่ม 100% แต่มีส่วนผสมของ Checksum อยู่ด้วย (คำที่ 12 มี Checksum 4 บิต / คำที่ 24 มี Checksum 8 บิต)

ค่า Checksum คำนวณมาจากการนำบิตความสุ่มทั้งหมดก่อนหน้าไปผ่านฟังก์ชัน SHA-256 Hash ซึ่งในทางปฏิบัติ มนุษย์ไม่สามารถคำนวณ SHA-256 ด้วยกระดาษและปากกาได้ เพราะซับซ้อนเกินไป

ดังนั้น ในขั้นตอนหา Checksum Word คำสุดท้าย เราจำเป็นต้องพึ่งพา เครื่องมือประมวลผลแบบ Offline ซึ่งมีหลายทางเลือกให้ใช้ตามความสะดวก ได้แก่

  • Hardware Wallet ที่มี Feature ในการคำนวณ คำสุดท้าย เช่น Blockstream Jade, Foundation Passport, BitBox02 เป็นต้น
  • เครื่องคอมพิวเตอร์ Air-Gapped / Live OS เช่น การตัดเน็ต ถอดการ์ด Wi-Fi หรือรันระบบปฏิบัติการ Tails OS ผ่าน USB
  • Offline Open-Source Software Tools เช่น สคริปต์ Ian Coleman BIP39 HTML ที่เปิดแบบ Offline บนเครื่องไม่ต่อเน็ต หรือสคริปต์ Python Open-Source
  • โทรศัพท์มือถือเครื่องเก่าแบบ Air-Gapped ที่ทำการ Reset Factory ถอดซิม ปิดสัญญาณถาวร แล้วใช้รันแอปคำนวณ Seed แบบ Offline

เจาะลึก 3 กลุ่มวิธีการสร้าง Seed Phrase ด้วยลูกเต๋าจริง

ในทางปฏิบัติ การนำลูกเต๋ามาแปลงเป็น Seed Phrase มีได้หลายวิธี วันนี้แอดจะยกตัวอย่าง 3 แบบที่คนใช้กันบ่อยครับ

1️⃣ Direct Hardware Dice Input (วิธีป้อนแต้มลูกเต๋าตรงเข้าเครื่อง)

วิธีนี้เป็นวิธีที่ประหยัดเวลาทอยมากที่สุด เหมาะสำหรับผู้ที่มี Hardware Wallet สาย Air-Gapped ที่มีระบบรับผลทอยลูกเต๋าบนตัวเครื่อง

Bitcast
  • อุปกรณ์ที่รองรับวิธีนี้: Hardware Wallet ที่มีการรองรับ feature เช่น Coldcard, SeedSigner, Krux เป็นต้น
  • คณิตศาสตร์ของวิธีนี้ (2.585 บิตต่อการทอย)ลูกเต๋ามาตรฐาน 6 หน้า (D6) มีผลลัพธ์ที่เป็นไปได้ 6 แบบ (1–6) ตามหลัก Information Theory ปริมาณ Entropy ต่อการทอยคำนวณจาก log2(6) ≈ 2.585 บิต
    • Seed 12 คำ (128 บิต): ต้องทอยอย่างน้อย 128 / 2.585 ≈ 50 ครั้ง
    • Seed 24 คำ (256 บิต): ต้องทอยอย่างน้อย 256 / 2.585 ≈ 99 ครั้ง
  • ขั้นตอนการทำ
  • เปิด Hardware Wallet เลือกเมนูสร้าง Seed ด้วยลูกเต๋า (Create with Dice Rolls)
  • ทอยลูกเต๋า D6 แล้วป้อนตัวเลขหน้าเต๋า (1–6) ลงบนตัวเครื่องทีละครั้งจนอย่างน้อย 50 (สำหรับ Seedphrase 12คำ)หรือ 100 ครั้ง(สำหรับ Seedphrase 24คำ)
  • ตัวเครื่องจะนำสายตัวเลขทั้งหมดไปเข้ากระบวนการ SHA-256 Hash เพื่อประมวลผลเป็นบิตความสุ่ม และแปลงออกมาเป็นคำศัพท์ BIP-39 ครบทั้ง 12 หรือ 24 คำ (รวม Checksum Word คำสุดท้าย) ให้อัตโนมัติ
  • ข้อดี: รวดเร็ว ทอยจำนวนครั้งน้อยที่สุด และโอกาสพิมพ์ผิดพลาดต่ำ
  • ข้อเสีย: ต้องใช้ Hardware Wallet รุ่นที่รองรับเฉพาะ และยังต้องพึ่งพาฟังก์ชัน SHA-256 ของตัวเครื่องในการแปลงเป็นคำศัพท์

2️⃣ กลุ่ม Lookup Table (สุ่มคำศัพท์ด้วยตารางกระดาษ)

เป็นวิธีสุ่มสร้าง Seed Phrase โดยใช้ลูกเต๋าเพื่อเปิดหาคำศัพท์จาก "ตารางคู่มือกระดาษ" (Lookup Table Sheet) โดยตรง ช่วยให้เราได้คำศัพท์ BIP-39 จำนวน 11 คำแรก (สำหรับ Seed 12 คำ) หรือ 23 คำแรก (สำหรับ Seed 24 คำ) โดยไม่ต้องแปลงเป็นเลขฐานสอง (Binary) หรือคำนวณคณิตศาสตร์ด้วยตัวเอง จากนั้นจึงนำคำที่ได้ไปป้อนเข้า Hardware Wallet เพื่อให้เครื่องช่วยคำนวณหาคำสุดท้าย (Checksum Word)

  • สามารถดาวน์โหลดตารางแปลผลได้ที่ JadeDiceRollsGuide
Bitcast
  • ขั้นตอนการทำ
    • พิมพ์หรือเปิดไฟล์ใบตารางคำศัพท์ BIP-39 
    • ทอยลูกเต๋าแล้วเปิดหาคำศัพท์จากตารางกระดาษทีละคำ จนได้คำศัพท์ครบ 11 คำแรก (สำหรับ Seed 12 คำ) หรือ 23 คำแรก (สำหรับ Seed 24 คำ)
    • นำคำศัพท์ 11 หรือ 23 คำที่ได้ ป้อนเข้าไปใน Hardware Wallet ผ่านเมนู Restore / Import Seed
    • พิมพ์ Seed Phrase ที่เราคำนวณได้ 11/23คำ เมื่อถึง Final Word ตัวเครื่องจะประมวลผลคำนวณค่า Checksum และแสดงรายการคำศัพท์ที่เป็นไปได้ของคำสุดท้ายออกมาให้เราเลือกกดบันทึก
  • ข้อดี: ยืดหยุ่นสูง ใช้ได้กับ Hardware Wallet หลากหลายรุ่น และเราได้เห็นคำศัพท์บนตารางกระดาษด้วยตัวเองก่อนป้อนเข้าเครื่อง
  • ข้อเสีย: เสียเวลาทอยและเปิดตารางทีละคำ มีโอกาสเกิด Human Error จากการดูบรรทัดตารางผิด
Featured Products
Loading products...

3️⃣ กลุ่ม Manual Binary Conversion (แปลงเป็น Binary บิตด้วยตัวเอง)

วิธีนี้คือการสร้าง Seed Phrase ด้วยคณิตศาสตร์ให้อยู่ในรูปแบบบิต โดยใช้เพียงลูกเต๋า ปากกา กระดาษ และรายการคำศัพท์ BIP-39 โดยไม่ต้องพึ่งพาซอฟต์แวร์เลยในคำแรก ๆ

Bitcast

ในกลุ่มนี้ มี 2 เทคนิคการทอยในการแปลงเป็นสายบิต Binary (0 และ 1):

  • เทคนิค A: แบบ 1 บิต ต่อการทอย 1 ครั้ง (Binary Style)
    • กฎการทอย: ออกหน้า 1, 2, 3 = 0 | ออกหน้า 4, 5, 6 = 1
    • เป็นวิธีการเข้าใจง่ายที่สุด แต่ต้องทอยจำนวนครั้งเยอะ (ต้องทอย 128 ครั้ง สำหรับ Seed 12 คำ หรือ 256 ครั้ง สำหรับ Seed 24 คำ)
  • เทคนิค B: แบบ 2 บิต ต่อการทอย 1 ครั้ง (Base-4 Mapping)
    • กฎการทอย: 
      • หน้า 1 = 00 | หน้า 2 = 01 | หน้า 3 = 10 | หน้า 4 = 11 | 
      • หน้า 5, 6 = ทอยใหม่ ; การตัดหน้า 5 และ 6 ทิ้ง จะช่วยลดความ Bias ออกไป ทำให้ได้บิตที่บริสุทธิ์มากขึ้น 
    • ประหยัดเวลาทอยลงเหลือเพียงประมาณ 64 ครั้งที่ผ่าน (สำหรับ 12 คำ) หรือ 128 ครั้งที่ผ่าน (สำหรับ 24 คำ)

ขั้นตอนการแปลงเป็นคำศัพท์ด้วยมือ

  • ทอยลูกเต๋าจนได้จำนวนบิต Binary ความยาวตามที่เราต้องการโดย 128 บิต(สำหรับ 12 คำ) หรือ 256 บิต(สำหรับ 24 คำ)
  • แบ่งจำนวนบิตที่สุ่มได้ออกเป็นกลุ่ม กลุ่มละ 11 บิต (ตามมาตรฐาน BIP-39 กำหนดให้ 1 คำ = 11 บิต)
  • แปลงเลข Binary 11 บิตของแต่ละกลุ่มเป็นเลขฐานสิบ (จะได้ค่าระหว่าง 0 ถึง 2047)
  • นำตัวเลขที่ได้ ไปเปิดดูใบรายการคำศัพท์ BIP-39 Word List (2,048 คำ) แล้วเขียนคำศัพท์ตามที่เราสุ่มได้เลยครับสำหรับ 11 คำแรก หรือ 23 คำแรก
  • นำ 11 หรือ 23 คำที่ได้ไปป้อนใส่อุปกรณ์เพื่อหาคำสุดท้าย (Checksum Word)
  • ข้อดี: โปร่งใสที่สุด ได้เรียนรู้คณิตศาสตร์เบื้องหลัง และสร้างคำศัพท์ 11/23 คำแรกบนกระดาษได้ 100% โดยไม่ต้องใช้อุปกรณ์อิเล็กทรอนิกส์เลยในขั้นตอนแรก
  • ข้อเสีย: ใช้เวลาและสมาธิสูงที่สุด มีความเสี่ยงต่อการทดเลขบิตผิดพลาดหากไม่ระมัดระวัง
Featured Products
Loading products...

ข้อสังเกต (ทางลัดสำหรับคนไม่อยากคิดเลข)

จริงๆ แล้วเราไม่จำเป็นต้องแปลงเลข Binary (0 กับ 1) ให้เป็นเลขฐานสิบเสมอไปครับ! หากเราใช้ใบตาราง BIP-39 Wordlist ฉบับที่มี รหัส Bit กำกับไว้ข้างคำศัพท์ อยู่แล้ว เราสามารถนำสายตัวเลข 11 บิตที่เราทอยลูกเต๋าได้ ไปเปิด "จับคู่รหัส" ตรงๆ ในตารางได้เลยทันทีเหมือนการเปิดดูพจนานุกรม

ตัวอย่างเช่น: ทอยได้ 00000000001 ก็สามารถเดินสายตาไปมองหารหัส 00000000001 ในตาราง แล้วหยิบคำว่า Ability มาใช้ได้เลย โดยไม่ต้องคำนวณเลขให้ปวดหัวครับ

ทำไมบางตารางต้อง +1? (ความต่างของตารางเริ่มนับ 0 กับ เริ่มนับ 1)

เหตุผลที่บางเว็บบอกให้เอาเลขที่ได้ไป +1 ก่อนเปิดตาราง เกิดจาก "วิธีนับลำดับ" ที่ต่างกันระหว่างระบบคอมพิวเตอร์กับมนุษย์ครับ

  • ตารางแบบ 0-based Index (คอมพิวเตอร์นับ): คอมพิวเตอร์จะเริ่มนับคำแรกเป็น ลำดับที่ 0 (เรียง 0 ถึง 2047)
    • วิธีใช้: คำนวณเลขได้เท่าไหร่ กวาดสายตาหาแถวนั้นตรงๆ ได้เลย เช่น ได้เลข 0 = abandon, ได้เลข 1 = ability
  • ตารางแบบ 1-based Index (มนุษย์นับ): คนเรามักชินกับการนับคำแรกเป็น ลำดับที่ 1 (เรียง 1 ถึง 2048)
    • วิธีใช้: เมื่อคอมพิวเตอร์นับคำแรกเป็น 0 แต่ในกระดาษเขียนบรรทัดแรกเป็น 1 เราจึงต้องนำเลขที่คำนวณได้ไป +1 เสมอ เช่น คำนวณได้เลข 0 ให้เอา 0 + 1 = 1 แล้วค่อยไปเปิดดูบรรทัดที่ 1 ซึ่งก็จะได้คำว่า abandon ตรงกันพอดีครับ

📌 คำแนะนำจากแอด: เพื่อป้องกันความสับสนและลดความเสี่ยงในการบวกเลขผิด แนะนำให้โหลดตาราง BIP-39 แบบ 0-based Index (0–2047) มาใช้งานดีที่สุดครับ เพราะแปลงเลขได้เท่าไหร่ ก็เปิดหาคำในตารางได้ตรงๆ 100% ไม่ต้องทดเลขเพิ่มเลยครับ!

สามารถดูลำดับคำ BIP-39 wordlist ได้ที่ BIP39-wordlist(0-based Index), และ BIP39-wordlist(1-based Index)

ข้อควรระวัง

คำเตือน : การสร้าง Seed Phrase ด้วยการทอยลูกเต๋า เป็นกระบวนการที่เพิ่มความซับซ้อนด้วยมือ (Manual Process) หากทำไม่ถูกวิธี อาจนำไปสู่การสูญเสียสินทรัพย์ได้

  • คุณภาพของลูกเต๋า (Biased Dice): ลูกเต๋าพลาสติกทั่วไปมักมีความถ่วงน้ำหนักไม่เท่ากัน แนะนำให้ใช้ Casino Dice / Precision Dice หรือใช้ลูกเต๋ามาตรฐานหลาย ๆ ลูกทอยรวมกัน
  • ห้ามมโนตัวเลขเอง: มนุษย์ไม่มีความสุ่มจริง การคิดเลขในหัวมีรูปแบบที่คาดเดาได้ง่าย ต้องทอยลูกเต๋าจริง ๆ เท่านั้น
  • อย่าทอยน้อยกว่าเกณฑ์กำหนด: การทอยเต๋าน้อยกว่า 50 ครั้ง (สำหรับ 12 คำ) หรือน้อยกว่า 100 ครั้ง (สำหรับ 24 คำ) ในกรณีที่เราใช้วิธี Direct Hardware Dice Input จะทำให้ระดับ Entropy ต่ำเกินไปจนเสี่ยงต่อการถูกแฮกเกอร์ Brute-force ได้
  • ความปลอดภัยของสถานที่: ขณะทอยเต๋าและจดบันทึก ต้องมั่นใจว่าอยู่ในห้องปิดมิดชิด ไม่มีกล้องวงจรปิด กล้องมือถือ หรือใครแอบดูอยู่

ตารางเปรียบเทียบวิธีการสร้าง Seed Phrase แต่ละรูปแบบ

มิติการเปรียบเทียบ 1. Gen อัตโนมัติบนเครื่องปกติ 2. Direct Raw Entry บน HW Wallet 3. Lookup Table 4. Manual Binary (11 บิตต่อคำ)
ความสะดวก ⚡⚡⚡⚡⚡ (เร็วที่สุด) ⚡⚡⚡ (ปานกลาง) ⚡⚡ (ใช้เวลาเปิดตาราง) ⚡ (ใช้เวลาและสมาธิสูง)
อุปกรณ์ที่ต้องใช้ Hardware Wallet ลูกเต๋า D6 + Coldcard / SeedSigner / Krux ลูกเต๋า + ตารางคำศัพท์ + Jade ลูกเต๋า D6 + กระดาษจด + เครื่องมือ Offline
Trust Model มอบความไว้วางใจให้ชิปสุ่มและ Firmware สร้าง Entropy เอง 100% + เครื่องช่วย Hash สร้าง Entropy เอง 100% + เครื่องช่วยหา Checksum สร้าง Entropy เอง 100% + เครื่องหา Checksum
โอกาสเกิด Human Error ต่ำมาก ต่ำ (พิมพ์แค่เลข 1–6) ปานกลาง (อาจเปิดเทียบตารางผิด) ปานกลาง-สูง (ต้องทดเลขบิตอย่างระวัง)
เหมาะสำหรับใคร มือใหม่ / ผู้ใช้งานทั่วไป ผู้ใช้ระดับกลาง-สูง ที่เน้นความชัวร์ ผู้ใช้อุปกรณ์อย่าง Jade หรือ Passport ผู้ที่ชอบตรวจสอบคณิตศาสตร์ด้วยตัวเอง

สรุป

จากเหตุการณ์ข่าว Coldcard ที่เกิดขึ้น ได้ย้ำเตือนเราให้เห็นว่าการทำ Self-Custody ไม่ใช่แค่การซื้อ Hardware Wallet มาใช้อย่างเดียว แต่คือการเข้าใจกระบวนการเบื้องหลังว่าสินทรัพย์ของเราถูกคุ้มครองอย่างไร

การสร้าง Seed Phrase ด้วยลูกเต๋า อาจไม่ได้จำเป็นสำหรับทุกคนที่เพิ่งเริ่มต้น แต่เป็นเครื่องมือและทักษะที่ยอดเยี่ยมสำหรับผู้ที่ต้องการความปลอดภัยสูง เพราะมันทำให้เรามั่นใจได้ว่า กุญแจไขตู้เซฟของเรา เกิดขึ้นมาจากมือของเราเอง 100% โดยไม่เคยผ่านการคาดเดาจากซอฟต์แวร์ใด ๆ

แต่อย่างไรก็ตาม จากเหตุการณ์ที่เกิดขึ้นไม่ได้แปลว่า Hardware Wallet ยี่ห้อไม่ปลอดภัย หรือเราเชื่อใจไม่ได้อีกแล้ว แต่สิ่งสำคัญที่สุดคือการประเมินความพร้อมของตัวเอง หากเพื่อน ๆ ตัดสินใจใช้วิธีลูกเต๋า ต้องทำด้วยความเข้าใจ ใจเย็น มีสมาธิ และตรวจสอบความถูกต้องเสมอครับ เพราะ วิธีการที่ซับซ้อนมากขึ้นก็จะมาพร้อมกับความรับผิดชอบที่สูงขึ้นด้วยเช่นกันครับ “With great power comes great responsibility”

ทิ้งข้อความไว้

โปรดทราบว่าความคิดเห็นจะต้องได้รับการอนุมัติก่อนที่จะเผยแพร่

เว็บไซต์นี้ได้รับการคุ้มครองโดย hCaptcha และมีการนำนโยบายความเป็นส่วนตัวของ hCaptcha และข้อกำหนดในการใช้บริการมาใช้

Two black-and-gold dice tossed in the air, used to generate random entropy for a Bitcoin wallet seed phrase

อ่านเพิ่มเติมเกี่ยวกับ วิธีสร้าง Seed Phrase ด้วยลูกเต๋าสำหรับฮาร์ดแวร์วอลเล็ต

เข้าใจระบบสุ่ม Entropy บทเรียนจาก Coldcard และการเลือก Hardware Wallet ที่ปลอดภัยอย่างแท้จริง

อ่านเพิ่มเติมเกี่ยวกับ เข้าใจระบบสุ่ม Entropy บทเรียนจาก Coldcard และการเลือก Hardware Wallet อย่างปลอดภัย

ถอดบทเรียนจากข่าว Coldcard แล้ว "Self-Custody" ยังจำเป็นและปลอดภัยอยู่หรือไม่

อ่านเพิ่มเติมเกี่ยวกับ ถอดบทเรียนจากข่าว Coldcard แล้ว "Self-Custody" ยังจำเป็นและปลอดภัยอยู่หรือไม่