ไข่ส้มวิทยา ไข่ส้มวิทยา
หมวดที่ 3: ธุรกรรมและกุญแจดิจิทัล ตอนที่ 18

กุญแจส่วนตัว (Private Keys) เจาะลึก: ตัวเลขสุ่มตัวเดียว ใหญ่แค่ไหน สุ่มยังไงให้ปลอดภัย ทำไมไม่มีใครเดาถูก

เจาะลึกขนาดตัวเลข 256 บิต ความกว้างของพื้นที่สุ่ม และเหตุผลที่ไม่มีใครสามารถเดากุญแจซ้ำได้

#Bitcoinมือใหม่ #PrivateKey #256bit #Entropy
สไลด์ปกตอนที่ 18: กุญแจส่วนตัว (Private Keys) เจาะลึก: ตัวเลขสุ่มตัวเดียว ใหญ่แค่ไหน สุ่มยังไงให้ปลอดภัย ทำไมไม่มีใครเดาถูก
🔍 แตะเพื่อขยายรูป
สไลด์ประกอบบทเรียนตอนที่ 18 — แตะเพื่อดูแบบเต็มจอ

ตอนที่ 17 เราแยกให้ชัดแล้วว่า
กุญแจส่วนตัว (Private Key) กุญแจสาธารณะ (Public Key) และที่อยู่ (Address) ต่างกันยังไง

และทั้งหมดเริ่มจากตัวเดียวคือกุญแจส่วนตัว
ที่เราบอกไว้ว่าเป็นแค่ “ตัวเลขสุ่ม”

วันนี้เราจะซูมเข้าไปที่ตัวเลขตัวนี้ตัวเดียวครับ
ว่ามันคืออะไรกันแน่
ใหญ่แค่ไหน
แล้วทำไมการสุ่มเลขธรรมดา ๆ ถึงกลายเป็นแนวป้องกันที่แข็งแกร่งที่สุดของบิทคอยน์

🔑 เปิดเรื่องด้วยสิ่งที่เราทำกันทุกวัน: ตั้งรหัสผ่าน

เวลาเราตั้งรหัสผ่านอะไรสักอย่าง
สิ่งแรกที่นึกถึงมักเป็นวันเกิด เบอร์โทร หรือเลขทะเบียนรถ

ปัญหาคือ สิ่งที่เรา “จำง่าย”
ก็คือสิ่งที่ผู้ไม่หวังดี “เดาง่าย” เช่นกัน

บิทคอยน์แก้ปัญหานี้ด้วยวิธีตรงข้ามสุดขั้วครับ

ไม่ให้เราตั้งรหัสเองเลย
แต่ให้คอมพิวเตอร์สุ่มตัวเลขขึ้นมาให้

ตัวเลขที่ไม่มีความหมาย ไม่มีแพทเทิร์น ไม่มีเรื่องราวให้เดา

ตัวเลขสุ่มตัวนั้นแหละครับ คือกุญแจส่วนตัว

🔢 กุญแจส่วนตัวคืออะไร?

กุญแจส่วนตัวคือตัวเลขตัวใหญ่ตัวหนึ่ง
ที่สุ่มขึ้นมาเฉย ๆ

และเพราะมันคือ “ตัวเลข”
เราจึงเขียนมันได้หลายแบบโดยความหมายไม่เปลี่ยน

เขียนเป็นเลขฐานสอง (Binary) ก็ได้ ซึ่งคือรูปแบบที่คอมพิวเตอร์เก็บจริง ๆ
เขียนเป็นเลขฐานสิบที่เราคุ้นเคยก็ได้
หรือเขียนเป็นเลขฐานสิบหก (Hexadecimal) ที่ใช้ตัวอักษร a ถึง f ช่วยให้สั้นลงก็ได้

ทั้งหมดคือตัวเลขตัวเดียวกัน

เหมือนเราเขียนว่า “หนึ่งร้อย” กับเขียนว่า “100”
คนละหน้าตา แต่ค่าเดียวกันเป๊ะ

เวลาเห็นกุญแจส่วนตัวจริง ๆ มักโชว์ในรูปเลขฐานสิบหก
เพราะเขียนสั้นกว่าฐานสองมาก อ่านง่ายกว่าเยอะ

🧩 แล้วเลข 256 บิต (256-bit) คืออะไร?

บิต (Bit) คือหน่วยข้อมูลที่เล็กที่สุดในคอมพิวเตอร์
เล็กจนเก็บค่าได้แค่ 0 หรือ 1 เท่านั้น

เลข 256 บิต ก็คือเลขที่เขียนด้วยบิตเรียงกัน 256 ตัว

แต่ละตำแหน่งเลือกได้ 2 ค่า (0 กับ 1)
จำนวนค่าที่เป็นไปได้ทั้งหมดจึงเท่ากับ 2 คูณกัน 256 รอบ
หรือเขียนย่อว่า 2 ยกกำลัง 256

ซึ่งคิดออกมาเป็นเลขฐานสิบได้ประมาณ 1.15 × 10⁷⁷
คือเลข 1 ตามด้วยเลขศูนย์อีก 77 ตัว

นั่นคือขนาดของ “พื้นที่” ที่เราสุ่มเลขอยู่ครับ
กว้างจนสมองคนเราเอาไม่อยู่

(ข้อมูลเสริม: กุญแจที่ใช้ได้จริงต้องน้อยกว่าเพดานนี้นิดหน่อย
แต่ไม่ต้องจำ โปรแกรมกระเป๋าเช็กให้เราเสมอ)

🏭 แล้วกุญแจมาจากไหน? ตอบ: สุ่มเอา ไม่มีเวทมนตร์

ตอนเรากดสร้างกระเป๋าบิทคอยน์ครั้งแรก
โปรแกรมไม่ได้ทำอะไรพิศดารเลยครับ

มันแค่สุ่มเลข 256 บิตขึ้นมาให้เราตัวหนึ่ง แล้วจบ

เรียบง่ายขนาดที่ว่า เราสุ่มเองก็ยังได้

ยกตัวอย่างวิธีที่ทำได้จริง

  • โยนเหรียญ 256 ครั้ง หัวเขียนเป็น 1 ก้อยเขียนเป็น 0
    จบแล้วเราได้เลขฐานสอง 256 บิตพอดี นั่นคือกุญแจส่วนตัวหนึ่งดอก

  • เขียนโค้ดให้คอมพิวเตอร์สุ่มเลข
    แต่ต้องเลือกใช้ตัวสุ่มแบบปลอดภัย (Cryptographically Secure) เท่านั้น
    เพราะฟังก์ชันสุ่มธรรมดาในภาษาโปรแกรมส่วนใหญ่ ยังสุ่มไม่จริงพอ

  • เอาข้อมูลสุ่ม ๆ ชุดใหญ่ไปเข้าฟังก์ชันแฮช SHA-256
    ผลที่ออกมายาว 256 บิตพอดี เอาไปใช้เป็นกุญแจได้เลย

สังเกตว่าทุกวิธีมีคำเดียวกันคือ “สุ่ม”

นี่คือเงื่อนไขเดียวที่ห้ามพลาดครับ

เพราะถ้าตัวสุ่มที่เราใช้มีแพทเทิร์นซ่อนอยู่
ผู้ไม่หวังดีที่รู้จุดอ่อนของตัวสุ่มตัวนั้น
อาจสร้างกุญแจดอกเดียวกับเราขึ้นมาได้

และคนที่มีกุญแจดอกเดียวกัน
ก็คือเจ้าของเงินคนเดียวกันในระบบบิทคอยน์

🌍 จุดที่เจ๋งที่สุด: ไม่มีใครคุมการออก “บัญชี”

ลองนึกถึงการเปิดบัญชีธนาคารครับ

เราต้องเดินไปสาขา ยื่นบัตรประชาชน เซ็นเอกสาร
แล้วธนาคารเป็นคน “แจก” เลขบัญชีให้เรา

ในบิทคอยน์ไม่มีขั้นตอนพวกนี้เลย

“บัญชี” ของเราเกิดจากการสุ่มตัวเลขเองในเครื่องตัวเอง

ไม่ต้องสมัครสมาชิก
ไม่ต้องขออนุญาตใคร
ไม่มีคนกลางคอยแจกเลข
และไม่มีใครในโลกปิดสิทธิ์เราได้

ใครก็ตามที่สุ่มเลขใหญ่ ๆ ตัวหนึ่งขึ้นมาได้
คนนั้นก็มีที่อยู่เป็นของตัวเองทันที

นี่คือเหตุผลที่บิทคอยน์เปิดให้ทุกคนเข้าถึงได้
ขอแค่มีวิธีสุ่มตัวเลขที่ปลอดภัยเท่านั้น

🤔 คำถามคาใจ: แล้วถ้ามีคนสุ่มได้เลขซ้ำกับเราล่ะ?

ตอบ เขาก็เอาบิทคอยน์ของเราไปได้ทั้งหมด

แต่ข่าวดีคือ มันแทบจะไม่มีทางเกิดขึ้น

ในเชิงทฤษฎี ใครสักคนมีโอกาสสุ่มชนกับเราได้
แต่พื้นที่ของเลข 256 บิตมันกว้างเกินกว่าที่คำว่า “เยอะ” จะอธิบายได้

ลองคิดเล่น ๆ ครับ

สมมติให้คอมพิวเตอร์ทุกเครื่องบนโลกช่วยกันไล่เดากุญแจของเรา
เครื่องละล้านล้านครั้งต่อวินาที
ตั้งแต่วันที่จักรวาลกำเนิดจนถึงวันนี้

ก็ยังไขว่คว้าได้แค่เศษเสี้ยวเล็ก ๆ ของพื้นที่ทั้งหมด

ส่วนมากของตัวเลขยังไม่เคยมีใครแตะถึงเลยด้วยซ้ำ

ดังนั้นความปลอดภัยของกุญแจส่วนตัว
ไม่ได้อยู่ที่กฎว่า “ห้ามสุ่มซ้ำ”
แต่อยู่ที่ขนาดของตัวเลขที่ทำให้การสุ่มซ้ำแทบไม่มีทางเกิด

แค่เราสุ่มด้วยตัวสุ่มที่เชื่อถือได้
ก็ปลอดภัยพอแล้วในตัวมันเอง

📖 เปรียบเทียบให้เห็นภาพ:

เรื่องความใหญ่ของเลข 256 บิต

ลองนึกว่าเราเก็บเม็ดทรายทุกเม็ดบนโลกมานับ
ทั้งชายหาดทุกแห่ง ทะเลทรายทุกแห่ง ก้นมหาสมุทรทุกมุม
ได้ตัวเลขก้อนใหญ่ก้อนหนึ่ง

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

จำนวนที่ได้ยังน้อยกว่าจำนวนกุญแจส่วนตัวที่เป็นไปได้อยู่ดี

พื้นที่ที่เราสุ่มกุญแจอยู่มันกว้างระดับนั้น

เรื่องการสุ่มให้สุ่มจริง

ลองนึกถึงการตั้งรหัสล็อกกระเป๋าเดินทาง

ถ้าเราตั้งเอง เรามักเลือกเลขที่มีความหมายกับเรา
วันเกิด เลขมงคล เลขคู่ที่ชอบ
พวกนี้คนอื่นเดาตามได้

แต่ถ้าเราเอาลูกเต๋ามาทอยทีละตำแหน่ง
ได้เลขไหนตั้งเลขนั้น

รหัสที่ได้จะไม่มีเรื่องราวให้เดาเลย
เพราะลูกเต๋าไม่รู้จักวันเกิดเรา

การโยนเหรียญ 256 ครั้งเพื่อสร้างกุญแจส่วนตัว
ก็คือหลักการเดียวกันครับ
เอาความชอบส่วนตัวของมนุษย์ออกจากสมการไปเลย

และเรื่องไม่มีคนกลางแจกบัญชี

ลองนึกถึงสนามกีฬาที่มีที่นั่งมากกว่าเม็ดทรายทั้งโลก

ไม่มีหน้าต่างขายบัตร ไม่มีเจ้าหน้าที่ตรวจตั๋ว

เราแค่เดินเข้าไป เลือกเก้าอี้ตัวไหนก็ได้ แล้วนั่ง
เก้าอี้ตัวนั้นก็เป็นที่ของเราทันที

โอกาสที่จะมีคนเดินมานั่งทับที่เดียวกัน
แทบไม่มีเลย เพราะสนามมันใหญ่เกินไป

บิทคอยน์ก็เป็นแบบนี้ครับ

เราไม่ได้ “ขอ” บัญชีจากใคร
เราแค่เลือกที่นั่งของตัวเองในสนามที่กว้างเหลือเฟือ

🔮 ตอนหน้า: วันนี้เรารู้แล้วว่ากุญแจส่วนตัวคือตัวเลขสุ่มธรรมดา ๆ ตัวหนึ่ง
แต่ตอนที่ 17 เราบอกว่าจากตัวเลขตัวนี้
จะถูกคำนวณไปเป็นกุญแจสาธารณะด้วย “คณิตศาสตร์ทางเดียว”

แล้วคณิตศาสตร์ทางเดียวนั้นหน้าตาเป็นยังไง
ทำไมถึงคำนวณไปข้างหน้าได้ แต่ย้อนกลับไม่ได้เลย

ตอนหน้าเราจะผ่ากุญแจสาธารณะ (Public Key) ให้เห็นถึงกลไกข้างในครับ

🧠 สรุปวันนี้ จำแค่นี้

  • กุญแจส่วนตัว (Private Key) คือตัวเลขสุ่มตัวใหญ่ตัวหนึ่ง เขียนได้ทั้งเลขฐานสอง (Binary) ฐานสิบ และฐานสิบหก (Hexadecimal) ต่างหน้าตาแต่เป็นตัวเดียวกัน
  • เป็นเลข 256 บิต (256-bit) มีค่าที่เป็นไปได้ประมาณ 1.15 × 10⁷⁷ กว้างกว่าจำนวนเม็ดทรายทั้งโลกเอาไปคูณกันอีกที
  • สุ่มเองได้เลย โยนเหรียญ 256 ครั้งก็ได้กุญแจหนึ่งดอก เงื่อนไขเดียวที่ห้ามพลาดคือต้องสุ่มจริง ตัวสุ่มที่อ่อนแอทำให้ผู้ไม่หวังดีเดากุญแจเราถูกได้
  • ไม่มีคนกลางคอยออก “บัญชี” ใครสุ่มเลขใหญ่ ๆ ได้ก็มีที่อยู่เป็นของตัวเองทันที นี่คือเหตุที่บิทคอยน์เปิดให้ทุกคนเข้าถึงเท่ากัน
  • โอกาสที่ใครจะสุ่มชนกับเราแทบเป็นศูนย์ ความปลอดภัยมาจากความกว้างมหาศาลของพื้นที่ตัวเลข ไม่ใช่จากกฎห้ามเดา

🖼️ สไลด์ทั้งหมดของตอนนี้ (8 รูป)

สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 2สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 3สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 4สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 5สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 6สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 7สไลด์ประกอบบทเรียนตอนที่ 18 รูปที่ 8
ทบทวนความเข้าใจ

แบบทดสอบท้ายบทเรียน

ตอบคำถาม 3 ข้อ เพื่อเช็กความเข้าใจของตัวเองได้เลย

1. กุญแจส่วนตัว (Private Key) ในบิทคอยน์มีขนาดเท่าไหร่?

2. เหตุใดจึงไม่มีใครสามารถสุ่มตัวเลข Private Key ซ้ำกับคนอื่นได้?

3. เราสามารถสร้างกุญแจส่วนตัว (Private Key) ได้ด้วยวิธีใด?

อ่านตอนนี้จบแล้วใช่ไหม?

กดบันทึกเพื่อติดตามความก้าวหน้าการเรียนของคุณ