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

กุญแจสาธารณะ (Public Keys): คำนวณมาจากกุญแจส่วนตัวยังไง ทำไมไปข้างหน้าได้แต่ย้อนกลับไม่ได้

เข้าใจการคูณบนเส้นโค้งวงรี (Elliptic Curve Multiplication) และ Compressed Public Key

#Bitcoinมือใหม่ #PublicKey #EllipticCurve #secp256k1
สไลด์ปกตอนที่ 19: กุญแจสาธารณะ (Public Keys): คำนวณมาจากกุญแจส่วนตัวยังไง ทำไมไปข้างหน้าได้แต่ย้อนกลับไม่ได้
🔍 แตะเพื่อขยายรูป
สไลด์ประกอบบทเรียนตอนที่ 19 — แตะเพื่อดูแบบเต็มจอ

ตอนที่ 18 เราเจาะลึกกุญแจส่วนตัว (Private Key) ไปแล้วว่ามันคือตัวเลขสุ่ม 256 บิต ที่ใครก็สร้างเองได้บนเครื่องโดยไม่ต้องขออนุญาตใคร

วันนี้เราจะมาต่อยอดจากจุดนั้นครับ เพราะตัวเลขสุ่มตัวนี้จะถูกนำไปคำนวณต่อจนกลายเป็น กุญแจสาธารณะ (Public Key)
คำถามสำคัญคือ: ระบบคำนวณอย่างไร และทำไมถึงกล่าวว่าคำนวณไปข้างหน้าได้ง่ายดาย แต่ไม่มีใครในโลกสามารถคำนวณย้อนกลับได้เลย?

🔁 ทำไมต้องมีทั้งกุญแจส่วนตัวและกุญแจสาธารณะ?

เวลาเราให้เพื่อนโอนเงินเข้าบัญชี เราจะส่งเพียง “เลขที่บัญชี” ให้เขา โดยไม่เคยส่ง “รหัสผ่าน” ไปด้วย เพราะเลขที่บัญชีมีไว้สำหรับ รับเงิน ส่วนรหัสผ่านมีไว้สำหรับ สั่งจ่ายเงิน

ในบิทคอยน์ก็ใช้แนวคิดคู่กุญแจ (Key Pair) แบบนี้เช่นกัน:

  • กุญแจส่วนตัว (Private Key): เปรียบเหมือนรหัสผ่าน ห้ามเปิดเผยเด็ดขาด
  • กุญแจสาธารณะ (Public Key): เปรียบเหมือนเลขที่บัญชี เปิดเผยต่อสาธารณะได้ เพื่อให้คนอื่นใช้ส่งเงินมาให้เรา

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

⛰️ หัวใจสำคัญ: คณิตศาสตร์ทางเดียว (Trapdoor Function)

ในโลกคณิตศาสตร์ มีฟังก์ชันประเภทหนึ่งที่มีคุณสมบัติพิเศษคือ คำนวณไปข้างหน้าได้ง่ายมาก แต่แทบเป็นไปไม่ได้เลยที่จะคำนวณย้อนกลับ เรียกว่า ฟังก์ชันประตูลับ (Trapdoor Function)

บิทคอยน์เลือกใช้คณิตศาสตร์ที่ชื่อว่า การคูณบนเส้นโค้งวงรี (Elliptic Curve Cryptography - secp256k1):

  • หากเรามีกุญแจส่วนตัว คอมพิวเตอร์จะคำนวณหากุญแจสาธารณะได้ในพริบตา (เสี้ยวของมิลลิวินาที)
  • แต่ถ้าใครเห็นเฉพาะกุญแจสาธารณะ แล้วพยายามจะคำนวณย้อนกลับไปหากุญแจส่วนตัว ต่อให้ใช้ซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุดในโลก ก็ไม่สามารถทำได้สำเร็จ!

นี่คือเหตุผลที่เราสามารถแจกกุญแจสาธารณะให้คนทั้งโลกเห็นได้อย่างสบายใจ โดยไม่ต้องกังวลว่าใครจะแอบขโมยกุญแจส่วนตัวไป

📈 การคูณบนเส้นโค้งวงรี (Elliptic Curve Multiplication) ทำงานอย่างไร?

ลองนึกถึงกราฟเส้นโค้งสมมาตรบนแกนพิกัด $x$ และ $y$ ที่มีสมการเฉพาะตัวคือ $y^2 = x^3 + 7$ (มาตรฐาน secp256k1)

เส้นโค้งนี้มีคุณสมบัติทางเรขาคณิตที่มหัศจรรย์: เมื่อเราลากเส้นตรงตัดผ่านจุดสองจุดบนเส้นโค้ง เส้นตรงนั้นจะพุ่งไปตัดกับเส้นโค้งที่จุดที่สามเสมอ จากนั้นนำจุดที่สามมาสะท้อนข้ามแกน $x$ เพื่อให้ได้จุดผลลัพธ์ใหม่

🎱 เปรียบเทียบง่าย ๆ
เหมือนการตีลูกบิลเลียดบนโต๊ะที่มีขอบโค้งพิเศษ ทุกครั้งที่เราส่งแรงตี ลูกบิลเลียดจะวิ่งชิ่งไปตามกฎเกณฑ์ที่ตายตัวและแม่นยำ 100% เสมอ

🎯 จุดกำเนิด (Generator Point G) ที่ทุกคนในโลกใช้ร่วมกัน

บนเส้นโค้งวงรีของบิทคอยน์ มีการตกลงจุดเริ่มต้นจุดหนึ่งไว้ล่วงหน้า เรียกว่า จุดกำเนิด (Generator Point หรือจุด G) ซึ่งทุกคนในโลกจะใช้จุดเดียวกันนี้

สูตรคำนวณกุญแจสาธารณะ ($K$) จึงเรียบง่ายมาก: $$K = k \times G$$ (โดยที่ $k$ คือกุญแจส่วนตัวของเรา, $G$ คือจุดกำเนิดคงที่, และ $K$ คือกุญแจสาธารณะ)

หมายความว่า เรานำจุด $G$ มาทำการบวกซ้ำ ๆ บนเส้นโค้งเป็นจำนวนรอบเท่ากับตัวเลขของกุญแจส่วนตัว ($k$) ลูกบิลเลียดจะวิ่งเด้งไปมาบนกราฟ จนกระทั่งหยุดนิ่งที่พิกัดสุดท้าย $(x, y)$ ซึ่งพิกัดคู่นี้แหละครับคือ กุญแจสาธารณะของเรา!

คอมพิวเตอร์มีสูตรลัดทางคณิตศาสตร์ในการกระโดดข้ามจุด ทำให้คำนวณไปข้างหน้าได้เร็วมาก แต่สำหรับคนที่เห็นเพียงจุดจอดสุดท้าย $(x, y)$ จะไม่มีทางรู้ได้เลยว่าลูกบิลเลียดกระโดดมากี่รอบ นอกจากจะต้องลองไล่นับทีละครั้ง ซึ่งเป็นไปไม่ได้ในทางปฏิบัติเพราะตัวเลขมีมากถึง 77 หลัก

✂️ เกร็ดน่ารู้: Compressed Public Key ทำไมกุญแจสมัยใหม่ถึงสั้นลงครึ่งหนึ่ง?

กุญแจสาธารณะแบบดั้งเดิม (Uncompressed) ต้องเก็บทั้งพิกัด $x$ และ $y$ เต็ม ๆ ทำให้มีความยาว 65 ไบต์ (ขึ้นต้นด้วย 04)

แต่เนื่องจากเส้นโค้งมีสมการที่แน่นอน หากเรารู้ค่า $x$ เราจะสามารถคำนวณหาค่า $y$ ได้เสมอ เพียงแต่ค่า $y$ จะมีความเป็นไปได้ 2 ค่า (บนแกน หรือ ล่างแกน)
นักพัฒนาจึงคิดค้น กุญแจสาธารณะแบบบีบอัด (Compressed Public Key):

  • เก็บเฉพาะค่าพิกัด $x$ (ความยาวเพียง 33 ไบต์)
  • แปะรหัสระบุขั้วไว้ด้านหน้า: 02 หาก $y$ เป็นเลขคู่, หรือ 03 หาก $y$ เป็นเลขคี่

วิธีนี้ทำให้ขนาดกุญแจสาธารณะลดลงไปเกือบครึ่งหนึ่ง ช่วยประหยัดพื้นที่จัดเก็บบนบล็อกเชนและลดค่าธรรมเนียมธุรกรรมได้อย่างมหาศาล

🔗 ความสัมพันธ์ทางคณิตศาสตร์ที่ตัดไม่ขาด

การเชื่อมโยงกุญแจทั้งสองด้วยเส้นโค้งวงรี มอบจุดเด่น 2 ประการให้บิทคอยน์:

  1. ทางเดียว (One-way): เผยกุญแจสาธารณะได้ ปลอดภัย 100%
  2. พิสูจน์ได้ (Verifiable): กุญแจทั้งสองผูกกันแน่นด้วยสมการ ทำให้เราสามารถสร้าง ลายเซ็นดิจิทัล (Digital Signature) เพื่อพิสูจน์ว่าเราถือกุญแจส่วนตัวจริง โดยไม่ต้องนำกุญแจส่วนตัวออกมาแสดงให้ใครเห็นเลย

📖 เปรียบเทียบให้เห็นภาพ
เหมือนบ้านที่มีประตูล็อกพิเศษ ลูกกุญแจอยู่ในกระเป๋าเราคนเดียว แต่ทุกคนสามารถมองเห็นรูกุญแจหน้าบ้านได้อย่างชัดเจน เมื่อมีใครถามว่าเราเป็นเจ้าของบ้านจริงไหม เราไม่จำเป็นต้องยื่นลูกกุญแจให้เขาเอาไปดู เราเพียงแค่เดินไปไขปลดล็อกประตูต่อหน้าเขา ทุกคนก็เชื่ออย่างสนิทใจแล้วว่าเราถือกุญแจจริง ลายเซ็นดิจิทัลก็ทำหน้าที่เปรียบเสมือนการไขล็อกต่อหน้าทุกคนเช่นเดียวกันครับ

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

  • กุญแจสาธารณะ (Public Key) คำนวณมาจากกุญแจส่วนตัว (Private Key) โดยตรง ไม่ได้สุ่มขึ้นมาใหม่
  • ใช้สมการ การคูณบนเส้นโค้งวงรี ($K = k \times G$) ซึ่งเป็นฟังก์ชันทางเดียว คำนวณไปข้างหน้าง่าย แต่ย้อนกลับไม่ได้
  • จุดกำเนิด (G): จุดเริ่มต้นบนกราฟเส้นโค้งที่ทุกคนในเครือข่ายใช้ร่วมกัน
  • Compressed Public Key: บันทึกเฉพาะพิกัด $x$ และเครื่องหมายกำกับ ทำให้กุญแจสั้นลงครึ่งหนึ่งและประหยัดพื้นที่บล็อกเชน
  • ความสัมพันธ์ทางคณิตศาสตร์ช่วยให้เราสามารถพิสูจน์ความเป็นเจ้าของผ่านลายเซ็นดิจิทัลได้โดยไม่ต้องเปิดเผยกุญแจส่วนตัว

🔮 ตอนหน้า:

เรารู้แล้วว่ากุญแจทั้งสองผูกกันอย่างแน่นหนา แต่เราจะนำกุญแจส่วนตัวไปสร้าง “ลายเซ็นดิจิทัล (Digital Signature)” อย่างไร และคนทั้งโลกตรวจสอบลายเซ็นนี้ได้อย่างไรโดยไม่ต้องเชื่อใจใคร? ตอนหน้าเราจะมาเจาะลึกกระบวนการเซ็นชื่อดิจิทัลกันครับ!

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

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

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

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

1. กุญแจสาธารณะ (Public Key) เกิดขึ้นมาจากอะไร?

2. ฟังก์ชันคณิตศาสตร์ที่บิทคอยน์ใช้สร้าง Public Key มีชื่อว่าอะไร?

3. กุญแจสาธารณะแบบบีบอัด (Compressed Public Key) มีประโยชน์อย่างไร?

✅

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

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