ยอดผู้เข้าชม : 521

ทำไมโอน Bitcoin แล้วต้องรอ การยืนยันธุรกรรม Block confirmation คืออะไร

สวัสดีครับท่านผู้อ่านทุกท่าน  จริงๆแล้วผมตั้งใจจะเขียนบทความที่อธิบายเกี่ยวกับ 51% Attack ที่เป็นประเด็นที่น่าสนใจ โดยมักมีคนชอบเอามาโจมตีว่า Bitcoin จะไร้ค่าได้ถ้าเกิดขึ้น แต่พอคิดๆดูแล้วก่อนที่เราจะไปพูดถึง 51% Attack นั้นมันมีเรื่องหลายอย่างที่จะต้องปูพื้นฐานให้ท่านผู้อ่านรับทราบเสียก่อน โดยวันนี้สิ่งที่เราจะมาพูดถึงสิ่งที่เรียกว่า Block confirmation

สำหรับใครที่เคยใช้งาน Cryptocurrency เคยโอนเงินดิจิทัลไม่ว่าจะ Bitcoin หรือเงินสกุลอื่นๆก็คงจะคุ้นชินกับคำว่า Confirmation ว่าจะต้องมีการ Comfirm ตั้งแต่ 3-6 ก่อนเงินถึงจะโอนสำเร็จซึ่งก็อาจจะกินเวลาที่แตกต่างกันไปขึ้นอยู่กันสกุลเงินและค่าธรรมเนียมที่ใส่ และเป็นที่น่าหงุดหงิดใจเวลาที่ต้องรอว่าเมื่อไหร่เงินจะเข้า

 

สำหรับคนที่ไม่เคยโอนเงินดิจิทัล ผมจะขออธิบายสั้นๆว่า ในการโอนเงินดิจิทัลนั้นมันไม่ได้รวดเร็วเหมือนระบบธนาคาร เมื่อมีคำสั่งโอนเงินจะเป็นเหมือนการที่เราสั่งจ่ายเช็คที่ยังไม่มีลายเซ็นต์และมันจะไม่เสร็จสิ้นจนกว่าจะมีคนเซ็น ซึ่งในระบบเงินดิจิทัลอย่าง Bitcoin นั้นต้องการคนเซ็นต์ธุรกรรมนี้ตั้งแต่ 3-6 ลายต์ขึ้นไปถึงธุรกรรมจะเชื่อถือได้ สำหรับคนที่ยังงงๆขอให้กลับไปอ่านบทความเรื่องการขุดที่ผมเคยเขียนไว้แล้วได้ครับ

 

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

ก่อนอื่นผมอยากให้คุณนึกภาพระบบ Decentralized ก่อนในระบบ Bitcoin ที่เป็นระบบแบบนี้มันหมายความว่าข้อมูลจะถูกเก็บไว้หลายๆที่อย่างในปัจจุบัน Node ของ Bitcoin มีประมาณ 10,000 Node และ Node ต่างๆสามารถส่งข้อมูลหากันได้อย่างอิสระทำให้

“มันมีโอกาสที่ในเวลาเดียวกันแต่ละ Node นั้นอาจจะมีข้อมูลที่ไม่เหมือนกันได้”

ฟังถึงตรงนี้อาจจะงงๆเดียวจะอธิบายให้ฟัง

 

 

ลองคิดว่าตอนนี้นาย A เดินเข้าไปในประเทศไทยร้านกาแฟแล้วจ่ายค่ากาแฟด้วย bitcoin จำนวน 0.00005 BTC สิ่งที่เกิดขึ้นคือจะมีธุรกรรมที่นาย A จ่ายให้ร้านกาแฟวิ่งไปที่ Node ที่ใกล้ที่สุดที่อยู่ในเมืองไทยและ Node จะเริ่มกระจายไปบอก Node อื่นๆทั่วโลก

แต่ในขณะเดียวกันในอีกฝากโลกที่อเมริกามีคนกำลังเข้าร้านอาหารและจ่ายเงินค่าอาหารเป็นจำนวน 0.0001 BTC สิ่งที่เกิดขึ้นคือจะมีธุรกรรมที่นาย B นั้นจ่ายให้ร้านอาหารวิ่งไปที่ Node ที่ใกล้ที่สุดที่อยู่ในอเมริกาและ Node จะเริ่มกระจายไปบอก Node อื่นๆทั่วโลก

 

ซึ่งในช่วงที่ Node กำลังกระจายข้อมูลอยู่เราจะเห็นได้ว่าตอนนี้ข้อมูลของ Node ทั้งโลกมีความแตกต่างกันใช่ไหมครับและแน่นอนคนที่จะยืนยันได้ว่าข้อมูลชุดไหนจะถูกหรือผิดนั้นก็คือนักขุดนั้นเองโดยข้อมูลที่จะถูกเลือกคือข้อมูลที่นักขุดเป็นคนประกาศ

 

ทีนี้เราก็ต้องมาวัดดวงกันว่าข้อมูลที่นาย A จ่ายให้ร้านกาแฟหรือข้อมูลที่นาย B จ่ายให้ร้านอาหารจะวิ่งไปถึง Node ของนักขุดที่จะเป็นผู้ที่ได้รับชัยชนะในเกมการขุดก่อนก็จะได้ยืนยันธุรกรรมก่อน แน่นอนมันก็มีโอกาสที่จะมีนักขุดที่ขุด Block ได้ในเวลาไล่เลี่ยกันครับ

 

ผมจะขอสมมติว่าตอนนี้ Blockchain ของ Bitcoin นั้นอยู่ที่ Block ที่ 100 แล้วเผอิญในเวลาที่ไล่เลี่ยกันมีนักขุดที่อยู่ที่ประเทศไทยขุดเจอ Block ที่ 101 และในนั้นมีธุรกรรมที่จ่ายให้ร้านกาแฟ ส่วนที่อเมริกาก็มีนักขุดเจอ Block ที่ 101 เช่นกันและในนั้นมีธุรกรรมที่จ่ายให้ร้านอาหาร (จริงๆแล้วก็มีโอกาสที่ Block ที่ 101 ของทั้งคู่จะมีข้อมูลทั้งร้านกาแฟและร้านอาหารเช่นกันแต่ในตัวอย่างเราจะขอยกว่ามีแค่อย่างละส่วน)

คำถามคือ Block ที่ 101 ของคนที่อยู่ไทยหรืออเมริกาเป็นของจริงกันแน่ ตอนนี้ของใครจะเป็นของจริงมันไม่ได้ขึ้นกับ Block ที่ 101 ครับมันขึ้นกับ Block ที่ 102 ต่างหาก ทันทีที่นักขุดทั้งไทยและอเมริกาเจอ Block ที่ 101 ต่างฝ่ายก็จะเป็นคน Broadcast หรือกระจาย Block นี้ไปทั่วทั้งเนตเวิร์คว่าตัวเองเป็นคนเจอ Block ที่นี้ก็ขึ้นอยู่กับว่า Block ที่ 101 ของใครไปถึง Node ตัวอื่นๆก่อนอัน เช่นถ้า Node ที่ จีน นั้นได้รับ Block ที่ 101 ที่มาจากไทยก่อน Block ที่ 101 ที่มาจากอเมริกาก็จะถูก Reject ไปแต่อย่างไรก็ตาม Block ที่ 101 ของอเมริกาก็จะวิ่งที่ Node ที่อยู่เยอรมันได้ก่อน Block ที่ 101 ไทยเช่นกันและ Node นั้นก็จะไม่รับข้อมูลจากอเมริกา

แล้วตอนนี้คุณผู้อ่านเห็นไหมครับว่าเรามี Blockchain ที่มีความยาว 101 Block อยู่สองชุดแล้วครับ แถมมีข้อมูลไม่เหมือนกันซะด้วย แล้วทีนี้เราจะเชื่อข้อมูลชุดไหนดีหละ คำตอบคือเราจะเชื่อข้อมูลชุดที่ขุด Block ที่ 102 ได้ครับ ทีนี้ก็ขึ้นอยู่กับว่า Node ที่มีข้อมูลแตกต่างกันเหล่้านี้จะขุดเจอ Block ที่ 102 ก่อนกัน

ขอยกตัวอย่างเพิ่มเติมว่าตอนนี้  Node ที่จีนที่มี Block 101 ที่มีธุรกรรมค่ากาแฟจากไทยอยู่สามารถขุดเจอ Block ที่ 102 ได้สำเร็จและเริ่มส่งข้อมูลไปบอก Node อื่นๆที่อยู่ในระบบ

ทีนี้ในระบบ Blockchain มีกฎอยู่ว่าระบบจะเชื่อ Chain ที่ยาวที่สุดเท่านั้นและเมื่อ Node ที่จีนเริ่มส่ง Block ที่ 102 ไปนั้นข้อมูลจะทำให้ Node ที่มี Block ที่ 101 จากอเมริกาถูกเขียนทับกลายเป็น Block 101 ที่มาจากไทยนั้นเอง

แล้ว Block 101 ที่มาจากอเมริกาจะหายไปไหนซึ่งจริงๆแล้วมันไม่ได้หายไปไหนหรอกในทางเทคนิคเราจะเรียก Block นี้ว่า Orphan Block หรือ Block ที่จะไม่ถูกเชื่อถือในระบบและจะไม่ถูกนำมาใช้นั่นเอง

 

และนี่เป็นเหตุผลว่าทำไมการโอน Bitcoin จะต้องมีการรอ Confirmation ตั้งแต่ 3-6 ครับเพราะเราจะเห็นว่าการ Confirmation แค่ 1 Block นั้นมันมีโอกาสที่ Block จะถูกเขียนทับได้ทำให้เราจึงต้องรอหลาย Block ซะก่อนจึงจะแน่ในได้ว่าธุรกรรมนั้นเกิดขึ้นจริงๆแล้วเดียวในตอนหน้าเราจะอธิบายถึงเหตุการณ์ 51% Attack กันครับ

 

Note:อาจจะมีคนที่ถามว่า อย่างนี้ค่าอาหารก็จ่ายไม่สำเร็จหรือเปล่าซึ่งถ้าเกิดเหตุการณ์นี้จริงๆ ค่าอาหารก็ยังจ่ายสำเร็จครับเพียงแต่อาจจะถูกเรียงลำดับที่ช้าหน่อยอาจจะไปอยู่ที่ Block 103 ก็เท่านั้นเองแต่ก็มีกรณีที่ Transaction fail เช่นกัน แต่แน่นอนมันไม่ได้มีบ่อยหรอกครับ

Leave a Reply

Advertisment ad adsense adlogger