Skip to content
Blockchain

Coldcard Exploit: PRNG แบบ Deterministic ทำให้สูญ BTC มูลค่า 88 ล้านดอลลาร์

By Anurag Verma•August 5, 2026
Coldcard Exploit: PRNG แบบ Deterministic ทำให้สูญ BTC มูลค่า 88 ล้านดอลลาร์

เมื่อวันที่ 1 สิงหาคม 2026 ที่อยู่บิตคอยน์กว่า 1,196 รายการถูกดูดเงินออกอย่างพร้อมเพรียงกันในการโจมตีแบบประสานงาน ไม่มีฟิชชิง ไม่มีการลงนาม PSBT ที่เป็นอันตราย และไม่มีข้อผิดพลาดจากผู้ใช้ในแบบที่คุ้นเคย การโจมตีช่องโหว่ Coldcard ที่ดูดเงิน BTC ไปราว 88 ล้านดอลลาร์นั้น ไม่เคยแตะต้องอุปกรณ์ใดสักชิ้นในขณะที่เกิดการโจรกรรม ตามรายงานของ CoinDesk เกี่ยวกับเหตุการณ์นี้

สาเหตุที่แท้จริงนั้นร้ายแรงกว่าบทวิเคราะห์ใดๆ ที่ได้ยินในช่วง 24 ชั่วโมงแรก นี่คือช่องโหว่ในเฟิร์มแวร์กระเป๋าฮาร์ดแวร์ที่ถูกปล่อยออกมาในปี 2021 ซึ่งลอบแทนที่ตัวสร้างตัวเลขสุ่มแท้จริงของฮาร์ดแวร์ด้วยรูทีนสุ่มเทียมแบบซอฟต์แวร์ ทุก seed ที่ถูกสร้างขึ้นภายใต้บิลด์นั้นล้วนเป็นผลลัพธ์ที่กำหนดได้ล่วงหน้า ทุกที่อยู่ที่ derive มาจาก seed เหล่านั้นสามารถคำนวณล่วงหน้าได้โดยหลักการ โดยใครก็ตามที่ทำ reverse engineering ช่องโหว่นี้

นั่นไม่ใช่การแฮก นั่นคือช่องว่างห้าปีระหว่าง commit กับผลที่ตามมา

ช่องโหว่เฟิร์มแวร์ Coinkite ทำงานอย่างไร

บิลด์ที่มีข้อบกพร่อง ตามรายละเอียดของ The Hacker News ส่งคำสั่งเรียก entropy ผ่าน PRNG แบบซอฟต์แวร์ที่ใช้ state ขนาดเล็กและเดาได้ง่ายเป็น seed แทนที่จะใช้ hardware RNG ของชิป SE ผู้ใช้ไม่มีทางตรวจจับการสลับนี้ได้เลย อุปกรณ์บูตขึ้นมาตามปกติ แสดงหน้าจอการตั้งค่าตามที่คาดไว้ สร้าง seed 24 คำ และดูเหมือนกับการสร้างกระเป๋าเงินที่ถูกต้องทุกประการ

seed ที่ผลิตออกมานั้นอยู่ในพื้นที่ค้นหาที่มีความเป็นไปได้เพียงไม่กี่พันล้านรายการ นั่นไม่ใช่กระเป๋าเงิน นั่นคือสลากลุ้นรางวัล

เมื่อผู้โจมตี (หรือที่น่าจะเป็นไปได้มากกว่า คือนักวิจัยที่ค้นพบสิ่งนี้และไม่ได้เปิดเผยอย่างมีความรับผิดชอบ) เริ่มกรองพื้นที่ดังกล่าวเทียบกับชุด UTXO ในวันที่ 1 สิงหาคม การดูดเงินใช้เวลาเป็นชั่วโมง ไม่ใช่เดือน

เหตุใดตัวเลข 1,196 ที่อยู่บิตคอยน์ที่ถูกดูดจึงสำคัญ

1,196 นั้นเล็กในแง่ตัวเลขสัมบูรณ์ แต่มหาศาลในแง่สัญญาณ มันระบุขอบเขตของกลุ่มผู้ใช้ที่สร้าง seed บนเฟิร์มแวร์เวอร์ชันนั้นและไม่เคยหมุนเวียนคีย์ นี่คือข้อกล่าวอ้างที่ทดสอบและพิสูจน์ได้เกี่ยวกับขนาดความเสียหาย และ บทความของ TechSpot ยืนยันว่าอุปกรณ์ที่ได้รับผลกระทบสืบย้อนไปยังช่วงการจัดส่งที่แคบมาก

หากคุณสร้าง seed บนเฟิร์มแวร์เวอร์ชันอื่น หรือหากคุณหมุนเวียนคีย์หลังจากอัปเดตเฟิร์มแวร์ คุณแทบจะไม่ได้รับผลกระทบอย่างแน่นอน แต่หากคุณสร้าง seed บนบิลด์นั้นและไม่เคยย้ายเงินออก คุณถูกดูดไปแล้ว เพียงแต่ยังไม่รู้ตัวเท่านั้น

รายละเอียดที่น่าสังเกต: UTXO บางส่วนที่ถูกดูดไปนั้นวางนิ่งมาตั้งแต่ปี 2021 ห้าปีของ "กุญแจฉัน เหรียญฉัน" และกุญแจเหล่านั้นไม่เคยเป็นของคุณจริงๆ เลย

ปัญหา PRNG แบบ Deterministic ใน Bitcoin นั้นเก่าและเกิดซ้ำอยู่เรื่อยๆ

บั๊กประเภทนี้มีประวัติศาสตร์อันยาวนานและน่าอาย Android's SecureRandom ในปี 2013 ทำให้คนเสีย BTC ในลักษณะเดียวกัน บั๊ก Debian OpenSSL PRNG ในปี 2008 ทำให้คีย์ SSH พังพินาศไปสองปีก่อนที่ใครจะสังเกตเห็น ทุกยุคทุกสมัย เราต้องเรียนรู้บทเรียนซ้ำว่า entropy คือสิ่งเดียวที่คุณไม่สามารถตรวจสอบได้แค่จากการมองที่ผลลัพธ์

ตัวเลข 256 บิตแบบสุ่มที่ถูกต้องกับตัวเลข 256 บิตแบบ deterministic ดูเหมือนกันทุกประการเมื่อตรวจสอบจากภายนอก คุณต้องตรวจสอบที่ ต้นทาง ไม่ใช่ที่ ตัวอย่าง นั่นคือทั้งหมดของเกมนี้

กระเป๋า hardware wallet ขายสัญญาว่า secure element จัดการเรื่องนี้ให้คุณ แต่เมื่อเฟิร์มแวร์เบี่ยงผ่าน SE คุณก็ได้รับแค่ความยุ่งยากของ cold storage โดยปราศจากการรับประกันใดๆ นั่นคือเลวร้ายที่สุดของทั้งสองโลก

การถือครองเองกับ ETF ไม่ใช่การถกเถียงที่คนส่วนใหญ่คิด

นี่คือความเห็นส่วนตัวของผม และผมจะรับผิดชอบต่อมัน: การสนทนาเรื่องการถือครองเองกับ ETF ถูกนำเสนอในฐานะเรื่องอุดมการณ์ ทั้งที่จริงแล้วมันคือคำถามเรื่องห่วงโซ่อุปทาน

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

self-custody มีห่วงโซ่ที่ยาวกว่า ทั้งผู้ผลิตชิป, pipeline การสร้างเฟิร์มแวร์, การเซ็นรับรองสำหรับการเผยแพร่, เส้นทางซัพพลาย, OPSEC ของผู้ใช้ปลายทาง และวินัยในการสำรองข้อมูล ลิงก์ใดลิงก์หนึ่งขาด ไม่มีใครรับผิดชอบ การดูดเงินจาก Coldcard คือช่วงเวลา Terra สำหรับแนวคิดนั้น ไม่ใช่เพราะ self-custody ตายแล้ว แต่เพราะกรอบแนวคิดสุดโต่งที่ว่า "แค่ถือคีย์เองก็พอ" จำเป็นต้องเติบโตขึ้น

ทั้งสองรูปแบบมีความเสี่ยงที่แท้จริง การแกล้งทำเป็นว่ารูปแบบใดรูปแบบหนึ่งไม่มีความเสี่ยงคือสิ่งที่นำไปสู่การที่ 1,196 ที่อยู่ถูกดูดเงินออกหมด

สิ่งที่เปลี่ยนไปจริงหลังช่องโหว่ Coldcard

สิ่งที่ฉันคิดว่าจะ (และควร) เปลี่ยนแปลง:

  • Reproducible firmware builds กลายเป็นมาตรฐานขั้นต่ำ หากคุณไม่สามารถ build ไฟล์ไบนารีจากซอร์สโค้ดและตรวจสอบทีละไบต์ได้ คุณกำลังเชื่อใจลายเซ็น ไม่ใช่ตัวโค้ดเบส
  • การยืนยัน entropy หลังการสร้าง seed อุปกรณ์ควรเซ็นหลักฐานว่า seed ที่กำหนดมาจาก SE ไม่ใช่จากซอฟต์แวร์ สิ่งนี้ไม่ใช่เรื่องยาก Coinkite สามารถส่งมอบได้ภายในหนึ่งไตรมาส
  • การตรวจสอบความถูกต้องของ seed โดยอิสระ เครื่องมือของบุคคลที่สามที่สามารถตรวจสอบได้โดยไม่ต้องเห็น seed ของคุณ ว่า derivation path ของมันอยู่ในการกระจายที่สอดคล้องกับความสุ่มแท้จริง
  • ผลิตภัณฑ์ประกันสำหรับ self-custody ไม่ใช่แบบหลอกๆ แต่เป็นการรับประกันจริงที่ต้องการเฟิร์มแวร์ที่ได้รับการรับรอง และปรับความคุ้มครองตามอายุของ build

ทั้งหมดนี้ไม่ได้ทำให้กระเป๋าเงินฮาร์ดแวร์ล้าสมัย แต่ทำให้มันเป็นระดับองค์กร ซึ่งเป็นสิ่งที่มันอ้างว่าเป็นมาตลอด

บทอ่านที่น่าไม่สบายใจสำหรับพวกเราที่เหลือ

ที่ LCX เราใช้เวลาทางวิศวกรรมอย่างไม่สมส่วนกับสิ่งที่ดูล่องหนสำหรับผู้ใช้ ทั้ง HSM key ceremonies, deterministic build pipelines และการตรวจสอบ entropy บนทุก code path ที่แตะ private key มันเป็นงานน่าเบื่อ และมันคือความแตกต่างระหว่างการพาดหัวข่าวกับวันอังคารธรรมดา

เหตุการณ์ Coldcard ให้ความรู้สึกในแบบเดียวกับความเห็นของ CEO OpenZeppelin เรื่องการตรวจสอบ DeFiที่เกิดขึ้นต้นปีนี้ ชุดเครื่องมือตรวจสอบที่เราสืบทอดมานั้นถูกออกแบบมาสำหรับโลกที่โค้ดที่คุณส่งออกไปคือโค้ดที่คุณรันจริง แต่นั่นไม่ใช่โลกที่เราอยู่อีกต่อไปแล้ว หากเคยเป็นเช่นนั้นจริงด้วยซ้ำ

Cold storage ควรจะเป็นคำตอบที่น่าเบื่อและถูกต้อง แต่ปรากฏว่าความน่าเบื่อต้องการโครงสร้างรองรับมากกว่าที่เรายอมรับกันมาโดยตลอด

แหล่งข้อมูล