กุญแจส่วนตัว (Private Keys) เจาะลึก: ตัวเลขสุ่มตัวเดียว ใหญ่แค่ไหน สุ่มยังไงให้ปลอดภัย ทำไมไม่มีใครเดาถูก
เจาะลึกขนาดตัวเลข 256 บิต ความกว้างของพื้นที่สุ่ม และเหตุผลที่ไม่มีใครสามารถเดากุญแจซ้ำได้
ตอนที่ 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 รูป)
แบบทดสอบท้ายบทเรียน
ตอบคำถาม 3 ข้อ เพื่อเช็กความเข้าใจของตัวเองได้เลย
1. กุญแจส่วนตัว (Private Key) ในบิทคอยน์มีขนาดเท่าไหร่?
2. เหตุใดจึงไม่มีใครสามารถสุ่มตัวเลข Private Key ซ้ำกับคนอื่นได้?
3. เราสามารถสร้างกุญแจส่วนตัว (Private Key) ได้ด้วยวิธีใด?
อ่านตอนนี้จบแล้วใช่ไหม?
กดบันทึกเพื่อติดตามความก้าวหน้าการเรียนของคุณ





