บทความนี้ เรียบเรียงจาก "สิ่งที่ผมเข้าใจ" ผิดพลาดประการใดขออภภัยด้วยนะครับ
โดย ตัวอย่างในบทความนี้จะเน้นไปที่ ธนาคาร, บัญชี เพื่อให้ผู้อ่านมองภาพได้ง่าย และนึกถึงความปลอดภัยเสมอ
ระบบรวมศูนย์ (Centralized)
Credit Pic: Nuuneol
ข้อดี
1. โอกาสเกิดการผิดพลาดต่ำ
2. ดูแลง่าย
ข้อเสีย
1. การวางระบบศูนย์กลางนี้มีค่าใช้จ่ายสูง
2. ในแง่ความปลอดภัย ต้องเชื่อใจคนกลาง
3. ถ้าคนกลาง หรือ ศูนย์รวม มีปัญหาก็ต้องรอให้กลับมาทำงานตามปกติอย่างเดียว
ระบบแบบกระจาย (Distributed)
Credit Pic: Nuuneol
1) ถ้าเกิดในระบบมีคนเป็นโจรขึ้นมาแล้วแก้เลขในสมุดบัญชีตัวเอง
2) ในเมื่อต่างคนต่างถือสมุดบัญชี แล้วถ้าจะโอนเงินกัน คนโอนกับคนรับโอนต้องต่างคนต่างแก้เลขในสมุดบัญชีตัวเอง ถ้าเกิดแก้ผิดหรือถ้าจงใจเขียนผิด
3) เมื่อต่างคนต่างถือสมุดบัญชีของตัวเอง การโอนเงินก็เป็นปัญหาได้อีกเพราะคนรับโอนไม่รู้เลยว่าคนโอนมีเงินเท่าไหร่ ถ้าจะโอน 1,000 บาท แต่คนโอนดันมีอยู่ 100 บาท มันต้องโอนไม่ได้ แต่เนื่องจากคนรับโอนไม่รู้เลยว่าคนโอนมีเงินเท่าไหร่ มันก็เลยอาจจะเกิดกรณีที่เป็นปัญหาได้
นี่คือเหตุผลว่าทำไมที่ผ่านมาเราถึงเห็นว่า ธนาคารใช้ระบบศูนย์กลางกันทั้งหมด เพราะว่าปัญหามันน้อยกว่า แต่ Blockchain เป็นวิธีแรกในโลกที่แก้ปัญหานี้ในระบบแบบกระจายได้
Blockchain
คือ การให้ทุกคนถือเอกสารชุดเดียวกัน เมื่อมีการอัปเดตก็จะอัปเดตด้วยกัน โดยมั่นใจได้ว่าเอกสารเหล่านั้น เชื่อถือได้แน่นอนไม่มีการปลอมแปลง แล้ว Blockchain แก้ปัญหาของ ระบบการกระจายได้ไง เริ่มจาก
1. สมุดบัญชีจะมีแค่ เลขบัญชี กับ Owner Key
Credit Pic: Nuuneol
2. ไม่มีการเก็บจำนวนเงิน มีแต่ข้อมูลการเดินบัญชี หรือ Transaction เช่น
- John โอนเงินให้ Alice 1,500 บาท (John เหลือ 500)
- Paul โอนเงินให้ John 500 บาท (John เหลือ 1000)
ดังนั้นถ้าเราเก็บรายการเดินบัญชีตั้งแต่บัญชี John ถูกสร้างขึ้นมาจนถึงปัจจุบัน พออยากรู้ว่าคน ๆ นี้มีเงินอยู่เท่าไหร่ ก็แค่เอารายการทั้งหมดมาบวกลบกัน นอกจากจะรู้ยอดที่ถูกต้องแล้ว เรายังสามารถตรวจสอบย้อนกลับไปที่มาของเงินได้
ตามที่เคยบอกไปแล้วว่า "ทุกคนถือเอกสารชุดเดียวกัน เมื่อมีการอัปเดตก็จะอัปเดตด้วยกัน" ดังนั้นเอกสารที่ทุกคนถืออยู่จะเรียกว่า Public Ledger หรือ รายการเดินบัญชีสาธารณะ
Credit Pic: Nuuneol
1) รู้ได้ยังไงว่า Transaction นั้น ๆ ถูกต้อง?
ถ้า Alice มีเช็คราคา 2,000 บาทอยู่ใบนึง แต่จะโอนให้ Johan 2,500 บาท
2) Double Spending
ถ้า Alice มีเงินอยู่ 2,000 บาท แต่จะสั่งซื้อของราคา 2,000 บาททั้งหมด 2 ชิ้นในเวลาเดียวกัน

Credit Pic: Nuuneol
เราจะเห็นได้ว่าทั้งสองปัญหานี้เกิดจาก Alice หรือ คนส่ง ซึ่งสามารถทำอะไรก็ได้เพราะ ไร้การตรวจสอบใดๆ ด้วยเหตุนี้ในระบบ Blockchain เราจึงต้องมี "ผู้ยืนยันความถูกต้องของ Transaction"
ในระบบรวมศูนย์กลางนั้นยังมีผู้ตรวจสอบ ก็คือ ธนาคาร แต่กับระบบแบบกระจายนี้ ผู้ตรวจสอบก็คือหนึ่งใน 6 คนที่ใช้บริการอยู่ ต้องมีอย่างน้อยหนึ่งเป็นผู้ตรวจสอบ และผู้ตรวจสอบเหล่านี้เราจะเรียกว่า Miner
ดังนั้น ลักษณะการประกาศ Transaction จะเปลี่ยนไป จากเดิมที่ประกาศแล้วให้ต่างคนต่างเขียนลงไปใน Ledger ของตัวเองเลย กลายเป็นว่าตอนประกาศ Transaction ไป Transaction นั้นๆจะอยู่ในสถานะ "ยังไม่ได้รับการยืนยัน (Unconfirmed) ก่อน และจะยังไม่ถูกบันทึกไว้ใน Ledger ของใครเพราะ Ledger จะมีไว้สำหรับเขียนสิ่งที่ "ได้รับการยืนยันแล้ว" เท่านั้น ซึ่งการตรวจสอบก็ไม่ยากแค่ ตรวจสอบว่า สิ่งที่ทำอยู่นั้น ตรงกับ Ledger ของ miner เช่น John โอนให้ Alice 2000 miner ก็จะตรวจสอบว่า John มียอดถึง 2000 ไหม
แต่ถ้าเราไม่มั่นใจว่า Miner ไว้ใจได้รึเปล่า ในกรณีนี้ การมี Miner เพียงคนเดียวนั้นจึงไม่ดีพอ ระบบเลยต้องมี Miner มากกว่า 1 คน และให้คนเหล่านั้น "แข่งกันยืนยัน Transaction"
แข่งกันยืนยัน Transaction
การแข่งยืนยัน Transaction นั้น เมื่อ Miner ทำการตรวจสอบ Transaction แล้วจะต้องแก้โจทย์ของระบบ Blockchain ซึ่ง ระบบ Blockchain จะตั้งโจทย์พิเศษขึ้นมาให้แก้หนึ่งตัว เป็นโจทย์ที่แก้ไขไม่ได้ด้วยสมการทางคณิตศาสตร์ วิธีเดียวที่จะทำได้คือ "ทำไปเรื่อยๆจนกว่าจะเจอคำตอบ"(เช่น เอาข้อมูลไปผ่าน hash function แล้วให้ชุดตัวเลขที่ได้มีเลข 00 นำหน้า)
จะเห็นว่าการยืนยัน Transaction นั้นใช้เวลานานพอสมควรเพราะ Proof of Work นั่นเอง โดยอาจจะใช้เวลาถึง 5-10 นาทีเลยทีเดียว
ดังนั้นการจะมานั่งยืนยันทีละ Transaction จะเสียเวลา เลยจะใช้วิธียืนยันทีละหลายๆ Transaction พร้อมกันจากนั้นจะ รวม Transaction เข้ากล่อง ๆ เดียวแล้วยืนยันทุก Transaction นั้นพร้อมกัน และกล่องนี้เราเรียกมันว่า Block ต่อมา Miner จะส่ง Block (ใน block ประกอบไปด้วย Transaction หลายๆอัน และ คำตอบของโจทย์ที่เราแก้) ให้กับทุกคน ดังนั้นรายการเดินบัญชีที่เก็บไว้ในมือของแต่ละคนจะไม่ได้อยู่ในรูปแบบง่ายๆที่เรียง Transaction ต่อกันเรื่อยๆอีกต่อไป แต่จะเป็นการเอา Block มาเรียงต่อกันเรื่อยๆแทน ซึ่งทุก Block ต้องอ้างอิง Block ก่อนหน้า เราจะเห็นได้ว่า จะไม่มีใครแอบเปลี่ยนข้อมลใน block ได้เพราะถ้าเปลี่ยนต้องเปลี่ยน block ก่อนหน้าด้วย

Credit Pic: Nuuneol
ถามว่า miner ได้อะไร
ในระบบทั่วไปเราจะให้รางวัล Miner เป็น Transaction fee ครับ ก็คือคนโอนจะต้องรับผิดชอบค่าธรรมเนียมการโอนเพิ่มเติม โดยแล้วแต่เลยว่าจะคิดค่าธรรมเนียมกันยังไง เช่น บังคับไปเลยว่าต้องจ่ายเท่าไหร่จนไปถึงคิดเป็น % จากยอดโอน แล้วเงินเหล่านี้จะถูกสร้างเป็นเช็คอีกใบนึงส่งให้กับ Miner ผู้ที่ยืนยันสำเร็จครับBitcoin (บิทคอยน์) กับ Blockchain (บล็อกเชน) เกี่ยวข้องกันอย่างไร
- Blockchain : เทคโนโลยี ด้านความปลอดภัยของข้อมูล
- Bitcoin: สกุลเงินบนโลกดิจิตอล
จะเห็นได้ว่า Blockchain ไม่ใช่ Bitcoin และ Bitcoin ก็ไม่ใช่ Blockchain แต่ Bitcoin มีความต้องการนำ Blockchain มาใช้ เพื่อให้การซื้อขาย มีความปลอดภัย
ก็ขอจบ post Blockchain คืออะไร เพียงเท่านี้นะครับ ต่อไปจะเป็นเรื่องของ Smart contact บน Blockchain นะครับ ขอบคุณครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น