---
title: "비잔틴 장애 허용"
title_en: "Byzantine Fault Tolerance"
type: 용어
url: https://wiki.tokenpost.kr/w/byzantine-fault-tolerance
canonical: https://wiki.tokenpost.kr/w/byzantine-fault-tolerance
language: ko
publisher: "토큰포스트"
updated: 2026-08-06T03:24:17.076+00:00
created: 2026-07-28T22:57:25.384132+00:00
same_as: ["https://ko.wikipedia.org/wiki/%EB%B9%84%EC%9E%94%ED%8B%B4_%EC%9E%A5%EC%95%A0_%ED%97%88%EC%9A%A9", "https://en.wikipedia.org/wiki/Byzantine_Fault_Tolerance"]
status: draft
---

# 비잔틴 장애 허용
> Byzantine Fault Tolerance

> **인용 전에 확인해 주세요.** 이 문서는 자동으로 만든 초안이며 사람의
> 검수를 거치지 않았습니다. 사실 관계는 아래 각주의 원문으로 확인해 주세요.

**분류**: 용어

비잔틴 장애 허용은 분산 시스템의 일부 노드가 멈추는 것을 넘어 거짓 정보를 퍼뜨리며 임의로 오작동해도 정상 노드들이 하나의 올바른 결정에 합의할 수 있는 능력을 뜻한다. 서로를 신뢰할 수 없는 참여자들이 공동의 원장에 합의해야 하는 블록체인의 안전성을 떠받치는 핵심 이론이다.

## 1. 개요

비잔틴 장애 허용(Byzantine Fault Tolerance, BFT)은 분산 시스템의 일부 [노드](https://wiki.tokenpost.kr/w/node)가 단순히 멈추는 것을 넘어 서로 다른 상대에게 모순된 정보를 보내거나 의도적으로 잘못된 값을 전달하는 등 임의로 오작동하더라도, 정상 노드들이 하나의 올바른 결정에 합의할 수 있는 능력을 뜻한다. 이러한 종류의 예측 불가능한 오류를 '비잔틴 장애(Byzantine fault)'라고 부른다.

일반적인 결함 허용 시스템은 노드가 고장 나 응답을 멈추는 상황(정지 장애)만 견디면 되지만, 비잔틴 장애 허용은 노드가 거짓말을 하거나 상황에 따라 다르게 행동하는 최악의 경우까지 가정한다는 점에서 훨씬 엄격한 요구 조건이다. 그래서 BFT는 참여자 사이에 신뢰를 전제할 수 없는 개방형 네트워크, 특히 [블록체인](https://wiki.tokenpost.kr/w/blockchain)과 [분산원장](https://wiki.tokenpost.kr/w/distributed-ledger)의 안전성을 논할 때 빠지지 않고 등장한다.

비잔틴 장애 허용은 본래 분산 컴퓨팅 이론에서 출발한 개념이지만, 오늘날에는 [암호화폐](https://wiki.tokenpost.kr/w/cryptocurrency)의 [합의 알고리즘](https://wiki.tokenpost.kr/w/consensus-algorithm)이 반드시 충족해야 할 설계 목표를 가리키는 말로 널리 쓰인다.

## 2. 비잔틴 장군 문제

#### 개념의 기원
비잔틴 장애 허용이라는 개념은 1982년 레슬리 램포트 등이 제시한 '비잔틴 장군 문제(Byzantine Generals Problem)'에서 비롯되었다. 여러 장군이 오직 전령을 통해서만 소통하며 공격과 후퇴 중 하나로 뜻을 모아야 하는데, 이들 중 일부가 배신자여서 서로 다른 장군에게 상반된 메시지를 보낼 수 있다. 이런 배신자가 있어도 충직한 장군들이 동일한 작전에 합의할 수 있는가를 다루는 문제로, 신뢰할 수 없는 참여자가 섞인 분산 합의의 어려움을 상징한다.

'비잔틴'이라는 이름은 음모와 배신으로 유명했던 비잔틴 제국의 평판에서 따온 비유로, 규칙을 지키리라 믿을 수 없는 참여자가 뒤섞인 상황을 나타낸다.

#### 이 문제가 어려운 이유
비잔틴 장군 문제의 핵심은 단순히 '고장 난' 참여자가 아니라 '악의적으로 규칙을 어기는' 참여자를 다룬다는 데 있다. 배신자는 특정 노드에게는 공격을, 다른 노드에게는 후퇴를 이야기해 정상 참여자들의 판단을 서로 어긋나게 만들 수 있다. 따라서 개별 메시지를 그대로 믿을 수 없으며, 여러 참여자의 진술을 교차 확인해 일관된 결론을 끌어내는 절차가 필요하다.

## 3. 정지 장애와 비잔틴 장애

분산 시스템에서 장애는 크게 두 가지로 나눌 수 있다.

- **정지 장애(crash fault)**: 노드가 다운되거나 네트워크에서 떨어져 나가 더 이상 응답하지 않는 경우다. 침묵할 뿐 잘못된 값을 만들어내지는 않으므로 상대적으로 다루기 쉽다.
- **비잔틴 장애(Byzantine fault)**: 노드가 임의로 행동하는 경우다. 잘못된 값을 보내거나, 상대에 따라 다른 메시지를 전하거나, 일부러 침묵하거나, 여러 노드가 담합하는 상황까지 포함한다.

비잔틴 장애는 상상할 수 있는 모든 오작동을 포괄하는 가장 넓고 심각한 장애 유형이다. 어떤 시스템이 비잔틴 장애를 견딜 수 있다면 그보다 단순한 정지 장애는 당연히 견딜 수 있으므로, 비잔틴 장애 허용은 결함 허용 설계의 가장 높은 기준으로 여겨진다. 다만 이렇게 강한 보장을 얻는 대가로 더 많은 [노드](https://wiki.tokenpost.kr/w/node)와 더 많은 통신, 더 복잡한 검증 절차가 요구된다.

## 4. 이론적 조건과 한계

#### 3f+1 조건
이론적으로 비잔틴 장애를 허용하려면 전체 참여자 수가 악의적 노드 수의 3배를 초과해야 한다는 조건이 알려져 있다. 즉 전체 노드가 3f+1개 이상일 때 최대 f개의 비잔틴 노드가 있어도 안전하게 합의할 수 있다. 정상 노드가 배신자를 압도하고, 서로 다른 노드가 받은 정보를 교차 검증해 거짓을 걸러내려면 이 정도의 여유가 필요하다는 뜻이다. 이 조건을 만족하며 합의를 이루는 알고리즘을 비잔틴 장애 허용 합의 알고리즘이라 부른다.

#### 안전성·활성과 동기성 가정
합의 알고리즘의 성질은 흔히 두 가지로 나눠 평가한다. **안전성(safety)**은 정상 노드들이 서로 모순되는 결정을 내리지 않는다는 보장이고, **활성(liveness)**은 시스템이 결국에는 어떤 결정에 도달한다는 보장이다.

1985년에는 완전히 비동기적인 환경, 즉 메시지 지연에 아무런 상한을 둘 수 없는 환경에서는 단 하나의 노드만 고장 나도 종료가 보장되는 결정론적 합의가 불가능하다는 결과(FLP 불가능성)가 제시되었다. 이 때문에 실제 BFT 알고리즘들은 메시지 지연에 일정한 가정을 두거나, 무작위성·타임아웃 같은 장치를 도입해 이 한계를 우회한다.

## 5. 비잔틴 장애 허용 합의 알고리즘

#### PBFT
대표적인 비잔틴 장애 허용 알고리즘으로는 PBFT(Practical Byzantine Fault Tolerance)가 있다. PBFT는 1999년 미겔 카스트로와 바버라 리스코프가 발표한 것으로, 이름 그대로 이론에 머물던 BFT를 실제 시스템에 쓸 수 있게 다듬은 방식이다. 한 노드가 제안을 내고 나머지 노드가 여러 단계의 투표를 거쳐 정족수를 채우면 그 값을 확정하는 구조로, 노드 수가 비교적 적고 참여자 집합이 정해진 환경에서 빠른 확정성을 제공한다.

#### 다양한 파생 방식
PBFT 이후 이 계열의 아이디어를 발전시킨 여러 합의 방식이 등장했다. [코스모스](https://wiki.tokenpost.kr/w/cosmos) 계열이 채택한 텐더민트류 합의, [헤데라](https://wiki.tokenpost.kr/w/hedera-hashgraph)가 내세운 해시그래프 등은 각기 다른 방법으로 비잔틴 장애 허용을 추구한다. 이들 방식은 확정에 도달하면 되돌릴 수 없는 즉각적 확정성을 강조하는 경우가 많아, 확률적으로 확정이 굳어지는 작업증명 계열과 구분된다.

## 6. 블록체인과 비잔틴 장애 허용

블록체인은 서로를 신뢰하지 않는 다수의 참여자가 [P2P](https://wiki.tokenpost.kr/w/p2p) 네트워크에서 공동의 원장에 합의해야 하는 시스템이므로 비잔틴 장애 허용이 핵심 요구사항이다. 어떤 참여자든 거짓 거래를 퍼뜨리거나 서로 다른 노드에게 다른 장부를 보여주려 시도할 수 있기 때문이다.

[사토시 나카모토](https://wiki.tokenpost.kr/w/satoshi-nakamoto)가 제시한 [비트코인](https://wiki.tokenpost.kr/w/bitcoin)의 [작업증명](https://wiki.tokenpost.kr/w/proof-of-work)은 계산 비용을 부과하는 방식으로 비잔틴 장군 문제를 실용적으로 해결한 사례로 평가된다. 원장에 영향을 미치려면 그만큼의 연산 자원을 실제로 투입해야 하므로, 가짜 신원을 무수히 만들어 다수를 가장하는 공격이 어려워진다. 대신 한 세력이 전체 연산력의 과반을 쥐면 장부를 되돌릴 수 있는데, 이것이 [51% 공격](https://wiki.tokenpost.kr/w/51-attack)이며 그 결과로 [이중지불](https://wiki.tokenpost.kr/w/double-spending)이 발생할 수 있다.

이후 [지분증명](https://wiki.tokenpost.kr/w/proof-of-stake), [위임 지분증명](https://wiki.tokenpost.kr/w/delegated-proof-of-stake), [권위증명](https://wiki.tokenpost.kr/w/proof-of-authority) 등 다양한 합의 방식이 각기 다른 방법으로 비잔틴 장애 허용을 추구하고 있다. 이들은 연산력 대신 예치된 자산이나 지정된 검증자 집단에 영향력을 연동해, 악의적 행동에 경제적·평판적 비용을 부과하는 방향으로 설계된다.

## 7. 블록체인 밖의 활용

비잔틴 장애 허용은 블록체인이 등장하기 훨씬 전부터 극도의 신뢰성이 요구되는 분야에서 연구되어 왔다. 대표적으로 항공·우주처럼 사소한 오작동도 큰 사고로 이어지는 안전 필수 시스템에서, 여러 개의 중복 컴퓨터가 서로의 계산 결과를 교차 검증하도록 설계한다. 일부 장치가 고장 나거나 잘못된 신호를 내보내더라도 다수결과 상호 검증을 통해 전체 시스템이 올바른 판단을 유지하게 하려는 것이다.

분산 데이터베이스나 여러 대의 서버가 함께 상태를 관리하는 시스템에서도 같은 원리가 쓰인다. 이처럼 BFT는 특정 기술에 국한된 개념이 아니라, 신뢰할 수 없는 구성 요소가 섞인 시스템에서 전체의 정확성을 지키기 위한 일반적인 설계 원칙이다.

## 8. 한계와 과제

비잔틴 장애 허용은 강한 보장을 주는 만큼 비용도 크다. 많은 BFT 합의는 노드끼리 여러 번 메시지를 주고받아 서로의 값을 확인해야 하므로, 참여자 수가 늘어날수록 통신 부담이 급격히 커진다. 그래서 빠른 확정성을 얻는 대신 참여 노드 규모가 제한되는 경향이 있다.

결국 [탈중앙화](https://wiki.tokenpost.kr/w/decentralization)의 정도, 처리 성능과 [레이턴시](https://wiki.tokenpost.kr/w/latency), 그리고 안전성 사이에서 어디에 무게를 둘지가 핵심 설계 과제가 된다. 참여자를 넓게 열어 검열 저항성과 탈중앙성을 높일수록 합의는 무거워지고, 소수의 검증자로 좁혀 성능을 끌어올릴수록 신뢰가 특정 집단에 쏠리기 쉽다. 여러 합의 방식이 공존하는 이유도 이 균형점을 서로 다르게 잡았기 때문이다.

## 9. 관련 개념

비잔틴 장애 허용은 [분산원장](https://wiki.tokenpost.kr/w/distributed-ledger)과 블록체인 합의의 안전성을 뒷받침하는 이론적 토대다. 함께 살펴보면 좋은 개념으로는 [합의 알고리즘](https://wiki.tokenpost.kr/w/consensus-algorithm), [작업증명](https://wiki.tokenpost.kr/w/proof-of-work), [지분증명](https://wiki.tokenpost.kr/w/proof-of-stake), [노드](https://wiki.tokenpost.kr/w/node), [51% 공격](https://wiki.tokenpost.kr/w/51-attack) 등이 있다.

## 10. 연표

- **1980** (이정표) 결함이 존재하는 분산 시스템에서 합의에 도달하기 위한 조건에 관한 초기 연구가 발표됨
- **1982** (설립) 레슬리 램포트 등이 '비잔틴 장군 문제' 논문을 발표하며 개념을 정립함
- **1985** (이정표) 완전 비동기 시스템에서는 결정론적 합의가 종료를 보장할 수 없다는 FLP 불가능성 결과가 제시됨
- **1999** (이정표) 미겔 카스트로와 바버라 리스코프가 실용적 BFT 알고리즘 PBFT를 발표함
- **2008** (이정표) 사토시 나카모토가 비트코인 백서에서 작업증명 기반 합의를 제안함
- **2009** (출시) 비트코인 네트워크가 가동되며 작업증명 방식의 비잔틴 장애 허용이 실사용에 적용됨

---

같은 개체: [위키백과(한국어)](https://ko.wikipedia.org/wiki/%EB%B9%84%EC%9E%94%ED%8B%B4_%EC%9E%A5%EC%95%A0_%ED%97%88%EC%9A%A9) · [Wikipedia(EN)](https://en.wikipedia.org/wiki/Byzantine_Fault_Tolerance)

원문: https://wiki.tokenpost.kr/w/byzantine-fault-tolerance
최종 수정: 2026-08-06T03:24:17.076+00:00
발행: 토큰포스트 위키. 인용할 때 문서 제목과 원문 주소를 함께 밝혀 주세요.