สรุปข่าว
- ตามรายงานจาก 0xSweep บน X ชุมชนคริปโตกำลังรำลึกถึงเหตุการณ์ “Value Overflow Incident” เมื่อวันที่ 15 สิงหาคม 2010 ที่ชายปริศนาคนหนึ่งใช้ bug ในโค้ด Bitcoin สร้าง 184,467,440,737 BTC (~184 พันล้านเหรียญ) จากอากาศ — มากกว่า supply ที่ควรมีทั้งหมด (21 ล้าน) ถึง 9,000 เท่า
- ตาม Decrypt และ Bitcoin Wiki เคยรายงานนั้น bug นี้เป็น “integer overflow” ซึ่งคือโค้ดตรวจสอบ transactions โดยไม่ได้คำนึงถึงกรณีที่ output ใหญ่จนเกินขีดจำกัดของตัวแปร เมื่อตัวเลข “ล้น” ระบบคิดว่า transaction ยังคงถูกต้อง ทำให้มี 2 address ได้รับ 92,200 ล้าน BTC ภายใน Block 74,638
- FMP รายงานไว้ว่า Satoshi Nakamoto พร้อมด้วย Jeff Garzik และ Gavin Andresen ได้แก้ไข bug ที่เกิดขึ้นภายใน 5 ชั่วโมง ด้วย soft fork ล้าง BTC ที่สร้างขึ้นทั้งหมดออกไป ทำให้ blockchain กลับสู่ปกติ Bitcoin ที่ถูกเสกขึ้นมาไม่มีอยู่จริงใน main chain และนี่คือครั้งเดียวในประวัติศาสตร์ที่หลักการของการมี Bitcoin 21 ล้าน BTC ถูก “ทำลาย” แม้จะเป็นเหตุการณที่เกิดขึ้นเพียงชั่วคราว
แนวโน้มผลกระทบต่อราคา: Neutral
Bitcoin มี supply จำกัด 21 ล้านเหรียญ ยกเว้นวันหนึ่งในปี 2010 ที่มีคนสร้างออกมา 184,000 ล้าน BTC เหตุการณ์นี้เรียกว่า “Value Overflow Incident” เป็น bug ที่ร้ายแรงที่สุดในประวัติศาสตร์ Bitcoin และเป็นเหตุการณ์ที่พิสูจน์ว่า “ชุมชน” คือผู้รักษา Bitcoin เอาไว้ไม่ใช่แค่ “โค้ด”
เกิดอะไรขึ้นกับ Integer Overflow ใน Block 74,638
ย้อนรอยเมื่อ 15 ส.ค. 2010 เกิดเหตุใน Block 74,638 มี transaction ที่ สร้าง 184,467,440,737.09 BTC แบ่งสู่มือของ address 2 address ทำให้พวกเขาได้รับ 92,200 ล้าน BTC
bug นี้เป็น bug ที่เรียกว่า “integer overflow” ตัวแปรที่เก็บจำนวน BTC ใช้ int64 ซึ่งมีค่าสูงสุด โดนผู้โจมตีสร้าง output ที่ใหญ่มากจนเมื่อบวกกัน ตัวเลข “ล้น” กลับมาเป็นค่าที่น้อยจนระบบตรวจสอบเห็นว่า “output น้อยกว่า input” flow นี้จึงผ่านการตรวจสอบไปได้ทำให้ Bitcoin กว่า 184,000 ล้าน BTC ถูกสร้างที่สำคัญคือตัวตนของผู้โจมตี ระบบก็ไม่เคยถูกเปิดเผยมาจนถึงทุกวันนี้และยังคงเป็นอยู่ในเงามืดของปริศนาต่อไป
Satoshi แก้ไขได้ใน 5 ชั่วโมง
Bitcoin Wiki เผยว่า Jeff Garzik (developer) เป็นคนแรกที่สังเกตเห็น block “แปลกๆ” บน BitcoinTalk forum จากนั้น Satoshi Nakamoto, Garzik และ Gavin Andresen ร่วมกันออก client version ใหม่ภายใน 5 ชั่วโมง โดยทำการปฏิเสธ transaction ที่ output เกิน 21 ล้าน BTC และปฏิเสธ transaction ที่ output รวมกันเกิด overflow

ทำให้ blockchain ถูก fork ที่ Block 74,691 และทำให้ Bitcoin ที่ถูกเสก 184,000 ล้าน BTC ถูกลบไปจนหมดสิ้น เหมือนไม่เคยมีอยู่มาก่อน
ทำไมสิ่งนี้ถึงสำคัญ? เพราะมันพิสูจน์ 3 สิ่ง: (1) Bitcoin ไม่ได้ปลอดภัยเพราะโค้ด (โค้ดมี bug ได้) แต่ปลอดภัยเพราะ “ชุมชน” ที่เฝ้าดูและแก้ไข (2) Bitcoin สามารถ “รักษาตัวของมันเองได้” ได้ผ่าน consensus mechanism (3) supply 21 ล้าน BTC ถูกรักษาไว้ไม่ใช่แค่โดยโค้ด แต่โดย “คนที่รัน node” ที่เลือก accept chain ที่ถูกต้อง
เหตุการณ์นี้เป็น “บทเรียนที่ยิ่งใหญ่ที่สุด” ของ Bitcoin ในวันที่มีคนเสก BTC 184,000 ฺล้าน BTC จากอากาศ สิ่งที่ป้องกัน Bitcoin ไม่ให้ตาย ไม่ใช่โค้ด, ไม่ใช่บริษัทไหน แต่คือ “ชุมชน developer +คนที่รัน node ” ที่ตรวจพบช่วยกันแก้ไขและทำการ fork ภายใน 5 ชั่วโมง
ถ้าวันนั้น ไม่มีใครสังเกตเห็น หรือ Satoshi ไม่แก้ไขทัน Bitcoin อาจจบลงตั้งแต่ปี 2010 ตอนที่ราคายังอยู่ $0.07 — แต่ชุมชนช่วยรักษาหลักการที่พวกเขาเชื่อมันกันเอาไว้ได้ และตลอด 16 ปีหลังจากนั้น bug นี้ไม่เคยเกิดขึ้นอีก
ที่มา : X, Decrypt, Bitcoin Wiki, FMP, Francesco Carlucci, HackerNoon
