51% Attack คืออะไร โจมตี Bitcoin ได้จริงไหม
ความรู้พื้นฐานโดย พีรพัฒน์ หาญคงแก้ว

51% Attack คืออะไร โจมตี Bitcoin ได้จริงไหม

51% Attack คืออะไร ถ้ามีกำลังขุดเกิน 51% จะขโมยเงินคนอื่นได้ไหม ทำไมโจมตี Bitcoin จริงแทบเป็นไปไม่ได้ พร้อมเคสจริงที่เคยเกิดกับเหรียญอื่น

บทความนี้ต่อยอดจาก Proof of Work คืออะไร และ Mining Pool คืออะไร ถ้ายังไม่คุ้นกับกลไกการแข่งไขโจทย์และการรวมกลุ่มขุดของนักขุด แนะนำให้อ่านสองบทความนั้นก่อน บทความนี้จะเจาะคำถามที่หลายคนกังวลคือ ถ้ามีใครสักคนหรือกลุ่มใดกลุ่มหนึ่งมีกำลังขุดมากพอ จะยึดครองหรือแฮกเงินในเครือข่าย Bitcoin ได้จริงไหม

หลายคนที่เริ่มศึกษา Bitcoin มักได้ยินคำเตือนทำนองว่า ถ้าจีนหรือบริษัทใหญ่รวมกำลังขุดกันมากพอ จะสามารถเข้าคุมเครือข่ายและขโมยเงินของทุกคนได้ ฟังดูน่ากลัวและมีคนพูดถึงกันเยอะ แต่คำถามที่ควรถามต่อคือ ต่อให้มีกำลังขุดมากขนาดนั้นจริง สิ่งที่ทำได้กับสิ่งที่ทำไม่ได้คืออะไรกันแน่ เพราะคำตอบมันซับซ้อนกว่าคำว่า "แฮกได้" หรือ "แฮกไม่ได้" มาก

51% Attack คืออะไรกันแน่

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

จุดที่ต้องแยกให้ชัดคือ คำว่า "ควบคุมเครือข่าย" ในที่นี้ไม่ได้แปลว่าเข้าไปแก้ไขข้อมูลในกระเป๋าเงินของใครก็ได้ตามใจชอบ อำนาจที่ได้จากการมีกำลังขุดเกิน 51% จำกัดอยู่แค่การมีสิทธิ์เขียนบล็อกใหม่และเลือกว่าจะรวมธุรกรรมไหนเข้าไปเท่านั้น

สิ่งที่ทำไม่ได้ แม้จะคุมกำลังขุดถึง 51%

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

สมมติมีคนคุมกำลังขุดของเครือข่ายมากกว่า 50% แล้วพยายามปลอมแปลงธุรกรรมของคนอื่นแทรกเข้าไปในบล็อกของตัวเอง สิ่งที่จะเกิดขึ้นคือโหนดอื่นทั่วทั้งเครือข่ายจะตรวจสอบแล้วพบว่าธุรกรรมนั้นไม่มีลายเซ็นที่ถูกต้องจากเจ้าของจริง จึงปฏิเสธไม่ยอมรับบล็อกนั้นเข้าไปในสายของตัวเอง สิ่งเดียวที่คนคุมกำลังขุดมากขนาดนี้พอจะทำได้จริงคือการเลือกเตะ (censor) ไม่ยอมรวมธุรกรรมบางรายการเข้าไปในบล็อกที่ตัวเองขุดได้เท่านั้น ซึ่งเป็นการก่อกวนที่น่ารำคาญแต่ไม่ใช่การขโมยเงิน

สิ่งที่ทำได้จริง คือ Double-Spend ผ่านการไม่ Broadcast บล็อก

สิ่งที่ผู้คุมกำลังขุดเกิน 51% พอจะทำได้จริงและอันตรายกว่าการเตะธุรกรรมคือรูปแบบการโจมตีที่เรียกว่า Withholding Attack ลองจินตนาการสถานการณ์แบบนี้ นาย A มีกำลังขุดมากกว่า 51% ของทั้งเครือข่าย นาย A ขุดเจอบล็อกได้เร็วกว่าคนอื่นเสมอ แต่แทนที่จะ Broadcast บล็อกที่ขุดเจอให้เครือข่ายรู้ทันที นาย A เลือกที่จะเก็บบล็อกนั้นไว้กับตัวเองเงียบๆ แล้วขุดบล็อกถัดไปต่อทันที ทำแบบนี้ไปเรื่อยๆ จนได้บล็อกที่ต่อกันแล้ว 3 บล็อกโดยที่เครือข่ายส่วนอื่นยังไม่รู้เรื่อง

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

ไดอะแกรมจำลองการโจมตีแบบ Withholding Attack เทียบสายที่เครือข่ายเห็นกับสายลับที่ยาวกว่า

ภาพ: จำลองการโจมตีแบบ Withholding Attack ที่ทำให้ธุรกรรมซื้อสินค้าจริงหายไปจากบล็อกเชนที่เครือข่ายยอมรับในที่สุด

ทำไมโจมตี Bitcoin ในความเป็นจริงแทบเป็นไปไม่ได้

ในทางทฤษฎีฟังดูน่ากลัว แต่ในทางปฏิบัติการหากำลังขุดให้ได้เกิน 51% ของเครือข่าย Bitcoin เป็นเรื่องที่ต้นทุนสูงมหาศาลจนแทบเป็นไปไม่ได้ ย้อนกลับไปปี 2565 กำลังขุดรวมของทั้งเครือข่าย Bitcoin อยู่ที่ประมาณ 262.68 EH/s (Exa Hash per Second) ซึ่งตอนนั้นสองรายนำอย่าง Foundry USA และ AntPool ก็ยังมีกำลังขุดใกล้เคียงกันอยู่ที่ราว 23.54% เท่านั้น ตามด้วย BTC.top ที่ 20.75% ไม่มี Pool ไหนแม้แต่รายเดียวที่แตะ 30% ของทั้งเครือข่ายด้วยซ้ำ

มาถึงปัจจุบัน กำลังขุดของเครือข่าย Bitcoin เติบโตขึ้นไปอีกหลายเท่าตัว อยู่ที่ระดับกว่า 800 EH/s แล้ว นั่นแปลว่าใครก็ตามที่คิดจะครองกำลังขุดให้ได้เกิน 51% ต้องลงทุนซื้อและติดตั้งเครื่องขุด ASIC จำนวนมหาศาล พร้อมค่าไฟฟ้ามหาศาลไม่แพ้กัน เพื่อให้ได้กำลังขุดที่มากกว่าเครื่องขุดทั้งหมดที่มีอยู่ทั่วโลกรวมกันในตอนนี้ นี่ยังไม่นับว่าการซื้อเครื่องขุด ASIC จำนวนมากขนาดนั้นในเวลาสั้นๆ ย่อมทำให้ราคาเครื่องพุ่งสูงขึ้นเองจากอุปสงค์ที่ผิดปกติ ทำให้ต้นทุนจริงยิ่งสูงกว่าตัวเลขที่คำนวณไว้ล่วงหน้าอีก

กราฟเทียบกำลังขุดรวมของเครือข่าย Bitcoin ปี 2565 กับปัจจุบัน เพิ่มขึ้นกว่า 3 เท่าตัว

ภาพ: กำลังขุดรวมของเครือข่าย Bitcoin เพิ่มขึ้นกว่า 3 เท่าตัวจากปี 2565 มาถึงปัจจุบัน ยิ่งทำให้การรวบรวมกำลังขุดให้ได้เกิน 51% ต้องใช้ต้นทุนสูงขึ้นตามไปด้วย

"เขาน่าจะพบว่าการเล่นตามกติกามีกำไรมากกว่า เพราะกติกาที่ให้เหรียญใหม่แก่เขามากกว่าคนอื่นทุกคนรวมกัน ดีกว่าการบ่อนทำลายระบบและความน่าเชื่อถือของความมั่งคั่งของตัวเขาเอง"

ซาโตชิ นากาโมโตะ ใน Bitcoin Whitepaper หัวข้อ Incentive อธิบายว่าทำไมผู้ที่มีกำลังขุดมากพอจนโจมตีได้ กลับมีแรงจูงใจทางเศรษฐศาสตร์ให้เล่นตามกติกามากกว่า ต้นฉบับ "He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth."

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

ไม่ต้องถึง 51% ก็เอาเปรียบได้ Selfish Mining คืออะไร

สิ่งที่หลายคนไม่รู้คือ ไม่จำเป็นต้องมีกำลังขุดถึง 51% ก็สามารถเอาเปรียบระบบได้บ้างแล้ว งานวิจัยของนักวิจัยจากมหาวิทยาลัย Cornell ชื่อ Ittay Eyal และ Emin Gun Sirer ที่ตีพิมพ์ในปี 2013 เสนอกลยุทธ์ที่เรียกว่า Selfish Mining ซึ่งเป็นการเก็บบล็อกที่ขุดเจอไว้เงียบๆ ไม่ Broadcast ทันทีเหมือน Withholding Attack ที่อธิบายไปข้างต้น แต่ทำในสเกลที่เล็กกว่าและต่อเนื่องกว่า

งานวิจัยชิ้นนี้คำนวณว่ากลุ่มนักขุดที่ใช้กลยุทธ์ Selfish Mining และมีกำลังขุดเพียงประมาณ 25% ถึง 33% ของทั้งเครือข่าย ก็สามารถได้รับส่วนแบ่งรางวัลมากกว่าสัดส่วนกำลังขุดที่ตัวเองมีจริงได้แล้ว ตัวเลขที่แน่นอนขึ้นอยู่กับว่ากลุ่มนั้นมีความได้เปรียบด้านความเร็วในการกระจายบล็อกไปทั่วเครือข่ายมากแค่ไหน ถ้ากลุ่มนั้นมีโครงสร้างพื้นฐานเครือข่ายที่เร็วกว่าค่าเฉลี่ย เกณฑ์ขั้นต่ำที่ต้องใช้ก็ยิ่งลดลงใกล้ 25% มากขึ้น

จุดสำคัญที่ต้องเข้าใจคือ Selfish Mining ไม่ได้ทำให้เกิด Double-Spend หรือย้อนกลับธุรกรรมที่ Confirmation ไปแล้วได้เหมือน 51% Attack เต็มรูปแบบ สิ่งที่มันทำได้คือทำให้กลุ่มที่ใช้กลยุทธ์นี้ได้รับ Block Reward มากกว่าที่ควรจะได้ตามสัดส่วนกำลังขุดจริง ซึ่งเป็นการเอาเปรียบนักขุดคนอื่นที่เล่นตามกติกาปกติ ไม่ใช่การขโมยเงินจากผู้ใช้ทั่วไปโดยตรง แต่ก็ยังถือเป็นภัยคุกคามต่อความเป็นธรรมของระบบและอาจกัดกร่อนแรงจูงใจของนักขุดรายเล็กที่เล่นตรงไปตรงมาในระยะยาว นี่คือเหตุผลที่นักวิจัยด้านความปลอดภัยของ Bitcoin ยังคงติดตามพฤติกรรมของ Mining Pool ขนาดใหญ่อย่างใกล้ชิด แม้จะยังไม่มีหลักฐานยืนยันชัดเจนว่ามีใครใช้กลยุทธ์นี้กับเครือข่าย Bitcoin จริงในสเกลใหญ่ก็ตาม

แล้วเคยมีการโจมตีแบบนี้เกิดขึ้นจริงไหม

คำตอบคือเคยเกิดขึ้นจริง แต่ไม่ใช่กับ Bitcoin เพราะกำลังขุดของ Bitcoin ใหญ่เกินกว่าใครจะรวบรวมได้ไหว เหยื่อของ 51% Attack ที่เกิดขึ้นจริงมักเป็นเหรียญที่ใช้กลไก Proof of Work เหมือนกันแต่มีกำลังขุดรวมทั้งเครือข่ายเล็กกว่ามาก อย่างกรณีของ Bitcoin Gold (BTG) ซึ่งเป็นเหรียญที่แยกสายออกมาจาก Bitcoin โดยตั้งใจให้ขุดด้วยการ์ดจอทั่วไปแทน ASIC เฉพาะทาง ทำให้กำลังขุดรวมของเครือข่ายเล็กกว่า Bitcoin มาก

ในเดือนพฤษภาคม 2561 เครือข่าย Bitcoin Gold ถูกโจมตีแบบ 51% Attack จนเกิด Double-Spend มูลค่าประมาณ 18 ล้านดอลลาร์สหรัฐ ทำให้กระดานเทรด Bittrex ถอด BTG ออกจากการซื้อขายไปช่วงหนึ่ง และในเดือนมกราคม 2563 เครือข่ายเดียวกันก็ถูกโจมตีซ้ำอีกครั้ง คราวนี้มูลค่าความเสียหายอยู่ที่ประมาณ 72,000 ดอลลาร์สหรัฐ โดยผู้โจมตีใช้วิธีเช่ากำลังขุดผ่านบริการอย่าง NiceHash แทนที่จะต้องซื้อเครื่องขุดเองทั้งหมด ซึ่งสะท้อนให้เห็นว่ายิ่งกำลังขุดรวมของเครือข่ายเล็กเท่าไหร่ ต้นทุนการเช่ากำลังขุดมาโจมตีก็ยิ่งถูกลงเท่านั้น

Bitcoin Gold ไม่ใช่เหยื่อรายเดียว เครือข่าย Ethereum Classic (ETC) ซึ่งใช้ Proof of Work เช่นกันก็โดนโจมตีซ้ำถึง 5 ครั้งในช่วงปี 2019 ถึง 2020 ครั้งแรกเกิดขึ้นต้นเดือนมกราคม 2019 ซึ่ง Coinbase ตรวจพบการ Reorg ผิดปกติและหยุดรับฝาก-ถอน ETC ทันทีเพื่อป้องกันความเสียหาย ก่อนจะสรุปในเวลาต่อมาว่ามีการ Reorg เกิดขึ้นทั้งหมด 15 ครั้งในช่วงนั้น โดย 12 ครั้งมีการทำ Double-Spend รวมมูลค่าประมาณ 219,500 ETC หรือราว 1.1 ล้านดอลลาร์สหรัฐ ตามรายงานอย่างเป็นทางการของ Coinbase เอง

จากนั้นในเดือนสิงหาคม 2020 เครือข่าย ETC ถูกโจมตีซ้ำอีกถึง 3 ครั้งภายในเดือนเดียว โดยการโจมตีแต่ละครั้งทำให้เกิด Reorg ลึกมากขึ้นเรื่อยๆ ครั้งแรกและครั้งที่สองทำให้เกิด Reorg ลึกประมาณ 3,693 และ 4,000 บล็อกตามลำดับ ส่วนครั้งที่สามลึกกว่า 7,000 บล็อกหรือเทียบเท่าการขุดต่อเนื่องราวสองวันเต็ม ตามการวิเคราะห์ของ Coinbase ความเสียหายรวมของการโจมตีทั้งสามครั้งในเดือนสิงหาคม 2020 อยู่ที่ประมาณ 9 ล้านดอลลาร์สหรัฐ โดยเป้าหมายหลักคือกระดานเทรดที่รับซื้อขาย ETC ซึ่งต้องรับภาระความเสียหายจากการที่ธุรกรรมฝากเงินถูกย้อนกลับหลังจากปล่อยยอดให้ผู้ใช้ไปแล้ว

รูปแบบที่ซ้ำกันทั้ง Bitcoin Gold และ Ethereum Classic คือทั้งคู่เป็นเครือข่าย Proof of Work ที่มีกำลังขุดรวมเล็กกว่า Bitcoin มาก ทำให้การเช่ากำลังขุดจากบริการภายนอกอย่าง NiceHash มีต้นทุนต่ำพอที่จะคุ้มค่าต่อการโจมตี ในทางกลับกัน กำลังขุดของ Bitcoin ใหญ่กว่าเครือข่ายเหล่านี้หลายร้อยเท่า การจะเช่ากำลังขุดจากบริการภายนอกให้ได้มากพอจะโจมตี Bitcoin จึงแทบเป็นไปไม่ได้ในทางปฏิบัติ เพราะกำลังขุดขนาดนั้นไม่มีอยู่ในตลาดให้เช่าตั้งแต่แรก

อีกประเด็นหนึ่งที่ควรพูดถึงตรงๆ แบบไม่ปิดบังคือ ปัจจุบัน Foundry USA และ AntPool สองรายนำของวงการรวมกันมีส่วนแบ่งกำลังขุดเกินครึ่งหนึ่งของทั้งเครือข่ายแล้ว (บางแหล่งข้อมูลประเมินสูงถึงเกือบ 60%) ซึ่งฟังดูน่ากังวลกว่าปี 2565 ที่ไม่มี Pool ไหนแตะ 30% เลย แต่สิ่งที่ต้องเข้าใจเพิ่มคือ Pool ไม่ได้เป็นเจ้าของกำลังขุดทั้งหมดโดยตรง กำลังขุดส่วนใหญ่มาจากนักขุดอิสระจำนวนมากที่เลือกเข้าร่วม Pool เพื่อแบ่งรายได้ให้สม่ำเสมอ หาก Pool ใดพยายามใช้อำนาจไปในทางที่ไม่ซื่อสัตย์ นักขุดที่เข้าร่วมอยู่ก็มีสิทธิ์ย้ายไปเข้า Pool อื่นได้ทันที ซึ่งเป็นกลไกตรวจสอบทางสังคมและเศรษฐกิจอีกชั้นที่แยกออกจากตัวเลขส่วนแบ่งกำลังขุดดิบๆ

ถ้าเกิดขึ้นจริง ชุมชน Bitcoin มีทางรับมือนอกจากรอเศรษฐศาสตร์ไหม

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

ในประวัติศาสตร์ที่ผ่านมา ซอฟต์แวร์ Bitcoin Core เคยมีสิ่งที่เรียกว่า Checkpoint ฝังอยู่ในโค้ด ซึ่งเป็นการล็อกไว้ว่าบล็อกที่ความสูงบางระดับในอดีตต้องตรงกับ Hash ที่กำหนดไว้เท่านั้น ทำให้ต่อให้มีใครพยายามเขียนประวัติศาสตร์ใหม่ย้อนไปไกลกว่าจุด Checkpoint ก็ทำไม่ได้ แม้ในปัจจุบันแนวทางนี้จะถูกแทนที่ด้วยกลไกที่เรียกว่า Assumed Valid Blocks ซึ่งทำหน้าที่คล้ายกันแต่ยืดหยุ่นกว่า แต่หลักคิดเบื้องหลังยังเหมือนเดิมคือชุมชนสามารถร่วมกันตัดสินใจปกป้องประวัติศาสตร์ของเครือข่ายที่ผ่านการยอมรับมานานแล้วได้ ไม่ใช่ปล่อยให้กฎสายที่ยาวที่สุดชนะเสมอแบบไม่มีข้อยกเว้นเลย

อีกกลไกหนึ่งคือสิ่งที่เรียกว่า Social Consensus หรือฉันทามติทางสังคม ซึ่งหมายถึงการที่ผู้ใช้งาน นักพัฒนา กระดานเทรด และนักขุดรายอื่นทั่วโลกสามารถร่วมกันตัดสินใจไม่ยอมรับสายบล็อกเชนที่มาจากการโจมตี แม้สายนั้นจะยาวกว่าตามกฎทางเทคนิคก็ตาม ตัวอย่างที่ใกล้เคียงที่สุดคือเหตุการณ์ปี 2016 ที่เครือข่าย Ethereum เจอเหตุการณ์ The DAO ถูกแฮก แล้วชุมชนส่วนใหญ่ตัดสินใจทำ Hard Fork ย้อนประวัติศาสตร์กลับไปก่อนเหตุการณ์นั้น ทั้งที่ในทางเทคนิคสายเดิมที่ไม่ได้ Fork ก็ยังทำงานได้ปกติและกลายเป็นเหรียญ Ethereum Classic ในปัจจุบัน สะท้อนให้เห็นว่าสุดท้ายแล้วเครือข่ายบล็อกเชนไม่ได้ขับเคลื่อนด้วยกฎทางเทคนิคเพียงอย่างเดียว แต่ขึ้นอยู่กับว่าคนส่วนใหญ่ในชุมชนเลือกจะรันซอฟต์แวร์เวอร์ชันไหนและยอมรับสายไหนเป็นความจริงด้วย

สำหรับ Bitcoin เอง แม้จะไม่เคยต้องใช้กลไกทางสังคมระดับ Hard Fork แบบ Ethereum เพื่อรับมือกับ 51% Attack มาก่อน แต่หลักการเดียวกันนี้ก็ยังเป็นเกราะป้องกันชั้นสุดท้ายที่มีอยู่ ถ้าวันหนึ่งมีใครสามารถโจมตีสำเร็จจริงในสเกลใหญ่ กระดานเทรดใหญ่ๆ ทั่วโลกและนักขุดส่วนที่เหลือย่อมมีทางเลือกที่จะไม่ยอมรับสายที่มาจากการโจมตีนั้น แม้ในทางทฤษฎีทางเทคนิคสายนั้นจะ "ยาวกว่า" ตามกติกาปกติก็ตาม

จุดเชื่อมกับกระดานเทรดไทย ทำไม Confirmation หลายรอบถึงช่วยได้

อย่างที่อธิบายไว้ในบทความเรื่อง Block Confirmation ว่ากระดานเทรดไทยอย่าง Bitkub รอให้ธุรกรรมได้ Confirmation ครบตามเกณฑ์ก่อนถึงจะปล่อยยอดเงินฝากให้ใช้งานได้ หลักการเดียวกันนี้คือเกราะป้องกัน 51% Attack ในทางปฏิบัติด้วย เพราะยิ่งธุรกรรมมีมูลค่าสูงเท่าไหร่ ผู้รับก็ยิ่งควรรอ Confirmation มากกว่าค่ามาตรฐาน 3-6 ครั้ง เนื่องจากยิ่งมีบล็อกใหม่ต่อทับขึ้นไปมากเท่าไหร่ ผู้โจมตีก็ยิ่งต้องขุดบล็อกลับให้ยาวกว่าสายจริงมากขึ้นตามไปด้วย ทำให้ต้นทุนของการโจมตีสูงขึ้นเรื่อยๆ ตามมูลค่าที่พยายามจะขโมย นี่คือเหตุผลที่กระดานเทรดมักตั้งเกณฑ์ Confirmation ของธุรกรรมมูลค่าสูงไว้มากกว่า 6 ครั้งเป็นพิเศษ แทนที่จะใช้เกณฑ์มาตรฐานทั่วไป เคสของ Ethereum Classic เป็นตัวอย่างที่ชัดเจนว่าเหตุการณ์นี้ทำให้กระดานเทรดทั่วโลกต้องกลับมาทบทวนนโยบาย Confirmation ใหม่จริงจัง เพราะการโจมตีบางครั้งในปี 2563 ทำให้เกิด Reorg ลึกถึง 4,000 กว่าบล็อก และอีกครั้งลึกถึง 7,000 กว่าบล็อก ซึ่งลึกกว่ามาตรฐาน 6 Confirmation ของ Bitcoin หลายพันเท่า หลังเหตุการณ์นั้น Coinbase ประกาศปรับเวลารอ Confirmation ของ ETC ขึ้นเป็นประมาณ 2 สัปดาห์ก่อนจะถือว่าเงินฝากปลอดภัยพอให้ใช้งานได้ ต่างจาก Bitcoin ที่กำลังขุดมหาศาลทำให้ Reorg ระดับหลักสิบบล็อกแทบไม่เคยเกิดขึ้นเลยตั้งแต่เหตุการณ์ปี 2013 ที่อธิบายในบทความเรื่อง Block Confirmation มาตรฐาน 6 Confirmation ของ Bitcoin จึงยังเพียงพอสำหรับธุรกรรมส่วนใหญ่

ถ้าเกิดขึ้นจริง จะรู้ได้ยังไงว่าเครือข่ายกำลังโดนโจมตี

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

สัญญาณแรกที่สังเกตได้คือ Reorg ที่ลึกผิดปกติ ธุรกรรมทั่วไปที่ Confirmation หายไปแล้วกลับมาอยู่ในสถานะ Unconfirmed ใหม่ทั้งที่เพิ่งได้ Confirmation ไปหลายครั้งแล้ว ถือเป็นสัญญาณผิดปกติที่ไม่ควรเกิดขึ้นในสถานการณ์ปกติของเครือข่ายที่มีกำลังขุดกระจายตัวดี Block Explorer หลายเว็บมักมีการแจ้งเตือนหรือแสดงประวัติ Reorg ที่เกิดขึ้นจริงให้เห็น ผู้ที่ติดตามใกล้ชิดสามารถเปิดดูได้เองว่าช่วงไหนเคยเกิด Reorg ลึกผิดปกติหรือไม่

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

คำถามที่พบบ่อย

51% Attack คืออะไร?

คือสถานการณ์ที่กลุ่มนักขุดกลุ่มเดียวควบคุมกำลังขุดของเครือข่ายเกิน 51% ทำให้มีอำนาจเหนือการตัดสินว่าธุรกรรมไหนจะถูกยืนยันในบล็อกเชน

ถ้าใครมีกำลังขุดเกิน 51% จะขโมยเงินจากกระเป๋าคนอื่นได้ไหม?

ไม่ได้ เพราะทุกธุรกรรมต้องมีลายเซ็นจาก Private Key ของเจ้าของเงินจริงเท่านั้น สิ่งที่ทำได้จริงคือเตะธุรกรรมทิ้งหรือทำ Double-Spend กับเงินของตัวเองผ่านการไม่ Broadcast บล็อก ไม่ใช่การขโมยเงินของผู้อื่นโดยตรง

โจมตี Bitcoin ด้วยวิธีนี้ยากแค่ไหนในความเป็นจริง?

ยากมากจนแทบเป็นไปไม่ได้ เพราะกำลังขุดรวมของเครือข่าย Bitcoin ปัจจุบันสูงกว่า 800 EH/s ต้องใช้เงินลงทุนมหาศาลในการซื้อเครื่องขุดและค่าไฟฟ้าเพื่อให้ได้กำลังขุดมากกว่าทั้งเครือข่ายรวมกัน

เคยมีการโจมตี 51% เกิดขึ้นจริงไหม?

เคยเกิดกับเหรียญที่กำลังขุดรวมเล็กกว่า Bitcoin มาก เช่น Bitcoin Gold ที่โดนโจมตีสองครั้งในปี 2561 (เสียหายราว 18 ล้านดอลลาร์) และปี 2563 (เสียหายราว 72,000 ดอลลาร์) รวมถึง Ethereum Classic ที่โดนโจมตีรวมแล้ว 5 ครั้งในปี 2562-2563 (มกราคม 2562 เสียหายราว 1.1 ล้านดอลลาร์ และสิงหาคม 2563 อีก 3 ครั้งเสียหายรวมกันราว 9 ล้านดอลลาร์) แต่ยังไม่เคยเกิดขึ้นกับ Bitcoin

การที่ Pool ใหญ่มีส่วนแบ่งกำลังขุดสูงขึ้น อันตรายกว่าเดิมไหม?

เป็นแนวโน้มที่ควรจับตา แต่กำลังขุดส่วนใหญ่ใน Pool มาจากนักขุดอิสระจำนวนมาก ไม่ใช่ของ Pool เอง หาก Pool ใช้อำนาจในทางไม่ซื่อสัตย์ นักขุดสามารถย้าย Pool ได้ทันที เป็นกลไกตรวจสอบเพิ่มเติมนอกเหนือจากตัวเลขส่วนแบ่งกำลังขุด

รอ Confirmation มากขึ้นช่วยป้องกัน 51% Attack ได้จริงไหม?

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


📖 เรื่องนี้ผู้เขียนเล่าไว้ละเอียดกว่านี้ในหนังสือ Bitcoin & Blockchain 101 บทที่ว่าด้วยการขุด Bitcoin

บทความทั้งหมด