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

การโจมตี 51% Attack คืออะไร Bitcoin จะไร้ค่าหรือเปล่า

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

51% Attack คืออะไร

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

 

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

 

แล้วทีนี้ผู้ที่คิดจะโจมตีระบบ Bitcoin นั้นทำได้อย่างไรหละ ผู้ที่โจมตีระบบ Bitcoin ด้วย 51% Attack นั้นใช้ช่องว่างของ Blockchain ที่ระบบจะเชื่อถือว่า “Blockchain ที่ยาวที่สุดจะเป็นจริงเสมอ” โดยใช้หลักการโจมตีที่เรียกว่า With holding attack มันจะเป็นอย่างไรผมจะไปอธิบายให้ฟัง

สมมติว่าผมกำลังเดินไปที่โชว์รูมรถเพื่อเลือกดูรถ และในที่สุดผมก็ได้ตัดสินใจเลือกรถสปอร์ทสุดเท่ห์มาหนึ่งคันและตัดสินใจจะจ่ายเงินแก่เจ้าของโชว์รูมด้วย bitcoin และเจ้าของโชว์รูมก็รับ bitcoin ในการซื้อขายรถเช่นกัน ผมจึงโอน bitcoin ให้กับเจ้าของโชว์รูมรถไปเป็นจำนวน 100 BTC และแน่นอนว่าเจ้าของโชว์รูมก็มีความรู้พอว่าเขาควรจะต้องรอ Block Confirmation ถึง 6 Confirm ด้วยกัน เขาจึงเปิด Blockexplorer ของ Bitcoin เขาพบว่าธุรกรรมที่โอน bitcoin จำนวน 100 BTC นั้นอยู่ใน Block ที่ 101 เขาจึงรอให้ Block นั้นต่อไปถึง Block ที่ 106 ซึ่งเท่ากับว่าตอนนี้ธุรกรรมที่ซื้อรถสปอร์ทนั้นมี 6 Confirmation แล้ว เจ้าของโชว์รูทจึงมั่นใจว่าเขาได้รับเงินแล้ว และจึงมอบกุญแจรถสปอร์ทให้แก่ผม

แต่เผอิญผมเป็นนักขุดที่มี Node และกำลังขุดอยู่ถึง 51% ผมจึงได้ดำเนินแผนในการได้รถสปอร์ทฟรีๆของผมดังนี้ ทันที่ที่ผมโอน Bitcoin จำนวน 100 BTC ผมได้ดำเนินการโจมตีระบบ Bitcoin ที่เรียกว่า With holding attack ทันทีโดยผมนั้นได้ทำการขุด Block ทันทีแต่เมื่อทันทีที่ผมเจอ Block ที่ 101 Node ของผมก็เพิ่ม Block ที่ 101 ลงไปในฐานข้อมูล แต่แทนทีผมจะทำการ Broadcast Block ที่ 101 นี้ผมเลือกที่จะเก็บไว้เฉยไม่บอกใคร และผมก็ทำแบบนี้ไปเรื่อยๆ จน Blockchain ใน Node ของผมนั้นยาวกว่า Node อื่นๆบนโลก

ย้อนกลับมาที่โชว์รูมพอผมได้กุญแจรถสปอร์ท ในขณะที่ข้อมูล Blockchain ที่เจ้าของโชว์รูมดูอยู่นั้นอยู่ที่ Block ที่ 106 ผมได้ทำการขุดไปจนถึง Block ที่ 107 โดยใน Blockchain ของผมนั้นไม่มีข้อมูลธุรกรรมที่ผมจ่ายเงินให้แก่เจ้าของโชว์รูมมาก่อน ทันทีที่ผมขึ้นรถและขับรถออกจากโชว์รูมผมก็ได้ทำการ Broadcast Blockchain ของผมไปทั่วทั้งระบบ ผลที่เกิดขึ้นก็คือ Blockchain ของผมนั้นยาวที่สุด Node อื่นๆจึงเชื่อว่า Blockchain ของผมนั้นเป็นจริงและนำ Blockchain ที่ไม่มีธุรกรรมในการซื้อรถสปอร์ทเขียนทับลงไป ทำให้ผมได้ทั้งรถสปอร์ทและยังมีเงินอยู่ 100 BTC เหมือนเดิม

 

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

 

แล้วโอกาสเป็นไปได้มากแค่ไหน

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

 

แล้วมันจะคุ้มไหมที่จะทำ 51% ใน Bitcoin

การที่ใครคนใดคนหนึ่งคิดจะทำ 51% Attack ในระบบหนึ่งแปลว่าเขาจะต้องมีต้นทุนมหาศาล ในปัจจุบัน (อ้างอิงจากเวปไซต์ https://gobitcoin.io/tools/cost-51-attack/ )เราจะต้องใช้เงินประมาณ 7 พันล้านดอลลาร์หรือประมาณ 230 พันล้านบาทในการซื้อเครื่องขุด และเสียค่าไฟในการขุดอีกเป็นเวลาต่ำที่สุด 1 ชั่วโมงคิดเป็นเงิน 4 แสนดอลลาร์ (อ้างอิงจาก https://www.crypto51.app/) 13 ล้านบาท ซึ่งต้นทุนขั้นต่ำทั้งหมดคือ 231 พันล้านบาท

โดยในวันที่เขียนบทความ 14/10/2018 Bitcoin มีราคาอยู่ที่ 6305 ดอลลาร์ หรือประมาณ 2 แสนบาท เท่ากับว่าถ้าเราจะลงทุนทำ 51% Attack ธุรกรรมที่เราจะย้อนกลับนั้นต้องมีมูลค่าอย่างน้อย 1155000 BTC ถึงจะคุ้มกับการทำ 51% Attack ปัจจุบันมี Bitcoin ผลิตออกมา 17 ล้าน BTC และมีรายงานว่ามี Bitcoin สูญหายไปแล้วจำนวน 4 ล้าน BTC เท่ากับว่าในระบบเหลือ Bitcoin อยู่ที่ 13 ล้าน BTC เท่ากับว่าเราต้องมีโจมตีธุรกรรมที่มีมูลค่าถึง 1/10 ของ Bitcoin ที่มีอยู่

เอาเงินไปซื้อเรือดำน้ำหมดแล้ว

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

 

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

 

Leave a Reply

Advertisment ad adsense adlogger