
Block Confirmation คืออะไร ทำไมโอนบิตคอยน์ต้องรอนาน
Block Confirmation คืออะไร ทำไมโอนบิตคอยน์เข้ากระดานเทรดไทยแล้วเงินไม่เข้าทันที ทำไมต้องรอ 3-6 Confirmation เจาะกลไกบล็อกเชนแยกสายที่มาของกฎนี้
บทความนี้ต่อยอดจาก การขุด Bitcoin คืออะไร และ Proof of Work คืออะไร ถ้ายังไม่คุ้นกับกระบวนการขุดและการแข่งไขโจทย์ของนักขุด แนะนำให้อ่านสองบทความนั้นก่อน บทความนี้จะเจาะเฉพาะคำถามที่มาทีหลังคือ ทำไมโอนบิตคอยน์แล้วเงินไม่เข้าทันที และตัวเลข Confirmation ที่เห็นบนแอปกระเป๋าเงินหรือกระดานเทรดหมายถึงอะไรกันแน่
หลายคนที่เพิ่งเริ่มโอนบิตคอยน์ครั้งแรกมักเจอสถานการณ์เดียวกันคือ กดโอนเงินจากกระเป๋าตัวเองไปยังกระดานเทรด แล้วเห็นสถานะขึ้นว่า "รอการยืนยัน" หรือ "Confirming" อยู่นานหลายสิบนาที ทั้งที่เพื่อนที่โอนเงินผ่านแอปธนาคารเข้าบัญชีกันแทบจะทันที ความรู้สึกกังวลว่าเงินหายหรือระบบมีปัญหาจึงเกิดขึ้นได้ง่าย ทั้งที่จริงแล้วสิ่งที่กำลังเกิดขึ้นคือกลไกความปลอดภัยที่ตั้งใจออกแบบให้ทำงานแบบนี้
ธุรกรรมกับการยืนยันธุรกรรมเป็นคนละขั้นตอนกัน
จุดที่ทำให้หลายคนสับสนคือคิดว่าการกดปุ่ม "ส่ง" ในแอปกระเป๋าเงินคือจุดที่เงินเคลื่อนที่ไปแล้ว แต่ในความเป็นจริงนั่นเป็นแค่ขั้นตอนการสร้างธุรกรรม เทียบได้กับการเขียนเช็คสั่งจ่ายแล้วเซ็นชื่อกำกับไว้ เงินยังไม่ได้ย้ายออกจากบัญชีจนกว่าจะมีคนนำเช็คนั้นไปยื่นและธนาคารบันทึกรายการเข้าระบบจริง บล็อกเชนก็ใช้หลักการเดียวกันนี้ในการแยกขั้นตอน "สร้างธุรกรรม" ออกจากขั้นตอน "ยืนยันธุรกรรม" อย่างชัดเจน
เมื่อกดส่งบิตคอยน์ ธุรกรรมนั้นจะไปรออยู่ในที่ที่เรียกว่า Mempool ก่อน เหมือนกองเอกสารรอตรวจที่ยังไม่มีใครมาเซ็นรับรอง จากนั้นนักขุดจะเลือกธุรกรรมจาก Mempool มารวมกันเป็นบล็อกใหม่ โดยมักเลือกธุรกรรมที่จ่ายค่าธรรมเนียมสูงกว่าไปก่อน แล้วแข่งกันไขโจทย์ทางคณิตศาสตร์เพื่อให้ได้สิทธิ์ปิดบล็อกนั้น เมื่อนักขุดคนใดไขโจทย์สำเร็จก่อน บล็อกนั้นจะถูกต่อเข้าไปในสายโซ่บล็อกเชน และธุรกรรมทุกรายการในบล็อกนั้นก็จะได้รับสถานะ "ยืนยันแล้ว" เป็นครั้งแรก นี่คือที่มาของคำว่า Confirmation

ภาพ: สี่ขั้นตอนตั้งแต่กดส่งบิตคอยน์จนกว่าธุรกรรมจะได้รับการยืนยันครั้งแรก แสดงให้เห็นว่าทำไมการโอนถึงไม่เกิดขึ้นทันทีเหมือนโอนผ่านแอปธนาคาร
ทำไมได้ Confirmation แรกแล้วยังไม่พอ ต้องรอถึง 3-6 ครั้ง
จุดที่หลายคนสงสัยต่อคือ ในเมื่อบล็อกใหม่ถูกปิดแล้ว ทำไมกระดานเทรดหรือกระเป๋าเงินยังไม่ยอมให้ใช้เงินทันที คำตอบอยู่ที่ความเสี่ยงเล็กๆ ที่เรียกว่า Blockchain Reorganization หรือการที่บล็อกเชนแตกออกเป็นสองสายชั่วคราว
สถานการณ์นี้เกิดขึ้นได้เวลานักขุดสองคนไขโจทย์ของบล็อกเดียวกันสำเร็จในเวลาไล่เลี่ยกันมาก แล้วต่างคนต่างกระจายบล็อกของตัวเองออกไปในเครือข่ายพร้อมกัน ทำให้ชั่วขณะหนึ่งมีบล็อกเชนสองสายที่มีบล็อกล่าสุดไม่ตรงกัน เครือข่ายจะรอดูว่าบล็อกถัดไปจะถูกขุดต่อจากสายไหนก่อน แล้วยึดสายที่ยาวกว่าเป็นความจริงหนึ่งเดียว ส่วนบล็อกของอีกสายที่แพ้จะถูกทิ้งไป พร้อมกับธุรกรรมทั้งหมดในบล็อกนั้นที่ต้องกลับไปรอคิวใน Mempool ใหม่
"โหนดทุกตัวจะยึดถือสายโซ่ที่ยาวที่สุดว่าเป็นสายที่ถูกต้องเสมอ และจะทำงานต่อขยายสายนั้นต่อไป"
ซาโตชิ นากาโมโตะ ใน Bitcoin Whitepaper หัวข้อ Network (31 ตุลาคม 2008) อธิบายกลไก Longest Chain ที่เป็นรากฐานของการที่เครือข่ายตัดสินว่าสายไหนคือความจริงเวลาเกิดบล็อกเชนแยกสายชั่วคราว ต้นฉบับ "Nodes always consider the longest chain to be the correct one and will keep working on extending it."
ด้วยเหตุนี้ Confirmation แค่ครั้งเดียวจึงยังไม่น่าไว้ใจพอ เพราะบล็อกนั้นอาจเป็นบล็อกที่แพ้ในการแย่งชิงและถูกทิ้งไปในไม่ช้า ยิ่งมีบล็อกใหม่ต่อทับขึ้นไปบนบล็อกนั้นมากเท่าไหร่ โอกาสที่บล็อกนั้นจะถูกเขียนทับหรือยกเลิกก็ยิ่งลดลงเท่านั้น เพราะผู้ที่จะพยายามเขียนประวัติศาสตร์ใหม่ต้องไขโจทย์แข่งกับบล็อกที่ต่อกันไปแล้วหลายบล็อก ซึ่งต้องใช้กำลังขุดมหาศาลเกินกว่าจะทำได้จริงในทางปฏิบัติ มาตรฐานที่ใช้กันทั่วไปในวงการคือรอ 3-6 Confirmation ก่อนจะถือว่าธุรกรรมนั้นย้อนกลับไม่ได้แล้วอย่างปลอดภัย ซึ่งเมื่อบิตคอยน์ปิดบล็อกใหม่เฉลี่ยทุก 10 นาที การรอ 6 Confirmation จึงมักใช้เวลาราวหนึ่งชั่วโมง

ภาพ: จำลองสถานการณ์บล็อกเชนแตกเป็นสองสายชั่วคราวเมื่อนักขุดสองคนไขโจทย์บล็อกเดียวกันพร้อมกัน และวิธีที่เครือข่ายตัดสินว่าสายไหนคือความจริง อธิบายว่าทำไม Confirmation เดียวจึงยังไม่น่าไว้ใจพอ
บล็อกเชนแยกสายจริงเคยเกิดขึ้นไหม ไม่ใช่แค่ทฤษฎี
ตัวอย่างนักขุด A และ B ที่ยกมาข้างต้นอาจฟังดูเหมือนสถานการณ์สมมติที่แทบไม่เคยเกิดขึ้นจริง แต่ในประวัติศาสตร์ของ Bitcoin มีเหตุการณ์บล็อกเชนแยกสายที่เกิดขึ้นจริงและถูกบันทึกไว้ชัดเจน แม้จะไม่ได้มาจากการโจมตี แต่มาจากบั๊กของซอฟต์แวร์เอง
เหตุการณ์ที่มีชื่อเสียงที่สุดเกิดขึ้นเมื่อวันที่ 11 ถึง 12 มีนาคม 2013 ตอนนั้นนักขุดบางส่วนอัปเดตซอฟต์แวร์ Bitcoin เป็นเวอร์ชัน 0.8.0 ซึ่งเปลี่ยนฐานข้อมูลภายในจาก BerkeleyDB มาเป็น LevelDB ความแตกต่างของฐานข้อมูลทั้งสองทำให้เวอร์ชัน 0.8.0 ยอมรับบล็อกที่มี Input รวมจำนวนมากกว่าที่ BerkeleyDB ในเวอร์ชันเก่ารองรับได้ พอมีบล็อกหมายเลข 225,430 ถูกขุดออกมาเกินขีดจำกัดของเวอร์ชันเก่า โหนดที่ยังใช้เวอร์ชัน 0.7.0 ลงมาจึงปฏิเสธไม่ยอมรับบล็อกนั้น ทำให้เครือข่ายแตกออกเป็นสองสายคู่ขนานจริงอยู่นานถึงประมาณ 24 บล็อกหรือราว 6 ชั่วโมงเต็ม แต่ละสายมีประวัติธุรกรรมของตัวเองที่ไม่ตรงกัน
สิ่งที่น่าสนใจคือวิธีที่เครือข่ายแก้ปัญหานี้ไม่ได้เกิดจากกลไกอัตโนมัติเพียงอย่างเดียว แต่นักขุดรายใหญ่ในตอนนั้นอย่าง BTC Guild และ Slush Pool ตัดสินใจร่วมมือกันดาวน์เกรดซอฟต์แวร์ของตัวเองกลับไปเป็นเวอร์ชัน 0.7.0 เพื่อให้กำลังขุดส่วนใหญ่ไปอยู่บนสายที่เก่ากว่าและปลอดภัยกว่า เมื่อกำลังขุดส่วนใหญ่ยึดสายเก่า สายที่ใช้เวอร์ชัน 0.8.0 ก็ต้องยอมรับความจริงและ Reorg กลับมาที่สายเก่าตามกติกาสายที่ยาวกว่าคือความจริง ธุรกรรมที่เกิดขึ้นเฉพาะบนสาย 0.8.0 ในช่วง 6 ชั่วโมงนั้นก็หายไปเหมือนไม่เคยเกิดขึ้น ผู้ใช้บางรายที่รับธุรกรรมโดยอิงจากสายที่แพ้ในตอนนั้นจึงได้รับผลกระทบโดยตรง

ภาพ: หน้าเอกสาร BIP-50 บน GitHub ที่บันทึกบทวิเคราะห์เหตุการณ์บล็อกเชน Bitcoin แยกสายเมื่อมีนาคม 2013 หลังซอฟต์แวร์สองเวอร์ชันยอมรับบล็อกไม่เหมือนกัน
เหตุการณ์นี้ทำให้วงการเห็นสองอย่างชัดเจน อย่างแรกคือ Reorg ไม่ใช่แค่สถานการณ์ในตำราที่ไม่มีทางเกิดขึ้นจริง แต่เกิดขึ้นแล้วในระดับที่ยาวถึง 24 บล็อกซึ่งมากกว่ามาตรฐาน 6 Confirmation ที่ใช้กันทั่วไปเสียอีก อย่างที่สองคือ Bitcoin ไม่ได้ปลอดภัยเพราะโค้ดเพียงอย่างเดียว แต่ต้องอาศัยการประสานงานของคนที่ถือกำลังขุดจริงร่วมด้วยในสถานการณ์ฉุกเฉิน ซึ่งเป็นจุดที่มักถูกมองข้ามเวลาพูดถึงความปลอดภัยของเครือข่ายแบบกระจายศูนย์
ทำไมกระดานเทรดไทยถึงบังคับรอ Confirmation ก่อนเข้าเงิน
จุดเชื่อมที่เห็นภาพชัดที่สุดคือหน้าจอฝากเงินของกระดานเทรดคริปโตในไทยเอง เมื่อโอนบิตคอยน์เข้ากระดานเทรด ระบบจะไม่บวกยอดเงินให้ทันทีที่เห็นธุรกรรมเข้ามาใน Mempool แต่จะรอให้ธุรกรรมนั้นได้ Confirmation ครบตามจำนวนที่กระดานเทรดกำหนดไว้ก่อน ถึงจะปล่อยยอดเงินเข้าบัญชีให้ใช้งานได้จริง อย่างที่ศูนย์ช่วยเหลือของ Bitkub ระบุไว้ว่าแต่ละเหรียญและแต่ละเครือข่ายใช้เวลายืนยันบล็อกไม่เท่ากัน และแนะนำให้ผู้ใช้ตรวจสอบสถานะธุรกรรมด้วยหมายเลข Transaction ID ผ่าน Block Explorer ระหว่างรอ
เหตุผลที่กระดานเทรดต้องเข้มงวดเรื่องนี้เป็นพิเศษ เพราะกระดานเทรดรับความเสี่ยงแทนผู้ใช้ทุกคน หากปล่อยให้ถอนเงินออกไปได้ทันทีที่เห็นธุรกรรมเข้ามาโดยยังไม่รอ Confirmation แล้วธุรกรรมนั้นดันถูกเขียนทับจากเหตุการณ์บล็อกเชนแยกสายในภายหลัง กระดานเทรดจะเป็นฝ่ายต้องรับภาระเงินที่หายไปเอง จึงเป็นธรรมดาที่แพลตฟอร์มทางการเงินทุกแห่งจะเลือกฝั่งความปลอดภัยมากกว่าความเร็ว

ภาพ: ตัวอย่างหน้าจอจริงจากเว็บ Block Explorer สาธารณะที่แสดงจำนวน Confirmation ของธุรกรรมหนึ่งรายการ ซึ่งเป็นวิธีเดียวกับที่ผู้ใช้ทั่วไปใช้ตรวจสอบสถานะธุรกรรมของตัวเองระหว่างรอเงินเข้ากระดานเทรด
ค่าธรรมเนียมที่จ่ายมีผลต่อความเร็วในการได้ Confirmation แรก
อีกปัจจัยที่หลายคนมองข้ามคือค่าธรรมเนียมธุรกรรมมีผลโดยตรงต่อว่าธุรกรรมจะได้ Confirmation แรกเร็วแค่ไหน เพราะนักขุดมีสิทธิ์เลือกว่าจะหยิบธุรกรรมไหนจาก Mempool มาใส่ในบล็อกก่อน และธรรมชาติของนักขุดที่ต้องการรายได้สูงสุดจากค่าธรรมเนียมย่อมเลือกหยิบธุรกรรมที่จ่ายแพงกว่าไปก่อนเสมอ ธุรกรรมที่จ่ายค่าธรรมเนียมต่ำในช่วงที่เครือข่ายมีธุรกรรมค้างอยู่ใน Mempool จำนวนมากอาจต้องรอข้ามหลายบล็อกกว่าจะถูกหยิบขึ้นมาใส่ในบล็อกสักครั้ง
สถานการณ์นี้ชัดเจนที่สุดในช่วงที่ตลาดคริปโตคึกคักและมีคนโอนเงินพร้อมกันจำนวนมาก ทำให้ Mempool แน่นขึ้นและค่าธรรมเนียมเฉลี่ยที่ต้องจ่ายเพื่อให้ธุรกรรมถูกหยิบเร็วก็สูงขึ้นตามไปด้วย ผู้ใช้ที่รีบใช้เงินจึงมักเลือกจ่ายค่าธรรมเนียมสูงกว่าค่าเฉลี่ยเพื่อแลกกับความเร็ว ขณะที่คนที่ไม่รีบก็สามารถตั้งค่าธรรมเนียมต่ำแล้วรอได้โดยไม่เสียหาย เพราะสุดท้ายธุรกรรมก็จะถูกหยิบไปใส่บล็อกในที่สุด เพียงแต่อาจใช้เวลานานกว่า
เหตุการณ์ที่เห็นภาพชัดคือช่วงกลางปี 2023 ตอนที่กระแส Bitcoin Ordinals และเหรียญมาตรฐาน BRC-20 บนเชน Bitcoin ได้รับความนิยมพุ่งขึ้นอย่างรวดเร็ว คนจำนวนมากแห่กันส่งธุรกรรมเพื่อสร้างและซื้อขาย Ordinals จนพื้นที่ในแต่ละบล็อกไม่พอรองรับ ทำให้ Mempool บวมขึ้นมากและค่าธรรมเนียมเฉลี่ยต่อธุรกรรมพุ่งสูงกว่าปกติหลายเท่าในช่วงพีค ธุรกรรมโอนเงินธรรมดาที่จ่ายค่าธรรมเนียมต่ำในช่วงนั้นต้องรอนานผิดปกติกว่าจะได้ Confirmation แรก สะท้อนให้เห็นว่าค่าธรรมเนียมไม่ได้เป็นแค่ตัวเลขคงที่ แต่ขยับขึ้นลงตามความหนาแน่นของ Mempool ในแต่ละช่วงเวลาจริง
ธุรกรรม 0 Confirmation เสี่ยงแค่ไหน ทำไมบางร้านถึงยอมรับเลย
ระหว่างที่ธุรกรรมยังรออยู่ใน Mempool และยังไม่ได้ Confirmation แม้แต่ครั้งเดียว สถานะนี้เรียกว่า 0-conf หรือ Zero Confirmation หลายคนอาจสงสัยว่าในเมื่อยังไม่ได้รับการยืนยันจากเครือข่ายเลย ทำไมร้านกาแฟหรือร้านอาหารบางร้านที่รับบิตคอยน์ถึงยอมส่งของให้ทันทีโดยไม่รอ Confirmation สักครั้ง

ภาพ: Race Attack คือการส่งธุรกรรมสองรายการด้วยเหรียญชุดเดียวกัน รายการหนึ่งให้ร้านค้า อีกรายการกลับเข้ากระเป๋าตัวเอง หากนักขุดหยิบรายการหลังก่อน ธุรกรรมที่ร้านค้าเห็นจะเป็นโมฆะ
คำตอบอยู่ที่การชั่งน้ำหนักระหว่างความเสี่ยงกับมูลค่าของธุรกรรม ความเสี่ยงหลักของธุรกรรม 0-conf คือสิ่งที่เรียกว่า Race Attack ซึ่งเกิดขึ้นเมื่อผู้ไม่หวังดีส่งธุรกรรมสองรายการพร้อมกันโดยใช้เหรียญชุดเดียวกัน รายการหนึ่งส่งให้ร้านค้าเพื่อรับสินค้า อีกรายการส่งกลับเข้ากระเป๋าตัวเอง แล้วหวังว่ารายการที่สองจะถูกนักขุดหยิบไปใส่บล็อกก่อน ทำให้รายการแรกที่ร้านค้าเห็นกลายเป็นโมฆะ สำหรับธุรกรรมมูลค่าต่ำอย่างกาแฟแก้วหนึ่ง ต้นทุนและความยุ่งยากในการวางแผนโจมตีแบบนี้มักไม่คุ้มกับผลตอบแทนที่ได้ ร้านค้าจึงยอมรับความเสี่ยงเล็กน้อยนี้แลกกับความเร็วในการให้บริการลูกค้า แต่สำหรับธุรกรรมมูลค่าสูงอย่างการโอนเข้ากระดานเทรดหรือซื้อสินค้าราคาแพง ความเสี่ยงนี้ไม่คุ้มที่จะรับ จึงต้องรอ Confirmation ตามเกณฑ์เสมอ
อีกปัจจัยที่ทำให้ 0-conf เสี่ยงขึ้นไปอีกคือฟีเจอร์ที่เรียกว่า RBF หรือ Replace-By-Fee ซึ่งเป็นกลไกที่กระเป๋าเงินสมัยใหม่เปิดให้ผู้ส่งสามารถส่งธุรกรรมใหม่มาแทนที่ธุรกรรมเดิมที่ยังไม่ได้ Confirmation ได้ โดยปกติฟีเจอร์นี้ออกแบบมาเพื่อให้ผู้ใช้ปรับค่าธรรมเนียมขึ้นได้เองถ้าธุรกรรมค้างนานเกินไป แต่ก็เปิดช่องให้ผู้ไม่หวังดีใช้แทนที่ธุรกรรมเดิมด้วยธุรกรรมใหม่ที่ส่งเงินกลับเข้ากระเป๋าตัวเองแทนได้ง่ายกว่าการทำ Race Attack แบบเดิม ด้วยเหตุนี้ Block Explorer และกระเป๋าเงินหลายเจ้าจึงแสดงป้ายเตือนชัดเจนเวลาธุรกรรมนั้นเปิดใช้ RBF อยู่ เพื่อให้ผู้รับรู้ว่าควรรอ Confirmation อย่างน้อยหนึ่งครั้งก่อนเชื่อได้เต็มที่ ไม่ควรเชื่อสถานะ 0-conf เพียงอย่างเดียวถ้าธุรกรรมนั้นเปิด RBF ไว้
กระเป๋าเงินแบบ SPV เช็ค Confirmation ต่างจากโหนดเต็มรูปแบบยังไง
อีกรายละเอียดที่คนทั่วไปมักไม่รู้คือ กระเป๋าเงินบิตคอยน์ที่ใช้กันบนมือถือส่วนใหญ่ไม่ได้ดาวน์โหลดบล็อกเชนทั้งหมดมาเก็บไว้ในเครื่อง เพราะข้อมูลทั้งหมดของบล็อกเชน Bitcoin มีขนาดหลายร้อยกิกะไบต์แล้วในปัจจุบัน กระเป๋าเงินมือถือส่วนใหญ่จึงใช้วิธีที่เรียกว่า SPV หรือ Simplified Payment Verification แทน
หลักการของ SPV คือกระเป๋าเงินจะดาวน์โหลดมาแค่ส่วนหัวของบล็อก หรือ Block Header ซึ่งมีขนาดเล็กมากเมื่อเทียบกับข้อมูลธุรกรรมทั้งหมดในบล็อก แล้วใช้โครงสร้างข้อมูลที่เรียกว่า Merkle Tree มาพิสูจน์ว่าธุรกรรมของตัวเองถูกรวมอยู่ในบล็อกนั้นจริงโดยไม่ต้องโหลดธุรกรรมอื่นทั้งหมดในบล็อกมาตรวจสอบเอง วิธีนี้ทำให้กระเป๋าเงินมือถือใช้พื้นที่เก็บข้อมูลน้อยกว่าการรันโหนดเต็มรูปแบบมาก และยังคำนวณจำนวน Confirmation ได้จากส่วนหัวของบล็อกที่ต่อทับขึ้นไปเช่นเดียวกัน
ข้อแลกเปลี่ยนของวิธีนี้คือกระเป๋าเงินแบบ SPV ต้องเชื่อใจโหนดอื่นในเครือข่ายว่าส่งข้อมูลส่วนหัวของบล็อกที่ถูกต้องมาให้ ต่างจากการรันโหนดเต็มรูปแบบที่ตรวจสอบทุกกฎของเครือข่ายด้วยตัวเองทั้งหมดโดยไม่ต้องเชื่อใครเลย นี่คือเหตุผลที่คนที่จริงจังกับความปลอดภัยระดับสูงสุด เช่น กระดานเทรดขนาดใหญ่หรือธุรกิจที่รับบิตคอยน์จำนวนมาก มักเลือกรันโหนดเต็มรูปแบบของตัวเองแทนที่จะพึ่งพากระเป๋าเงินแบบ SPV เพียงอย่างเดียว เพราะการตรวจสอบ Confirmation ด้วยโหนดของตัวเองมั่นใจได้มากกว่าการเชื่อข้อมูลจากคนอื่น แม้จะต้องแลกกับต้นทุนด้านพื้นที่จัดเก็บข้อมูลและการดูแลระบบที่สูงกว่าก็ตาม

ภาพ: ขนาดบล็อกเชน Bitcoin ทั้งหมดโตจากราว 14 GB ต้นปี 2014 เป็นราว 772 GB ในเดือนตุลาคม 2026 จึงเป็นเหตุผลที่กระเป๋ามือถือส่วนใหญ่ใช้ SPV แทนการโหลดทั้งสายโซ่
ประเมินเวลารอ Confirmation ครบล่วงหน้าได้ยังไง
เมื่อรู้แล้วว่าบิตคอยน์ปิดบล็อกใหม่เฉลี่ยทุก 10 นาที การประเมินเวลารอ Confirmation ครบจึงทำได้ไม่ยาก แต่ต้องเข้าใจว่าตัวเลข 10 นาทีนี้คือค่าเฉลี่ย ไม่ใช่ตัวเลขตายตัวที่เกิดขึ้นตรงเวลาทุกครั้ง เพราะเวลาที่นักขุดจะไขโจทย์คณิตศาสตร์สำเร็จเป็นเรื่องของความน่าจะเป็น บางบล็อกอาจถูกขุดได้ในเวลาไม่ถึงนาที ขณะที่บางบล็อกอาจใช้เวลานานถึงครึ่งชั่วโมงหรือมากกว่านั้นก็เป็นไปได้ เพียงแต่เมื่อนับเฉลี่ยระยะยาวแล้วจะออกมาใกล้เคียง 10 นาทีต่อบล็อกเสมอ เพราะระบบมีกลไกที่เรียกว่า Difficulty Adjustment ปรับความยากของโจทย์ทุก 2,016 บล็อกโดยอัตโนมัติเพื่อรักษาค่าเฉลี่ยนี้ไว้ไม่ว่ากำลังขุดรวมของเครือข่ายจะเพิ่มขึ้นหรือลดลงแค่ไหนก็ตาม
ด้วยเหตุนี้ การรอ 6 Confirmation ในทางทฤษฎีควรใช้เวลาประมาณหนึ่งชั่วโมง แต่ในทางปฏิบัติอาจสั้นกว่าหรือยาวกว่านั้นได้ในแต่ละครั้งขึ้นอยู่กับดวงของแต่ละบล็อก วิธีที่ผู้ใช้ทั่วไปเช็คความคืบหน้าแบบเรียลไทม์ได้ดีที่สุดคือการนำ TxID ไปค้นหาบน Block Explorer สาธารณะ ซึ่งจะแสดงตัวเลข Confirmation ปัจจุบันที่อัปเดตทันทีที่มีบล็อกใหม่ถูกขุดออกมา แทนที่จะพยายามคำนวณเวลาล่วงหน้าเองซึ่งมีโอกาสคลาดเคลื่อนได้พอสมควร โดยเฉพาะในช่วงที่ความยากของโจทย์เพิ่งถูกปรับหรือกำลังขุดรวมของเครือข่ายเพิ่งเปลี่ยนแปลงอย่างรวดเร็ว
Lightning Network เกี่ยวข้องกับ Confirmation ยังไง
อีกเรื่องที่หลายคนเริ่มได้ยินมากขึ้นคือ Lightning Network ซึ่งเป็นระบบที่สร้างขึ้นมาซ้อนอยู่เหนือบล็อกเชนหลักของ Bitcoin เพื่อให้โอนเงินได้เร็วและมีค่าธรรมเนียมถูกกว่ามาก จุดที่น่าสนใจคือ Lightning Network มีความสัมพันธ์กับ Block Confirmation ในแบบที่ตรงข้ามกันโดยสิ้นเชิงในสองจุด
จุดแรกคือตอนเปิดและปิดช่องทางการชำระเงินที่เรียกว่า Payment Channel ขั้นตอนนี้ยังต้องพึ่งพาบล็อกเชนหลักและต้องรอ Confirmation ตามปกติเหมือนธุรกรรมทั่วไป เพราะการเปิดช่องทางคือการล็อกเงินจำนวนหนึ่งไว้ในธุรกรรมพิเศษบนบล็อกเชนหลัก ซึ่งต้องได้รับการยืนยันจากเครือข่ายก่อนถึงจะเริ่มใช้งานช่องทางนั้นได้อย่างปลอดภัย เช่นเดียวกับตอนปิดช่องทางที่ต้องส่งธุรกรรมสุดท้ายกลับไปบันทึกบนบล็อกเชนหลักอีกครั้ง
แต่จุดที่สองคือระหว่างที่ช่องทางเปิดใช้งานอยู่ ธุรกรรมที่เกิดขึ้นภายในช่องทางนั้นไม่ต้องรอ Confirmation จากบล็อกเชนหลักเลยแม้แต่ครั้งเดียว เพราะเป็นการอัปเดตยอดคงเหลือกันเองระหว่างสองฝ่ายที่เปิดช่องทางไว้ด้วยกัน โดยมีกลไกทางการเข้ารหัสรับประกันว่าฝ่ายใดฝ่ายหนึ่งจะโกงยอดเงินไม่ได้ ทำให้การโอนผ่าน Lightning Network เกิดขึ้นแทบจะทันทีในระดับวินาที ต่างจากการโอนผ่านบล็อกเชนหลักที่ต้องรอเป็นนาทีหรือชั่วโมงตามที่อธิบายมาตลอดทั้งบทความ

ภาพ: หน้า Lightning Explorer ของ mempool.space แสดงภาพรวมเครือข่าย Lightning Network ที่ทำงานซ้อนอยู่บนบล็อกเชนหลักของ Bitcoin เพื่อโอนเงินเร็วโดยไม่ต้องรอ Confirmation ทุกครั้ง
ข้อแลกเปลี่ยนของความเร็วนี้คือ Lightning Network เหมาะกับธุรกรรมมูลค่าไม่สูงมากและการใช้งานที่ต้องการความเร็วเป็นหลัก เช่น จ่ายค่ากาแฟหรือทิปเล็กๆ น้อยๆ ส่วนธุรกรรมมูลค่าสูงหรือการโอนเข้ากระดานเทรดที่ต้องการความปลอดภัยระดับสูงสุด ยังคงต้องพึ่งพาบล็อกเชนหลักและรอ Confirmation ตามมาตรฐานเดิมอยู่ดี Lightning Network จึงไม่ได้มาแทนที่ระบบ Confirmation แบบเดิม แต่เป็นทางเลือกเสริมสำหรับกรณีที่เน้นความเร็วมากกว่า
คำถามที่พบบ่อย
Block Confirmation คืออะไร?
คือจำนวนบล็อกที่ถูกขุดต่อทับบนบล็อกที่บรรจุธุรกรรมของเราไว้ นับตั้งแต่บล็อกนั้นถูกปิดครั้งแรก ยิ่งมีบล็อกต่อทับมากเท่าไหร่ ยิ่งมั่นใจได้มากว่าธุรกรรมนั้นจะไม่ถูกเขียนทับหรือยกเลิกอีก
ทำไมต้องรอ 3-6 Confirmation ไม่ใช่แค่ 1?
เพราะบล็อกแรกที่ปิดอาจเป็นบล็อกที่แพ้ในเหตุการณ์บล็อกเชนแยกสายชั่วคราว การรอให้มีบล็อกใหม่ต่อทับขึ้นไปหลายบล็อกช่วยลดความเสี่ยงที่ธุรกรรมจะถูกยกเลิกในภายหลัง เพราะการเขียนประวัติศาสตร์ใหม่ยากขึ้นเรื่อยๆ ตามจำนวนบล็อกที่ต่อทับไปแล้ว
โอนบิตคอยน์เข้ากระดานเทรดไทยแล้วทำไมเงินไม่เข้าทันที?
เพราะกระดานเทรดต้องรอให้ธุรกรรมได้ Confirmation ครบตามจำนวนที่กำหนดไว้ก่อนถึงจะปล่อยยอดเงินให้ใช้งานได้ เป็นมาตรการป้องกันความเสี่ยงจากเหตุการณ์บล็อกเชนแยกสาย ระหว่างรอสามารถตรวจสอบสถานะได้ด้วยหมายเลข Transaction ID ผ่าน Block Explorer
จ่ายค่าธรรมเนียมแพงขึ้นช่วยให้ได้ Confirmation ครบเร็วขึ้นไหม?
ค่าธรรมเนียมมีผลแค่กับความเร็วในการได้ Confirmation แรก เพราะนักขุดเลือกหยิบธุรกรรมที่จ่ายแพงกว่าไปใส่บล็อกก่อน แต่หลังจากได้ Confirmation แรกแล้ว การรอ Confirmation ถัดไปจนครบจะขึ้นอยู่กับความเร็วเฉลี่ยในการปิดบล็อกใหม่ของเครือข่ายเท่านั้น ไม่เกี่ยวกับค่าธรรมเนียมอีกต่อไป
ทุกเหรียญคริปโตต้องรอ Confirmation จำนวนเท่ากันไหม?
ไม่เท่ากัน แต่ละเครือข่ายบล็อกเชนมีความเร็วในการปิดบล็อกและมาตรฐานความปลอดภัยต่างกัน กระดานเทรดแต่ละแห่งจึงกำหนดจำนวน Confirmation ที่ต้องรอแตกต่างกันไปตามเหรียญและเครือข่ายที่ใช้
เช็คสถานะ Confirmation ของธุรกรรมตัวเองได้ที่ไหน?
สามารถนำหมายเลข Transaction ID (TxID) จากแอปกระเป๋าเงินต้นทางไปค้นหาบนเว็บ Block Explorer สาธารณะ ซึ่งจะแสดงจำนวน Confirmation ปัจจุบันของธุรกรรมนั้นแบบเรียลไทม์
📖 เรื่องนี้ผู้เขียนเล่าไว้ละเอียดกว่านี้ในหนังสือ Bitcoin & Blockchain 101 บทที่ว่าด้วยการขุด Bitcoin