🔏 ลายเซ็นดิจิทัลทำงานยังไง

เซ็นจริง ตรวจสอบจริง
สื่อสอนอินเทอร์แอกทีฟ

หน้า บล็อกเชนทำงานยังไง ใช้ภาพเปรียบเทียบกุญแจ เพื่อให้เข้าใจง่าย — หน้านี้คือของจริง ลองเซ็นข้อความด้วย private key แล้วตรวจสอบด้วย public key จริง ด้วยอัลกอริทึม ECDSA บนเส้นโค้ง secp256k1 เส้นโค้งเดียวกับที่ Bitcoin ใช้เซ็นทุกธุรกรรมจริง คำนวณทั้งหมดในเบราว์เซอร์คุณเอง

ก่อนเซ็นอะไรได้ ต้องมีกุญแจคู่หนึ่งก่อน — private key ที่เก็บไว้กับตัว และ public key ที่คำนวณมาจากมัน แจกใครดูก็ได้

🔒 Private Keyd796b2c7b29e…dd1083271cเก็บไว้คนเดียว ห้ามให้ใครเห็น
→ คำนวณทางเดียว →
🔓 Public Key020a9643db9d…ff8e4f6e1eแจกใครดูก็ได้ ไม่เสียหาย

กุญแจคู่นี้สุ่มขึ้นจริงในเบราว์เซอร์คุณตอนนี้ — เป็นตัวอย่างเพื่อการสอนเท่านั้น ไม่ได้ผูกกับกระเป๋าหรือเงินจริงที่ไหน

Private key คือตัวเลขสุ่มขนาดใหญ่ที่เก็บไว้กับตัว ส่วน public key คำนวณมาจาก private key ได้เสมอ (แต่คำนวณย้อนกลับไม่ได้เลย) — เปรียบเหมือนกุญแจล็อกกับกุญแจไข ต่างกันตรงที่ใครก็สร้าง public key จาก private key ได้ แต่ไม่มีทางสร้าง private key จาก public key

ลายเซ็นดิจิทัลคืออะไร

ลายเซ็นดิจิทัลคือตัวเลขชุดหนึ่งที่คำนวณจากสองอย่างรวมกัน คือเนื้อหาที่จะเซ็น และprivate key ของผู้เซ็น ผลลัพธ์ที่ได้พิสูจน์สองอย่างพร้อมกัน — เนื้อหานี้มาจาก เจ้าของกุญแจจริง และเนื้อหาไม่ถูกแก้ไขระหว่างทาง ต่างจากลายเซ็นบนกระดาษที่ปลอมได้ด้วยการ ฝึกเขียนเลียนแบบ ลายเซ็นดิจิทัลปลอมไม่ได้เลยถ้าไม่มี private key ตัวจริง

ทำไมตรวจสอบได้โดยไม่ต้องรู้ความลับ

นี่คือส่วนที่มหัศจรรย์ที่สุดของการเข้ารหัสแบบกุญแจคู่ (asymmetric cryptography): public key คำนวณมาจาก private key ได้ง่ายและเร็ว แต่ไม่มีทางคำนวณย้อนกลับได้เลย ทำให้แจก public key ให้ใครดูก็ได้อย่างปลอดภัย ทุกคนที่มี public key ตรวจสอบลายเซ็นได้ โดยไม่มีทางรู้ private key จากมันเลยแม้แต่นิดเดียว

Bitcoin ใช้สิ่งนี้ตรงไหน

ทุกครั้งที่ส่ง Bitcoin กระเป๋าจะเซ็นธุรกรรมด้วย private key ของคุณ แล้วแนบลายเซ็นไปกับธุรกรรมนั้น นักขุดและทุก node ในเครือข่ายตรวจสอบด้วย public key ที่แนบมาด้วย (ซึ่งอ้างอิงกับที่อยู่ผู้ส่ง) ถ้าตรวจแล้วไม่ผ่าน ธุรกรรมนั้นจะถูกปฏิเสธทันที ไม่มีทางที่ใครจะปลอมธุรกรรมโดยไม่มี private key ของเจ้าของเงินจริง

อยากเห็นว่าลายเซ็นเข้ามาอยู่ตรงไหนของธุรกรรมทั้งหมด ลองเล่น บล็อกเชนทำงานยังไง ดูภาพรวมทั้ง 7 ขั้นตอน

เกี่ยวกับตัวเลขในหน้านี้

กุญแจที่สร้างในหน้านี้เป็นตัวอย่างสุ่มขึ้นจริงเพื่อการสอน ไม่ได้ผูกกับกระเป๋าหรือเงินจริงที่ไหน และไม่มีการส่งข้อมูลใดออกจากเบราว์เซอร์ของคุณเลย การเซ็นใช้อัลกอริทึม ECDSA แบบ deterministic ตามมาตรฐาน RFC 6979 (เซ็นข้อความเดิมซ้ำได้ลายเซ็นเดิมเป๊ะ) บนเส้นโค้ง secp256k1 ซึ่งเป็นเส้นโค้งเดียวกับที่ Bitcoin ใช้จริงทุกประการ

อยากรู้ต่อว่ากุญแจพวกนี้มาจาก seed phrase 12 คำได้ยังไง อ่านที่ Seed Phrase ทำงานยังไง · หรือกลับไปที่ เส้นทางเรียนรู้ Bitcoin สำหรับมือใหม่