จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้
คำตอบโดยตรง
การทนต่อความผิดพลาดแบบไบแซนไทน์ (BFT) เป็นคุณสมบัติของโปรโตคอลแบบกระจายที่ระบุชัดภายใต้แบบจำลองความผิดพลาดและเครือข่ายที่ระบุชัด โปรโตคอลยังรักษาการรับประกันที่ประกาศไว้แม้ผู้เข้าร่วมบางรายหยุดทำงาน ระงับข้อความ ส่งข้อความที่ขัดแย้งกันให้เพื่อนคนละราย หรือประพฤติตามอำเภอใจ BFT ไม่ใช่อัลกอริทึมเดียวและไม่ได้หมายความว่าทุกบริการจะพร้อมใช้ระหว่างการแบ่งเครือข่ายทุกครั้ง
ต้องแยกการรับประกันแต่ละด้าน safety หรือความปลอดภัยหมายถึงผู้เข้าร่วมที่ซื่อสัตย์ไม่ตัดสินค่าที่ขัดแย้งกัน liveness หรือความก้าวหน้าหมายถึงข้อมูลเข้าที่มีสิทธิ์สามารถนำไปสู่การตัดสินได้ในที่สุด และ validity หรือความถูกต้องจำกัดว่าค่าใดตัดสินได้ โปรโตคอลอาจหยุดเพื่อรักษาความปลอดภัยเมื่อการสื่อสารหรืออำนาจลงคะแนนที่ซื่อสัตย์ไม่เพียงพอ ฉันทามติที่ถูกต้องก็ไม่ได้พิสูจน์ว่าโค้ดแอป กฎตรวจสอบธุรกรรม บริดจ์ กุญแจ หรือธรรมาภิบาลถูกต้อง
ในโปรโตคอล BFT แบบยืนยันตัวตนและซิงโครไนซ์บางส่วนกลุ่มหนึ่งที่พบบ่อย รีพลิกา n=3f+1 ตัวทนต่อรีพลิกาไบแซนไทน์ได้ไม่เกิน f ตัว และใบรับรองยืนยันใช้เสียง q=2f+1 เสียง ข้อความว่า “ผิดพลาดน้อยกว่าหนึ่งในสาม” และ “องค์ประชุมมากกว่าสองในสาม” มาจากแบบจำลองนี้ โปรโตคอลแบบซิงโครไนซ์ แบบอะซิงโครนัสที่สุ่ม แบบทนต่อการหยุดทำงาน เชน Proof of Work และโครงสร้าง BFT อื่นอาจมีสมมติฐานและขีดจำกัดต่างกัน
ในระบบถ่วงน้ำหนักด้วยสเตก ขีดจำกัดหมายถึงอำนาจลงคะแนนที่โปรโตคอลกำหนด ไม่จำเป็นต้องเท่ากับจำนวนผู้ตรวจสอบ ที่อยู่ บุคคล หรือผู้ดำเนินการอิสระ ก่อนใช้สัดส่วนต้องระบุเวอร์ชันโปรโตคอล สแนปช็อตน้ำหนัก ประเภทการตัดสิน สมมติฐานเครือข่าย การเปรียบเทียบองค์ประชุม (> หรือ >=) และพฤติกรรมความผิดพลาด
- ส่วนแบ่งของฝ่ายตรงข้าม
- 25%
- ระยะขอบถึงเกณฑ์
- 8.4%
ผลลัพธ์เป็นการประมาณทางการศึกษา โดยไม่รวมกฎของสถานที่ ภาษี เวลาแฝง พฤติกรรมของ Oracle และพารามิเตอร์เฉพาะโปรโตคอลอื่นๆ เว้นแต่จะแสดงไว้
วิธีทำงาน
- กำหนดสิ่งที่ตัดสิน ตรวจว่าผู้เข้าร่วมกำลังเรียงธุรกรรม ยืนยันบล็อก ทำให้จุดตรวจสอบสิ้นสุด เลือกผู้นำ ยอมรับการเปลี่ยนสถานะ หรือเลือกฟอร์ก การตัดสินเหล่านี้ใช้แทนกันไม่ได้
- ระบุแบบจำลองระบบและฝ่ายตรงข้าม บันทึกสมาชิก การยืนยันตัวตน การเปลี่ยนสิทธิ์ น้ำหนัก การยึดครองแบบปรับตัว กุญแจรั่ว การลงคะแนนขัดแย้ง การหยุดทำงาน ข้อความสูญหาย การเซ็นเซอร์ การปฏิเสธบริการ และความผิดพลาดที่อาจสัมพันธ์กัน
- ระบุแบบจำลองเครือข่าย แยกการซิงโครไนซ์ การซิงโครไนซ์บางส่วน และอะซิงโครนัส สำหรับแบบบางส่วน ให้ระบุว่าสิ่งใดรับประกันเฉพาะหลังเวลาที่เครือข่ายเสถียรซึ่งไม่ทราบล่วงหน้า และปรับเวลาหมดอายุอย่างไร
- คำนวณกฎองค์ประชุม ใช้ขีดจำกัดและกฎล็อกหรือลงคะแนนที่แน่นอน ในกรณีดั้งเดิม
n=3f+1องค์ประชุม2f+1สองชุดตัดกันอย่างน้อยf+1รีพลิกา เมื่อมีรีพลิกาไบแซนไทน์ไม่เกินfจุดตัดย่อมมีรีพลิกาที่ซื่อสัตย์ - ติดตามทุกขั้นและใบรับรอง ตรวจข้อเสนอ เสียง ล็อก การเปลี่ยนมุมมองหรือรอบ การยืนยัน การเลือกฟอร์ก และการกู้คืน เสียงข้างมากพิเศษที่ลงนามมีความหมายต่อเมื่อตรวจความสูง รอบ ค่า พาเรนต์ โดเมน ยุคสมาชิก และใบรับรองก่อนหน้าแล้ว
- แยกหลักฐานความปลอดภัยและความก้าวหน้า พิสูจน์ว่าการตัดสินที่ขัดแย้งใดถูกกันออกทุกช่วงที่เกี่ยวข้อง แล้วทดสอบว่ากลับมาก้าวหน้าเมื่อสมมติฐานด้านการสื่อสารและการมีส่วนร่วมที่ซื่อสัตย์เป็นจริง เวลาหมดอายุเป็นเครื่องมือจัดตาราง ไม่ใช่หลักฐานว่าเพื่อนที่เงียบมีเจตนาร้าย
- ตรวจการใช้งานและการปฏิบัติการ เปรียบเทียบความหลากหลายของไคลเอนต์ การเก็บกุญแจ การสลับผู้ลงนาม การป้องกันรีเพลย์ การซิงค์สถานะ การจัดการหลักฐาน การเปลี่ยนสมาชิก การติดตาม นโยบายยืนยันของแอป และการกู้คืนกับแบบจำลองที่พิสูจน์ไว้
ผล FLP ระบุว่าโปรโตคอลฉันทามติแบบกำหนดแน่นอนไม่สามารถรับประกันการจบในแบบจำลองอะซิงโครนัสอย่างสมบูรณ์ แม้มีโอกาสที่กระบวนการเดียวจะหยุดทำงาน ผลนี้ไม่ได้บอกว่าความปลอดภัยเป็นไปไม่ได้หรือฉันทามติแบบกระจายทำงานไม่ได้เลย การซิงโครไนซ์บางส่วน การสุ่ม ตัวตรวจจับความล้มเหลว สมมติฐานทางเศรษฐกิจ หรือการรับประกันที่อ่อนลง เปลี่ยนเงื่อนไขเฉพาะของความเป็นไปไม่ได้ด้วยวิธีต่างกัน
ตัวอย่างการคำนวณ
1. รีพลิกาน้ำหนักเท่ากันสี่ตัว
กำหนด n=4, f=1 และ q=3 ชุดเสียงสามเสียงสองชุดตัดกันอย่างน้อย 3+3-4=2 รีพลิกา เมื่อมีรีพลิกาไบแซนไทน์ไม่เกินหนึ่ง จุดตัดมีรีพลิกาที่ซื่อสัตย์อย่างน้อยหนึ่ง หากกฎของโหนดซื่อสัตย์ห้ามลงคะแนนให้ค่าขัดแย้งในประวัติความสูงและรอบที่เกี่ยวข้อง ใบรับรองยืนยันที่ขัดแย้งกันสองใบจะเกิดพร้อมกันไม่ได้
หากรีพลิกาสองตัวออฟไลน์ จะเหลือเพียง 2 เสียงและสร้างใบรับรอง q=3 ไม่ได้ นี่เป็นความล้มเหลวด้านความก้าวหน้า ไม่ใช่ความปลอดภัยโดยอัตโนมัติ โปรโตคอลที่ปลอดภัยจะรอแทนการลดขีดจำกัดเฉพาะที่
2. รีพลิกาน้ำหนักเท่ากันเจ็ดตัว
กำหนด n=7, f=2 และ q=5 องค์ประชุมสองชุดตัดกันอย่างน้อย 5+5-7=3=f+1 รีพลิกา เพราะมีไบแซนไทน์ไม่เกิน 2 จุดตัดจึงมีรีพลิกาที่ซื่อสัตย์ รีพลิกาไบแซนไทน์สองตัวสร้างใบรับรองห้าเสียงเองไม่ได้ แต่ถ้าสามตัวไม่พร้อมใช้หรือระงับเสียง จะเหลือเพียง 4 เสียงและหยุดความก้าวหน้าได้
เลขคณิตของขีดจำกัดจำเป็นแต่ไม่เพียงพอ หากการใช้งานที่ซื่อสัตย์รับเสียงจากความสูงผิด ใช้ชุดสมาชิกซ้ำ ละเมิดกฎล็อก หรือลงนามด้วยกุญแจที่รั่ว สมมติฐานในบทพิสูจน์จะไม่ตรงกับระบบที่ใช้งาน
3. อำนาจลงคะแนนถ่วงน้ำหนัก
สมมติว่าน้ำหนักคือ 40, 30, 20 และ 10 รวม 100 และใบรับรองต้องมากกว่า 2/3 อย่างเคร่งครัด ซึ่งในที่นี้คืออย่างน้อย 67 กลุ่ม 40+30=70 สร้างใบรับรองได้ แต่ 30+20+10=60 ทำไม่ได้แม้มีผู้ตรวจสอบสามในสี่ หากผู้ตรวจสอบน้ำหนัก 40 ออฟไลน์ จะเหลือ 60 และความสิ้นสุดหยุดลง
ชุดที่มีอย่างน้อย 67 สองชุดตัดกันอย่างน้อย 67+67-100=34 ดังนั้นใบรับรองที่ขัดแย้งหมายถึงน้ำหนักอย่างน้อย 34 เข้าร่วมทั้งสองชุด หรือสมมติฐานอื่นล้มเหลว ในบางโปรโตคอล การลงคะแนนขัดแย้งมากกว่าหนึ่งในสามเพียงเล็กน้อยอาจทำลายความปลอดภัยได้ คำว่า “ต้องมีสองในสามจึงโจมตีได้” จึงไม่ใช่ขั้นต่ำสากล
4. การซิงโครไนซ์บางส่วนและเวลาหมดอายุ
สมมติเวลาหมดอายุแต่ละรอบเป็น 1 s, 2 s, 4 s และ 8 s ก่อนเวลาที่เสถียรซึ่งไม่ทราบล่วงหน้า ข้อความอาจมาถึงหลังเวลาหมดอายุปัจจุบันทุกครั้ง ทำให้เปลี่ยนรอบโดยไม่มีการตัดสิน หลังเครือข่ายเสถียร หากความหน่วงต่ำกว่า 3 s รอบ 4 s หรือหลังจากนั้นอาจให้เวลาผู้เสนอที่ซื่อสัตย์และองค์ประชุมก้าวหน้า โดยยังต้องเป็นไปตามสมมติฐานอื่น
ตัวเลขนี้แสดงความก้าวหน้าในที่สุด ไม่ใช่สูตรเวลาหมดอายุสากล เวลาสั้นทำให้เปลี่ยนมุมมองโดยไม่จำเป็น เวลายาวทำให้กู้คืนช้า ความปลอดภัยต้องไม่ขึ้นกับการเดาขีดจำกัดความหน่วงก่อนเครือข่ายเสถียร
ความเสี่ยงและข้อผิดพลาดในการตรวจ
แบบจำลองและบทพิสูจน์
- กล่าวเพียง “BFT” โดยไม่ระบุโปรโตคอล เวอร์ชัน การตัดสิน แบบจำลองความผิดพลาด แบบจำลองเครือข่าย กฎสมาชิก และขีดจำกัด
- ใช้
n=3f+1หรือสัดส่วนหนึ่งในสามกับบัญชีแยกประเภทแบบกระจายทุกชนิด แม้บทพิสูจน์ใช้สมมติฐานอื่น - ปะปนความปลอดภัย ความก้าวหน้า ความถูกต้อง ความพร้อมใช้ ความสอดคล้อง ความสิ้นสุด การเลือกฟอร์ก และความถูกต้องของธุรกรรม
- อ้างว่า FLP ทำให้ฉันทามติเป็นไปไม่ได้โดยตัดเงื่อนไขแบบกำหนดแน่นอน อะซิงโครนัสสมบูรณ์ และรับประกันการจบออก
- นับโหนดหรือที่อยู่เมื่อโปรโตคอลนับสเตก น้ำหนักที่มอบหมาย คณะกรรมการ ยุค หรือทรัพยากรอื่น
- ปัด “สองในสาม” อย่างกำกวมหรือไม่ตรวจว่าการใช้งานใช้
>,>=, น้ำหนักจำนวนเต็ม หรือสแนปช็อตตัวหารใด - ตรวจเพียงขนาดองค์ประชุมโดยไม่ตรวจจุดตัด ล็อก ใบรับรอง การเปลี่ยนมุมมอง การปรับสมาชิก และการย้ายสถานะ
- สมมติว่าบทพิสูจน์ครอบคลุมการยึดครองแบบปรับตัว การขโมยกุญแจ ความผิดพลาดสัมพันธ์กัน การปฏิเสธบริการ หรือประวัติระยะไกลโดยไม่มีหลักฐาน
การใช้งานและการปฏิบัติการ
- รับลายเซ็นที่ไม่ได้ผูกกับเชน โดเมน ความสูง รอบ ค่า พาเรนต์ ยุคสมาชิก และประเภทข้อความ
- เล่นซ้ำเสียงหรือใบรับรองเก่าข้ามรอบ ความสูง ฟอร์ก เครือข่าย การอัปเกรด หรือการเปลี่ยนชุดผู้ตรวจสอบ
- อนุญาตการลงนามซ้ำ การย้อนล็อก การสลับผู้ลงนามที่ไม่ปลอดภัย หรือรีพลิกาที่ทำงานสองตัวใช้ตัวตนผู้ตรวจสอบเดียวกัน
- ถือว่าเวลาหมดอายุเป็นหลักฐานเจตนาร้ายและตัดสินเรื่องความปลอดภัยจากนาฬิกาท้องถิ่นเพียงอย่างเดียว
- มองข้ามความผิดพลาดสัมพันธ์กันจากไคลเอนต์ คลาวด์ ภูมิภาค เครือข่าย ฮาร์ดแวร์ การจัดการกุญแจ หรือผู้ดำเนินการเดียวกัน
- สมมติว่าการตัดสเตกป้องกันความผิดพลาด ฟื้นความก้าวหน้า ย้อนการกระทำที่สิ้นสุดแล้ว หรือชดเชยทุกคน
- ทดสอบเฉพาะการทำงานปกติ ไม่ทดสอบการแบ่งเครือข่าย ความล่าช้า การเรียงใหม่ การลงคะแนนขัดแย้ง ผู้เสนอล้มเหลว การเริ่มใหม่ และการเปลี่ยนสมาชิก
แอปพลิเคชันและธรรมาภิบาล
- ถือว่าค่าที่ฉันทามติยืนยันเป็นสถานะแอปที่ถูกต้องโดยไม่ดำเนินการแบบกำหนดแน่นอนและตรวจการเปลี่ยนสถานะ
- บันทึกเงินฝาก สร้างสินทรัพย์ผ่านบริดจ์ หรือชำระธุรกรรมก่อนเงื่อนไขความสิ้นสุดที่แอปต้องการอย่างแท้จริง
- ถือว่าความสิ้นสุดของโปรโตคอลเหมือนกับการย้อนกลับไม่ได้ทางสังคมหลังกุญแจรั่ว ซอฟต์แวร์ผิดพลาด หรือธรรมาภิบาลแทรกแซง
- มองข้ามการเซ็นเซอร์และความล่าช้าในการรวม เพราะบล็อกของผู้ใช้อื่นยังคงสิ้นสุด
- อนุมานการกระจายศูนย์ ความปลอดภัยของสินทรัพย์ มูลค่าโทเค็น หรือการบังคับใช้ทางกฎหมายจากป้าย BFT หรือจำนวนผู้ตรวจสอบที่โฆษณา
ความเข้าใจผิดที่พบบ่อย
- BFT หมายถึงเครือข่ายไม่เคยหยุด โปรโตคอล BFT จำนวนมากยอมเสียความก้าวหน้าโดยตั้งใจเมื่อมีความผิดพลาดมากเกินไปหรือเครือข่ายแบ่ง เพื่อรักษาความปลอดภัย
- ผู้เข้าร่วมซื่อสัตย์มากกว่า 51% เพียงพอเสมอ ขีดจำกัดขึ้นกับโปรโตคอล BFT แบบซิงโครไนซ์บางส่วนดั้งเดิมมักต้องการอำนาจลงคะแนนที่เกี่ยวข้องมากกว่าสองในสามเพื่อก้าวหน้า
- ผู้โจมตีต้องมีสองในสามเสมอจึงทำลายความปลอดภัยได้ สองในสามสร้างใบรับรองเองได้ แต่ใบรับรองขัดแย้งสองใบอาจเผยการลงคะแนนขัดแย้งเพียงมากกว่าหนึ่งในสามเล็กน้อย
- ที่อยู่ผู้ตรวจสอบมากขึ้นเพิ่มความทนทานโดยอัตโนมัติ เจ้าของร่วม การมอบอำนาจ ไคลเอนต์ โครงสร้างพื้นฐาน กุญแจ และขอบเขตความผิดพลาดเป็นตัวกำหนดความเป็นอิสระ
- การตัดสเตกคือบทพิสูจน์ BFT นั่นเป็นการตอบสนองทางเศรษฐกิจในระบบ PoS บางระบบ ความปลอดภัยมาจากกฎและสมมติฐาน และบทลงโทษไม่ได้ย้อนผลภายนอก
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- The Byzantine Generals Problem - ACM Transactions on Programming Languages and Systems (เข้าถึงเมื่อ: 2026-08-18)
- Impossibility of Distributed Consensus with One Faulty Process - Journal of the ACM (เข้าถึงเมื่อ: 2026-08-18)
- Consensus in the Presence of Partial Synchrony - Journal of the ACM (เข้าถึงเมื่อ: 2026-08-18)
- Practical Byzantine Fault Tolerance - USENIX OSDI (เข้าถึงเมื่อ: 2026-08-18)
- CometBFT Consensus Algorithm - CometBFT (เข้าถึงเมื่อ: 2026-08-18)
- HotStuff: BFT Consensus with Linearity and Responsiveness - arXiv (เข้าถึงเมื่อ: 2026-08-18)
- Gasper - Ethereum.org (เข้าถึงเมื่อ: 2026-08-18)
- Blockchain Technology Overview - NIST (เข้าถึงเมื่อ: 2026-08-18)