ข้ามไปยังเนื้อหา

การทนต่อความผิดพลาดแบบไบแซนไทน์: ความปลอดภัย ความก้าวหน้า และองค์ประชุม

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

อัปเดต

จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

คำตอบโดยตรง

การทนต่อความผิดพลาดแบบไบแซนไทน์ (BFT) เป็นคุณสมบัติของโปรโตคอลแบบกระจายที่ระบุชัดภายใต้แบบจำลองความผิดพลาดและเครือข่ายที่ระบุชัด โปรโตคอลยังรักษาการรับประกันที่ประกาศไว้แม้ผู้เข้าร่วมบางรายหยุดทำงาน ระงับข้อความ ส่งข้อความที่ขัดแย้งกันให้เพื่อนคนละราย หรือประพฤติตามอำเภอใจ BFT ไม่ใช่อัลกอริทึมเดียวและไม่ได้หมายความว่าทุกบริการจะพร้อมใช้ระหว่างการแบ่งเครือข่ายทุกครั้ง

ต้องแยกการรับประกันแต่ละด้าน safety หรือความปลอดภัยหมายถึงผู้เข้าร่วมที่ซื่อสัตย์ไม่ตัดสินค่าที่ขัดแย้งกัน liveness หรือความก้าวหน้าหมายถึงข้อมูลเข้าที่มีสิทธิ์สามารถนำไปสู่การตัดสินได้ในที่สุด และ validity หรือความถูกต้องจำกัดว่าค่าใดตัดสินได้ โปรโตคอลอาจหยุดเพื่อรักษาความปลอดภัยเมื่อการสื่อสารหรืออำนาจลงคะแนนที่ซื่อสัตย์ไม่เพียงพอ ฉันทามติที่ถูกต้องก็ไม่ได้พิสูจน์ว่าโค้ดแอป กฎตรวจสอบธุรกรรม บริดจ์ กุญแจ หรือธรรมาภิบาลถูกต้อง

ในโปรโตคอล BFT แบบยืนยันตัวตนและซิงโครไนซ์บางส่วนกลุ่มหนึ่งที่พบบ่อย รีพลิกา n=3f+1 ตัวทนต่อรีพลิกาไบแซนไทน์ได้ไม่เกิน f ตัว และใบรับรองยืนยันใช้เสียง q=2f+1 เสียง ข้อความว่า “ผิดพลาดน้อยกว่าหนึ่งในสาม” และ “องค์ประชุมมากกว่าสองในสาม” มาจากแบบจำลองนี้ โปรโตคอลแบบซิงโครไนซ์ แบบอะซิงโครนัสที่สุ่ม แบบทนต่อการหยุดทำงาน เชน Proof of Work และโครงสร้าง BFT อื่นอาจมีสมมติฐานและขีดจำกัดต่างกัน

ในระบบถ่วงน้ำหนักด้วยสเตก ขีดจำกัดหมายถึงอำนาจลงคะแนนที่โปรโตคอลกำหนด ไม่จำเป็นต้องเท่ากับจำนวนผู้ตรวจสอบ ที่อยู่ บุคคล หรือผู้ดำเนินการอิสระ ก่อนใช้สัดส่วนต้องระบุเวอร์ชันโปรโตคอล สแนปช็อตน้ำหนัก ประเภทการตัดสิน สมมติฐานเครือข่าย การเปรียบเทียบองค์ประชุม (> หรือ >=) และพฤติกรรมความผิดพลาด

ต่ำกว่าเกณฑ์
25%
ส่วนแบ่งของฝ่ายตรงข้าม
25%
ระยะขอบถึงเกณฑ์
8.4%

ผลลัพธ์เป็นการประมาณทางการศึกษา โดยไม่รวมกฎของสถานที่ ภาษี เวลาแฝง พฤติกรรมของ Oracle และพารามิเตอร์เฉพาะโปรโตคอลอื่นๆ เว้นแต่จะแสดงไว้

วิธีทำงาน

  1. กำหนดสิ่งที่ตัดสิน ตรวจว่าผู้เข้าร่วมกำลังเรียงธุรกรรม ยืนยันบล็อก ทำให้จุดตรวจสอบสิ้นสุด เลือกผู้นำ ยอมรับการเปลี่ยนสถานะ หรือเลือกฟอร์ก การตัดสินเหล่านี้ใช้แทนกันไม่ได้
  2. ระบุแบบจำลองระบบและฝ่ายตรงข้าม บันทึกสมาชิก การยืนยันตัวตน การเปลี่ยนสิทธิ์ น้ำหนัก การยึดครองแบบปรับตัว กุญแจรั่ว การลงคะแนนขัดแย้ง การหยุดทำงาน ข้อความสูญหาย การเซ็นเซอร์ การปฏิเสธบริการ และความผิดพลาดที่อาจสัมพันธ์กัน
  3. ระบุแบบจำลองเครือข่าย แยกการซิงโครไนซ์ การซิงโครไนซ์บางส่วน และอะซิงโครนัส สำหรับแบบบางส่วน ให้ระบุว่าสิ่งใดรับประกันเฉพาะหลังเวลาที่เครือข่ายเสถียรซึ่งไม่ทราบล่วงหน้า และปรับเวลาหมดอายุอย่างไร
  4. คำนวณกฎองค์ประชุม ใช้ขีดจำกัดและกฎล็อกหรือลงคะแนนที่แน่นอน ในกรณีดั้งเดิม n=3f+1 องค์ประชุม 2f+1 สองชุดตัดกันอย่างน้อย f+1 รีพลิกา เมื่อมีรีพลิกาไบแซนไทน์ไม่เกิน f จุดตัดย่อมมีรีพลิกาที่ซื่อสัตย์
  5. ติดตามทุกขั้นและใบรับรอง ตรวจข้อเสนอ เสียง ล็อก การเปลี่ยนมุมมองหรือรอบ การยืนยัน การเลือกฟอร์ก และการกู้คืน เสียงข้างมากพิเศษที่ลงนามมีความหมายต่อเมื่อตรวจความสูง รอบ ค่า พาเรนต์ โดเมน ยุคสมาชิก และใบรับรองก่อนหน้าแล้ว
  6. แยกหลักฐานความปลอดภัยและความก้าวหน้า พิสูจน์ว่าการตัดสินที่ขัดแย้งใดถูกกันออกทุกช่วงที่เกี่ยวข้อง แล้วทดสอบว่ากลับมาก้าวหน้าเมื่อสมมติฐานด้านการสื่อสารและการมีส่วนร่วมที่ซื่อสัตย์เป็นจริง เวลาหมดอายุเป็นเครื่องมือจัดตาราง ไม่ใช่หลักฐานว่าเพื่อนที่เงียบมีเจตนาร้าย
  7. ตรวจการใช้งานและการปฏิบัติการ เปรียบเทียบความหลากหลายของไคลเอนต์ การเก็บกุญแจ การสลับผู้ลงนาม การป้องกันรีเพลย์ การซิงค์สถานะ การจัดการหลักฐาน การเปลี่ยนสมาชิก การติดตาม นโยบายยืนยันของแอป และการกู้คืนกับแบบจำลองที่พิสูจน์ไว้

ผล 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 บางระบบ ความปลอดภัยมาจากกฎและสมมติฐาน และบทลงโทษไม่ได้ย้อนผลภายนอก

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...