비잔티움 장애 허용 설명

공유
아티클 듣기
00:00 / 00:00

비트코인이 시작된 2008년 이래로, 특별한 매커니즘을 가진 많은 암호 화폐들이 P2P 전자식 현금 시스템으로 탄생했습니다. 그럼에도 거의 모든 암호 화폐들은 블록체인이라는 핵심 공통 요소를 기반으로 하고 있습니다.

거의 예외 없이, 블록체인은 탈중앙화되도록 의도적으로 설계되었으며, 분산화된 컴퓨터 노드에 의해 유지되는 디지털 원장 역할을 합니다. 이를 통해, 블록체인 기술은 중개자 없이 투명하고 신뢰할 수 있는 금융 거래가 가능한 신뢰가 필요 없는 금융 시스템을 만들어냈습니다. 암호 화폐는 전통적인 은행 업무와 지불 시스템처럼 신뢰에 크게 의존하는 시스템에 대해, 실현 가능한 독자적 대안으로 여겨지고 있습니다.

대부분의 분산형 컴퓨팅 시스템과 마찬가지로, 암호 화폐 네트워크 참여자들은 블록체인의 현 상태에 대해 정기적으로 합의해야 하며, 이를 합의의 달성(consensus achievement)이라 합니다. 그러나, 안전하고 신뢰할 수 있는 방식으로 분산화된 네트워크에서 합의에 이르는 것은 결코 쉬운 일이 아닙니다.

그렇다면, 분산화된 컴퓨터 노드들의 네트워크는 일부 노드가 고장나거나 부정직하게 행동할 경우, 어떻게 합의를 달성할 수 있을까요? 이른바 비잔티움 장군 문제(Byzantine Generals' problem)라고도 하는 이러한 근본적인 질문은 비잔티움 장애 허용 개념을 탄생시켰습니다.


비잔티움 장군 문제란 무엇인가요?

간단히 말해, 비잔티움 장군 문제는 1982년 제시된 논리적 딜레마로 비잔티움의 장군들이 차후의 행동을 합의하려 할 때 발생할 수 있는 의사소통의 문제에 관한 것입니다.

이 딜레마는 각 장군이 자신의 군대를 가지고 있고, 각 장군이 공격하려는 도시가 아닌 다른 장소에 있다고 가정하고 있습니다. 장군들은 공격하거나 후퇴하기 위해서 동의를 얻어야 합니다. 모든 장군이 합의에 도달하는 한, 즉, 공격을 하든 후퇴를 하든, 이를 협력적으로 실천하기 위한 결정에 동의한다면 아무런 문제가 없습니다.

그러므로, 다음과 같은 내용을 간주해볼 수 있습니다:

  • 각 장군들은 공격, 혹은 후퇴(동의 혹은 거부)를 결정합니다. 

  • 결정은 번복할 수 없습니다.

  • 모든 장군이 같은 결정을 해야 하며, 이를 동시에 시행해야 합니다.

앞서 언급한 의사소통 문제는 각 장군이 운반자에 의해 전달되는 메시지를 통해서만 서로 소통할 수 있다는 사실과 관련이 있습니다. 결과적으로, 비잔티움 장군의 문제는 어떤 이유에서든 메시지가 늦게 전달되거나, 훼손되거나, 소실될 수 있다는 사실이 관건입니다.

게다가 메시지가 성공적으로 전달된다 하더라도, 한 명 혹은 그 이상의 장군들이 (어떤 이유에서든) 악의적으로 행동하기로 선택할 수 있으며, 다른 장군들을 혼란스럽게 하기 위해 가짜 메시지를 보내 총체적인 실패로 이어질 수도 있습니다.

이러한 딜레마를 블록체인에 적용해 본다면, 각 장군들은 하나의 노드가 되며, 노드들은 현 시스템 상태에 합의를 달성해야 하는 상황이 됩니다. 달리 말하자면, 분산화된 네트워크의 대다수의 참가자들은 완전한 실패를 막기 위해 동일한 행동을 하기로 결정하고 이를 실천해야 합니다 .

그러므로, 분산화된 시스템에서 이러한 합의를 달성할 수 있는 유일한 방법은 최소 ⅔ 혹은 그 이상의 신뢰할 수 있는 정직한 네트워크 노드를 확보하는 것입니다. 이는 네트워크 참여자 대다수가 악의적으로 행동하기로 결정할 경우, 시스템이 실패하거나 공격( 51%의 공격과 같은) 당할 수 있을 의미합니다.


비잔티움 장애 허용(BFT, Byzantine Fault Tolerance)

간단히 말해, 비잔티움 장애 허용은 비잔티움 장군 문제의 딜레마에서 파생되는 실패들을 막기 위한 시스템입니다. 비잔티움 장애 허용 시스템은 일부 노드가 고장나거나 악의적으로 행동하더라도 계속 작동할 수 있습니다.

비잔티움 장군 문제를 해결하는 방법은 하나 이상일 수 있으며, 따라서 비잔티움 장애 허용 시스템을 구축하는 다양한 방식이 있습니다. 마찬가지로, 블록체인에서도 비잔티움 장애 허용을 달성하는 다양한 접근들이 있으며, 이는 보통 합의 알고리즘이라 불립니다.


블록체인 합의 알고리즘

합의 알고리즘은 블록체인 네트워크에서 합의를 달성하는 매커니즘으로 정의할 수 있습니다. 가장 일반적인 예로 작업 증명(PoW, Proof of Work)과 지분 증명(PoS, Proof of Stake)을 들 수 있습니다. 비트코인의 경우를 예로 들어 살펴보겠습니다.

비트코인 프로토콜은 시스템의 주요 규칙들을 규정하지만, 작업 증명 합의 알고리즘은 합의를 달성하기 위해 이러한 규칙들이 지켜져야 하는지를 정의합니다(예를 들면, 트랜잭션을 검증하고 유효성을 확인할 때).

작업 증명은 암호 화폐보다 오래된 것이지만, 사토시 나카모토는 이를 수정해 비잔티움 장애 허용 시스템으로서 비트코인을 탄생시켰습니다.

작업 증명 알고리즘이 비잔티움 실패를 100% 막아내는 것은 것은 아니지만, 비용 집약적인 마이닝 과정과 암호화 기술로 인해, 블록체인 네트워크에서 작동하는 가장 안전하고 신뢰할 수 있는 것으로 증명되었습니다. 이러한 점에서, 사토시 나카모토에 의해 설계된 작업 증명 합의 알고리즘은 비잔티움 실패에 대한 가장 똑똑한 해결책으로 여겨지고 있습니다.


결론

비잔티움 장군 문제는 다양한 시나리오에 광범위하게 적용되고 있는 비잔티움 장애 허용 시스템을 탄생시킨 흥미로운 딜레마입니다. 블록체인 산업 외에도, 항공, 우주, 원자력 산업에 비잔티움 장애 허용 시스템이 사용되고 있습니다.

암호 화폐 관점에서, 좋은 합의 매커니즘과 함께 효율적인 네트워크 커뮤니케이션을 확보하는 것은 모든 블록체인 생태계에 필수적인 것입니다. 이러한 시스템을 보호하는 데는 지속적인 노력이 필요하며, 현존하는 합의 알고리즘은 몇 가지 한계(확장성과 같은)를 아직 극복하지 못했습니다. 그럼에도 불구하고, 작업 증명과 지분 증명은 비잔티움 장애 허용 시스템에 관한 아주 흥미로운 접근들이며, 잠재력을 가진 애플리케이션들은 광범위한 혁신을 불러일으키고 있습니다.

Loading