Digital keys บนบิตคอยน์
บิตคอยน์ใช้ PKE ซึ่งเป็น asymmetric cryptography เพื่อที่จะสร้างคู่กุญแจขึ้นมา นั้นคือ public key และ private key โดยหากมี private key เราสามารถคำนวณเพื่อหา public key ได้ แต่ในทางกลับกันการมี public key เพียงอย่างเดียวนั้นไม่สามารถย้อนกลับไปหา private key ได้ ถ้าจะให้เห็นภาพง่าย ๆ ลองจินตนาการถึง เมล็ดกาแฟกับผงกาแฟ โดยให้ private key เปรียบเสมือน เมล็ดกาแฟและให้ public key เป็นผงกาแฟ เราสามารถนำเมล็ดกาแฟมาบดเพื่อให้ได้ผงกาแฟเสมอ แต่ในทางกลับกันเราไม่สามารถนำผงกาแฟมาประกอบกับเป็นเมล็ดกาแฟได้ แล้วกุญแจทั้งสองสร้างอย่างไร ?
Private key นั้นสร้างโดยการสุ่มตัวเลข ซึ่งเป็นเลขฐาน 16 จำนวน 64 ตำแหน่ง จึงแทบจะเป็นไปไม่ได้เลยที่จะมีคนที่เผลอสร้าง private key แล้วจะออกมาซ้ำกัน เนื่องจาก private key นั้นมีความเป็นไปได้ถึง 16^64 หรือ 2^256 ซึ่งเท่ากับ 115,792,089,237,316,195,423,570,985,008,690,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 หรือ 115 * 10^75 ความเป็นไปได้ ใครคิดจะ random เพื่อหาบิตคอยน์ก็สู้ ๆ นะครับผมเป็นกำลังใจให้
Public key สร้างโดยการใช้ private key ของเราไปผ่าน ECDSA (Elliptical Curve Digital Signature Algorithm)
แล้วกุญแจทั้งสองในบิตคอยน์นั้นสามารถทำอะไรได้บ้าง
Public key: มีหน้าที่สำคัญ ๆ อยู่สองอย่าง นั้นคือการสร้าง bitcoin address โดยการนำ public key ไป hash, ใช้เพื่อยืนยันธุรกรรมของบิตคอยน์ (ทั้งสองกระบวนการที่กล่าวมานั้นไม่จำเป็นต้องใช้ private key)
Private key: เป็นส่วนสำคัญในการทำธุรกรรมของบิตคอยน์เนื่องจากทุกธุรกรรมบนบิตคอยน์จำเป็นต้องมี digital signature เพื่อยืนยันว่าคุณเป็นเจ้าของบิตคอยน์นั้นจริง ๆ
* ที่สำคัญเลยคือ private คือของบิตคอยน์นั้นคุณควรเก็บไว้ให้ดีอย่าให้ใครรู้ เนื่องจากหากมีบุคคลอื่นรู้ถึง private key ของคุณ วกเขาก็จะสามารถสร้างธุรกรรมบิตคอยน์ด้วย digital signature ของคุณได้ (เขาจะขโมยบิตคอยน์ของคุณได้!!)