비잔틴 장애 허용 (Byzantine Fault Tolerance, BFT)
비잔틴 장애 허용(BFT)은 분산 컴퓨팅 시스템의 내결함성 속성으로, 일부 구성 요소가 고장 나거나 거짓 정보를 보내는 등 임의로(악의적으로) 동작하는 상황에서도 나머지 정직한 노드들이 하나의 결과에 합의할 수 있게 합니다. 이름은 1982년 램포트(Leslie Lamport), 쇼스탁(Robert Shostak), 피스(Marshall Pease)가 정식화한 “비잔틴 장군 문제”에서 왔습니다. 블록체인에서는 서로 신뢰하지 않는 노드들이 같은 거래 내역에 합의하도록 하는 합의 알고리즘의 핵심 요구 사항입니다.
비잔틴 장군 문제
여러 참가자가 함께 하나의 결정을 내려야 하지만, 그중 일부는 신뢰할 수 없고 서로 다른 상대에게 서로 다른 말을 할 수도 있다고 가정해 보겠습니다. 정직한 참가자들이 모두 같은 결정을 내리고, 그 결정이 정직한 참가자의 입력을 반영하도록 하는 것이 문제의 핵심입니다. BFT 알고리즘은 이런 조건에서도 시스템이 올바르게 작동하도록 설계됩니다.
- 구성 요소가 실패할 수 있음: 서버 충돌, 네트워크 중단, 악의적인 행위자를 모두 포함합니다.
- 정보가 불완전함: 메시지가 늦게 도착하거나 손상되거나 고의로 조작될 수 있습니다.
3분의 1 한계
고전적인 BFT 합의에서 전체 노드 수를 n, 비잔틴(악의적이거나 임의로 동작하는) 노드 수를 f라고 하면, 합의의 안전성과 진행을 보장하려면 n ≥ 3f + 1이어야 합니다. 즉 악의적인 참가자가 전체의 3분의 1 미만이어야 합니다. 이 알고리즘들은 보통 2f + 1개 이상의 투표(정족수)를 모아 블록을 확정합니다.
고전적 BFT와 나카모토 합의
- 고전적 BFT(PBFT, Tendermint, HotStuff 등): 참가 노드(검증자) 목록이 정해져 있고, 여러 차례 투표 메시지를 주고받아 블록을 확정합니다. 한 번 확정된 블록은 되돌려지지 않는 결정적 완결성(finality)을 갖습니다. 1999년 발표된 PBFT가 대표적이며, Tendermint(Cosmos)와 HotStuff 계열은 이를 블록체인에 맞게 발전시킨 방식입니다. 노드 수가 늘면 주고받는 메시지가 많아져 확장성에 한계가 있습니다.
- 나카모토 합의(비트코인의 작업 증명): 누구나 참여할 수 있고, 가장 많은 작업이 누적된 체인을 따르는 규칙으로 합의합니다. 정직한 참가자가 해시 파워의 과반을 가지면 작동하며, 블록이 쌓일수록 되돌려질 확률이 줄어드는 확률적 완결성을 갖습니다. 비트코인은 이런 방식으로 비잔틴 장애를 견디는 시스템의 대표적 예입니다. 대신 상당한 계산 능력과 에너지가 필요합니다.
블록체인 밖의 사례
BFT는 블록체인 이전부터 높은 신뢰성이 필요한 분야에서 연구되었습니다. 예를 들어 항공기 제어 시스템에서는 여러 대의 컴퓨터가 중요한 기능을 함께 계산하며, 일부 컴퓨터가 오작동하거나 잘못된 값을 내더라도 시스템이 올바른 값을 유지하도록 설계됩니다. 복제된 데이터베이스와 고가용성 네트워크에서도 같은 원리가 쓰입니다.
장점과 한계
- 견고성: 일부 구성 요소가 실패하거나 악의적으로 작동하더라도 시스템이 계속 작동합니다.
- 분산화: 중앙 기관 없이도 참가자들이 같은 상태에 합의할 수 있습니다.
- 복잡성: 정교한 알고리즘과 프로토콜이 필요해 구현과 검증이 어렵습니다.
- 확장성 한계: 고전적 BFT는 노드 수가 늘수록 통신량이 커지고, 작업 증명 방식은 에너지 소비가 큽니다.
- 가정의 한계: 악의적인 참가자 비율이 한계(고전적 BFT의 3분의 1, 작업 증명의 해시 파워 과반)를 넘으면 보장이 깨집니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.