หากเราต้องการโอนเงินไปให้เพื่อน โดยใช้ Bitcoin (BTC) หลายๆ คนคงเคยได้ยินว่าต้องรอยืนยัน 3 Block เพื่อยืนยันว่าโอนเงินสำเร็จ และการโอนเงินเข้า Centralize Exchange ต้องรอยืนยันมากถึง 6 Block ซึ่งบางครั้งใช้เวลาหลายชั่วโมง แล้วทำไมเราต้องรอนานขนาดนั้นด้วยล่ะ?

ขอบคุณภาพจาก Binance
เพื่อให้เข้าใจง่ายขึ้น เราย้อนไปการทำงานของบล็อกเชนคร่าวๆ ก่อน

- หลังจากที่เราโอนเงินให้กัน จะเกิดกลุ่มข้อมูลที่ยังไม่ได้ตรวจสอบขึ้นมา
- ข้อมูลที่ยังไม่ได้ตรวจสอบถูกดึงไปยืนยันด้วย Validator Node
- ยืนยันเสร็จก็ไปบันทึกลงเป็น Block
ลองมองภาพที่มันใหญ่ขึ้น ธุรกรรมที่เราทำกันทั่วโลกต่อวินาที มันมีเยอะมากๆ เลยนะ มันเป็นไปได้ว่าจะเกิดธุรกรรมในช่วงเวลาเดียวกันจากที่ไหนสักที่ในโลก แล้วมันจะเกิดอะไรขึ้นล่ะ ?

เช่น มีธุรกรรมเกิดขึ้นในฝั่งไทย (ทางขวา) และในฝั่งเอมริกา (ทางซ้าย) พร้อมกัน สิ่งที่จะเกิดขึ้นคือ
- Validator Node ทั้งสองฝั่งเอาธุรกรรมใกล้ตัวเองที่ยังไม่ได้ยืนยันมายืนยัน แล้วสร้างเป็น Block ที่ 101
- 101 ไทย VS 101 อเมริกา

- เมื่อ Validator Node ยืนยันเสร็จแล้วก็จะกระจายข้อมูลของตัวเองให้ Validator Node อื่นๆ ในโลกรู้ (เราเรียกการกระจายนี้ว่า Broadcasting)
- พอทั่งคู่กระจายมาถึงอังกฤษ (ตรงกลาง) Validator Node ที่อังกฤษงงว่า “จะต้องให้อันไหนเป็น Block ที่ 101”
- คำตอบของคือกฎของบล็อกเชนนั่นเอง คือ “บล็อกเชนจะเชื่อบล็อกสายที่ยาวกว่าเสมอ” นั่นก็คือ Validator Node ไหนที่ขุด Block ที่ 102 และกระจายมาถึงอังกฤษได้ก่อน ข้อมูลสายนั้นจะถูกยืนยันนั่นเอง

- งั้นสมมุติว่าฝั่งอเมริกาขุด Block ที่ 102 ได้ก่อน ข้อมูลของฝั่งอเมริกาก็จะถูกเขียนลงไปก่อน เป็นการเขียนทับข้อมูลที่ฝั่งไทยเห็น ซึ่งการเขียนทับอาจเกิดขึ้นได้อีกเรื่อยๆ หากยังมีธุรกรรมที่เกิดขึ้นพร้อมกันอีก
- ดังนั้น Block ที่ 101 ถูกเป็นของฝั่งอเมริกา งั้นแปลว่า Block ที่ 101 ของฝั่งไทยที่ถูกเขียนทับจะหายไปไหม ?
- คำตอบคือ ไม่ได้หายไปไหนแต่แค่อาจจะถูกยืนยันช้าลง กลายเป็น Block ถัดไปแทน แต่ก็มีบางครั้งที่ยืนยันไม่สำเร็จแต่เกิดขึ้นไม่บ่อย
จะเห็นได้ว่ามันอาจจะมีความผิดพลาดเกิดขึ้นได้ ผู้คนส่วนมากเลยรอ 3 – 6 Block เพื่อยืนยันว่าธุรกรรมที่เราทำไปแล้วนั้นเกิดขึ้นจริงๆ ซึ่งยิ่งรอนานเท่าไหร่ก็หมายความว่ายิ่งปลอดภัยมากขึ้นเท่านั้น ลดโอกาสการเกิด Double Spend และ 51% Attack ได้