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

ลายเซ็นดิจิทัล (Digital Signatures): เซ็นยังไง ตรวจสอบยังไง โดยไม่เปิดเผยกุญแจส่วนตัว

พิสูจน์ความเป็นเจ้าของเงินด้วยลายเซ็นดิจิทัล (ECDSA) โดยไม่เปิดเผยกุญแจส่วนตัว

#Bitcoinมือใหม่ #DigitalSignature #ECDSA #ลายเซ็นดิจิทัล
สไลด์ปกตอนที่ 20: ลายเซ็นดิจิทัล (Digital Signatures): เซ็นยังไง ตรวจสอบยังไง โดยไม่เปิดเผยกุญแจส่วนตัว
🔍 แตะเพื่อขยายรูป
สไลด์ประกอบบทเรียนตอนที่ 20 — แตะเพื่อดูแบบเต็มจอ

ตอนที่ 19 เราเห็นแล้วว่ากุญแจส่วนตัวและกุญแจสาธารณะผูกกันด้วยคณิตศาสตร์ทางเดียว คำนวณไปข้างหน้าได้ แต่ย้อนกลับไม่ได้ และเราทิ้งท้ายไว้ว่า ความสัมพันธ์นี้ทำให้เราสามารถ “พิสูจน์” ความเป็นเจ้าของเงินได้โดยไม่ต้องโชว์กุญแจส่วนตัวให้ใครเห็นเลย

วันนี้เราจะมาดูกลไกการทำงานของสิ่งที่เรียกว่า ลายเซ็นดิจิทัล (Digital Signature) กันครับ!

🔏 ลายเซ็นดิจิทัล (Digital Signature) คืออะไร?

ลายเซ็นดิจิทัลคือ หลักฐานทางคณิตศาสตร์ ที่พิสูจน์ว่า:

  1. ผู้เซ็นเป็นเจ้าของกุญแจส่วนตัว (Private Key) ที่จับคู่กับกุญแจสาธารณะ (Public Key) ดอกนั้นจริง
  2. เจ้าของเป็นผู้อนุมัติธุรกรรมนี้ด้วยความยินยอม
  3. โดยที่ตัวกุญแจส่วนตัวไม่จำเป็นต้องปรากฏให้ใครในโลกเห็นแม้แต่นิดเดียว

ด้วยวิธีนี้ เราจึงสามารถปลดล็อกเงินใน UTXO เพื่อส่งต่อให้ผู้อื่นได้อย่างปลอดภัย โดยกุญแจส่วนตัวยังคงนอนนิ่งอยู่ในอุปกรณ์ของเราอย่างมิดชิด

🔗 ทำไมคนอื่นถึงขโมยลายเซ็นเราไปใช้ต่อไม่ได้?

คำถามที่หลายคนสงสัยคือ: ถ้าลายเซ็นดิจิทัลถูกแปะไว้บนธุรกรรมที่ทุกคนในโลกมองเห็น แล้วผู้ไม่หวังดีจะก๊อปลบลายเซ็นของเราไปแปะในธุรกรรมของเขาเพื่อขโมยเงินไม่ได้เหรอ?

คำตอบคือ เป็นไปไม่ได้เด็ดขาดครับ!

เพราะลายเซ็นดิจิทัลของบิทคอยน์ ถูกหลอมรวมเข้ากับเนื้อหาของธุรกรรมนั้น ๆ อย่างแนบแน่น:

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

ลายเซ็นดิจิทัลจึงทำหน้าที่ 2 อย่างพร้อมกัน: พิสูจน์ตัวตนผู้สั่งการ และ ประทับตราครั่งล็อกข้อมูลห้ามแก้ไข

⚙️ 2 ขั้นตอนสำคัญ: การเซ็น (Signing) vs การตรวจสอบ (Verifying)

การทำงานของลายเซ็นดิจิทัลแบ่งออกเป็น 2 ฟากอย่างชัดเจน:

  1. การเซ็นชื่อ (Signing): ทำงานเฉพาะบนเครื่องของผู้ส่งเงิน โดยนำกุญแจส่วนตัว + ข้อมูลธุรกรรม มาผ่านสมการจนได้ออกมาเป็นลายเซ็นดิจิทัล
  2. การตรวจสอบ (Verifying): ทำงานบนโหนดทุกเครื่องในเครือข่าย โดยนำลายเซ็น + ข้อมูลธุรกรรม + กุญแจสาธารณะของผู้ส่ง มาตรวจสอบ

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

🧩 ผ่าโครงสร้างลายเซ็น: ส่วนประกอบ (r, s)

ลายเซ็นดิจิทัลมาตรฐานของบิทคอยน์ (ECDSA) ประกอบด้วยตัวเลข 2 ตัวประกบกันคือ $(r, s)$:

  • ชิ้นส่วน $r$ (สุ่มพิกัด): เริ่มจากการสุ่มตัวเลขชั่วคราวขึ้นมาตัวหนึ่ง แล้วนำไปคูณกับจุดกำเนิด $G$ บนเส้นโค้งวงรี จนได้พิกัด $x$ ออกมาเป็นค่า $r$ ชิ้นส่วนนี้ช่วยให้การเซ็นชื่อในแต่ละครั้งมีค่าไม่ซ้ำกันเลย แม้จะเซ็นจากกุญแจดอกเดิมก็ตาม
  • ชิ้นส่วน $s$ (รหัสลายเซ็น): เกิดจากการนำกุญแจส่วนตัว คูณกับ $r$ บวกด้วยค่าแฮชของข้อมูลธุรกรรม แล้วหารด้วยตัวเลขสุ่มชั่วคราว

ค่าแฮชของธุรกรรมที่ถูกผสมเข้าไปในชิ้นส่วน $s$ นี่เอง คือสิ่งที่เย็บลายเซ็นให้ติดแน่นกับธุรกรรมฉบับนั้นเพียงฉบับเดียว

🔍 โหนดทั้งเครือข่ายตรวจสอบความถูกต้องอย่างไร? (ECDSA)

เมื่อโหนดได้รับธุรกรรม มันจะนำค่า $(r, s)$ และกุญแจสาธารณะมารันสมการบนเส้นโค้งวงรี:

  1. นำข้อมูลธุรกรรมและค่า $s$ ไปคำนวณจุดแรกบนเส้นโค้ง
  2. นำค่า $r, s$ และกุญแจสาธารณะ ไปคำนวณจุดที่สองบนเส้นโค้ง
  3. นำจุดทั้งสองมารวมกัน จะได้จุดที่สามบนเส้นโค้งวงรี
  4. หากพิกัด $x$ ของจุดที่สามตรงกับค่า $r$ พอดี $\rightarrow$ ลายเซ็นถูกต้องสมบูรณ์!
  5. หากไม่ตรง $\rightarrow$ โหนดจะปฏิเสธและทิ้งธุรกรรมนั้นทันที

กลไกทั้งหมดนี้มีชื่ออย่างเป็นทางการว่า ECDSA (Elliptic Curve Digital Signature Algorithm) ซึ่งทำงานโดยอาศัยกฎคณิตศาสตร์ล้วน ๆ โดยไม่ต้องพึ่งพาความไว้เนื้อเชื่อใจระหว่างมนุษย์เลยแม้แต่น้อย

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

  • ลายเซ็นดิจิทัล (Digital Signature) คือหลักฐานทางคณิตศาสตร์ที่พิสูจน์ว่าเราถือกุญแจส่วนตัวจริง โดยไม่ต้องเปิดเผยกุญแจให้ใครเห็น
  • ห้ามใส่กุญแจส่วนตัวลงในธุรกรรม เพราะทุกคนในเครือข่ายมองเห็นข้อมูลได้ทั้งหมด
  • ลายเซ็นผูกติดกับธุรกรรมฉบับนั้นโดยเฉพาะ ไม่สามารถก๊อปไปใช้กับรายการอื่น และป้องกันการแอบแก้ข้อมูลระหว่างทางได้
  • ลายเซ็นมาตรฐาน (ECDSA) ประกอบด้วยตัวเลข 2 ตัวคือ $(r, s)$
  • โหนดทั่วโลกสามารถตรวจสอบลายเซ็นได้อย่างเป็นอิสระ โดยใช้เพียงกุญแจสาธารณะและข้อมูลธุรกรรม

🔮 ตอนหน้า:

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

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

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

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

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

1. ลายเซ็นดิจิทัล (Digital Signature) ในบิทคอยน์มีประโยชน์หลักอย่างไร?

2. ทำไมผู้ไม่หวังดีจึงไม่สามารถก๊อปปี้ลายเซ็นดิจิทัลไปใช้กับธุรกรรมอื่นได้?

3. องค์ประกอบ 2 ชิ้นของลายเซ็นดิจิทัล (r, s) เกิดมาจากอะไร?

✅

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

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