จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้ขาดทุนได้
คำตอบโดยตรง
การโจมตี Eclipse แยกโหนดเป้าหมายออกจากเพียร์ที่สุจริตด้วยการควบคุมการเชื่อมต่อเครือข่ายทั้งหมดหรือมากพอของโหนดนั้น จากนั้นผู้โจมตีสามารถหน่วงเวลา ปิดกั้น หรือเลือกส่งต่อบล็อกและธุรกรรม เพื่อให้เหยื่อเห็นภาพเครือข่ายที่ผู้โจมตีเป็นผู้กำหนด
โหนดของเหยื่ออาจยังคงตรวจสอบลายเซ็น หลักฐานการทำงาน และกฎฉันทามติอื่นทั้งหมดได้ตามปกติ แต่นั่นไม่ได้ทำให้ภาพที่โหนดเห็นสมบูรณ์หรือเป็นปัจจุบัน โหนดที่ตรวจสอบข้อมูลอย่างเต็มรูปแบบอาจปฏิเสธข้อมูลที่ไม่ถูกต้องได้ แต่ยังถูกกักไว้บนสาขาที่ถูกต้องแต่ล้าสมัย ถูกขัดขวางไม่ให้เห็นธุรกรรมที่ขัดแย้งกัน หรือถูกทำให้เข้าใจผิดว่าเครือข่ายโดยรวมยอมรับสิ่งใดแล้ว
การโจมตีนี้ต่างจากการโจมตีด้วยเสียงข้างมากทั่วทั้งเครือข่าย ผู้โจมตีมุ่งเป้าไปที่โหนดหนึ่งโหนดหรือโหนดจำนวนจำกัดในชั้นเพียร์ทูเพียร์ และไม่จำเป็นต้องควบคุมกำลังขุดหรือสัดส่วนการวางหลักประกันส่วนใหญ่ของเครือข่าย การโจมตี Sybil อาจช่วยสนับสนุนการโจมตี Eclipse ด้วยการสร้างตัวตนหรือที่อยู่จำนวนมากที่ผู้โจมตีควบคุม แต่แนวคิดทั้งสองไม่เหมือนกัน กล่าวคือ Sybil หมายถึงการเพิ่มจำนวนตัวตน ส่วน Eclipse หมายถึงการแยกมุมมองข้อมูลของเหยื่อได้สำเร็จ
การแยกโหนดเกิดขึ้นอย่างไร
ไคลเอนต์เพียร์ทูเพียร์ค้นหาและจัดเก็บที่อยู่ผู้สมัคร เลือกเพียร์ขาออก รับเพียร์ขาเข้าบางส่วน และเชื่อมต่อใหม่หลังเกิดข้อขัดข้องหรือเริ่มระบบใหม่ อัลกอริทึมที่ใช้จริงแตกต่างกันไปตามไคลเอนต์และเวอร์ชัน ผู้โจมตีจึงมองหาวิธีโน้มน้าวการตัดสินใจเหล่านี้ให้มากพอที่จะชี้ไปยังโครงสร้างพื้นฐานที่ตนควบคุม
เส้นทางการโจมตีโดยทั่วไปมี 4 ขั้นตอน:
- เตรียมเพียร์ที่ผู้โจมตีควบคุม ผู้โจมตีใช้งานโหนดหรือตัวตนที่เข้าถึงได้ผ่านที่อยู่ซึ่งกฎการเลือกเพียร์ของเหยื่อน่าจะมองว่าแยกจากกัน
- ทำให้ชุดผู้สมัครเอนเอียง เพียร์ประสงค์ร้ายประกาศที่อยู่ที่ผู้โจมตีควบคุม หรือพยายามเบียดรายการที่สุจริตออกจากตัวจัดการที่อยู่ของเหยื่อด้วยวิธีอื่น ความเป็นไปได้ในทางปฏิบัติขึ้นอยู่กับการออกแบบบักเก็ต กฎกลุ่มเครือข่าย การจำกัดอัตรา และคุณภาพของที่อยู่ที่จัดเก็บไว้แล้ว
- กระตุ้นหรือรอให้เชื่อมต่อใหม่ การเริ่มระบบใหม่ ความผันผวนของการเชื่อมต่อ การปฏิเสธการให้บริการ หรือการรบกวนการกำหนดเส้นทาง อาจทำให้เป้าหมายเปลี่ยนเพียร์ที่สุจริต การแยกจะง่ายขึ้นเมื่อเป้าหมายมีเส้นทางอิสระเพียงไม่กี่เส้นทาง หรือเริ่มต้นด้วยฐานข้อมูลที่อยู่ที่ไม่แข็งแรง
- ผูกขาดและคัดกรอง เมื่อการเชื่อมต่อที่เกี่ยวข้องของเหยื่อชี้ไปยังผู้โจมตี ผู้โจมตีจะส่งต่อเฉพาะบล็อกและธุรกรรมที่เลือกไว้ โดยมักยังปฏิบัติตามกฎฉันทามติเพื่อไม่ให้ถูกปฏิเสธในทันที
งานศึกษาของ USENIX ในปี 2015 แสดงให้เห็นการโจมตีประเภทนี้กับระบบเพียร์ทูเพียร์ของ Bitcoin ที่ใช้อยู่ในขณะนั้น และอธิบายผลกระทบต่าง ๆ เช่น การใช้จ่ายซ้ำโดยอาศัยจำนวนการยืนยัน การช่วยเหลือการขุดแบบเห็นแก่ตัว และการแยกสาขาโดยฝ่ายปรปักษ์ ตัวเลขประมาณการด้านทรัพยากรและรายละเอียดไคลเอนต์ในงานดังกล่าวเป็นข้อมูลทางประวัติศาสตร์ ไม่ใช่ค่าคงที่สากลสำหรับ Bitcoin Core ในปัจจุบันหรือเครือข่ายอื่น
ไคลเอนต์สมัยใหม่สามารถเพิ่มต้นทุนของการแยกด้วยการจัดเก็บที่อยู่แบบสุ่มและแบ่งส่วน การกระจายแหล่งที่มาของเพียร์ การเชื่อมต่อทดสอบ การเชื่อมต่อขาออกหรือการเชื่อมต่อส่งต่อบล็อกที่ได้รับการป้องกัน จุดยึดที่คงอยู่ข้ามการเริ่มระบบใหม่ กฎการขับเพียร์ออก และข้อจำกัดการส่งต่อที่อยู่ มาตรการเหล่านี้เป็นการบรรเทาความเสี่ยงหลายชั้น ไม่ใช่หลักฐานว่าการโจมตี Eclipse เป็นไปไม่ได้
ตัวอย่างการชำระเงินและการรับมือ
สมมติว่าโหนดของร้านค้าได้รับเงินและแสดง 6 confirmations ผู้โจมตีที่แยกโหนดนั้นแล้วอาจแสดงสาขาที่ถูกต้องซึ่งดูแลไว้เป็นการส่วนตัวและมีรายการชำระเงินดังกล่าว ขณะที่ธุรกรรมที่ขัดแย้งกันได้รับการยอมรับบนเครือข่ายที่สุจริต หากร้านค้าส่งมอบสินค้าที่เรียกคืนไม่ได้โดยอาศัยเพียงโหนดที่ถูกแยก ตัวเลขที่แสดงก็ไม่ได้ยืนยันว่าเครือข่ายที่สุจริตรับรองการชำระเงินแล้ว
การรับมือเหตุการณ์ควรเก็บรักษาหลักฐานก่อนทำการเปลี่ยนแปลงที่รบกวนระบบ:
- บันทึกปลายเชนที่รายงาน งานสะสม แฮชของบล็อกล่าสุด รายชื่อเพียร์ ทิศทางการเชื่อมต่อ ประเภทเครือข่าย ระบบอัตโนมัติที่จับคู่ได้เมื่อมีข้อมูล และเวลาประทับของบล็อกล่าสุดที่ได้รับ
- เปรียบเทียบปลายเชนและสถานะธุรกรรมกับโหนดที่ดำเนินงานอย่างเป็นอิสระและเข้าถึงผ่านเส้นทางเครือข่ายกับการดูแลระบบที่แยกจากกันอย่างแท้จริง ตัวสำรวจบล็อกสาธารณะมีประโยชน์ต่อเมื่อโครงสร้างพื้นฐานของตัวสำรวจนั้นเป็นอิสระด้วย
- ระงับการชำระราคามูลค่าสูงหรือการส่งมอบอัตโนมัติเมื่อมุมมองอิสระไม่ตรงกัน การยืนยันที่เพิ่มขึ้นจากมุมมองที่ถูกแยกเดิมไม่ช่วยแก้ปัญหา
- เปลี่ยนไปใช้ซอฟต์แวร์และการกำหนดค่าที่ทราบว่าเชื่อถือได้ ตรวจสอบ DNS การกำหนดเส้นทาง ไฟร์วอลล์ พร็อกซี และการบุกรุกโฮสต์ แล้วสร้างสถานะเพียร์ขึ้นใหม่ตามขั้นตอนกู้คืนที่ไคลเอนต์จัดทำไว้
- เชื่อมต่อใหม่อย่างค่อยเป็นค่อยไป และตรวจสอบว่าเพียร์ กลุ่มเครือข่าย การมาถึงของบล็อก งานของเชน และการสังเกตธุรกรรมมีความหลากหลาย อย่ากู้คืนฐานข้อมูลเพียร์ที่อาจถูกวางยากลับมาโดยไม่ตรวจสอบ
- เก็บรักษาบันทึกและยกระดับเหตุการณ์ไปยังทีมความปลอดภัยของโหนดหรือโปรโตคอล เหตุการณ์ที่สงสัยว่าเป็นการโจมตี Eclipse อาจซ้อนทับกับระบบหยุดทำงานตามปกติ เหตุการณ์การกำหนดเส้นทาง หรือการบุกรุกโฮสต์ในวงกว้าง
ใน Bitcoin Core 30.0 คำสั่ง getpeerinfo แสดงฟิลด์ต่าง ๆ เช่น network, mapped_as, inbound, last_block, synced_headers, synced_blocks และ connection_type ฟิลด์เหล่านี้ช่วยในการตรวจสอบ แต่ไม่มีฟิลด์ใดเพียงฟิลด์เดียวที่พิสูจน์การแยกได้ การเฝ้าติดตามควรกำหนดค่าฐานปกติและเชื่อมโยงการกระจุกตัวของเพียร์กับการสังเกตเชนที่เป็นอิสระ
ความเสี่ยงและมาตรการควบคุม
- การใช้จ่ายซ้ำต่อผู้รับ: เหยื่ออาจเห็นการยืนยันบนสาขาที่ผู้โจมตีควบคุม ควรกำหนดให้มีการสังเกตอย่างอิสระสำหรับการส่งมอบที่มีมูลค่าสูงหรือย้อนคืนไม่ได้ และตั้งขีดจำกัดที่สะท้อนความเสี่ยงของการชำระราคา
- การรบกวนผู้ขุดหรือผู้ตรวจสอบ: ผู้ดำเนินงานที่ถูกแยกอาจทำงานจากข้อมูลล้าสมัย สูญเสียรายได้ หรือช่วยเหลือสาขาของฝ่ายปรปักษ์ ควรติดตามงานของเชน ความสดใหม่ของส่วนหัว และความหลากหลายของเพียร์จากภายนอกโหนดที่ใช้งานจริง
- การเซ็นเซอร์แบบเลือก: ผู้โจมตีสามารถซ่อนธุรกรรมหรือหน่วงเวลาบล็อกได้โดยไม่ต้องส่งข้อมูลที่ไม่ถูกต้อง ควรแจ้งเตือนเมื่อช่วงห่างของการมาถึงของบล็อกผิดปกติและเมื่อผู้สังเกตการณ์อิสระเห็นข้อมูลไม่ตรงกัน
- ความล้มเหลวของบริดจ์ ออราเคิล และ RPC: บริการนอกเชนที่เชื่อถือโหนดต้นทางเพียงโหนดเดียวอาจส่งต่อสถานะที่ล้าสมัยหรือพลาดการจัดระเบียบเชนใหม่ ควรใช้แหล่งข้อมูลหลายแหล่งที่แยกจากกันทั้งด้านการดูแลและเครือข่าย พร้อมกฎองค์ประชุมและความสดใหม่ที่ชัดเจน
- ความมั่นใจผิด ๆ จากจำนวนการเชื่อมต่อ: เพียร์ 20 รายที่ควบคุมโดยองค์กรเดียว เครือข่ายเดียว หรือแหล่งที่อยู่เดียว อาจมีความเป็นอิสระน้อยกว่ากลุ่มที่เล็กกว่าแต่หลากหลาย ควรวัดความหลากหลาย ไม่ใช่ดูเพียงจำนวน
- การรวมศูนย์จากเพียร์แบบตายตัว: เพียร์ที่เชื่อถือซึ่งกำหนดด้วยตนเองเพียงรายเดียวอาจเลี่ยงชุดผู้สมัครที่ถูกวางยาได้ แต่ก็สร้างจุดล้มเหลวเพียงจุดเดียว หากจุดยึดแบบตายตัวเหมาะสม ควรใช้หลายเส้นทางที่ดำเนินงานอย่างเป็นอิสระและยังคงการเชื่อมต่อแบบสุ่มไว้
ผู้ดำเนินงานโหนดควรอัปเดตไคลเอนต์รุ่นที่ยังรองรับให้เป็นปัจจุบัน ทำความเข้าใจค่าเริ่มต้นในการจัดการเพียร์ของไคลเอนต์ ปกป้องสิทธิ์การดูแลระบบ และเฝ้าติดตามโทโพโลยีทั้งขาเข้าและขาออก ผู้ดำเนินงานด้านการชำระเงินและโปรโตคอลควรแยกการลงนาม การกระจายข้อมูล การสังเกตเชน และการตัดสินใจส่งมอบออกจากกัน เพื่อไม่ให้โหนดที่ถูกแยกเพียงโหนดเดียวอนุมัติการดำเนินการที่ย้อนกลับไม่ได้ด้วยตนเอง
ความเข้าใจผิดที่พบบ่อย
- โหนดเต็มรูปแบบไม่อาจถูกหลอกได้ โหนดเต็มรูปแบบปฏิเสธข้อมูลที่ผิดกฎฉันทามติ แต่ไม่ได้รู้โดยอัตโนมัติว่าเพียร์ที่สุจริตกำลังปิดบังเชนที่ถูกต้องและดีกว่า
- จำนวนการยืนยันที่สูงย่อมเพียงพอเสมอ การยืนยันมีความหมายเฉพาะเมื่อเทียบกับมุมมองเชนที่กำลังสังเกต ความเป็นอิสระของเส้นทางการสังเกตมีความสำคัญเมื่อมีความเป็นไปได้ที่จะถูกแยก
- เพียร์ที่มากขึ้นแก้ปัญหาได้เสมอ เพียร์เพิ่มเติมจะช่วยได้ก็ต่อเมื่อเจ้าของ เส้นทางเครือข่าย แหล่งค้นพบ และรูปแบบความล้มเหลวของเพียร์เหล่านั้นเป็นอิสระจากกันเพียงพอ
- การโจมตี Eclipse และ Sybil คือสิ่งเดียวกัน ทรัพยากรของ Sybil อาจทำให้การแยกง่ายขึ้น แต่การโจมตี Eclipse คือผลลัพธ์ที่ผู้โจมตีควบคุมมุมมองเพียร์ของเหยื่อได้
- ตัวสำรวจบล็อกหนึ่งรายที่แสดงข้อมูลตรงกันพิสูจน์ว่าโหนดปกติดี ตัวสำรวจอาจใช้ผู้ให้บริการต้นทาง เส้นทางเครือข่าย หรือขอบเขตการดูแลเดียวกับระบบที่ได้รับผลกระทบ
- โหนดที่ล้าหลังทุกโหนดกำลังถูกโจมตี ข้อบกพร่องของซอฟต์แวร์ ความคับคั่ง การบำรุงรักษา ความผิดพลาดในการกำหนดเส้นทาง และทรัพยากรหมด อาจก่อให้เกิดอาการคล้ายกัน ควรมอง Eclipse เป็นสมมติฐานที่ต้องทดสอบด้วยสัญญาณหลายอย่าง
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- Eclipse Attacks on Bitcoin’s Peer-to-Peer Network - USENIX Association (เข้าถึงเมื่อ: 2026-08-20)
- Bitcoin Core RPC: getpeerinfo - Bitcoin Core (เข้าถึงเมื่อ: 2026-08-20)
- Bitcoin Core: connection_types.cpp - Bitcoin Core (เข้าถึงเมื่อ: 2026-08-20)