Візантійська відмовостійкість (BFT)

Здатність розподіленої системи досягати консенсусу, навіть якщо деякі вузли діють зловмисно або передають суперечливі дані.

Візантійська відмовостійкість (BFT) — це властивість системи залишатися працездатною та досягати консенсусу, навіть якщо деякі вузли надають неправдиві дані або намагаються саботувати мережу. Це вищий стандарт безпеки, ніж просто стійкість до збоїв, оскільки він враховує можливість активної атаки зсередини.

        graph LR
  Center["Візантійська відмовостійкість (BFT)"]:::main
  Pre_distributed_systems["distributed-systems"]:::pre --> Center
  click Pre_distributed_systems "/terms/distributed-systems"
  Pre_consensus_mechanism["consensus-mechanism"]:::pre --> Center
  click Pre_consensus_mechanism "/terms/consensus-mechanism"
  Rel_byzantine_generals_problem["byzantine-generals-problem"]:::related -.-> Center
  click Rel_byzantine_generals_problem "/terms/byzantine-generals-problem"
  Rel_sybil_attack["sybil-attack"]:::related -.-> Center
  click Rel_sybil_attack "/terms/sybil-attack"
  Rel_consensus_mechanism["consensus-mechanism"]:::related -.-> Center
  click Rel_consensus_mechanism "/terms/consensus-mechanism"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простими словами

🛡️ Уявіть групу генералів, що планують атаку. Щоб перемогти, всі мають діяти одночасно. Але деякі генерали можуть бути зрадниками: одним вони скажуть 'Атакуємо', а іншим — 'Відступаємо'. BFT — це набір правил голосування, який гарантує, що чесні генерали все одно домовляться про єдиний план, навіть якщо третина групи — брехуни.

🤓 Expert Deep Dive

BFT вирішує проблему довільних збоїв. У асинхронних системах для безпеки потрібно $n \ge 3f + 1$ вузлів. Сучасні протоколи, як-от HotStuff, досягають лінійної складності зв'язку $O(n)$, що дозволяє залучати сотні валідаторів без втрати швидкості мережі. Це забезпечує дві ключові властивості: Safety (безпека — відсутність суперечливих рішень) та Liveness (живучість — прогрес системи).

🔗 Пов'язані терміни

Попередні знання:

📚 Джерела