กระบวนการทำงานของ Cryptocurrency สกุลเงิน Bitcoin แบบคร่าวๆแต่เข้าใจนะ
บทความนี้ขอเล่าถึงกระบวนการทำงานและการยืนยันสิทธิ์ของ Bitcoin ตามความเข้าใจของผมเอง
ธุรกรรมการซื้อขายแบบธรรมดาทั่วไป
รัฐพิมพ์เงินที่ปลอมแปลงได้ยากเพื่อเป็นตัวกลางในการแลกเปลี่ยนสินค้าออกมาให้คนในประเทศใช้ ดังนั้นเมื่อผู้อ่านต้องการจะทำการซื้อสิ่งของสักอย่างนึง
- สิ่งที่ผู้อ่านต้องมีคือจำนวนเงินมากกว่าหรือเท่ากับสิ่งที่ผู้อ่านจะซื้อ
- ยื่นจำนวนเงินไปให้ผู้ขาย
- ผู้ขายจะยื่นสินค้ามาให้ผู้อ่านและรับเงินของผู้อ่านไป
ถึงจะใช้จ่ายเงินออนไลน์ผ่าน Mobile banking ก็จะคล้ายๆกันแต่เพิ่มตัวกลางขึ้นมา
- สิ่งที่ผู้อ่านต้องมีคือยอดเงินมากกว่าหรือเท่ากับสิ่งที่ผู้อ่านจะซื้อ
- ธนาคารจะยืนยันความถูกต้องของการโอนเงินและทำการส่งเงินไปให้ผู้ขาย
- ผู้ขายจะส่งสินค้าให้ผู้อ่านและรับเงินจากธนาคารไป
เหมือนจะไม่มีปัญหาอะไรใช่ไหมครับแต่ก็ปัญหาต่างๆมากมาย จากที่เคยเล่าไว้ในบทความก่อนหน้า
มารู้จักกับ Public key และ Private key กันก่อน
Private key
Private key เปรียบเหมือนกับลายเซ็นของเราในระบบธนาคาร
เอาไว้ใช้ยืนยันความเป็นเจ้าของของสมุดบัญชี
ห้ามให้ใครรู้นอกจากเราเป็นอันขาด
Public key
Public key เปรียบเหมือนกับเลขบัญชีในระบบธนาคารโดยถูกสร้างขึ้นจาก Private Key มีหน้าที่เอาไว้รับเงินหรือส่งเงิน สามารถบอกเลขบัญชีกับใครก็ได้
ถึง Public key จะถูกสร้างจาก Private Key แต่มันไม่สามารถทำกลับให้เป็น Private Key ได้
วิธีใช้งาน Public key และ Private key
สมมติว่ามีตู้เก็บเงินแบบพิเศษอยู่โดยมีรูปแบบการล็อคมีสามขั้นตอนคือ
A (ล็อค), B (ปลดล็อค) และ C (ล็อค) โดยสถานะตู้ก่อนจะใช้คือ B ซึ่งถูกปลดล็อคอยู่
และกุญแจสำหรับตู้ล็อคนี้จะมีอยู่สองดอกก็คือ Private key กับ Public key โดย
Private key สามารถใช้หมุนได้ตามเข็มนาฬิกา (A ไป B ไป C)
Public key สามารถใช้หมุนทวนเข็มนาฬิกา (C ไป B ไป A)
โดยกุญแจแต่ละดอกจะไม่สามารถหมุนย้อนกลับได้
สรุปสั้นๆคือ
- เมื่อผู้อ่านใส่เงินเข้าไปในตู้และทำการล็อคด้วย public key ของผู้รับ จะมีเพียงคนที่ถือ private key เท่านั้นที่สามารถปลดล็อคและได้รับเงินไปซึ่งก็มีเพียงผู้รับเท่านั้นนั้นเอง
- เมื่อผู้อ่านใส่ข้อมูลเข้าไปในตู้และทำการล็อคด้วย private key ของตนเองจะทำให้ไม่ว่าใครก็ตามที่มี public key ของผู้อ่านจะสามารถปลดล็อคมันได้ เหตุผลที่ทำแบบนี้เพื่อเป็นการยืนยันว่าข้อมูลดังกล่าวเป็นของผู้อ่านเอง
อ้างอิงจากบทความ
ธุรกรรมของ Bitcoin แบบไม่มี Blockchain
จริงๆแล้วเหรียญ Bitcoin มันไม่มีอยู่จริง มีแต่รายการเดินบัญชีโดยขอเรียกว่า Cheque และเราจะรู้ยอดเงินที่เรามีทั้งหมดจากนับเงินใน Cheque ที่เราครอบครองดังนั้นหน้าตาของธุรกรรมที่แท้จริงในระบบนี้จึงต่างออกไปจากที่ทุกคนคิดครับ มันโอนเงินออกไปตรงๆไม่ได้เพราะมันไม่มีเหรียญอยู่ แล้วเราจะโอนอะไรกันหละ ?
ขออนุญาตยกตัวอย่างจากบทความนี้นะครับ เขาอธิบายไว้อย่างละเอียดแล้ว ผมแค่มาสรุปในแบบที่ผมเข้าใจ 😉
เช่น ก่อนหน้านี้ Alice ได้รับเงินจาก John 2,000 บาท อันนี้ก็เหมือนกับว่า John เขียนเช็คให้ Alice 2,000 บาท ได้มาเป็นใบๆเดียว และสมมติว่าใบนั้นมีเลขเช็คกำกับว่า 00100 ต่อไปถ้า Alice จะโอนเงินให้ Bob 100 บาท จะทำยังไง ?
ซึ่ง Alice ไม่มีเหรียญ Bitcoin มีแต่เช็คในมือจะโอน 100 บาทมันโอนไม่ได้และนี่คือวิธีที่แท้จริงครับ Alice ต้องเอาเช็คที่ถืออยู่นี่แหละ เลือกมาใบนึงแล้วเขียนเช็คใบใหม่เป็นเลข 00101 โดยอ้างอิงจากเช็คที่จะใช้ 00100 ก่อนจะโอนให้ Bob ต่อ
แต่ๆ เช็คเลขที่ 00100 มันมีมูลค่า 2,000 บาทแล้วอีก 1,900 บาทหละไปไหน? เราก็เขียนเช็คอีกเพื่อสั่งจ่ายตัวเองเป็นเลข 00102 อันนี้เราเรียกมันว่า “เงินทอน (Change)” ซึ่ง Alice ก็สามารถใช้งานมันต่อได้อีกในอนาคต
ข้อดีของการเขียนเลขเช็คแบบต่อๆกัน จะทำให้ผู้อ่านสามารถที่จะตรวจสอบแหล่งที่มาที่ไปได้จนถึงจุดเริ่มต้นของมันเลย
นั้นแบบนี้ถ้าใครได้เช็คไปก็ใช้เงินได้แบบสบายๆเลยสิ!!
การยืนยันสิทธิ์ในการใช้เช็คของเจ้าของบัญชี
เพื่อเป็นการยืนยันว่าเช็คนี้จะมีเพียงผู้รับเท่านั้นที่จะใช้เช็คได้ มีขั้นตอนคร่าวๆดังนี้
- เราต้องปลดล็อคเช็คเราก่อนด้วย Private key ของเราเอง
- ใช้ Public key ของผู้รับมาล็อคเช็คนี้เท่านี้ก็จะมีเพียงผู้รับเท่านั้นที่จะใช้เช็คนี้ได้
- ส่งไปยังเป้าหมายด้วยเลขบัญชีซึ่งก็คือ Public key นี้ละ
ปัญหาที่อาจเกิดขึ้นได้คือ…
- จะรู้ได้ยังไงว่าธุรกรรมนั้นๆถูกต้อง?
- Double Spending (จ่ายเช็ค 2 ที่ในเวลาเดียวกันเป๊ะๆ)
ขอยกไปบทความต่อไปนะ 😉
เพราะการแก้ปัญหานี้จะเป็นหน้าที่ของ Blockchain แล้วนะครับ!!
บทความต่อไปจะมาเล่าถึงกระบวนการทำงานของ Blockchain โดยอ้างอิงจากสกุล Bitcoin นะครับ
เท่านี้ผู้อ่านน่าจะเข้าใจถึงกระบวนการยืนยันความเป็นเจ้าของเงินและรูปแบบการรับส่งเงินกันแล้วนะครับ
หากพบข้อมูลที่ผมเขียนผิดพลาดสามารถแจ้งได้เลย ขอบคุณที่อ่านจนจบครับ 👏