비트코인기술 중급

비잔틴 장군 문제 (Byzantine Generals Problem)

비트코인이 작업증명을 통해 우아하게 해결한 분산 컴퓨팅의 고전적 난제. 신뢰 없는 합의의 비밀.

· 4분

비트코인이 존재하기 전, 컴퓨터 과학자들은 겉보기에 단순한 질문과 씨름해야 했습니다. 서로를 신뢰할 수 없는 참여자들이 어떻게 하나의 행동에 합의할 수 있는가? 비잔틴 장군 문제로 공식화된 이 질문은 탈중앙화된 디지털 화폐를 만드는 데 있어 가장 완고한 장벽 중 하나였습니다. 사토시 나카모토의 돌파구는 단순히 화폐를 만든 것이 아니라, 수십 년간 연구자들을 좌절시킨 문제를 해결한 것이었습니다.

원래의 문제

1982년, 컴퓨터 과학자 레슬리 램포트(Leslie Lamport), 로버트 쇼스탁(Robert Shostak), 마셜 피즈(Marshall Pease)가 획기적인 논문을 발표했습니다. 시나리오는 다음과 같습니다. 비잔틴 군대의 여러 부대가 적의 도시를 포위하고 있습니다. 각 부대는 장군이 지휘하며, 공격을 조율해야 합니다. 장군들은 전령을 통해서만 소통할 수 있습니다. 문제는 일부 장군이 배신자일 수 있다는 것입니다 — 상반되는 메시지를 보내 작전을 방해할 수 있습니다.

충성스러운 장군들은 두 가지를 보장하는 프로토콜이 필요합니다:

  1. 모든 충성 장군이 같은 계획에 합의한다 (모두 공격하거나 모두 후퇴)
  2. 소수의 배신자가 충성 장군들을 잘못된 계획으로 이끌 수 없다

이 논문은 순수한 메시지 기반 통신만으로는 장군의 1/3 이상이 배신자인 경우 합의가 불가능하다는 것을 증명했습니다. 이 결과는 심대한 함의를 가졌습니다 — 메시지 전달에만 의존하는 모든 분산 시스템이 조직적 기만에 본질적으로 취약하다는 뜻이었습니다.

디지털 화폐에 왜 중요한가

디지털 화폐는 본질적으로 합의 문제입니다. 네트워크의 모든 참여자가 누가 무엇을 소유하는지에 대해 동의해야 합니다. 물리적 세계에서는 이것이 쉽습니다 — 금화가 손에 있거나 없거나 둘 중 하나입니다. 디지털 세계에서는 데이터를 복사할 수 있고, 메시지를 위조할 수 있으며, 참여자가 거짓말을 할 수 있습니다.

전통적인 금융 시스템은 신뢰할 수 있는 권위체를 지정하여 이를 해결합니다. 은행이 최종 장부를 관리합니다. 비자(Visa)가 거래의 유효성을 확인합니다. 이것은 작동하지만 단일 실패 지점을 도입하고, 단일 통제 지점을 만듭니다.

수십 년간 사이퍼펑크들은 중앙 권위체 없는 디지털 화폐를 꿈꿨습니다. 그러나 비잔틴 장군 문제는 이를 불가능하게 만드는 것처럼 보였습니다. 신뢰할 수 있는 조율자 없이 전 세계 수천 대의 익명 컴퓨터가 어떻게 하나의 거래 기록에 합의할 수 있을까요?

비트코인은 어떻게 해결했는가

사토시 나카모토의 혁신은 게임의 규칙을 바꾼 것이었습니다. 메시지 전달만으로 비잔틴 합의를 해결하려는 대신, 비트코인은 작업증명을 통해 참여에 물리적 비용을 도입합니다.

핵심 통찰은 이것입니다: 원래 문제에서 메시지를 보내는 것은 무료이므로 배신자는 비용 없이 무제한으로 상충하는 메시지를 보낼 수 있습니다. 비트코인에서 블록을 제안하는 것(장군의 메시지에 해당)은 암호학적 퍼즐을 풀기 위해 실제 에너지를 소비해야 합니다. 이것이 거짓말을 계산적으로 비싸게 만듭니다.

메커니즘은 다음과 같이 작동합니다:

  • 블록을 제안하려면 채굴자가 현재 난이도 목표를 충족하는 해시를 찾아야 합니다 — 수조 번의 계산과 실제 전력이 필요합니다
  • 역사를 덮어쓰려면 공격자는 변경하려는 모든 블록의 작업증명을 다시 수행하고, 동시에 전체 정직한 네트워크보다 빠르게 진행해야 합니다
  • 정직한 행동에는 보상이 주어지고(블록 보상과 거래 수수료), 네트워크 공격은 하드웨어와 전력에 수십억 달러가 들며 — 공격자가 훔치려는 바로 그 자산의 가치를 파괴합니다

비트코인은 배신자의 가능성을 제거하지 않습니다. 대신, 배반을 너무 비싸게 만들어 합리적 행위자가 항상 협력을 선택하도록 합니다.

확률적 합의 vs 결정적 합의

고전적인 비잔틴 장애 허용 알고리즘은 결정적 합의를 달성합니다 — 한번 합의하면 결정은 최종입니다. 비트코인은 확률적 합의라는 다른 접근을 취합니다. 거래는 절대적으로 최종적이지 않지만, 그 위에 새 블록이 추가될 때마다 번복 확률이 기하급수적으로 감소합니다.

1번의 확인 후에도 번복에는 막대한 연산 능력이 필요합니다. 6번의 확인 후에는 사실상 불가능합니다. 수십 번의 확인 후에는 일부 국가의 총 에너지 생산량보다 더 많은 에너지가 필요합니다. 이 확률적 최종성은 약점이 아닙니다 — 참여자가 누구인지, 몇 명인지 알 필요 없이 시스템이 운영될 수 있게 하는 기능입니다.

나카모토 합의의 우아함

비트코인의 해법이 놀라운 이유는 그 단순함에 있습니다. 가장 긴 유효한 체인이 이긴다. 그것이 전부입니다. 모든 노드가 독립적으로 모든 블록을 검증하고, 가장 많은 누적 작업증명을 가진 체인을 따릅니다. 투표도, 리더 선출도, 멤버십 명부도 없습니다. 누구든 언제든 참여하거나 떠날 수 있습니다.

이는 PBFT(Practical Byzantine Fault Tolerance)와 같은 이전 접근법과 극명하게 대비됩니다. PBFT는 네트워크의 정확한 참여자 수를 알아야 하고 여러 라운드의 메시지 교환이 필요했습니다. 이런 시스템은 작고 알려진 그룹에서는 작동하지만 글로벌 개방 네트워크로는 확장할 수 없습니다.

비트코인은 합의를 물리적 현실 — 에너지 지출 — 에 고정함으로써 수백만 익명 참여자 간의 신뢰할 수 있는 합의를 달성할 수 있음을 보여줬습니다. 비잔틴 장군들은 서로를 신뢰할 필요가 없습니다. 가장 많은 작업이 축적된 체인을 따르기만 하면 됩니다.

비트코인에 대한 의의

비잔틴 장군 문제는 단순한 역사적 일화가 아닙니다. 이전의 모든 디지털 화폐 시도가 실패하고 비트코인이 성공한 근본적인 이유입니다. 이 문제를 이해하면 왜 작업증명이 낭비가 아니라 필수적인지 알 수 있습니다 — 전기를 신뢰로 변환하여, 어떤 신뢰할 수 있는 권위체도 필요 없는 화폐를 가능하게 하는 메커니즘입니다.

사토시 나카모토가 원본 백서에서 쓴 것처럼: “네트워크는 거래를 해시 기반 작업증명의 지속적인 체인에 해싱하여 타임스탬프를 찍으며, 작업증명을 다시 수행하지 않고는 변경할 수 없는 기록을 형성합니다.” 한 문장으로, 수십 년간의 불가능성 결과가 극복되었습니다.

관련 개념

  • 작업증명 — 비잔틴 배반을 계산적으로 비싸게 만드는 메커니즘
  • 노드 — 누구도 신뢰하지 않고 합의 규칙을 집행하는 독립적 검증자
  • 비트코인이란? — 비트코인이 시스템으로서 작동하는 방식의 전체 맥락

관련 글