จัดทำขึ้นเพื่อการศึกษาด้านความปลอดภัยของโปรโตคอลเท่านั้น ความสามารถในการต้านทานการโจมตีระยะไกลขึ้นอยู่กับโปรโตคอลและรุ่นที่ใช้ ควรรับข้อมูลเริ่มต้นระบบจากแหล่งที่ยืนยันตัวตนและผ่านการตรวจสอบอย่างเป็นอิสระก่อนเชื่อถือโหนดที่เพิ่งซิงค์หรือออฟไลน์มาเป็นเวลานาน
คำตอบโดยตรง
การโจมตีระยะไกลในระบบ Proof of Stake คือความพยายามทำให้ประวัติที่ขัดแย้งกันดูน่าเชื่อถือ โดยใช้อำนาจของผู้ตรวจสอบที่เคยมีผลในอดีตอันไกลโพ้น รูปแบบที่พบบ่อยซึ่งมักเรียกว่าการยึดกุญแจย้อนหลัง เกิดจากผู้โจมตีได้มาหรือเจาะระบบคีย์ของผู้ตรวจสอบหลังจากผู้ตรวจสอบเหล่านั้นออกจากระบบและหลักประกันไม่อาจถูกลงโทษด้วยการตัด Stake ได้อีก เนื่องจากการสร้างลายเซ็นเก่าไม่ต้องใช้พลังงาน Proof of Work ซ้ำ ผู้โจมตีจึงอาจสร้างเชนแยกที่สอดคล้องกันภายในด้วยต้นทุนต่ำเมื่อเทียบกับต้นทุนในอดีตของเชนสุจริต
เป้าหมายมักเป็นโหนดที่ไม่มีมุมมองล่าสุดซึ่งยืนยันแหล่งที่มาแล้ว เช่น โหนดที่เริ่มทำงานเป็นครั้งแรก โหนดที่กู้คืนจากข้อมูลสำรองเก่า หรือโหนดที่ออฟไลน์นานเกินขอบเขตการซิงค์ที่ปลอดภัยของโปรโตคอล โหนดที่ติดตามเครือข่ายอย่างต่อเนื่องย่อมรู้จักบล็อกบรรพบุรุษที่ยืนยันขั้นสุดท้ายแล้วหรือได้รับการปกป้องด้วยวิธีอื่น และควรปฏิเสธเชนแยกที่ขัดแย้งกับบล็อกนั้น ดังนั้นการโจมตีแบบปิดล้อมการสื่อสารหรือแหล่งข้อมูลที่ถูกเจาะระบบจึงอาจเพิ่มผลกระทบของการโจมตี ด้วยการซ่อนมุมมองของเครือข่ายสุจริตจากโหนดที่กำลังซิงค์
คีย์ในอดีตเพียงอย่างเดียวไม่ใช่เครื่องมือปลอมแปลงที่ใช้ได้กับทุกกรณี ประวัติทางเลือกต้องผ่านข้อกำหนดของโปรโตคอลเป้าหมายทั้งโดเมนลายเซ็น การเปลี่ยนสถานะ การเปลี่ยนแปลงชุดผู้ตรวจสอบ กฎด้านเวลา หลักฐานการยืนยันขั้นสุดท้ายหรือการเลือกเชน ตลอดจนข้อจำกัดด้านการเปลี่ยนคีย์หรือจุดตรวจสอบ โปรโตคอล PoS บางระบบกำหนดให้ใช้จุดตรวจสอบภาวะอัตวิสัยแบบอ่อนที่ใหม่เพียงพอ ส่วนระบบอื่นกำหนดวิธีเริ่มต้นจากบล็อกกำเนิดหรือมีสมมติฐานด้านความไว้วางใจและความพร้อมใช้งานต่างกัน จึงต้องวิเคราะห์เชน เครือข่าย รุ่นของการแยกโปรโตคอล ซอฟต์แวร์ไคลเอนต์ และโหมดการซิงค์ที่ใช้จริง แทนการถือว่า PoS เป็นกลไกเดียวกันทั้งหมด
จุดตรวจสอบไม่ใช่เพียงหมายเลขบล็อกที่หยิบใช้ได้สะดวก แต่ผูกเครือข่ายและสถานะฉันทามติที่เจาะจงเข้ากับรากหรือแฮช ณ epoch, slot หรือความสูงหนึ่ง เมื่อยืนยันแหล่งที่มาแล้ว จุดตรวจสอบจะจำกัดว่าประวัติใดที่โหนดจะนำมาพิจารณา จากนั้นจึงตรวจสอบส่วนที่เหลือของเชนตามกฎโปรโตคอลโดยเริ่มจากหลักยึดนี้ได้ นี่คือภาวะอัตวิสัยแบบอ่อน กล่าวคือ รับข้อมูลภายนอกในขอบเขตจำกัดตอนเริ่มต้นระบบ แล้วตรวจสอบอย่างเป็นปรนัยภายในช่วงเวลาตามสมมติฐาน แทนการเชื่อถือหัวเชนล่าสุดที่ peer รายหนึ่งแจ้งอย่างถาวร
เส้นทางการโจมตีและการตรวจสอบ
- เลือกจุดแยกเชนเก่า ผู้โจมตีระบุสถานะในอดีตที่อำนาจของผู้ตรวจสอบเปลี่ยนผ่านไปแล้ว หรือยากที่โหนดใหม่จะยืนยันแหล่งที่มาได้อย่างเป็นอิสระ
- รวบรวมอำนาจลงนามในอดีตให้เพียงพอ หลังผู้ตรวจสอบออกจากระบบ คีย์อาจถูกซื้อ ขโมย เก็บไว้ กู้คืนจากข้อมูลสำรอง หรือรั่วไหลผ่านระบบลงนามที่ถูกเจาะ น้ำหนักและประเภทข้อความที่ต้องใช้ขึ้นอยู่กับโปรโตคอล การมีคีย์เก่าของผู้เสนอบล็อกเพียงคีย์เดียวจึงไม่ได้เพียงพอโดยอัตโนมัติ
- สร้างประวัติทางเลือกที่ถูกต้องตามโปรโตคอล ผู้โจมตีสร้างบล็อก คะแนนเสียง ใบรับรอง และการเปลี่ยนชุดผู้ตรวจสอบที่ผ่านการตรวจสอบประวัติของไคลเอนต์ฝ่ายเหยื่อ อย่างไรก็ตาม การเปลี่ยนสถานะที่ไม่ถูกต้อง โดเมนผิด เวลาที่เป็นไปไม่ได้ หรือหลักฐานที่ขาดหาย ยังทำให้เชนแยกเป็นโมฆะได้
- ต่อและนำเสนอเชนแยก การสร้างลายเซ็นด้วยต้นทุนต่ำอาจช่วยให้ผู้โจมตีเติมประวัติได้ยาว แต่จำนวนบล็อกเพียงอย่างเดียวไม่ใช่ตัวตัดสิน เชนสาขานั้นต้องชนะหรือหลบผ่านกระบวนการคัดเลือกที่โหมดการซิงค์ดังกล่าวใช้จริง
- ควบคุมมุมมองตอนเริ่มต้นระบบ เหยื่อถูกแยกออกจากจุดตรวจสอบล่าสุดที่ยืนยันแหล่งที่มาแล้วหรือหลักฐานจาก peer สุจริต และเห็นประวัติทางเลือกเป็นตัวเลือกเดียวหรือตัวเลือกที่ดูดีกว่า
- ทำให้ระบบปลายทางนำข้อมูลไปใช้ หากโหนดยอมรับสถานะผิด RPC กระเป๋าสินทรัพย์ดิจิทัล ตัวจัดทำดัชนี ตัวเฝ้าติดตามบริดจ์ หรือแอปพลิเคชัน อาจรายงานยอดคงเหลือ เหตุการณ์ และสมาชิกผู้ตรวจสอบที่ถูกต้องตามโปรโตคอลบนเชนแยกของผู้โจมตี แม้เครือข่ายที่ทำงานอยู่จะติดตามอีกเชนหนึ่ง
ฝ่ายป้องกันควรทำเส้นทางนี้ย้อนกลับ ได้แก่ ยืนยันแหล่งที่มาของหลักยึด ยืนยันตัวตนของเชนและเครือข่าย ตรวจว่าประวัติที่เสนอสืบทอดมาจากหลักยึดนั้น ดำเนินการตรวจสอบฉันทามติและการเปลี่ยนสถานะทั้งหมด แล้วเปรียบเทียบสถานะที่ยืนยันขั้นสุดท้ายหรือถูกเลือกผ่านโครงสร้างพื้นฐานอิสระ การดาวน์โหลดสำเร็จไม่ใช่หลักฐานว่าประวัติที่เลือกเป็นประวัติหลักของเครือข่าย
ตัวอย่างแบบละเอียด
สมมติว่าชุดผู้ตรวจสอบ V_old ควบคุมเชน PoS สมมติ ณ epoch 120,000 หลายปีต่อมา น้ำหนักในอดีตมากกว่า 2/3 ออกจากระบบแล้วและไม่อยู่ภายใต้บทลงโทษของโปรโตคอลอีก ผู้โจมตีได้คีย์เก่าเหล่านั้นและเริ่มประวัติที่ขัดแย้งทันทีหลังจุดตรวจสอบ C_old
บนเชนสาขาที่สร้างขึ้น ผู้โจมตีลงนามคะแนนเสียงตามที่โปรโตคอลสมมตินี้กำหนด เปลี่ยนสมาชิกผู้ตรวจสอบในเวลาต่อมา และดำเนินประวัติจนถึง epoch 420,000 เครือข่ายสุจริตก็มาถึง epoch 420,000 เช่นกัน ดังนั้นหมายเลข epoch ที่เท่ากันหรือไฟล์ที่ยาวกว่าไม่ได้บอกโหนดที่กำลังเริ่มต้นระบบว่าสาขาใดเป็นเชนหลักที่ชุมชนและการใช้งานจริงยอมรับ แม้แต่การพิจารณาว่าเชนสาขาที่สร้างขึ้นนั้นรับได้หรือไม่ก็ขึ้นอยู่กับกฎทุกข้อของโปรโตคอลตลอดประวัติศาสตร์
โหนด N_live เคยเห็นจุดตรวจสอบจริง C_recent ซึ่งยืนยันขั้นสุดท้ายแล้ว ณ epoch 419,936 เนื่องจากเชนแยกของผู้โจมตีไม่ได้สืบทอดจาก C_recent โหนด N_live จึงปฏิเสธ ในทางกลับกัน โหนด N_new เริ่มจากบล็อกกำเนิด เชื่อมต่อเฉพาะ peer ของผู้โจมตี และไม่มีหลักยึดล่าสุดที่ยืนยันแหล่งที่มาแล้ว หากโปรโตคอลและโหมดการซิงค์ไม่อาจแยกประวัติทั้งสองด้วยหลักฐานภายในเพียงอย่างเดียว โหนดนี้อาจยอมรับเชนสาขาของผู้โจมตี
การส่งคู่ข้อมูลที่ยืนยันแล้ว C_recent = (root, 419,936) ให้ N_new จะเปลี่ยนขอบเขตการตัดสินใจ ไคลเอนต์ต้องกำหนดให้เส้นทางการซิงค์มีจุดตรวจสอบนี้ตรงกันทุกประการ และหยุดอย่างปลอดภัยหากทำไม่ได้ ค่า epoch และเกณฑ์ 2/3 ในตัวอย่างนี้ใช้แสดงการออกแบบที่อาศัยการยืนยันขั้นสุดท้ายรูปแบบหนึ่ง ไม่ใช่พารามิเตอร์สากลของ PoS หรือค่าปัจจุบันของเครือข่ายใดที่ระบุชื่อ
มาตรการควบคุมและรายการตรวจสอบ
การออกแบบโปรโตคอล
- บันทึกแบบจำลองความปลอดภัยจากการโจมตีระยะไกลให้ชัดเจน ทั้งการยึดกุญแจย้อนหลัง การเปลี่ยนชุดผู้ตรวจสอบ การเจาะคีย์แบบปรับตัว การแยกเครือข่าย และความพร้อมใช้งานของข้อมูล
- กำหนดว่าสถานะที่ยืนยันขั้นสุดท้ายใดห้ามย้อนกลับ และกฎเลือกเชนจัดการความขัดแย้งกับหลักยึดที่เครื่องเชื่อถืออย่างไร
- จำกัดการออก การถอน และอัตราการเปลี่ยนชุดผู้ตรวจสอบ เพื่อให้สมมติฐานด้านความปลอดภัยยังมีความหมาย พร้อมกับยังตรวจพบและลงโทษการลงนามขัดแย้งกันได้
- กำหนดช่วงภาวะอัตวิสัยแบบอ่อนหรือสมมติฐานความปลอดภัยในการซิงค์แบบอื่นให้เป็นค่าที่คำนวณจากสถานะปัจจุบันและค่าคงที่ของโปรโตคอล ไม่ใช่ระยะเวลาปฏิทินที่ใช้ได้ตลอดไป
- พิจารณาลายเซ็นที่เปลี่ยนคีย์ตามเวลา หรือยังคงปลอดภัยแม้คีย์ปัจจุบันรั่วไหล เมื่อการออกแบบโปรโตคอลรองรับ การลบคีย์ตามปกติเป็นสุขอนามัยด้านความปลอดภัยที่มีประโยชน์ แต่ไม่ใช่การป้องกันฉันทามติที่สมบูรณ์
- ทดสอบการซิงค์ครั้งแรก การซิงค์จากจุดตรวจสอบ การกู้คืนสแนปช็อต และการกลับมาหลังออฟไลน์นานแยกจากกัน กฎเลือกเชนที่ปลอดภัยขณะเครือข่ายทำงานไม่ได้ทำให้ขั้นเริ่มต้นระบบปลอดภัยโดยอัตโนมัติ
การเริ่มต้นและการดำเนินงานโหนด
- ก่อนซิงค์ ให้บันทึกรากของจุดตรวจสอบหรือแฮชบล็อก epoch หรือความสูง รหัสเชน เครือข่าย รุ่นการแยกโปรโตคอล เวลาที่ได้รับ และผู้ให้ข้อมูล
- รับหลักยึดผ่านช่องทางที่ยืนยันตัวตน และเปรียบเทียบแหล่งข้อมูลที่เป็นอิสระอย่างแท้จริงหลายแห่ง เว็บไซต์หลายแห่งที่ใช้โหนดหรือผู้ดำเนินการรายเดียวกันไม่ถือว่าเป็นอิสระ
- ปฏิเสธจุดตรวจสอบที่เก่าเกินไป รูปแบบผิด มาจากเครือข่ายผิด หรือขัดแย้งกัน อย่ากลับไปซิงค์โดยไม่มีหลักยึดอย่างเงียบ ๆ หลังการตรวจสอบล้มเหลว
- กำหนดให้เชนที่ซิงค์มีหลักยึดตรงกันทุกประการ และตรวจสอบบล็อกที่สืบทอดทั้งหมดด้วยไคลเอนต์ฉันทามติและไคลเอนต์ประมวลผลที่ตั้งใจใช้
- ใช้ peer ไคลเอนต์ ผู้ดำเนินการ และ RPC ที่หลากหลาย พร้อมเฝ้าระวังภาวะถูกปิดล้อม ความแตกต่างของรากที่ยืนยันขั้นสุดท้าย การย้อนกลับผิดปกติ และความล้มเหลวของการยืนยันขั้นสุดท้ายที่ยืดเยื้อ
- ตรวจหลักยึดอีกครั้งหลังการกู้คืนฐานข้อมูลหรือข้อมูลสำรองเก่า และอัปเดตภายในช่วงปลอดภัยที่โปรโตคอลระบุไว้
การนำข้อมูลไปใช้ในแอปพลิเคชัน
- อย่าปลดเงินฝาก ข้อความบริดจ์ หรือธุรกรรมที่ย้อนกลับไม่ได้ เพียงเพราะ RPC ที่เพิ่งซิงค์รายเดียวแจ้งว่าสำเร็จ
- ก่อนดำเนินการที่มีผลกระทบสูง ให้เทียบตัวตนของเชน จุดตรวจสอบที่ยืนยันขั้นสุดท้าย และลำดับบรรพบุรุษของเหตุการณ์ผ่านโหนดอิสระหลายแห่ง
- แยกประวัติฉันทามติออกจากความจริงของแอปพลิเคชัน เชนหลักไม่ได้พิสูจน์ว่าออราเคิลถูกต้อง สัญญาอัจฉริยะปลอดภัย ข้อมูลนอกโปรโตคอลพร้อมใช้งาน หรือผู้รับฝากสินทรัพย์มีความสามารถชำระหนี้
- เตรียมนโยบายหยุดทำงานเมื่อพบจุดตรวจสอบที่ยืนยันขั้นสุดท้ายหรือหลักยึดที่เชื่อถือได้ขัดแย้งกัน ภาวะนี้อาจชี้ถึงความล้มเหลวของฉันทามติ ข้อมูลเริ่มต้นระบบเสียหาย หรือใช้เครือข่ายผิด และไม่ควรแก้โดยเลือกเชนสาขาที่ยาวกว่าโดยอัตโนมัติ
ความเข้าใจผิดที่พบบ่อย
- เชน PoS ทุกระบบมีช่องโหว่แบบเดียวกัน การต้านทานการโจมตีระยะไกลขึ้นอยู่กับการเปลี่ยนผู้ตรวจสอบ ลายเซ็น การยืนยันขั้นสุดท้าย การเลือกเชน จุดตรวจสอบ และสมมติฐานการซิงค์ของแต่ละโปรโตคอล
- คีย์เก่าเขียนธุรกรรมใดใหม่ได้โดยไม่มีข้อจำกัด ผู้โจมตียังต้องสร้างประวัติที่ผ่านกฎตรวจสอบทั้งหมดของฝ่ายเหยื่อ อำนาจในอดีตจำเป็นต่อโครงสร้างการโจมตีเพียงบางแบบและอาจยังไม่เพียงพอ
- เชนที่มีบล็อก epoch หรือลายเซ็นมากกว่าคือเชนจริง การคัดเลือกใช้ความถูกต้อง น้ำหนัก ใบรับรอง และหลักยึดตามข้อกำหนดของโปรโตคอล ไม่ใช่การเทียบความยาวแบบสากล
- การยืนยันขั้นสุดท้ายเพียงอย่างเดียวทำให้โหนดที่เริ่มจากบล็อกกำเนิดระบุเชนที่สังคมยอมรับได้ ประวัติที่ยืนยันขั้นสุดท้ายและถูกต้องภายในสองชุดอาจแยกไม่ออกสำหรับโหนดที่ไม่มีมุมมองล่าสุดซึ่งยืนยันแหล่งที่มาแล้ว การยืนยันขั้นสุดท้ายปกป้องโหนดที่รู้จุดตรวจสอบที่เกี่ยวข้องอยู่ก่อน
- การตัด Stake ยับยั้งการโจมตีได้เสมอ ผู้ตรวจสอบที่ถอนสินทรัพย์ทั้งหมดแล้วอาจไม่มีหลักประกันเหลือให้ลงโทษ และหลักฐานต้องระบุตัวผู้กระทำได้พร้อมถูกประมวลผลในขณะที่ยังบังคับใช้บทลงโทษได้
- จุดตรวจสอบหมายถึงต้องเชื่อบริษัทเดียวตลอดไป สามารถจำกัดความไว้วางใจไว้ที่หลักยึดล่าสุดที่เจาะจง และลดความเสี่ยงด้วยการเผยแพร่ผ่านช่องทางยืนยันตัวตน การตรวจสอบข้ามแหล่งอิสระ และการตรวจสอบในเครื่องหลังจากนั้น
- การลบคีย์ของผู้ตรวจสอบที่ออกแล้วแก้ปัญหาของโปรโตคอล การลบอย่างปลอดภัยลดความเสี่ยงจากการถูกเจาะ แต่กฎฉันทามติและการเริ่มต้นระบบที่แข็งแรงต้องทนต่อกรณีที่คีย์ในอดีตบางส่วนถูกเปิดเผยได้
หัวข้อที่เกี่ยวข้อง
- การยืนยันขั้นสุดท้าย
- กฎการเลือกเชน
- Proof of Stake
- คิวการออกและถอนสินทรัพย์ของผู้ตรวจสอบ
- ภาวะอัตวิสัยแบบอ่อน
แหล่งที่มา
- ภาวะอัตวิสัยแบบอ่อนของ Ethereum - Ethereum.org (เข้าถึงเมื่อ: 2026-08-21)
- ข้อกำหนดฉันทามติ Ethereum: คู่มือภาวะอัตวิสัยแบบอ่อน - Ethereum Foundation (เข้าถึงเมื่อ: 2026-08-21)
- การโจมตีและการป้องกันระบบ Proof of Stake ของ Ethereum - Ethereum.org (เข้าถึงเมื่อ: 2026-08-21)
- Casper กลไกยืนยันขั้นสุดท้ายแบบเป็นมิตร - arXiv (เข้าถึงเมื่อ: 2026-08-21)
- Ouroboros Genesis: บล็อกเชน Proof of Stake ที่ประกอบร่วมกันได้และรองรับความพร้อมใช้งานแบบพลวัต - IACR Cryptology ePrint Archive (เข้าถึงเมื่อ: 2026-08-21)
- การออกแบบ Ouroboros Genesis - Intersect (เข้าถึงเมื่อ: 2026-08-21)