비트코인과 비잔틴 장군 문제 🏰
비잔틴 장군 문제란?
비잔틴 장군 문제는 분산 네트워크에서 일부 참여자가 악의적이거나 신뢰할 수 없는 경우,
어떻게 전체 시스템이 올바른 합의에 도달할 수 있는지를 설명하는 문제.

여러 명의 장군이 서로 다른 위치에서 도시를 포위하고 있음.
모두 같은 명령(공격 또는 철수)을 내려야 승리하는데, 일부 장군이 배신자라면 거짓 정보를 전달할 수도 있음.
이처럼 네트워크 내에서 일부 참여자가 잘못된 정보를 제공할 때도, 올바른 합의를 이끌어내는 방법이 필요함.
🏦 비트코인에서 비잔틴 장군 문제 해결 방법
비트코인은 블록체인을 통해 비잔틴 장군 문제를 해결한 최초의 분산 시스템.

✅ 작업 증명(Proof of Work, PoW) 기반 합의 메커니즘
- 모든 노드는 트랜잭션을 검증한 후 블록을 추가해야 함.
- 새로운 블록을 추가하려면 해시 연산(연산량이 큰 문제)을 해결해야 함.
- 해시 문제를 푼 사람이 새로운 블록을 블록체인에 추가하고, 다른 노드들이 이를 확인 후 합의함.
- 만약 공격자가 잘못된 블록을 추가하려 해도, 과반수(51% 이상)의 연산력을 보유하지 않으면 블록이 인정되지 않음.
✅ 가장 긴 체인이 유효한 블록체인으로 인정됨
- 네트워크 내 다수의 정직한 노드가 계속해서 블록을 추가하면, 정상적인 블록체인이 가장 길어짐.
- 공격자가 잘못된 블록체인을 만들려 해도 정직한 노드들이 더 빠르게 블록을 추가하기 때문에 공격이 무력화됨.
✅ 이중 지불 문제 해결
- 같은 비트코인을 두 번 사용하려는 시도를 방지하기 위해, 비트코인은 각 트랜잭션을 블록체인에 기록하고 검증함.
- 한 번 승인된 거래는 변경할 수 없으며, 공격자가 과반수 연산력을 확보하지 않는 한 이중 지불이 불가능함.
이렇게 비트코인은 작업 증명이라는 혁신적인 방식을 통해 비잔틴 장군 문제를 해결함.
이는 최초의 성공적인 탈중앙화 디지털 화폐 시스템을 가능하게 만듬.
1. 작업 증명(PoW) 시스템 🔨
- 해시 연산의 원리
- 마이너는 특정 조건(난이도 목표값)보다 작은 해시값을 찾아야 함.
- 이를 위해 논스(nonce)값을 계속 변경하며 무작위 대입을 함.
- 조건을 만족하는 값을 찾으려면 엄청난 양의 컴퓨팅 파워가 필요.
2. 51% 공격 방지 🛡️
- 공격자가 네트워크의 51% 이상의 해시파워를 확보해야 공격이 가능.
- 이를 위해서는 수조 원 단위의 투자가 필요.
- 공격에 성공하더라도 비트코인 가치가 폭락하여 공격자에게도 큰 손실이 발생.
3. 이중 지불 방지 🔒
- 모든 거래는 블록체인에 영구적으로 기록됨.
- 한번 확정된 거래는 변경이 불가능.
- 여러 개의 확인(confirmation)을 통해 거래의 안전성을 보장.